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]
Based on criteria for measuring correctness from a 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, applicable laws.
Software testing is often dynamic in nature; running the software to verify actual output matches expected. It can also be static in nature; reviewing code and associated documentation.
Software testing is often used to answer the question: Does the software do what it is supposed to do and what it needs to do?
Information learned from software testing may be used to improve the process by which software is developed.[5]: 41–43
Generally, a software product caters to a specific audience such as video gamers or bankers. When an organization develops or invests in a software product, it often assess whether the product aligns with the expectations of the end users, target audience, purchasers, and other stakeholders. Software testing plays a critical role in making this assessment.
^Kaner, Cem (November 17, 2006). Exploratory Testing(PDF). Quality Assurance Institute Worldwide Annual Software Testing Conference. Orlando, FL. Retrieved November 22, 2014.
^Kaner, Cem; Falk, Jack; Nguyen, Hung Quoc (1999). Testing Computer Software (2nd ed.). New York: John Wiley and Sons. ISBN 978-0-471-35846-6.
^Leitner, Andreas; Ciupa, Ilinca; Oriol, Manuel; Meyer, Bertrand; Fiva, Arno (September 2007). Contract Driven Development = Test Driven Development – Writing Test Cases(PDF). ESEC/FSE'07: European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering 2007. Dubrovnik, Croatia. Retrieved December 8, 2017.
^Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. ISBN 978-0-470-04212-0.
Softwaretesting is the act of checking whether software satisfies expectations. Softwaretesting can provide objective, independent information about...
In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness...
programming, unit testing, a.k.a. component or module testing, is a form of softwaretesting by which isolated source code is tested to validate expected...
when the software is still being designed and built. Alpha testing is the first phase of formal testing, during which the software is tested internally...
In softwaretesting, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison...
requirements- or design document) supports testing in a given test context. If the testability of the software artifact is high, then finding faults in...
Mutation testing (or mutation analysis or program mutation) is used to design new softwaretests and evaluate the quality of existing softwaretests. Mutation...
Regression testing (rarely, non-regression testing) is re-running functional and non-functional tests to ensure that previously developed and testedsoftware still...
In software development, functional testing is a form of software system testing that verifies whether software matches its design. Generally, functional...
working at actual customer's hardware. Softwaretesting methods are traditionally divided into white- and black-box testing. These two approaches are used to...
API testing is a type of softwaretesting that involves testing application programming interfaces (APIs) directly and as part of integration testing to...
Software reliability testing is a field of software-testing that relates to testing a software's ability to function, given environmental conditions, for...
own testing, and demonstrate the software to users/clients regularly to obtain feedback.[citation needed] Software can be tested through unit testing, regression...
Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase in softwaretesting in which the whole software module is tested or...
its feasibility, analyzing the business requirements, software design, testing, to release. Software engineering, in addition to development, also includes...
chemical products) prior to its delivery. In softwaretesting, the ISTQB defines acceptance testing as: Formal testing with respect to user needs, requirements...
Exploratory testing is an approach to softwaretesting that is concisely described as simultaneous learning, test design and test execution. Cem Kaner...
The term load testing is used in different ways in the professional softwaretesting community. Load testing generally refers to the practice of modeling...
of a set of documents for use in eight defined stages of softwaretesting and system testing, each stage potentially producing its own separate type of...
software project management, softwaretesting, and software engineering, verification and validation (V&V) is the process of checking that a software...
engineer workload. A software engineer applies a software development process, which involves the definition, implementation, testing, management and maintenance...
These tests are generally much easier to carry out, yield more information, and are easier to interpret than nondestructive testing. Destructive testing is...