Software Testing Methodology
Productivity
- Cost of material + The rework
- Discarded components
- Cost of quality assurance and testing
Testing
Purpose of Testing:
- Testing is an activity to check whether the actual result matches the expected result of the software and to ensure it is defect-free.
- It is the process of finding and locating defects in software.
- Performed by the testing team.
- The purpose is to find as many defects as possible.
- Comparatively less complex.
Debugging
- The process of finding and resolving defects or problems within computer software, which prevents correct operation.
Debugging vs. Testing

Phases in a Tester’s Mental Life
- Phase 0 - Debugging Oriented: Testing and debugging are considered the same.
- Phase 1 - Demonstration Oriented: The purpose of testing is to demonstrate that the software works.
- Phase 2 - Evaluation Oriented: The purpose is to show that the software does not work.
- Phase 3 - Evaluation Oriented: Testing is used to detect bugs and fix them.
- Phase 4 - Prevention Oriented: Testing techniques are identified based on the code to prevent defects.
Different Users in a Software System
- Builder – Designs the software.
- Buyer – Pays for the software.
- Ultimate Beneficiary – The end user of the software.
- Tester – Works to find defects in the software.
- Operator – Handles user complaints and provides feedback to the tester.
Model for Testing
- Environment Model: Represents the conditions in which the software operates.
- Program Model: Represents the structure and behavior of the software being tested.
- Expected: The result matches the predicted outcome.
- Unexpected: The result deviates from the expected outcome.
Nature and Psychology of Bugs
Big Model
- Bugs (Behavior & Beliefs): Bugs arise due to different behaviors and beliefs of developers.
Bug Theories
- Benign Bug Hypothesis – Bugs are harmless.
- Buy Locality Hypothesis – A bug in one component only affects its behavior.
- Control Bug Dominance – Errors in control structures dominate system failures.
- Code/Data Separation – Bugs separate code and data.
- Lingua Salvatore Est – Syntax and semantics help eliminate bugs.
- Correction Abide – A corrected bug may still cause issues.
- Silver Bullets – Language and design-related bugs.
- Sadism Suffices – Repeated testing ensures stability.
- Angelic Testers – Testers are considered better at identifying issues than programmers.
Consequences of Bugs
Link to original
Impact Level Effect Mild Misspelled output. Moderate Affects system performance. Annoying Alters system behavior. Disturbing Refuses to handle legal transactions. Serious Loses track of transactions. Very Serious Causes incorrect transactions. Extreme Affects multiple users or systems. Intolerable Causes data corruption, making detection/correction difficult. Catastrophic Leads to total system failure. Infectious Corrupts the entire system, leading to environmental failure.
Taxonomy of Bugs
Requirement Features and Functionality Bugs
- Feature Bugs – Wrong or missing features.
- Feature Interaction Bugs – Issues arising from interactions between a group of features.
Structural Bugs
- Control / Sequence Bugs – Errors in switches, loops, and logic (e.g., incorrect
if-then-elsestatements).- Processing Bugs – Errors in arithmetic operations.
- Initialization Bugs – Incorrect initialization or wrong format.
- Data Flow Bugs – Modifying results incorrectly.
Data Bugs
- Dynamic or Static Data Issues – Errors in handling data types, storage, or processing.
Coding Bugs
- Errors in Code Implementation – Mistakes in syntax, logic, or algorithms.
Interface, Integration, and System Bugs
- External Testing Bugs – Issues found in external testing.
- Internal Testing Bugs – Errors detected during prototype testing.
- Hardware Architecture Bugs – Problems related to I/O operations and transactions.
- OS Bugs – Bugs caused by a combination of hardware and interface failures.
- Software Architecture Bugs – Failures in handling memory allocation and resource management.
- System Bugs – General system-level errors affecting overall functionality.
Test and Test Design Bugs
Link to original
- Errors in Test Planning and Execution – Mistakes in test cases, testing methods, and validation procedures.