Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
16 Cards in this Set
- Front
- Back
White box methods
|
Base their tests on the softwareʼs actual architecture or code itself
|
|
Code Coverage
|
Design tests to execute every method, statement or instruction of the program
at least once |
|
Logic Path / Decision Point Coverage
|
Design tests to cover every path of execution in the program at least once
|
|
Mutation Testing
|
Involves creating many slightly different versions of the code by mutating (changing operations) in each version. Used to check sufficiency of test suites in detecting faults
|
|
Code Injection
|
Refers to modifications of the
source or executable code being tested in order to make tests more effective (possible because white box) |
|
Instrumentation Injection
|
Adding code to instrument the actions of the program
at every method, statement or instruction during testing, to keep track of properties such as execution coverage |
|
Performance Instrumentation
|
Involves adding code to log the actual time or space used by each method or statement of the program during execution
|
|
Assertion Injection
|
Adding strict run-time assertion code to every method, statement or instruction in the program during testing,
to help localize the cause of failures |
|
Fault Injection
|
Adding code to simulate run-time faults, to test fault handling
|
|
Three Levels of White Box Implementation
|
1) source level
2) executable code level 3) execution sampling level |
|
Source Level Implementation
|
Create a copy of the program with new statements inserted to log coverage (Code Injection by Source Modification)
|
|
Executable Code Level Implementation
|
Create a copy of the program code with instructions inserted to log coverage. In order not to change addresses, modify code to execute new instructions out of line (Code Injection by Executable Code Modification)
|
|
Sampling Level Implementation
|
Use a timer or other frequent regular interrupt to randomly sample where we are executing. Interrupt return address tells us where we are executing when each interrupt happens (Do not change the executable code at all)
|
|
Advantages of path coverage
|
- Covers all basic blocks (like block testing)
- Covers all conditions (does all of decision/condition testing) - Requires fewer tests! - Automatable |
|
Disadvantages of path coverage
|
Does not take data complexity into account
|
|
Mutation testing
|
White box method for checking the adequacy of a test suite. For each mutant, we run the test suite on the mutant and
compare the results to the saved results from the original. If the results differ, then the mutant has been “killed” (detected) by the test suite. If the results do not differ, then the test suite is inadequate to detect the mutant, and a new test must be added to the suite to “kill” that mutant |