Software Testing Methodologies & Techniques
1. Software Testing Methodologies
• White Box Testing – tester knows internal code/design. Example: Unit testing, code coverage.
• Black Box Testing – tester does not know code. Example: Boundary value analysis, functional
testing.
• Grey Box Testing – partial knowledge of system. Example: Database testing with limited
schema info.
2. Test Case Design Techniques
A. Static Techniques (without execution)
• Informal Reviews – casual discussion, no formal process.
• Walkthroughs – author presents, others give feedback.
• Technical Reviews – peer review by experts.
• Inspection – formal, checklist-based, defect detection.
B. Dynamic Techniques (with execution)
Structural Techniques (White Box)
• Statement Coverage – each line of code executed at least once.
• Branch Coverage – each decision (true/false) covered.
• Path Coverage – all possible execution paths tested.
• Conditional Coverage – all boolean conditions tested.
• Loop Coverage – loops executed for 0, 1, many iterations.
Black Box Techniques
• Boundary Value Analysis (BVA) – test at boundaries (min, max, just inside/outside).
• Equivalence Class Partition (ECP) – divide input into valid/invalid groups.
• State Transition Technique – test different states & transitions.
• Cause-Effect Graph – map conditions (causes) & results (effects).
• Decision Table – tabular input/output combinations.
• Use Case Testing – based on real-world user scenarios.
Experience-Based Techniques
• Error Guessing – tester uses past experience to predict errors.
• Exploratory Testing – simultaneous learning, designing & executing tests.
3. Levels of Testing
A. Functional Testing
• Unit Testing – test individual modules (usually by developers).
• Integration Testing – test interaction between modules.
• System Testing – test complete system against requirements.
• User Acceptance Testing (UAT) – done by end users.
• Sanity / Smoke Testing – quick check to ensure build is stable.
• Regression Testing – re-run old tests after changes.
• Retesting – testing fixed defects specifically.
B. Non-Functional Testing
• Performance Testing – check speed, response time.
• Memory Testing – verify memory leaks, usage.
• Scalability Testing – system performance with growth.
• Compatibility Testing – different OS, browsers, devices.
• Security Testing – protect data, authentication, authorization.
• Cookies Testing – session cookies handling.
• Session Testing – check login/logout sessions.
• Recovery Testing – system recovery after crash/failure.
• Installation Testing – software install/uninstall check.
• Adhoc Testing – informal, random testing without plan.
• Risk-Based Testing – focus on high-risk areas.
• I18N (Internationalization) Testing – language, culture support.
• L10N (Localization) Testing – region-specific testing.
• Compliance Testing – check adherence to standards/regulations.