Unit-1
Unit-1
Goals of Testing
The main goal of software testing is to find bugs as early as possible and fix
bugs and make sure that the software is bug-free.
Important Goals of Software Testing:
Detecting bugs as soon as feasible in any situation.
Avoiding errors in a project’s and product’s final versions.
Inspect to see whether the customer requirements criterion has been
satisfied.
Last but not least, the primary purpose of testing is to gauge the project
and product level of quality.
Verification: Ensure the software meets the specified requirements.
Validation: Confirm that the software fulfills its intended purpose.
Defect Identification: Find and report defects before the software is
released.
Quality Assurance: Improve the overall quality of the software product.
Risk Mitigation: Identify potential risks and issues early in the
development process.
The goals of software testing may be classified into three major categories
as follows:
1. Immediate Goals
2. Long-term Goals
3. Post-Implementation Goals
Immediate Goals:
Bug Discovery: This is the immediate goal of software testing to find
errors at any stage of software development. The number of bugs is
discovered in the early stage of testing. The primary purpose of software
testing is to detect flaws at any step of the development process. The
higher the number of issues detected at an early stage, the higher the
software testing success rate.
Principles of Testing
1. Testing Shows the Presence of Defects: Testing can show that defects
are present, but cannot prove that there are no defects.
2. Exhaustive Testing is Impossible: It is not feasible to test all possible
inputs and scenarios.
3. Early Testing: Testing should start as early as possible in the software
development lifecycle.
4. Defect Clustering: A small number of modules usually contain most of
the defects.
5. Pesticide Paradox: Running the same set of tests will not find new
defects; tests must be regularly reviewed and revised.
6. Testing is Context-Dependent: The testing approach should be tailored
to the specific context of the project.
Phases of STLC
1. Requirement Analysis: Requirement Analysis is the first step of the
Software Testing Life Cycle (STLC). In this phase quality assurance team
understands the requirements like what is to be tested. If anything is missing or
not understandable then the quality assurance team meets with the stakeholders
to better understand the detailed knowledge of requirements.
The activities that take place during the Requirement Analysis stage include:
2.Test Planning: Test Planning is the most efficient phase of the software
testing life cycle where all testing plans are defined. In this phase manager of
the testing, team calculates the estimated effort and cost for the testing work.
This phase gets started once the requirement-gathering phase is completed.
The activities that take place during the Test Planning stage include:
Identifying the testing objectives and scope
Developing a test strategy: selecting the testing methods and techniques
that will be used
Identifying the testing environment and resources needed
Identifying the test cases that will be executed and the test data that will
be used
Estimating the time and cost required for testing
Identifying the test deliverables and milestones
Assigning roles and responsibilities to the testing team
Reviewing and approving the test plan
3.Test Case Development: The test case development phase gets started once
the test planning phase is completed. In this phase testing team notes down the
detailed test cases. The testing team also prepares the required test data for the
testing. When the test cases are prepared then they are reviewed by the quality
assurance team.
The activities that take place during the Test Case Development stage
include:
Identifying the test cases that will be developed
Writing test cases that are clear, concise, and easy to understand
Creating test data and test scenarios that will be used in the test cases
Identifying the expected results for each test case
Reviewing and validating the test cases
Updating the requirement traceability matrix (RTM) to map requirements
to test cases
4.Test Environment Setup: Test environment setup is a vital part of the STLC.
Basically, the test environment decides the conditions on which software is
tested. This is independent activity and can be started along with test case
development. In this process, the testing team is not involved. either the
developer or the customer creates the testing environment.
5.Test Execution: After the test case development and test environment setup
test execution phase gets started. In this phase testing team starts executing test
cases based on prepared test cases in the earlier step.
6. Test Closure: Test closure is the final stage of the Software Testing Life Cycle
(STLC) where all testing-related activities are completed and documented. The
main objective of the test closure stage is to ensure that all testing-related
activities have been completed and that the software is ready for release.
At the end of the test closure stage, the testing team should have a clear
understanding of the software’s quality and reliability, and any defects or issues
that were identified during testing should have been resolved. The test closure
stage also includes documenting the testing process and any lessons learned so
that they can be used to improve future testing processes
Key Terms
Failure: The inability of a system or component to perform its required
functions within specified performance requirements.
Bug: A flaw or error in the software that causes it to produce incorrect or
unexpected results.
Fault: A defect in the software that can cause a failure when executed.
Defect: A deviation from the expected behavior or requirement; often
used interchangeably with "bug."
Error: A human mistake that leads to a defect in the software.