Contents
Definition and Objective of Testing.
Software test classifications according to testing
concept
White box testing
Black box testing
Testing levels
Definition
“Testing is the process of executing a program with intention of finding
errors.”
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 definition].
Software testing is a process which is used to identify the correctness,
completeness and quality of the software application or system.
It is done in order to find out the defects /errors/bugs/software application
so that it can fixed before it is released in the market.
Objectives
Direct objectives
To identify and reveal as many errors as possible in the tested software.
To bring the tested software, after correction of the identified errors and retesting,
to an acceptable level of quality.
To perform the required tests efficiently and effectively, within budgetary and
scheduling limitations.
Indirect objective
To compile a record of software errors for use in error prevention (by
corrective and preventive actions).
Classification according to testing concept
Black box and white box testing – IEEE definitions
Black box testing:
(1) Testing that ignores the internal mechanism of a system or component and
focuses solely on the outputs generated in response to selected inputs and
execution conditions.
(2) Testing conducted to evaluate the compliance of a system or component
with specified functional requirements.
White box testing:
Testing that takes into account the internal mechanism of a system or
component.
Black box (functionality) testing.
Functionality of the software under test is checked without:
-- looking at the internal code structure.
-- implementation detail.
-- knowledge of internal paths of the software.
Based entirely on the software requirements, and specifications.
Involves testing from an external or end user perspective.
You can test Google, Oracle, windows OS by just focusing on the inputs and
outputs without knowing their, internal code implementation.
Types of Black Box Testing
The most common black box testing
-- Functional testing
-- Non-functional testing
-- Regression testing
-- Integration Testing.
Functional testing
This black box testing type is related to functional
requirements of a system; it is done by software tester.
Non-functional testing
This black box testing type is related to non-functional
requirements such as performance, scalability, usability
etc.
Regression Testing
Regression testing is done after code fixes, upgrades or any other system
maintenance to check the new code has not affected the existing code.
Integration Testing
Is a testing that used to test whether the subsystems/modules are
integrated well or not to make the whole system.
How to perform BB Testing
Generic steps followed to carry out any type of Black box testing.
1. Initially requirements and specifications of the system are examined.
2. Tester chooses valid inputs [positive test scenario], to check whether
application under test processes them correctly.
Also some invalid inputs [negative test scenario], are chosen to
verify that the application or system under test is able to detect them.
3. Testers determines expected outputs for all those inputs.
Cont..
4. Tester creates test cases with the selected inputs.
5. The test cases are executed.
6. The tester compares the actual outputs with the
expected outputs.
7. Defects if any are fixed and re-tested.
White box (structural) testing.
Is a testing of a software solution’s internal coding and
infrastructure.
It focuses primarily on strengthening security, the flow of inputs
and outputs through the application, and improving design and
usability.
Also called clear, open, structural and glass box testing.
Cont..
Involves the testing of software code for:
Internal security holes
Broken or poorly structured paths in the coding process.
The flow of specific inputs through the code.
Expected output.
The functionality of conditional loops.
Testing of each statement, object and function on an
individual basis
How to perform WB Testing
Step 1: Understanding the source code.
-- the first thing a tester will often do is learn and
understand the source code of the application.
-- the tester must be very knowledgeable in
programming languages used in the applications they are
testing.
Step 2: Create test cases and execute
White Box Testing types
Unit testing
Unit testing is a process of testing the individual
subprograms, subroutines, or procedures in a program.
That is, rather than initially testing the program as a whole,
unit testing is first focused on the smaller building blocks
of the program.
Cont..
Data Flow Testing
• Data-flow testing monitors the lifecycle of a piece of
data and looks out for inappropriate usage of data during
definition, use in predicates, computations and termination
(killing).
• It identifies potential bugs by examining the patterns in
which that piece of data is used.
Control Flow Testing
The main idea in control flow testing is to appropriately select a
few paths in a program unit and observe whether or not the
selected paths produce the expected outcome.
WB Testing techniques
Code coverage techniques.
Statement coverage
This technique requires every possible statement in the code to
be tested at least once during the testing processes.
Branch coverage
This technique checks every possible path [if-else and other
conditional loops] of a software application.
Cont..
The difference b/n BB and WB Testing
Black Box Features White Box
Not required Knowledge of Required
internal structure
Tester Responsibility Developer
Not required Programming Required
knowledge
Requirement Basis for test cases Detail Design
Specification
Testing Levels
1. Unit testing
• Individual program units, such as procedure, methods in isolation
2. Integration testing
• Modules are assembled to construct larger subsystem and tested
3. System testing
• system testing is the process of attempting to demonstrate how the
program, as a whole, does not meet its objectives.
4. Acceptance testing
• Customer’s expectations from the system
• The first three levels of testing are performed by a number of different stakeholders
in the development organization, where as acceptance testing is performed by the
customers.
Cont..
Regression testing is another level of testing that is performed
throughout the life cycle of a system.
Regression testing is performed whenever a component of the
system is modified
Regression Testing
New test cases are not designed
Test are selected, prioritized and executed.
To ensure that nothing is broken in the new version of the software.
Project 25%
Form a group maximum of 3 students and do the following by
using IEEE standard template.
Prepare Test Plan Document for your project. (4%)
Test your system / software by selecting appropriate
automation tool and execute your plan.(4%)
Report your test result by preparing Test Report
Document and Presentation for your Test Report. (10%)
Write minimum of 10 page description about 2 testing
automation tools in comparative study using proper
citation.(7%)
Cover page and table of content is mandatory
Introduction
What are the features of the tool(for individual )
Why we use this automation tool
(for individual)
How the tool are working (for individual)
System conditions that might use the tools.
Summarize the similarities and differences between the two
automation tools.
Recommendations
Reference
Appendix