Software Testing L3
Software Testing L3
Lecture Three
Testing Types and Levels
Test Levels
• Test levels are groups of test
activities that are organized and
managed together.
• Each test level is an instance of
the test process
• Test levels are related to other
activities within the software
development lifecycle
Unit Testing
• A unit component is an individual
function and it is the smallest testable
part of the software
• Unit testing is the first level of software
testing used to test if software modules
satisfy the given requirement or not.
• Unit testing is the first level of functional
testing to validate unit components with
their performance.
• Unit testing helps the test engineer and
developers to understand the base of
code to change defect causing code
quickly.
• The developers implement the unit.
Integration testing
Integration testing focuses on interactions between
components or systems. The focus is to expose defects at
the time of interaction between integrated components or
units
Two types of integration testing:
Two types:
1. Alpha testing means that we bring customers test in our premises
2. Beta testing means that the customers test our application on their site at
their homes.
Types of Testing
• is a classification of different testing activities into categories, each
having, a defined test objective, test strategy, and test deliverables.
• The goal of a testing type is to validate the Application Under
Test(AUT) for the defined Test Objective.
• There are over 100 types of software testing
Functional testing
• verifies that each function of the
software application operates in
conformance with the
requirement specification
• Functions (or features) are
tested by feeding them input
and examining the output
• Testing what the system does
• Usually answered with (Yes/No)
Non Functional testing
• focuses on the good quality of
the software such as response
time, security, usability,
performance
• Testing how the system performs
• Hard to answer with Yes/No
• Usually measured as a range
Black-Box Testing
• Is a technique of software testing which examines the
functionality of software without looking into its internal
structure or coding.
• It is also known as behavioral, opaque-box, closed-box
• The primary source of black box testing is a specification of
requirements that is stated by the customer.
• The tester selects a function and gives input value to
examine its functionality , and checks whether the function
is giving expected output or not. If the function produces
correct output, then it is passed in testing, otherwise it
fails.
• After testing of all functions if there are problems , results
are given back to the development team for correction.
Generic steps of black box testing
• That all independent paths within a module have been exercised at least once.
• All logical decisions verified on their true and false values.
• All loops executed at their boundaries
• Logical error included when we design and implement functions, conditions or
controls that are out of the program
• The design errors due to difference between logical flow of the program and the
actual implementation
• Typographical errors and syntax checking
Steps of White Box Testing
1. Design all test scenarios, test cases and prioritize them according to high priority
number.
2. involves the study of code at runtime to examine the resource utilization, not
accessed areas of the code, time taken by various methods and operations and so
on.
3. testing of internal subroutines takes place. Internal subroutines such as nonpublic
methods, interfaces are able to handle all types of data appropriately or not.
4. focuses on testing of control statements like loops and conditional statements to
check the efficiency and accuracy for different data inputs.
5. includes security testing to check all possible security loopholes by looking at how
the code handles security
Dynamic Testing
• done when the code is executed
at the run time environment.
• It is a validation process where
functional testing [unit,
integration, and system testing]
and non-functional testing [user
acceptance testing] are
performed
• Testing that includes executing
the software
Static Testing
• checks the application without
executing the code. It is a
verification process.
• essential activities are done
under static testing include
business requirement review,
design review, code
walkthroughs, and the test
documentation review.
• can be performed in the white
box testing phase, where the
programmer checks every line
of the code before handling
over to the Test Engineer
Retesting (Confirmation Testing):