Software Testing
1. Software Testing
Software testing is the process of executing a program to identify defects and ensure it
meets specified requirements.
2. Why Software Testing is Needed
• Detect defects early
• Ensure quality and reliability
• Improve user satisfaction
• Reduce cost of fixing errors later
• Ensure security and performance
Example: A banking app must be tested to avoid incorrect transactions.
3. Who Should Test the Software
• Developers → Unit testing
• Testers (QA team) → System & acceptance testing
• End users → Beta/acceptance testing
4. Error, Bug, Fault, Failure
• Error: Human mistake
Example: Wrong formula written by developer
• Bug: Issue found during testing
• Fault (Defect): Problem in code/design
• Failure: System gives wrong output
Flow: Error → Fault → Failure
5. Software Tester
A professional who designs test cases, executes tests, and reports defects.
6. Testing Team Composition
• Test Manager → Planning & strategy
• Test Lead → Coordination
• Test Engineers → Execution
• Automation Testers → Tool-based testing
7. Importance of Testing in SDLC
• Ensures quality at every phase
• Reduces development cost
• Improves product reliability
• Detects defects early
8. Test Planning
Process of defining:
• Scope
• Objectives
• Resources
• Schedule
• Testing strategy
9. Test Plan
A document describing:
• What to test
• How to test
• When to test
• Who will test
10. Test Case
A set of steps with:
• Input
• Expected output
• Actual result
Example:
Input: Login credentials
Expected: Successful login
11. Levels of Testing
• Unit Testing: Test individual components
• Integration Testing: Test module interaction
• System Testing: Test complete system
12. Types of Testing
Functional Testing
Tests system functionality
Example: Login feature works correctly
Usability Testing
Checks user-friendliness
Example: Easy navigation
Performance Testing
Checks speed and load handling
Example: Website under heavy traffic
Security Testing
Checks vulnerabilities
Example: Prevent unauthorized access
Smoke Testing
Basic test to check system stability
Alpha Testing
Testing by developers internally
Beta Testing
Testing by real users
Acceptance Testing
Client validates requirements
Regression Testing
Re-testing after changes
Monkey Testing
Random testing without test cases
13. Verification vs Validation
Verification Validation
Are we building it right? Are we building the right product?
Static (no execution) Dynamic (execution required)
Reviews, inspections Testing
Example: Code review Example: Running software
14. Quality
Degree to which software meets requirements and satisfies users.
15. Why Quality is Needed
• Customer satisfaction
• Reliability
• Safety
• Competitive advantage
16. Quality Assurance (QA)
Process-oriented
Focuses on preventing defects
Example: Process improvement, standards
17. Quality Control (QC)
Product-oriented
Focuses on detecting defects
Example: Testing and inspection
18. QA vs QC
QA QC
Prevent defects Detect defects
Process-focused Product-focused
Proactive Reactive
19. Bug Life Cycle
1. New
2. Assigned
3. Open
4. Fixed
5. Retest
6. Verified
7. Closed
Optional states: Reopened, Deferred, Rejected