Seven Testing Principles:
1. Testing shows presence of defects.
2. Exhaustive testing is impossible.
3. Early testing.
4. Defect clustering.
5. Pesticide paradox: Test cases need to be regularly reviewed and revised.
6. Testing is context dependent.
7. Absence-of-errors fallacy
Fundamental Test Process:
1. Planning and Control
2. Analysis and Design
3. Implementation and Execution
4. Evaluating Exit Criteria and reporting
5. Test Closure
IEEE-CS/AM Software Engineering Code of Ethics and Professional Practice
1. Public
2. Client / Employer
3. Product
4. Judgment
5. Management
6. Profession
7. Colleagues
8. Self
Verification: Doing the thing right.
Determine whether the work product satisfy the conditions imposed at the start of that phase.
Validation: Doing the right thing. Customer talk about validation.
Determination of the correctness of the work product with respect to the user needs and requirements.
V-Model (Sequential Development Model)
Iterative-incremental Development Models
Test Levels:
1. Unit testing
2. Integration testing
3. System testing
4. Acceptance testing
Big bang integration
Incremental integration:
1. Top-Down integration
2. Bottom-Up integration
3. Functional integration
Acceptance Testing
User Acceptance testing
Operational Acceptance testing
Contract and regulation acceptance testing
Alpha and Beta testing
Test Types:
Functional Testing
Non-Functional Testing
Structural Testing: White-box Testing
Testing related to Changes
Activities of Formal Review
1. Planning
2. Defining Entry/Exit criteria
3. Kick-off
4. Checking entry crieria
5. Individual preparation
6. Noting incidents
7. Review meeting
8. Examine
9. Rework
10. Fixing defects
11. Follow-up
12. Checking exit criteria
Specification-based Techniques
1. Equivalence partitioning: Inputs are divided into partitions that are expected to exhibit similar behavior.
2. Boundary value analysis
3. Decision table testing
4. State transition testing
5. Use case testing