Software Testing Flashcards
What is Software Testing
Process of exercising a problem with the purpose of finding errors prior to delivering it to the user
What is Equivalence Class Testing?
Practically can never do exhausting testing on input combinations
What is unit testing?
Testing only parts of the code to deliver information faster.
What is Integration Testing?
Type of software testing in which the different units, modules or components of a software application are tested as a combined entity
Top-down testing
Testing from the topmost or highest-level module and gradually proceeding to the lower modules. Each module is tested one by one, and then integrated to check the final software’s functionality.
Bottom-up Testing
Testing lower-level modules first, and then gradually progressing incrementally to higher-level modules. This approach is suitable when all units are available for testing.
Sandwich Testing
Combines the top-down and bottom-up approaches. It uses both stubs and drivers.
System Testing
Determine whether system meets requirements
Acceptance Testing
Get Approval from Customer
Types of Testing Methods
Static Testing: Collects information about a software without executing it.
Dynamic Testing: Collects information about a software with executing it.
White Box: Check that all statements and conditions have been executed at least once.
Black Box: No knowledge about code internals, relying only on interface specs.
Coverage Analysis: Measuring how much of the code has been exercised.
Regression Testing: Run test and compare output on the same test on previous code.
How should tests be organized?
Simplicity: Clear and easy to understand.
Decomposability: Modules can be tested independently.
Controllability: Tests can be automated and reproduced
Observability: Make status queryable.
Stability: Recovers well from failures.
Operability: If well done right away, testing will be less blocked from error found
Understandability: All relevant information is documented.