L11 - Testing Flashcards
System Testing
Test entire system: Functional Testing (functional requirements) + Structure Testing (subsystem decomposition) + Performance Testing (non-functional requirements) + Acceptance Testing (client expectation)
Error
System in a state where further processing can lead to failure.
Integration Testing
tests all interfaces between subsystems and the interaction + intends to create failures intentionally
Fault Detection
testing + debugging + monitoring
SUT
‘System under Test’: part of the system model
Failure
Deviation of observed behavior from specified behavior.
Unit Testing
Test individual units (via Java framework: JUnit) - carried out to confirm correct code and show intended functionality
Object-Oriented Test Modeling
Start with system model (system > SUT) - test model derived from SUT - add objects (test doubles) to test model - doubles are substitutes for the collaborators during testing
A Test Model contains …
test driver (program that executes test cases) + input data (consists of data needed for test cases) + oracle (compares expected output with actual test output) + test harness (framework that allows to run tests under varying conditions) + test cases
Fault Tolerance
exception handling + modular redundancy
Types of Integration Testing
Big Bang Integration + Bottom Up + Top Down + Sandwich Testing/BU+TD + Vertical Integration
Dynamic Analysis
Black-Box (tests input/output): does not discover extra use cases & White-Box (tests implementation): cannot detect missing use cases
Mock Object
able to mimic the behavior of real objects (‘record-replay metaphor’: orchestra + choir)
Dummy Object
Object that gets passed around but never actually gets used.
Pros/Cons Top Down Integration
no drivers BUT: stubs needed