Foundation Level Flashcards
(86 cards)
Testing vs Debugging
Executing tests can show failures that are caused by defects in the software.
Debugging is the development activity that finds, analyzes, and fixes such defects
Test Activities and Tasks
- Test planning
- Test monitoring and control
- Test analysis
- Test design
- Test implementation
- Test execution
- Test completion
Confirmation Testing
After a defect is fixed, the software may be tested with all test cases that failed due to the defect, which should be re-executed on the new software version. The software may also be tested with new tests to cover changes needed to fix the defect. At the very least, the steps to reproduce the failure(s) caused by the defect must be re-executed on the new software version. The purpose of a confirmation test is to confirm whether the original defect has been successfully fixed.
Regression testing
Looking for unintended changes in behavior resulting from software or environment changes
It is possible that a change made in one part of the code, whether a fix or another type of change, may accidentally affect the behavior of other parts of the code, whether within the same component, in other components of the same system, or even in other systems. Changes may include changes to the environment, such as a new version of an operating system or database management system. Such unintended side-effects are called regressions. Regression testing involves running tests to detect such unintended side-effects.
Test type
a group of test activities aimed at testing specific characteristics of a software system, or a part of a system, based on specific test objectives
Functional quality characteristics
completeness, correctness, and appropriateness
Non-functional quality characteristics
- reliability
- performance
- efficiency
- security
- compatibility
- usability
Functional coverage
the extent to which some functionality has been exercised by tests
Non-functional testing
evaluates characteristics of systems and software such as usability, performance efficiency or security
Non-functional testing
evaluates characteristics of systems and software such as usability, performance efficiency or security
Non-functional testing: details
- can and often should be performed at all test levels, and done as early as possible
- boundary value analysis can be used to define the stress conditions for performance tests.
Non-functional coverage
Non- functional coverage is the extent to which some type of non-functional element has been exercised by tests
expressed as a percentage of the type(s) of element being covered
White-box Testing
derives tests based on the system’s internal structure or implementation (code, architecture, work flows, and/or data flows within the system)
Structural coverage
Structural coverage is the extent to which some type of structural element has been exercised by tests, and is expressed as a percentage of the type of element being covered.
Change-related Testing
- Confirmation testing
2. Regression testing
Test Levels
Def: groups of test activities that are organized and managed together
Misc
1. For every test level, a suitable test environment is required
Test Levels Attributes
- Specific objectives
- Test basis, referenced to derive test cases
- Test object (i.e., what is being tested)
- Typical defects and failures
- Specific approaches and responsibilities
Test Levels List
- Component testing
- Integration testing
- System testing
- Acceptance testing
Black Box Techniques (List)
- equivalence partitioning to derive test cases from given requirements
- boundary value analysis to derive test cases from given requirements
- decision table testing to derive test cases from given requirements
- state transition testing to derive test cases from given requirements
White-box Test Techniques (List)
- Statement coverage
2. Decision coverage
Experience-based Test Techniques (List)
- Error guessing
- Exploratory testing
- Checklist-based testing
The purpose of a test technique
help in identifying test conditions, test cases, and test data.
The choice of which test techniques to use depends on
- Component or system complexity
- Regulatory standards
- Customer or contractual requirements
- Risk levels and types
- Available documentation
- Tester knowledge and skills
- Available tools
- Time and budget
- Software development lifecycle model
- The types of defects expected in the component or system
Seven Testing Principles
- Testing shows the presence of defects, not their absence
- Exhaustive testing is impossible
- Early testing saves time and money
- Defects cluster together
- Beware of the pesticide paradox
- Testing is context dependent
- Absence-of-errors is a fallacy