You are here

What is software testing?

Software testing is a method of assessing the functionality of a software program.
Software testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. In other words software testing is a verification and validation process.
Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.
Software testing can be stated as the process of validating and verifying that a computer program/application/product:
-meets the requirements that guided its design and development,
-works as expected,
-can be implemented with the same characteristics,
-satisfies the needs of stakeholders.

This splits up in two:
Verification:
Verification is the process to make sure the product satisfies the conditions imposed at the start of the development phase. In other words, to make sure the product behaves the way we want it to.
Validation:
Validation is the process to make sure the product satisfies the specified requirements at the end of the development phase. In other words, to make sure the product is built as per customer requirements.

There are many different types of software testing but the two main categories are dynamic testing and static testing.
Software testing, depending on the testing method employed, can be implemented at any time in the software development process. Traditionally most of the test effort occurs after the requirements have been defined and the coding process has been completed, but in the Agile approaches most of the test effort is on-going. As such, the methodology of the test is governed by the chosen software development methodology.