Unit 1: Introduction to Software Testing
1.1 Basics of Software Testing
Faults, Errors, and Failures: These terms define issues in software; faults are code
defects, errors are human mistakes, and failures occur when faults impact
functionality.
Testing Objectives: Ensuring software quality, meeting requirements, identifying
defects, and verifying behavior in different conditions.
1.2 Principles of Testing
Covers key testing guidelines such as early testing, defect clustering, and the
importance of varying test cases.
1.3 Testing and Debugging
Testing: Process of finding defects before release.
Debugging: Fixing defects after identification.
1.4 Testing Metrics and Measurements
Helps in measuring the effectiveness of testing using metrics like defect density, test
case effectiveness, and mean time to failure.
1.5 Verification and Validation
Verification ensures software meets design specifications.
Validation ensures software meets user needs.
1.6 Testing Life Cycle
A step-by-step process that includes requirement analysis, planning, test
development, environment setup, execution, and closure.
Unit 2: Software Testing Strategies & Techniques
2.1 Testability - Characteristics of Testable Software
Good testability means software is easy to test due to factors like simplicity, stability,
and understandability.
2.2 Test Characteristics
Attributes such as reliability, validity, efficiency, scalability, and reusability that define
good testing.
2.3 Test Case Design for Different Applications
Designing test cases for Desktop, Mobile, and Web applications using Excel to track
results.
2.4 White Box Testing
Basis Path Testing: Identifies independent execution paths in code.
Control Structure Testing: Tests various logical structures like loops and decision-
making constructs.
2.5 Black Box Testing
Boundary Value Analysis: Tests at input boundaries.
Equivalence Partitioning: Groups inputs into valid/invalid partitions.
BBT vs. WBT: Black Box focuses on functionality; White Box tests internal structures.
Unit 3: Levels of Testing
3.1 A Strategic Approach to Software Testing
A structured plan for testing software at different levels.
3.2 Test Strategies for Conventional Software
Applying appropriate strategies based on software types.
3.3 Unit Testing
Testing individual modules in isolation, usually done by developers.
3.4 Integration Testing
Top-Down: Testing starts from higher-level modules.\n- Bottom-Up: Starts from
lower-level modules and builds upward.
3.5 System Testing
Acceptance Testing: Checks if the system meets business needs.
Performance Testing: Evaluates speed and responsiveness.
Regression Testing: Ensures new updates don’t break existing functionality.
Load/Stress Testing: Tests system performance under heavy loads.
Security Testing: Identifies vulnerabilities.
Internationalization Testing: Ensures compatibility with multiple languages.
3.6 Alpha & Beta Testing
Alpha Testing: Conducted in-house before release.
Beta Testing: Done by real users in real environments.
3.7 Usability and Accessibility Testing
Ensures software is user-friendly and accessible to individuals with disabilities.
3.8 Configuration and Compatibility Testing
Tests how software runs across different devices, operating systems, and networks.