Validation (Testing code) Flashcards
What are the 4 different branches of testing?
Open box testing
Closed box testing
Automated testing
Manual testing
What is open box testing?
Tester know the code when testing
What is closed box testing?
Tester does not know the code when testing (compiled version)
What is automated testing?
Large amounts of coded tests which are automated
What is manual tetsing?
Tests which require user interaction
What are the advantages of test-driven development?
- Integrates aspects of specifications, coding and testing
- ‘Plan’ before you ‘Write’ code
- Check you haven’t broke something when implementing something new
What are the qualities of a good test?
Line coverage
Function coverage
Condition coverage
Path coverage
Entry/Exit coverage
What is unit testing?
Testing individual pieces
Input: functional specifications of unit
Output: Pass/Fail
Performed by: Developer
Frequency: Multiple times a day
What is integration testing?
Testing a combination of pieces
Input: functional specifications of subsystem
Output: Bug report
Performed by: Dev team (open box)
Frequency: Periodically
What is release testing?
Testing the whole system works together
Input: Functional and non-functional specifications of system
Output: Bug report, sign off for acceptance testing
Performed by: Testing team (closed box)
Frequency: Prior to showing client
What is acceptance testing?
Testing the system is accepted for active use
Input: User requirements
Output: Bug report, end of contract
Performed by: Quality Assurance Team
Frequency: End of each stage (agile) prior to release of software
What is user testing?
Testing the system with real world users
Input: Actual users
Output: Bug report
Performed by: Real users
Frequency: After release
What are the two types of user testing?
Alpha
- A few specific users (acceptance test with real users)
Beta
- Released for limited general use
What is continuous integration?
Automatic building, testing and deployment of code once it is committed to a repository
What is the process of continuous integration?
- Version control
- Automatic testing
- Build configurations
- Automatic deployment