Software testing is a process used to identify the correctness, completeness, and quality of developed computer software.
It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users.
In simple words, software testing is an activity to check whether the actual results match the expected results and to ensure that the software system is defect free.
Software testing is very important because of the following reasons:
§ Software Testing is really required to point out the defects and errors that were made during the development phases.
§ It is essential since it makes sure of the Customer’s reliability and their satisfaction in the application.
§ It is very important to ensure the Quality of the product. Quality product delivered to the customers helps in gaining their confidence.
§ Testing is necessary in order to provide the facilities to the customers like the delivery of high quality product or software application which requires lower maintenance cost and hence results into more accurate, consistent and reliable results.
§ Testing is required for an effective performance of software application or product.
§ It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development.
§ It’s required to stay in the business.
Objectives of Software Testing:
§ Finding defects which may get created by the programmer while developing the software.
§ Gaining confidence in and providing information about the level of quality.
§ To prevent defects.
§ To make sure that the end result meets the business and user requirements.
§ To ensure that it satisfies the BRS that is Business Requirement Specification and SRS that is System Requirement Specifications.
§ To gain the confidence of the customers by providing them a quality product.
Who does Testing?
It depends on the process and the associated stakeholders of the project.
In the IT industry, large companies have a team with responsibilities to evaluate the developed software in context of the given requirements.
Moreover, developers also conduct testing which is called Unit Testing.
In most cases, the following professionals are involved in testing a system within their respective capacities:
§ Software Tester
§ Software Developer
§ Project Lead/Manager
§ End User
Different companies have different designations for people who test the software on the basis of their experience and knowledge such as Software Tester, Software Quality Assurance Engineer etc.
It is not possible to test the software at any time during its cycle.
When to Start Testing:
Testing is done in different forms at every phase of SDLC:
§ During the requirement gathering phase, the analysis and verification of requirements are also considered as testing.
§ Reviewing the design in the design phase with the intent to improve the design is also considered as testing.
§ Testing performed by a developer on completion of the code is also categorized as testing.
When to Stop Testing:
It is difficult to determine when to stop testing, as testing is a never-ending process and no one can claim that a software is 100% tested.
The following aspects are to be considered for stopping the testing process:
§ Testing Deadlines
§ Completion of test case execution
§ Completion of functional and code coverage to a certain point
§ Bug rate falls below a certain level and no high-priority bugs are identified
§ Management decision