Definition of Software Testing
Software testing is an activity that helps in the evaluation of a system, its components and its efficiency overall. It is a process that includes a series of tests that ensure that the system meets the requirements of the intended buyers before the product is released. To sum it up, software testing involves the identification and removal of all defects to improve the quality of the product.
The standard definition of software testing put forward by the ANSI/IEEE 1059 standard is as follows, “It is a process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item.”
Professionals Involved In Testing
“Who does the testing?” is a very common question amongst the people looking for a career in testing or those who are associated with certain projects that require a person for the job of testing the system. Well, it depends upon the process and the stakeholders who are linked to the project.
In the Information Technology industry, large companies build up teams and give them the responsibility of evaluation of the software & system and making sure that the quality of the system is not compromised. In addition to this, tests called Unit Tests are conducted. The following stakeholders are involved in software testing within their capacities & roles.
- Software Testers
- Software Developers
- Project Lead/Manager
Companies hire people with experience and knowledge of programming, coding and software development such as Software Tester, Software Quality Assurance Engineer, QA Analyst, etc..
When Should Software Testing Activities Start
Software testing can be conducted at any time of the development process, but it’s essential to know when to start to achieve optimum results.
- An early start to testing reduces the cost and time to work and produce bug-free software that is given to the client or user. However, in the Software Development Life Cycle (SDLC), testing can be started from the Requirements Gathering phase and continued until the software has been deployed.
- It depends on the development model that is being used during the process. For example, in the Waterfall model, formal testing is conducted in the testing phase; but in the incremental model, testing is performed at the end of every iteration and in the end, the application is tested as a whole.
- Testing is done in various forms at every phase of SDLC.
- During the phase of requirement gathering, the analysis of requirements is also considered to be testing.
- Rechecking the design with the intent of improving the design is also considered as testing.
- Testing performed by a developer on completion of the code is also considered to be testing.
When to Stop The Testing Process
Testing is a never-ending process so it is not easy to figure out when to stop testing and there is no known way of ensuring that the software has been tested completely and is a hundred percent defect-free. Some companies start the testing processing very early in the development phase and continue it until the software is released to the client.
It is completely up to the decision of the team at work and associated stakeholders, but he following points and factors can be kept in mind to determine whether if it is the time to discontinue the testing process.
- The complete execution of testing
- Completion of functional and code coverage to a specific point
- Reduction of bug rates
- All high priority bugs have been dealt with
- The decision of the management