SQA-Testing Techniques
SQA-Testing Techniques
ASSURANCE
SOFTWARE TESTING - II
(DYNAMIC) BLACK BOX
TESTING
Engr. Ruqia
BLACK BOX TESTING
TECHNIQUES
Equivalence Class Partitioning Testing
Boundary Value Testing
Volume Testing
Fuzzy Testing
Load Testing
Omission Testing
Stress Testing
Comparison Testing
Resource Testing
End to End Testing
Requirements/Specification Testing
Localization Testing
Configuration Testing
Globalization Testing
Documentation Testing
Integration Testing
Smoke Testing
Sandwich Testing
Usability Testing
Security Testing
Exploratory Testing
Compatibility Testing
Button Press Testing
Null Case Testing
State Transition Testing
Installation Testing
Equivalence Class Partitioning
Testing
Equivalence Partitioning is a black-box testing method that divides the input domain of a
program into classes of data from which test cases can be derived
Equivalence Partitioning strives to define the test case that uncovers classes of errors, there by
reducing the total number of test cases that must be developed.
An equivalence class represents a set of valid or invalid states for input conditions.
Boundary Value
Testing
(Specific case of Equivalence Class Partitioning
Testing)
The term first originates from a class project at the University of Wisconsin
1988 although similar techniques have been used in the field of quality
assurance, where they are referred to as robustness testing or negative
testing.
Omission
Testing
Omission Testing (also called Missing Case Testing):
Other studies show than an average of 22 to 54% of all client reported defects are caused by
missing cases.
Null Case
Testing
Null Testing: (a specific case of Omission Testing, but triggers defects extremely
often)
Exposes defects triggered by no data or missing data.
Often triggers defects because developers create programs to act upon data, they
don’t think of the case where the project may not contain specific data types
In such situations each version can be tested with the same test data to ensure that all provide
identical output
Then all versions are executed in parallel with real time comparison of results to ensure
consistency
These independent versions form the basis of black box testing technique called comparison
testing or back-to-back testing
Comparison
Testing[7,8]
If the output from each version is the same, it is
assumed that all implementations are correct
End to End Testing is usually executed after functional and system testing. It uses actual
production like data and test environment to simulate real-time settings. End-to-End testing
is also called Chain Testing
Globalization
Testing
[10,11]
Globalization Testing is the software testing process for checking if the software
can work properly in various culture/locale settings using every type of
international input.
Localizing
Testing[10,11]
Localization is the process of customizing a software application that was originally designed
for a domestic market so that it can be released in foreign markets.
This process involves translating all native language strings to the target language and
customizing the GUI so that it is appropriate for the target market
Localization testing checks how well the build has been translated into a particular target
language (e.g., Japanese product for Japanese user).
We should invite the local staff to help our localization testing by checking the quality of
translation as well.
Incremental
Integration
Example:
Suppose that there are three pieces of code: A, B and C, and they run in that direction, i.e. A-
> B -> C. Now code A has been developed and needs to be tested, but codes B and C still
need to be developed, and code A will not run without the input of B and C. Hence, stubs are
used in place of B and C. These stubs imitate the codes B and C and even give output that
are similar to what B and C would give. This is called Top Down Integration, i.e. testing from
the top to the bottom.
Similarly, imagine now that codes B and C have been developed and need to be test,
however code A still needs to be developed, and likewise the other two codes won’t work
without the inputs from code A. Hence, a driver can be used in place of code A. This driver
would then imitate code A and give the input to B and C, similar to what the actual code A
would. This is called Bottom Up Integration, i.e. testing from the bottom up.
Incremental
Integration TOP DOWN INTEGRATION
Top Down Testing is an approach to integrated testing where the top integrated modules
are tested and the branch of the module is tested step by step until the end of the related
module.
Incremental
Integration TOP DOWN
INTEGRATION
Top down integration is performed in a series of steps:
1. The main control module is used as test driver and stubs are substituted for all components directly subordinate to the
main module.
2. Depending on the integration approach selected (depth-first or breadth-first) subordinates stubs are replaced one at a
time with actual components.
5. Regression testing may be conducted to make sure that new errors have not been
introduced.
Incremental
Integration
Test A,B,C,
D
Top Test Top down
Laye A
r
Tests
Pros and Cons of Sandwich
Testing
Sandwich
Testing