4/3/2014 Software Testing Methods - Software QA Testing
http://venkatgn.blogspot.in/2009/11/software-testing-software-testing-is.html 1/3
Software Testing Methods
Software Testing
Software Testing is an investigation conducted to provide stakeholders with information about the quality of theproduct or service under test, with respect to the context in which it is intended to operate. This includes, but is
not limited to, the process of executing a program or application with the intent of finding software bugs.
Testing methods
Software testing methods are traditionally divided into
• Black Box Testing,
• White Box Testing
• Gray Box Testing.
These two approaches are used to describe the point of view that a test engineer takes when designing testcases.
Black box testing
Black box testing treats the software as a black box without any knowledge of internal implementation. Black
box testing methods include
A. Equivalence partitioning
A software testing technique that involves identifying a small set of representative input values that invoke as
many different input conditions as possible.
EX: Credit card limit ($10,000 and $15000)Less than- 10,000 invalid
Equal to ($10,000 and not as greater as 15000) valid
$15,000 or greater invalid
B. Boundary value analysisTo set up boundary value analysis test cases, the tester first determines which boundaries are at the interface of a
software component. This is done by applying the equivalence partitioning technique
C. All-pairs testing
All-pairs testing or pair wise testing is a combinatorial software testing method that, for each pair of input
parameters to a system (typically, a software algorithm), tests all possible discrete combinations of those
parameters. Using carefully chosen test vectors, this can be done much faster than an exhaustive search of all
combinations of all parameters, by "parallelizing" the tests of parameter pairs. The number of tests is typically O(nm), where n and m are the number of possibilities for each of the two parameters with the most choices.
D. Fuzz testing
Fuzz testing; fuzzing; Robustness Testing or Negative Testing is a software testing technique that provides
random data ("fuzz") to the inputs of a program. If the program fails (for example, by crashing, or by failing built-
in code assertions), the defects can be noted.
E. Model-based testing
4/3/2014 Software Testing Methods - Software QA Testing
http://venkatgn.blogspot.in/2009/11/software-testing-software-testing-is.html 2/3
Model-based testing is software testing in which test cases is derived in whole or in part from a model that
describes some (usually functional) aspects of the system under test (SUT).
G. Exploratory testing
Exploratory testing is a method of manual testing that is concisely described as simultaneous learning, test design
and test execution.Specification-based testing.
H. Specification Based Testing refers to the process of testing a program based on what its specification says its
behavior should be. In particular, we can develop test cases based on the specification of the program's
behavior, without seeing an implementation of the program. Furthermore, we can develop test cases before the
program even exists!
White box testing
White box testing, by contrast to black box testing, is when the tester has access to the internal data structures
and algorithms (and the code that implement these)
White box testing
The following types of white box testing exist:A. Code coverage
Creating tests to satisfy some criteria of code coverage. For example, the test designer can create tests to causeall statements in the program to be executed at least once.B. mutation testing
Mutation testing (or Mutation analysis) is a method of software testing, which involves modifying program'ssource code in small ways. These, so-called mutations, are based on well-defined mutation operators that either
mimic typical user mistakes (such as using the wrong operator or variable name) or force the creation of valuabletests (such as driving each expression to zero). The purpose is to help the tester develop effective tests or locate
weaknesses in the test data used for the program or in sections of the code that are seldom or never accessedduring execution.
C. Fault injection methods.
Fault injection is a technique for improving the coverage of a test by introducing faults in order to test code paths,in particular error handling code paths that might otherwise rarely be followed. It is often used with stress testingand is widely considered to be an important part of developing robust software
Static testing White box testing includes all static testing.
D. Static testingThis is a form of software testing where the software isn't actually used. This is in contrast to dynamic testing. It is
generally not detailed testing, but checks mainly for the sanity of the code, algorithm, or document. It is primarilysyntax checking of the code or and manually reading of the code or document to find errors. This type of testing
can be used by the developer who wrote the code, in isolation. Code reviews, inspections and walkthroughs arealso used.
Grey Box TestingIn recent years the term grey box testing has come into common usage. This involves having access to internal
4/3/2014 Software Testing Methods - Software QA Testing
http://venkatgn.blogspot.in/2009/11/software-testing-software-testing-is.html 3/3
data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.
Manipulating input data and formatting output do not qualify as grey-box because the input and output are clearlyoutside of the black-box we are calling the software under test. This is particularly important when conducting
integration testing between two modules of code written by two different developers, where only the interfacesare exposed for test. Grey box testing may also include reverse engineering to determine, for instance, boundary
values or error messages.