What is Software Testing?
Software testing is a process that ensures that a delivered project is correct to user and organisational requirements, efficient and effective to use. It offers a structured assurance routine that allows stakeholders, end users, clients and even customers, to make a judgment on the quality of the product being delivered. Essentially it appraises whether the delivered product is working as expected.
Software testing takes many forms, catering for various types of products in question and tailored to meet particular client requirements. The extent and frequency of testing varies considerably between projects.
A common practice in the testing industry is to evaluate the product at several stages of the development cycle – this is included for example by the waterfall and V models. Testing starts at the requirements stage of the software development life cycle, to ensure that poor or faulty requirements are spotted early.
Test bed strategy and test design is formulated early, which can then be applied to software at each stage. The results are reported back to the development team who build in fixes, and then apply regression testing. Regression testing ensures that later fixes or changes have not impacted upon the rest of the program, and introduced further defects.
Testing is usually an iterative process, continuing right up until the product is ready to be accepted by the client. The final stage of the process is user acceptance testing before rollout in the organisation. This is undertaken by the planned user or customer of the software to ensure that the product meets the requirements originally specified or agreed at the start of the development process.