Life Cycle Testing
´Life cycle testing refers to the testing activities performed throughout the entire software development life cycle (SDLC) to ensure that the software meets its requirements and works as expected. Testing begins during the initial stages of the project, even before the actual coding starts, and continues until the software is fully deployed, maintained, and eventually retired.
Phases of Life Cycle Testing:
Requirement Analysis (Early Testing):
´Testing begins during the requirement gathering phase.
Testers review the requirements to identify any ambiguities, inconsistencies, or gaps.
´Testers may also identify potential risks early on.
´Outcome: Creation of the test plan, understanding of test objectives, and identifying key areas to test.
Design Phase:
´During the design phase, the testers may develop test cases based on the system’s design documents. This is known as Test Case Design.
´Outcome: Test cases that can validate the design specifications.
Development Phase (Testing Starts):
´ Unit Testing: Conducted by developers to test individual components. Testers may assist by reviewing unit test cases.
´ Integration Testing: Testers ensure that modules work together seamlessly once they are integrated.
´ Testing Phase:
´ This is when the bulk of testing happens, including functional and non-functional testing.
Types of Testing:
´System Testing: Testing the complete system as a whole.
´Regression Testing: Ensuring changes or new code don’t break existing functionality.
´User Acceptance Testing (UAT): The client or end-users validate the application.
Deployment and Maintenance Phase:
´Testing continues after deployment, particularly for post- deployment bug fixing, performance checks, and support.
´Outcome: Continuous testing based on feedback, patching, and updates.
Independent Testing
´Independent testing refers to testing that is done by individuals or teams who are separate from the development team. The goal of independent testing is to provide an unbiased, objective perspective and ensure that the software is tested from an end-user’s point of view.
Benefits of Independent Testing:
Unbiased Testing:
´ Independent testers have no prior involvement in the development, which means they are more likely to identify issues that developers may overlook due to familiarity or assumptions about the system.
´ Improved Quality Assurance:
´ By having an independent team focus on the quality, it ensures that the product is thoroughly reviewed and validated from a quality perspective.
´ Clearer Communication:
´ Independent testers can often bridge the gap between the technical team and non- technical stakeholders, providing clearer feedback and focusing on user- experience and usability.
´ Reduced Risk:
´ When independent testing is done, the product's release is less likely to have
critical defects, reducing the overall risk.
Who Conducts Independent Testing?
´ Independent Testers: Testers who are separate from the development team, often from a specialized QA team.
´ Third-Party Testing Companies: External organizations are sometimes hired to perform independent testing, especially for critical applications or compliance testing.
What is a QA Process?
´The Quality Assurance (QA) process is a structured set of activities designed to ensure the quality of software by preventing defects during the development phase, improving processes, and ensuring that the software meets the specified requirements.
Key Components of the QA Process:
´Planning and Requirement Review:
´QA begins by reviewing the requirements for clarity, completeness, and testability. QA planning involves identifying the testing scope, resources, schedule, and deliverables.
Test Design:
´Test cases and test scripts are created based on the requirements and design. This involves defining the test strategy, test objectives, test scenarios, and data sets.
Test Environment Setup:
´QA teams set up the testing environment, ensuring that it mirrors the production environment as closely as possible.
Test Execution:
´The tests are executed according to the test plans and cases. Test results are recorded, and defects are identified and reported.
Defect Tracking and Management:
´Any defects or bugs found are logged into a defect management system, tracked, and prioritized for resolution by the development team.
Test Reporting:
´Detailed reports are generated, including information about the test cases, defects, test coverage, and overall test progress.
Continuous Improvement:
´ After each release, the QA process is reviewed, and improvements are made to the testing process, ensuring better efficiency and coverage for future releases.
´ QA Process Goals:
´ To detect and eliminate defects early.
´ To ensure the product meets the agreed requirements and customer expectations.
´ To optimize the development process to prevent quality issues from arising in the first place.
Levels of Testing
´ Levels of testing define the stages of testing performed on a software product at various points in its development life cycle. Different levels of testing focus on different aspects of the application, ranging from individual components to the entire system.
´ Unit Testing:
Common Levels of Testing:
´ Focuses on testing individual units or components of the software, typically done by developers.
´ Goal: Verify that each component or function performs correctly in isolation.
´ Integration Testing:
´ Ensures that different modules or components of the system work together as expected.
´ Goal: Test interactions between modules or services and identify interface issues.
´ System Testing:
´ Testing the entire system as a whole to ensure that all components and features function together as
expected.
´ Goal: Validate the overall functionality, performance, and security of the system.
´ Acceptance Testing:
´ Also known as User Acceptance Testing (UAT), this level of testing is usually conducted by end-
users or the client to validate that the software meets business requirements.
´ Goal: Ensure that the software meets customer expectations and is ready for deployment.
Regression Testing:
´Conducted after code changes to ensure that existing functionality is not broken by new code.
´Goal: Verify that modifications or enhancements don’t affect previously tested and working features.
Alpha and Beta Testing:
´Alpha Testing: Done by the development or QA team internally to find bugs before releasing the software to external testers.
´Beta Testing: External users test the software in real- world environments and provide feedback before the final release.
The “V” Concept of Testing
´The V-Model (Verification and Validation Model) represents a sequential development process where each development phase is directly associated with a testing phase. It is often referred to as the "V" concept because the development phases form the left side of the "V," and the corresponding testing activities form the right side of the "V."
Explanation of the V-Model:
´Requirements Phase (Left Side of V):
´In this phase, requirements are gathered, and the corresponding Acceptance Testing is planned.
´Design Phase (Left Side of V):
´During this phase, the system design and architecture are planned. Corresponding System Testing is designed here.
Implementation Phase (Bottom of V):
´The actual development or coding takes place in this phase. It is the "bottom" of the V, where the software is built and prepared for testing.
Testing Phase (Right Side of V):
´Each development phase has a corresponding testing phase:
´Unit Testing (for coding)
´Integration Testing (for design)
´System Testing (for system architecture)
´Acceptance Testing (for requirements)
Key Features of the V-Model:
´ Verification and Validation: The left side of the V is focused on verification (ensuring the product is being built correctly), while the right side focuses on validation (ensuring the correct product is being built).
´ No Backtracking: Unlike Agile or other iterative models, the V- Model doesn't usually allow for backtracking once a phase is complete, which can make it less flexible.
´ Clear and Structured Process: This model is highly structured and
provides clear guidelines for each phase.
Conclusion:
´ Life Cycle Testing ensures software quality from the beginning to the end of the SDLC.
´ Independent Testing introduces an unbiased perspective, providing better coverage and validation of software quality.
´ The QA process is a structured approach to ensuring quality, focusing on preventing defects and meeting customer requirements.
´ Levels of Testing include unit, integration, system, acceptance, and regression, each addressing different aspects of the application.
´ The V-Model (V Concept of Testing) emphasizes a structured, sequential approach, aligning development with corresponding testing phases to ensure quality at every step of the process.