Chapter 1 Flashcards
What is testing?
- Assess the quality of the software ⇒ Avaliar a qualidade
- Reduce the risk of software failure in operation
Dynamic and static
Dynamic testing → running the software
Static Testing → design, weight, I can read the manual, review the user requirements
Validation and Verification
Validation → requirements as user (building the right product) → Care about the customer, what the customer wants
Verification → security , data (Building the product right) → Static testing activities, unit testing and integration testing
Test process
Test planning-Test Monitoring & Control-Test Analysis-Test Design-Test Implementation-Test Execution-Test Completion
Product right / right product
“Building the product right” checks that the specifications are correctly implemented by the system while
“building the right product” refers back to the user’s needs.
Objectives of Testing
- Work-product Evaluation
- Requirements Fulfillment
- Building Confidence
- Providing Information to Stakeholders
- Preventing Defects
- Finding Defects
- Reduce Risk
- Compliance with Laws
- Objectives may vary
Difference between Testing and Debugging
- Testing → send a defect bug to the developer
- Debugging → Remove the bug ⇒ The process of finding, analyzing and removing the causes of failures in the software.
- Confirmation Testing → reproduce the same test
What is the definition of debugging?
Identifying the cause of a defect, repairing the code and checking the fix is correct
When test cases are designed early in the lifecycle, verifying the test basis via the test design, which common test objective is being achieved?
Preventing defects
Which of the following statements is the MOST valid goal for test team?
→ Cause as many failures as possible so that faults can be identified and corrected
Which of the following statements BEST describes the difference between testing and debugging?
→ Dynamic testing shows failures caused by defects. Debugging finds, analyses, and removes the causes of failures in the software.
Why is Testing Necessary?
Testing is necessary because if we don’t have a good testing process we might lose our business reputation. |
Testing is necessary because having a good testing process helps us in providing information to stakeholders
Tester’s contribution to the success
- Review the requirements
- Review the design
- Review the code
- Review and test the final product
Difference between Quality Assurance and Quality Control
Quality Management includes all activities that direct and control and organization with regard to quality.
Quality Assurance is typically focused on adherence to proper processes. Cares about whole project.
Proper processes → Work products of higher quality → Defect Prevention
Quality Control involves various activities, including test activities, that support the achievement of appropriate levels of quality. Cares about the final product
Errors, Defects (bug), and Failures
Error/Mistake → humans make mistakes or errors
Defect (fault-bug) → result of the error
Failures mean that the software isn’t able to perform its function
Not all defects will a Failure.
Why do errors happen?
- Time pressure
- Human fallibility
- Lack of Experience
- Miscommunication
- Complexity of work products
- System Interactions
- New technologies
- Environmental conditions
False Positive and False Negative
False positive, we talk about finding a defect because it is called positive. Found a defect but we were wrong. Was not a defect
False negative, mean that we didn’t find a defect, but there is a defect in the functionality. The developer or the client test and find a defect in it.
Root Cause Analysis and Process Improvement
The root causes of defects are the earliest actions or conditions that contributed to creating the defects.
Recall the activity that removes the cause of a failure.
Debugging
Why is software testing sometimes required for legal reasons?
Contracts may specify testing requirements that must be fulfilled
Seven Testing Principles
- Testing shows the presence of defects, not their absence. ⇒ Testing reduces the probability of undiscovered defects but it is not a proof of correctness.
- Exhaustive Testing is impossible ⇒ Testing everything is not feasible except for trivial cases
- Early Testing saves time and money (shift left) ⇒ To find defects early, both static and dynamic test activities should be started as early as possible.
- Defects cluster together ⇒ A small number of modules usually contains most of the defects discovered during pre-release testing
- Beware of pesticide paradox ⇒ If the same tests are repeated over and over again, these tests no longer find any new defects
- Testing is context dependent ⇒ Testing is done differently contexts.
- Absence of Error is a fallacy ⇒ It is a fallacy to expect that just finding and fixing a large number of defects will ensure the success of a system.
Test Activities and Tasks
- Test planning
- Test monitoring and control
- Test analysis
- Test design
- Test implementation
- Test execution
- Test completion
Test Planning
Defining Objectives of Testing and the approaches to meet these objectives
Test Plan
Test Monitoring and Control
- on-going comparison of actual progress against the test plan using any test monitoring metrics defined in the test plan
- taking actions necessary to meet the objectives of the test plan
- Test progress against the plan is communicated to stakeholders in test progress reports
Test control involves taking actions necessary to meet the objectives of the test plan.