Black Box Testing
Black Box Testing
Engineering
SOFTWARE
TESTING (DYNAMIC)
BLACK BOX
TESTING
Engr. Muhammad
Software Testing
Software testing is the process of analyzing a software item
to detect the differences between existing and required
conditions (that is, bugs) and to evaluate the features of the
software item (IEEE, 1986; IEEE, 1990).
Engr. Ali
Testing Process
Engr. Ali
BLACK BOX TESTING
TECHNIQUES
Equivalence Class
Partitioning Testing
Boundary Value Testing
Fuzzy Testing
Omission Testing
Integration Testing
Sandwich Testing
Security Testing
Compatibility Testing
Null Case Testing
Load Testing
Stress Testing
Smoke Testing
Usability Testing
Exploratory 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
An ideal test case single handedly uncovers a class of errors e.g incorrect
processing of all character data that might otherwise require many cases to
be executed before the general error is observed.
INCREMENTAL
INTEGRATION
Big Bang Approach
In this approach, all or most of the developed modules are coupled
together to form a complete software system or major part of the
system and then used for integration testing.
The Big Bang method is very effective for saving time in the
integration testing process. However, the major drawback of Big
Bang Integration is to find the actual location of error.
Incremental
Integration
TOP DOWN INTEGRATION
Botto Test B, E, F
m Test F
Layer
Tests Test
A, B, C,
Test D, E, F,
Test G D,G G
Test A,B,C, D
Top Test A
Laye
r
Tests
Load Testing
Load testing is the process of putting demand on a system or
device and measuring its response. Load testing is performed to
determine a system’s behavior under both normal and anticipated
peak load conditions.
It helps to identify the maximum operating capacity of an
application as well as any bottlenecks and determine which
element is causing degradation.
Example: Using automation software to simulate 500 users logging into a web site
and performing end- user activities at the same time.
Example: Typing at 120 words per minute for 3 hours into a word processor.
Engr. Ali
Stress Testing
Stress testing is a form of testing that is
used to determine the stability of a given
system or entity.
Engr. Ali
Compatibility Testing
Exposes defects related to using files from output one version of the
software in another version of the software.
Most Landmark applications are designed to be “forwards”
compatible, meaning files created in a previous release of the
software can be used in the version currently under test.
They are not designed to be “backwards” compatible, meaning a file
output in the version under test will not work in a current released
version.
Engr. Ali
Security Testing
Security testing is a process to determine that an information system protects
data and maintains functionality as intended.
To check whether there is any information leakage.
To test the application whether it has unauthorized access
To finding out all the potential loopholes and weaknesses of the system.
Primary purpose of security testing is to identify the vulnerabilities and
subsequently repairing them.
Engr. Ali
Security Testing Techniques
Penetration Testing/ Ethical Hacking
Engr. Ali
Usability
Testing
Usability testing is a technique used to evaluate a product by testing
it on users. This can be seen as an irreplaceable usability practice,
since it gives direct input on how real users use the system.
Usability testing focuses on measuring a human-made product's
capacity to meet its intended purpose.
Usability testing measures the usability, or ease of use, of a specific
object or set of objects.
User interviews, surveys, video recording of user sessions, and other
techniques can be
used
Engr. Ali
Exploratory Testing
Exploratory testing is an approach to software testing that is
concisely described as simultaneous learning, test design and test
execution. Exploratory software testing is a powerful and fun
approach to testing.
The essence of exploratory testing is that you learn while you test,
and you design your tests based on what you are learning
Exploratory testing is a method of manual testing.
The testing is dependent on the tester's skill of inventing test cases
and finding defects. The more the tester knows about the product
and different test methods, the better the testing will be.
Engr. Ali
Regression
Testing
Exposes defects in code that should have not
changed.
Re-executes some or all existing test cases to exercise code that was tested
in a previous release or previous test cycle.
The probability of changing the program correctly on the first try is only 50% if
the change involves 10 or fewer lines of code.
The probability of changing the program correctly on the first try is only
20% if the change involves around 50 lines of code.
Engr. Ali
Progressive VS Regressive
Testing
When testing new code, you are performing “progressive testing.”
All black box test design methods apply to both progressive and regressive
testing. Eventually, all your “progressive” tests should become “regression”
tests.
Engr. Ali
Regression Testing VS
Retesting
Re- test - Retesting means we testing only the certain part of an
application again and not considering how it will effect in the other
part or in the whole application.
Engr. Ali
Sanity
Test
In software development, the sanity test
determines whether it is reasonable to proceed
with further testing.
Software sanity tests are commonly conflated
with smoke tests. A smoke test determines
whether it is possible to continue testing, as
opposed to whether it is reasonable.
A software smoke test determines whether the
program launches and whether its interfaces
are accessible and responsive (for example, the
responsiveness of a web page or an input
button).
If the smoke test fails, it is impossible to
conduct a sanity test.
If the sanity test fails, it is not reasonable to
attempt more rigorous testing.
Both sanity tests and smoke tests are ways to
avoid wasting time and effort by quickly
determining whether an application is too
Engr. Aliflawed to merit any rigorous testing.
Smoke VS Sanity Test
Smoke testing is a wide approach where all areas of the software
application are tested without getting into too deep. However, a sanity
software testing is a narrow regression testing with a focus on one or a
small set of areas of functionality of the software application.
Smoke testing is done to ensure whether the main functions of the software
application are working or not. During smoke testing of the software, we do
not go into finer details. However, sanity testing is done whenever a quick
round of software testing can prove that the software application is
functioning according to business / functional requirements.
Smoke testing of the software application is done to check whether the
build can be accepted for thorough software testing. Sanity testing of the
software is to ensure whether the requirements are met or not.
Engr. Ali
For any query Feel Free to
3
8 ask