Software Testing is the set of activities that involves Planning and preparing on how to test & what to test the software for and Executing software with the intent of finding defects and validating the software against requirements.
Testing involves operation of a system or application under controlled conditions and evaluating the results. Controlled conditions would include both normal and abnormal conditions. Software testing is conducted not only to check if the software meets the functional/technical/security requirements but also to break the software with negative inputs or by incorrect usage.
British Standards Institution (standard BS7925-1), define testing as:
The process of exercising software to verify that it satisfies specified requirements and to detect faults; the measurement of software quality.
Faults in software are can be due to various reasons, from a simple typo to incorrect implementation of requirement or functionality that is not working fully or partially. Role of Software Testing is to detect these faults on time, report and get them fixed on time.
Software testing is used in association with verification and validation:
Verification: Have we built the software right (i.e., does it match the specification)? i.e., Checking and reviewing Business requirements, functional specification, Prototype, Code, Test Cases and other work products to ensure product is being built correctly.
Validation: Have we built the right software (i.e., is this what the customer wants)? i.e., Testing Software to confirm requirements are implemented correctly as per specification.
Testing involves operation of a system or application under controlled conditions and evaluating the results. Controlled conditions would include both normal and abnormal conditions. Software testing is conducted not only to check if the software meets the functional/technical/security requirements but also to break the software with negative inputs or by incorrect usage.
British Standards Institution (standard BS7925-1), define testing as:
The process of exercising software to verify that it satisfies specified requirements and to detect faults; the measurement of software quality.
Faults in software are can be due to various reasons, from a simple typo to incorrect implementation of requirement or functionality that is not working fully or partially. Role of Software Testing is to detect these faults on time, report and get them fixed on time.
Software testing is used in association with verification and validation:
Verification: Have we built the software right (i.e., does it match the specification)? i.e., Checking and reviewing Business requirements, functional specification, Prototype, Code, Test Cases and other work products to ensure product is being built correctly.
Validation: Have we built the right software (i.e., is this what the customer wants)? i.e., Testing Software to confirm requirements are implemented correctly as per specification.