Software Testing Flashcards
Defect Testing
Involves testing programs to establish presence of defects.
Component Testing
Testing individual program components, usually the responsibility of the component developer.
Integration Testing
Testing of the groups of components integrated to create a system or sub-system, with the responsibility of this falling upon the independent testing team.
Exhaustive Testing
Only way to show a program is free of defects, but exhaustive testing is impossible.
Test Data
Inputted to test the system.
Test Cases
Inputted to test the system, wit predefined outcomes which the system should abide by.
Black-box Testing
Program is tested with no inside knowledge.
Program is considered as a black box, and it tested specifically on system specifications.
Equivalence Partitioning
Input data and outputs often fall into different classes where all members of a class are related.
Each class is an equivalence partition where the program behaves in a similar fashion.
Test cases should be chosen from each partition to account for all behaviours.
Equivalence Sets (Equivalence Partitioning)
Equivalence sets are essentially the partitions of the inputs and outputs, and normally contain some sort of range.
For example, we could have a specific range of inputs which behave similarly. Lets say we could have the inputs as integers, between numbers 1 - 100.
Choosing numbers at the very end of these scales typically are more likely to result inn erroneous behaviours, like 0, 1, 100, 101, 99 etc, and they should be chosen as test cases.
An example can be an email, where inputs with @ are valid inputs and inputs without it are invalid.
Search Routines
Typical search routines include:
- Inputs which conform to the pre-conditions.
- Inputs where a pre-condition does not hold.
- Inputs where the key element is a member of the array.
- Inputs where the key element is not a member of the array.
Testing Guidelines
Testing guidelines typically include:
- Test software with sequences which have only a single value.
- Use sequences of different sizes in different tests.
- Derive tests so that the first, middle and last elements of the sequence are accessed.
- Test with sequences of zero length.
Structural Testing / White-box Testing
Derives test cases according to the program structure.
Inside knowledge is known.
Detailed report is given at the end.
Binary Searching
Type of white-box testing, which is checking for the specifics of arrays to check if the internal workings of these arrays are as to be expected.
Path Testing
Ensures that the set of test cases is such that each path through the program is executed at least once.
The starting point for path testing is a program graph that shows nodes representing the program’s decisions, and arcs representing the flow of control.
Statements with conditions are nodes in the flow graph.
Program Flow Graphs
Describe the program control flow, with each branch shown a separate path and loops shown by arrows looping back to the loop condition node.
Cyclomatic Complexity
The cyclomatic complexity is the number of tests to test all control statements.
In other words, it equals the number of conditions in a program plus one.
Independent Paths
All node paths in a graph.
Integration Testing
Test complete systems or sub-systems composed of integrated components.
Integration testing should be black box testing with tests derived from specifications.