• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/16

Click to flip

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