Introduction to Software Testing Flashcards
What are 3 reasons why we test code?
- to understand the code
- to gain measurable confidence
- to get a sense of actual program behavior
What is a fault?
anomaly in code
What is an error?
runtime effect of executing a code, which may result in a failure
What is a failure?
manifestation of an error external to the program
What is the relation between fault, error and failure? Draw a diagram to illustrate
Simply put, fault and error could still lead to successful execution of program
What is a test case?
group of input values that cause programs to do something specific; often measured through the output produced
What is a test suite?
collect of test case
What is a test oracle?
mechanism for determining actual behavior of a test case
What is an example of a test oracle?
a mathematical formula
What is test effectiveness?
extent to which testing reveals fault or other objectives
What is a test plan?
document describing scope, approach, resources and schedule of intended testing activity
What’s the difference between testing and debugging?
testing reveals faults, debug remove/fix faults
What is a root-cause?
the actual fault
What is a manifestation?
observable incorrect output or crash
What is an “expected behavior”?
a constraint or an expected output value
What are some traits of oracles?
- not all programs have oracle, i.e. non-testable
- useful for reliability testing: i.e. probability of failure free operation over some period of time
What are 5 types of testing?
- unit
- integration
- system
- acceptance
- regression
What is unit testing?
testing a single simple component; i.e. procedure or class
What is integration testing?
testing of inter-dependent components; emphasizing on interfaces
What is system testing?
testing of a complete stand-alone system
What is acceptance testing?
customer’s evaluation of a system
What is regression testing?
automated running of test upon system changes