Chapter 1: Introduction To Software Testing
Chapter 1: Introduction To Software Testing
1. Unit Testing
o Tests individual components/modules in isolation.
o Types: Static (non-execution) and Dynamic (execution-based).
o Tools: JUnit, NUnit, pytest.
2. Integration Testing
o Tests how modules work together.
o Techniques: Incremental, Top-Down, Bottom-Up, Sandwich, Big-Bang.
o Challenges: Managing dependencies, environment setup, and test data.
3. Functional Testing
o Verifies software against functional specifications.
o Techniques: Equivalence Partitioning, Boundary Value Analysis, Decision
Table Testing.
o Focuses on input-output behavior and validation of requirements.
4. System Testing
o Tests the entire system against requirements.
o Focuses on system-level properties and uncovering faults.
5. Acceptance Testing
o Validates if the software meets user needs and acceptance criteria.
o Types: User Acceptance Testing (UAT) and Business Acceptance Testing
(BAT).
6. Automated Testing
o Automates repetitive tasks to improve efficiency.
o Tools: Selenium, JUnit, etc.
o Not all tests can be automated (e.g., usability testing).
7. Performance Testing
o Evaluates system performance under various conditions.
o Types: Load, Stress, Scalability, and Reliability Testing.
8. Other Testing Types
o Security, Usability, Documentation, and Regulatory Testing.
1. Test Management
o Involves planning, organizing, and controlling testing activities.
o Ensures high-quality software delivery and meets project timelines.
o Tools: TestRail, Jira, Zephyr.
2. Test Plan
o A document outlining testing scope, resources, budget, and risks.
o Key elements: Test Objectives, Scope, Methodology, Assumptions, Risks,
and Schedule.
3. Test Case Design Techniques
o Requirement-Based: Black-box techniques like Boundary Value Analysis,
Equivalence Partitioning.
o Structure-Based: White-box techniques like Statement Coverage, Path
Testing.
o Experience-Based: Error Guessing, Exploratory Testing.
4. Test Data Generation
o Process of creating data for test cases.
o Techniques: Manual, Automated, Backend Injection, Third-Party Tools.
5. Test Environment
o Mimics the production environment to uncover configuration-related
issues.
o Includes hardware, software, and network configurations.
6. Test Documentation
o Includes Test Scenarios, Test Cases, Test Plans, Bug Reports, and Execution
Reports.
o Ensures proper tracking and communication of testing activities.
7. Risk Testing
o Identifies and manages risks that could impact the project.
o Types: Schedule, Budget, Technical, Operational, Security, and Market
Risks.