Software Testing and Verification Flashcards
Define Validation Testing
To demonstrate to the developer and the customer that the software meets its requirements
Define Defect Testing
To discover situations in which the behavior of the software is incorrect or undesirable
Define verification, testing and formal verification
Verification - ensures what you have designed does the job
Testing 0 make sure the things the program does are done right
Formal Verification - proving mathematically that the underlying algorithm is correct
Describe the difference between verification and validation
Verification is verifying the software conforms to its specification. Validation is validating that the software should do what the user requires
Define principles, guidelines and standards
Principles - abstract design rules “an interface should be easy to navigate”
Guidelines - advice on how to achieve principle - “use color to highlight links”
Standards - specific, measurable rules “links are RGB #1010D0
Describe the difference between software inspection and testing
Inspection - concerned with analysis of static system representation to discover problems (static)
Testing - concerned with exercising and observing project behavior (dynamic)
Describe the pre-alpha stage of the software release cycle
All activities before testing - requirements analysis, software design, development, etc.
Describe the alpha testing stage of the software release cycle
Simulated testing by potential users/independent test team.
Describe the beta testing stage of the software release cycle
External user acceptance testing where early versions (beta versions) of the software is released to a limited audience outside the development team.
Define development testing
All testing activities that are carried out by the team during development. This can include
- unit testing - testing individual components in isolation
- component testing - several unites are integrated and tested
- system testing - some or all components are integrated and the system and testing as a whole
Define automated testing
The use of special software to control the execution of tests and the comparison of actual/predicted outcomes
Explain the partition testing strategy
Identify groups of inputs that have common characteristics and should be processed in the same way. Choose tests from within each of these groups.
Explain the guideline based testing strategy
Use testing guidelines to choose test cases - these guidelines reflect previous experience of the kinds of errors programmers often make
Describe test-driven development
An approach to program development where test development is inter-leaved with code development. Tests are written, then code to fulfill the tests.
Define regression testing
Testing the system to check that changes have not broken previously working code