what is software testing? — csmates.com

Sonu Tewatia
2 min readJan 7, 2021

--

Software testing is the process of executing a program with the intention of finding errors in the code. It is the process of exercising or evaluating a system or system components by manual or automatic means to verify that it satisfies specified requirements or to identify differences between expected and actual results.

The objective of testing is to show incorrectness and testing is considered to succeed when an error is detected. An error is a conceptual mistake made by either the programmer or the designer or a discrepancy between a computed value and a theoretically correct value.

A fault is a specific manifestation of an error. An error may be the cause of several faults. A failure is the inability of a system or components to perform its required function within the specified limits. A failure may be produced when a fault is executed.

Software testing is the process of executing software in a controlled manner, in order to answer the question: Does the software behaves as specified.

Software testing is often used in association with the terms verification and validation.

  • Verification is the checking or testing of items, including software, for conformance and consistency with an associated specification. Software testing is just one kind of verification, which also uses techniques such as reviews, analysis, inspections, and walkthroughs
  • Validation is the process of checking that what has been specified is what the user actually wanted.

Validation: Are we doing the right job?

Verification: Are we doing the job right?

The term bug is often used to refer to a problem or fault in a computer. There are software bugs and hardware bugs. The term originated in the US, at the time when computers were built out of valves when a series of previously inexplicable faults were eventually traced to moths flying about inside the computer.

Software testing should not be confused with

Debugging is the process of analyzing and locating bugs when software doesn’t behave as expected. Although the identification of some bugs will be obvious from playing with the software, a methodical approach to software testing is a much more thorough means of identifying bugs.

Debugging is, therefore, an activity that supports testing, but can’t replace testing. However, no amount of testing can be guaranteed to discover all bugs.

Other activities that are often associated with software testing are static analysis and dynamic analysis. The static analysis investigates the source code of the software, looking for problems and gathering metrics without actually executing the code. Dynamic analysis looks at the behavior of software while it is execution traces, timing profiles, and test coverage information.

Originally published at https://www.csmates.com.

--

--

Sonu Tewatia

Software Engineer | Content Writer | Programmer | System Admin | Linux Administration |