Difference between revisions of "Software testing"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(Agile)
(External links)
 
(8 intermediate revisions by the same user not shown)
Line 44: Line 44:
 
== See also ==
 
== See also ==
  
 +
* [[Dynamic program analysis]]
 +
* [[Formal verification]]
 +
* [[Independent test organization]]
 +
* [[Manual testing]]
 +
* [[Orthogonal array testing]]
 +
* [[Orthogonal Defect Classification]]
 +
* [[Pair testing]]
 
* [[Proof of concept]]
 
* [[Proof of concept]]
 
* [[Quality control]]
 
* [[Quality control]]
 +
* [[Reverse semantic traceability]]
 
* [[Selenium (software)]]
 
* [[Selenium (software)]]
 
* [[Software defect]]
 
* [[Software defect]]
Line 51: Line 59:
 
* [[Software engineering]]
 
* [[Software engineering]]
 
* [[Software quality]]
 
* [[Software quality]]
 +
* [[Software testability]]
 +
* [[Test automation]]
 +
* [[Test case]] - a set of conditions under which a tester will determine whether an application, software system or one of its features is working as it was originally established for it to do.
 +
* [[Test Environment Management]]
 +
* [[Test management tools]]
 
* [[Unit testing]]
 
* [[Unit testing]]
 +
* [[Web testing]]
  
 
== External links ==  
 
== External links ==  
  
 
* [https://en.wikipedia.org/wiki/Software_testing Software testing] @ Wikipedia
 
* [https://en.wikipedia.org/wiki/Software_testing Software testing] @ Wikipedia
 +
 +
[[Category:Computer science]]
 +
[[Category:Management]]
 +
[[Category:Quality]]
 +
[[Category:Software]]
 +
[[Category:Software engineering]]
 +
[[Category:Software testing]]
 +
[[Category:Web design and development]]

Latest revision as of 11:11, 25 September 2016

In software development and software engineering, software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.

Description

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.

Test techniques include the process of executing a program or application with the intent of finding software defects.

It involves the execution of a software component or system component to evaluate one or more properties of interest.

In general, these properties indicate the extent to which the component or system under test:

  • Meets the requirements that guided its design and development.
  • Responds correctly to all kinds of inputs.
  • Performs its functions within an acceptable time.
  • Is sufficiently usable.
  • Can be installed and run in its intended environments.
  • Achieves the general result its stakeholders desire.

As the number of possible tests for even simple software components is practically infinite, all software testing uses some strategy to select tests that are feasible for the available time and resources. As a result, software testing typically (but not exclusively) attempts to execute a program or application with the intent of finding software bugs (errors or other defects).

The job of testing is an iterative process as when one bug is fixed, it can illuminate other, deeper bugs, or can even create new ones.

Software testing can provide objective, independent information about the quality of software and risk of its failure to users and/or sponsors.

Software testing can be conducted as soon as executable software (even if partially complete) exists.

Approach defines testing

The overall approach to software development often determines when and how testing is conducted.

Phased approach

For example, in a phased process such as Waterfall, most testing occurs after system requirements have been defined and then implemented in testable programs.

Agile

Under an Agile software development principles, requirements, programming, and testing are often done concurrently.

Unit testing

Unit testing is a methodology for confirming that software is fit for use.

See also

External links