The Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the testing process to ensure software quality goals are met. It is a systematic approach to testing that helps in identifying defects early in the software development process. Understanding STLC is crucial for manual testers as it provides a structured framework for planning, executing, and evaluating tests.
Key Phases of STLC
-
Requirement Analysis
- Objective: Understand the testing requirements from a quality assurance perspective.
- Activities:
- Analyze requirements documents.
- Identify testable requirements.
- Prepare Requirement Traceability Matrix (RTM).
- Deliverables: Requirement Traceability Matrix.
-
Test Planning
- Objective: Define the scope and objectives of testing.
- Activities:
- Determine the testing strategy.
- Identify resources and tools required.
- Estimate testing efforts and timelines.
- Prepare the Test Plan document.
- Deliverables: Test Plan document.
-
Test Case Development
- Objective: Design detailed test cases.
- Activities:
- Write test cases and scripts.
- Review and baseline test cases.
- Create test data.
- Deliverables: Test cases and test data.
-
Test Environment Setup
- Objective: Prepare the environment where testing will be executed.
- Activities:
- Set up hardware and software requirements.
- Configure the test environment.
- Perform smoke testing to ensure environment readiness.
- Deliverables: Test environment setup checklist.
-
Test Execution
- Objective: Execute test cases and report defects.
- Activities:
- Execute test cases as per the plan.
- Log defects for any failed test cases.
- Retest and track defects to closure.
- Deliverables: Test execution report, defect logs.
-
Test Cycle Closure
- Objective: Conclude testing activities and evaluate the cycle.
- Activities:
- Conduct test closure meeting.
- Evaluate cycle completion criteria based on test coverage, quality, cost, time, critical business objectives, etc.
- Prepare test closure report.
- Deliverables: Test closure report.
Practical Example
Let's consider a simple example of a login feature for a web application. Here's how the STLC phases would apply:
- Requirement Analysis: Identify that the login feature should accept valid credentials and reject invalid ones.
- Test Planning: Decide to use manual testing for this feature, estimate the time required, and document the plan.
- Test Case Development: Write test cases such as "Login with valid credentials", "Login with invalid password", etc.
- Test Environment Setup: Ensure the web application is deployed on a test server and accessible.
- Test Execution: Run the test cases, log any defects found, such as "Login fails with valid credentials".
- Test Cycle Closure: Review the defects, ensure they are resolved, and document the testing outcomes.
Exercise
Task: Write test cases for a "Password Reset" feature of a web application.
Solution:
- Test Case 1: Verify that the "Forgot Password" link is present on the login page.
- Test Case 2: Verify that clicking the "Forgot Password" link redirects to the password reset page.
- Test Case 3: Verify that entering a registered email address sends a password reset email.
- Test Case 4: Verify that entering an unregistered email address shows an appropriate error message.
- Test Case 5: Verify that the password reset link in the email redirects to the password reset form.
Common Mistakes:
- Not covering edge cases, such as entering an email with special characters.
- Forgetting to validate the email format before submission.
Conclusion
The Software Testing Life Cycle (STLC) is an essential framework for ensuring comprehensive and effective testing. By following the structured phases of STLC, testers can systematically plan, execute, and evaluate tests, leading to higher software quality and fewer defects. Understanding and applying STLC is a fundamental skill for any manual tester, setting the foundation for more advanced testing techniques.
Manual Testing and Types of Tests
Module 1: Introduction to Manual Testing
- What is Manual Testing?
- Importance of Manual Testing
- Manual Testing vs. Automated Testing
- Roles and Responsibilities of a Manual Tester
Module 2: Basic Concepts in Manual Testing
- Software Development Life Cycle (SDLC)
- Software Testing Life Cycle (STLC)
- Test Plan and Test Case
- Defect Life Cycle
Module 3: Types of Manual Testing
Module 4: Advanced Manual Testing Techniques
Module 5: Specialized Testing Types
- Security Testing
- Performance Testing
- Localization and Internationalization Testing
- User Acceptance Testing (UAT)