Software testing is the act of checking whether software satisfies expectations.

Software testing can provide objective, independent information about the quality of software and the risk of its failure to a user or sponsor.[1]

Software testing can determine the correctness of software for specific scenarios but cannot determine correctness for all scenarios.[2][3] It cannot find all bugs.

Based on the criteria for measuring correctness from an oracle, software testing employs principles and mechanisms that might recognize a problem. Examples of oracles include specifications, contracts,[4] comparable products, past versions of the same product, inferences about intended or expected purpose, user or customer expectations, relevant standards, and applicable laws.
Ahmedabad, Computer, Software Testing