In this post, we will provide an overview of Software Testing. We will answer some common queries related to software testing and will be discussing What, Why, Who, When and How of testing.
Software Testing Definition
Software testing is the process of evaluating a system with the intent of finding bugs. It is performed to check if the system satisfies its specified requirements.
Testing measures the overall quality of the system in terms of its correctness, completeness, usability, performance and other functional and non-functional attributes.
Why is testing required?
Software Testing as a separate activity in SDLC is required because-
- Testing provides an assurance to the stakeholders that the product works as intended.
- Avoidable defects leaked to the end-user/customer without proper testing adds a bad reputation to the development company.
- The separate testing phase adds a confidence factor to the stakeholders regarding the quality of the software developed.
- Defects detected in the earlier phase of SDLC results in lesser cost and resource utilization for defect resolution.
- Saves development time by detecting issues in an earlier phase of development.
- The testing team adds another dimension to the software development by providing a different viewpoint to the product development process.
Who does Testing?
Software Testing is/can be done by all technical and non-technical people associated with the software. Testing in its various phases is done by-
- Developer – Developer does the unit testing of the software and ensures that the individual methods work correctly.
- Tester – Testers are the face of software testing. A tester verifies the functionality, the usability of the application as a functional tester, a tester checks the performance of the application as a Performance tester, a tester automates the manual-functional test cases and creates test scripts as an automation tester.
- Test Managers/Lead/Architects – Define the test strategy and test plan.
- End users – A group of end-users do the User Acceptance Testing (UAT) of the application to make sure the software can work in the real world.
When do we start Software Testing?
Based on the selection of different Software Development Life Cycle models for the software project, the testing phase gets started in different phases. There is a software myth that testing is done only when some part of the software is built but testing can(should) be started even before a single line of code is written. It can be done in parallel with development phase e.g. in the case of V Model –
|Development Phase||Testing Activity|
|Requirement Design||Acceptance test creation|
|Functional Specification||Functional test case creation|
|Implementation||Unit test case creation|
|Code Complete||Test case execution|
How is Software Testing done?
Software testing can be done both manually as well as using automation tools. The manual effort includes verification of requirement and design; development of test strategy and plan; preparation of test case and then the execution of tests. Automation effort includes preparation of test scripts for UI automation, back-end automation, performance test script preparation and use of other automation tools.
Check out our complete Software testing tutorial here-