Testing and Debugging Flashcards
How is test data designed?
Systematically
What kind of process is debugging?
Lateral thinking
What is testing?
Executing an implementation with dummy data
What is a successful test?
One which shows an error
A system has many... A package has many... A class has many ...
Packages
Classes
Methods
What is top down testing?
Test each component before we test those it relies on. Write stubs for lower level components. Simultaneous with top down development. Design errors found early on
What is bottom up testing?
Test each component before we test any that rely on it. We don’t have to write stubs. Cannot test incrementally with top down development
What are test cases? What is test data?
Test cases are features we want to test. Test data is used to test them
What is black box testing?
When we look only at the specification of the behaviour for the component in order to construct test cases and data
What is white box testing? (Glass box testing)
When we also look at the implementation of the component when we construct the test data
What is equivalence partitioning?
A technique for constructing test data from the specification (only) of the component. We partition the set of all possible input data into classifications with common properties. We do the same for output data. We identify these classifications as test cases. We choose representative values from the test cases to be used as test data
What is structural testing?
A technique for constructing test data by looking at the implementation code
Choose data so that every combination of every path through the code is tried
Good technique for checking against many simple run time errors
Which testing approach is best?
Equivalence partitioning at first adding extra cases from structural testing
What is symbolic execution?
A symbolic execution covers an infinite number of sets of data. A finite number of symbolic executions is needed to cover all data
What are the two parts of debugging?
Error location and error elimination