Guide to the Software Engineering Body of Knowledge ®

 

Back Table of Contents Next

 

TABLE OF CONTENTS - CHAPTER 5

ACRONYMS
INTRODUCTION
BREAKDOWN OF TOPICS
1. Software Testing Fundamentals
1.1. Testing-related terminology
1.1.1. Definitions of testing and related terminology
1.1.2. Faults vs. Failures
1.2. Key issues
1.2.2. Testing effectiveness/Objectives for testing
1.2.3. Testing for defect identification
1.2.4. The oracle problem
1.2.5. Theoretical and practical limitations of testing
1.2.6. The problem of infeasible paths
1.2.7. Testability
1.3. Relationships of testing to other activities
2. Test Levels
2.1. The target of the test
2.1.1. Unit testing
2.1.2. Integration testing
2.1.3. System testing
2.2. Objectives of Testing
2.2.1. Acceptance/qualification testing
2.2.2. Installation testing
2.2.3. Alpha and beta testing
2.2.4. Conformance testing/Functional testing/Correctness testing
2.2.5. Reliability achievement and evaluation
2.2.6. Regression testing
2.2.7. Performance testing
2.2.8. Stress testing
2.2.9. Back-to-back testing
2.2.10. Recovery testing
2.2.11.Configuration testing
2.2.12. Usability testing
2.2.13.Test-driven development
3. Test Techniques
3.1. Based on the software engineer's intuition and experience
3.1.1. Ad hoc testing
3.1.2. Exploratory testing
3.2. Specification-based techniques
3.2.1. Equivalence partitioning
3.2.2. Boundary-value analysis
3.2.3. Decision table
3.2.4. Finite-state machine-based
3.2.5. Testing from formal specifications
3.2.6. Random testing
3.3. Code-based techniques
3.3.1. Control-flow-based criteria
3.3.2. Data flow-based criteria
3.3.3. Reference models for code-based testing (flowgraph, call graph)
3.4. Fault-based techniques
3.4.1. Error guessing
3.4.2. Mutation testing
3.5. Usage-based techniques
3.5.1. Operational profile
3.5.2. Software Reliability Engineered Testing
3.6. Techniques based on the nature of the application
3.7. Selecting and combining techniques
3.7.1. Functional and structural
3.7.2. Deterministic vs. random
4. Test-related measures
4.1. Evaluation of the program under test
4.1.1. Program measurements to aid in planning and designing testing
4.1.2. Fault types, classification, and statistics
4.1.3. Fault density
4.1.4. Life test, reliability evaluation
4.1.5. Reliability growth models
4.2. Evaluation of the tests performed
4.2.1. Coverage/thoroughness measures
4.2.2. Fault seeding
4.2.3. Mutation score
4.2.4. Comparison and relative effectiveness of different techniques
5. Test Process
5.1. Practical considerations
5.1.1. Attitudes/Egoless programming
5.1.2. Test guides
5.1.3. Test process management
5.1.4. Test documentation and work products
5.1.5. Internal vs. independent test team
5.1.6. Cost/effort estimation and other process measures
5.1.7. Termination
5.1.8. Test reuse and test patterns
5.2. Test Activities
5.2.1. Planning
5.2.2. Test-case generation
5.2.3. Test environment development
5.2.4. Execution
5.2.5. Test results evaluation
5.2.6. Problem reporting/Test log
5.2.7. Defect tracking
MATRIX OF TOPICS VS. REFERENCE MATERIAL
RECOMMENDED REFERENCES FOR SOFTWARE TESTING
APPENDIX A. LIST OF FURTHER READINGS
APPENDIX B. LIST OF STANDARDS