3
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 the product 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 test cases. 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 analysis To 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

Software Testing Methods - Software QA Testing

Embed Size (px)

Citation preview

Page 1: Software Testing Methods - Software QA Testing

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

Page 2: Software Testing Methods - Software QA 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

Page 3: Software Testing Methods - Software QA Testing

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.