Software Testing (WK9) Flashcards
Testing vs debugging
Testing tries to prevent bugs, debugging tries to fix bugs (that may have been revealed during testing)
Verification and validation in testing
Verification: are we building the product right
Validation: are we building the right product
V&V aims to establish confidence that the system is ‘fit for purpose’ or good enough for its intended use.
What is Unit testing?
Independently testing smaller building blocks of a program (eg. classes and methods).
- bottom-up approach
- small blocks easier to debug
- possible to run tests in parallel
- easy to automate
What is integration testing?
Full system testing, good for performance testing
Unit testing vs Integration testing
If a test uses:
- a database
- the network
- an external system
- reads/writes files or performs other I/O
Then its an integration test and not a unit test
What is blackbox testing
Functional testing. Identify input values for test cases based on specified behaviour.
- Try a heap of things until it breaks.
Implementation not needed to design the test cases. Good for identifying missing logic.
What is white box testing
Structural testing. Identify input values for test cases based on implementation. You have knowledge of what’s underneath. Can be automated
What are Representative values?
Try select values that are likely to reveal bugs. Test values are usually representatives of equivalence class. Each specified condition induces an equivalence class with corresponding valid and invalid ranges.
What are boundary cases?
Values that encompass the boundary of valid and invalid
What is partition testing?
Identifying groups of inputs with similar processing and characteristics. You should choose tests from each of these groups (partitions)
What is system testing?
A test that checks from start to finish if it works. Treat system as a black box, and test against the specifications. A series of test and a blend of test types, such as black and white box testing
What is code coverage?
Covering everything.
Statements: which statements were executed?
branch: which branches of the control flow graph were executed?
condition: which conditions in boolean expressions were evaluated?
What are software inspections?
Inspections involve people examining the system to try find anomalies and defects. May be applied to any representation of the system (don’t require execution of the system, can be in the model phase). Happens at all stage of the process.
What is included in a manual test case?
Title, pre-conditions, test steps, expected results
What is development testing?
Testing activities done while developing the system. Involves: unit testing, integration testing. system testing.