Verification Flashcards
manual testing
a human executes a program and verifies that it does what was intended
automated testing
the test is run automatically by a computer
manual analysis inspection
humans do it
program analysis
computers do it
empirical
manual testing and automated testing
analytrical
inspection (manual) and program analysis (automated)
defect
subset of a program’s code that exhibits behavior that violates a program’s specifications.
failure
program behavior that results from a defect executing.
bug
vaguely refers to either the defect, the failure, or both.
test coverage
executing all of the possible control flow paths through the various conditionals in your program
unit tests
verify that functions return the correct output.
integration tests
verify that when all of the functionality of a program is put together into the final product, it behaves according to specifications. Integration tests often operate at the level of user interfaces, clicking buttons, entering text, submitting forms, and verifying that the expected feedback always occurs.
regression tests
verify that behavior that previously worked doesn’t stop working.
symbolic execution
verify all possible paths through the function, finding the paths that result in correct and incorrect values. called program analysis if automatic.
The benefits of analysis is that it can demonstrate that
a program is correct in all cases.