
1. Static Testing Techniques
1.1. Static Analysis
1.1.1. Tools
1.1.1.1. Code Structure
1.1.1.1.1. Data Flow
1.1.1.1.2. Control Flow
1.1.1.2. Code Metrics
1.1.1.2.1. Cyclomatic Number
1.1.1.2.2. Comment frequency
1.1.1.2.3. Depth of nesting
1.1.1.3. Code Standards
1.1.1.4. Capture and Replay Tool
1.2. Review
1.2.1. Informal Review
1.2.2. Inspection
1.2.2.1. Kickoff
1.2.2.2. Individual Preparation
1.2.2.3. Review Meeting
1.2.2.3.1. Logging Phase
1.2.2.3.2. Discussion Phase
1.2.2.3.3. Decision Phase
1.2.2.4. Rework
1.2.2.5. Follow Up
1.2.3. Walkthroughs
1.2.4. Technical Review
2. Test Levels
2.1. WHITE BOX ONLY: Unit Testing of Developers
2.2. WHITE BOX ONLY: Component/Unit Testing of testers
2.3. Integration Testing
2.3.1. Big Bang Integration
2.3.2. Top Down
2.3.3. Bottom Up
2.3.4. Functional Incremental
2.4. System Testing
2.4.1. Recovery Testing
2.5. Acceptance Testing
3. Test Type
3.1. 1. Structural (White Box)
3.2. 2. Change Related
3.2.1. Maintenance
3.2.1.1. Modifications
3.2.1.2. Migration
3.2.1.3. Retirement of the system
3.2.2. Regression
3.2.2.1. Upgrade
3.2.3. Confirmation/Retesting
3.3. Black Box
3.3.1. 3. Functional or Functionality
3.3.1.1. smoke
3.3.1.2. Sanity
3.3.2. 4. Nonfunctional
3.3.2.1. Maintainability
3.3.2.1.1. Testability
3.3.2.2. Reliability
3.3.2.2.1. Robustness
3.3.2.3. Usability
3.3.2.3.1. Content Testing
3.3.2.4. Efficiency
3.3.2.4.1. Performance
3.3.2.5. Portability
3.3.2.6. Load Testing
3.3.2.7. Stress Testing
3.4. Acceptance Testing Test Types
3.4.1. User Acceptance Testing
3.4.1.1. Alpha Testing
3.4.1.2. Beta Testing
3.4.2. Operational Acceptance Test
4. Boolean Operators: AND, OR, & NOT
5. Impact Analysis
6. Software Development Models
6.1. Capability Maturity Model Integration (CMMI)
6.2. V-Model AKA Sequential Development Model
6.3. Iterative- incremental development models
7. Fault = Defect: flaw that causes system/component to fail Mistake = Error: human action produces incorrect result
7.1. Reasons for failure
8. Techniques are used for Test Types and Test Levels
9. Test Levels will have test objectives, exercised through test types
10. Techniques are used for Test Types and Test Levels
11. Test harnesses
11.1. Dummy modules
11.1.1. Drivers
11.1.2. Stubs
12. Test Harnesses are used within test levels.
13. Reflection
13.1. Verification
13.2. Validation
14. Hierarchical System
15. Dyanmic Analysis Tools
16. Dynamic Testing Teqchniques
16.1. Experience Based
16.1.1. Error Guessing
16.1.2. Exploratory
16.1.3. Fault Attack
16.2. Specification Based/Functional and nonfunctional Testing (Black/Opaque Box Techniques)
16.2.1. Decision Tables
16.2.2. State Testing
16.2.3. Use Case Testing
16.2.4. Equivalence Partitioning
16.2.4.1. Boundary Value Analysis
16.2.5. Cause Effect Graph aka Fishbone Diagram
16.3. Structure Based (White Box Techniques)
16.3.1. Decision (aka branch)
16.3.2. Path Testing
16.3.3. Statement Testing & Coverage
16.3.4. Condition
16.3.5. Multiple Condition
16.3.6. Linear Code Sequence & Jump (LCSJ)