Software Testing Fundamentals Flashcards
Why is testing necessary?
To verify the software system behaves as expected and to keep software under control to prevent harm.
What is testing?
A systematic approach to find and report defects of a software system.
What are the objectives of software testing?
- Verification
- Validation
- Defect detection and elimination
What does verification in software testing mean?
Process confirming that the software meets its specifications.
What does validation in software testing mean?
Process confirming that the software meets the users/business intended environment.
What is a defect in the context of software testing?
A variance between the expected and actual result.
What is the first principle of software testing?
Exhaustive testing is impossible.
What is defect clustering?
In larger systems, more complex modules usually exhibit the majority of the defects.
What is the pesticide paradox in software testing?
A set of tests used repeatedly will decrease in efficacy, similar to over-used pesticide.
What does testing show in terms of bugs?
Testing can only show that one or more defects exist; it cannot prove the software is error-free.
What is the absence of errors fallacy?
Declaring that a test has no outstanding defects does not mean the software is error-free.
Why is early testing recommended?
The earlier testing activities are started, the more cost-effective it is to correct defects.
What does it mean that testing is context-dependent?
Different testing is needed for different circumstances based on the system’s risks.
What are some software testing best practices?
- Test against complete and accurate requirement specifications
- Document test cases and results
- Test early
- Complement testing with static and dynamic analysis
- Have a positive attitude towards testing
What are the levels of software testing?
- Unit testing
- Integration testing
- System testing
- Acceptance testing
What is unit testing?
Testing on a single building block or component of a software system.
What is integration testing?
Involves 2 or more units joining together to verify they work cohesively.
What is system testing?
To test the system as a whole based on scenarios from the use cases.
What is acceptance testing?
Formal testing conducted to determine if a system satisfies its acceptance criteria, carried out by end-users.
Who performs unit tests?
Developers.
Who performs system tests?
Software quality control/assurance engineers.
What is the focus of performance testing?
Evaluating speed, scalability, and stability under normal and heavy load.
Fill in the blank: Testing is not a phase in Agile (Scrum), it is built into each _______.
iteration.
What is the V Model of Software Testing?
A model linking development activities with corresponding testing activities.
What is the main focus of user acceptance testing (UAT)?
Evaluate the software application against end-user requirements and specifications.