Software Testing
Software engineering
MOHD VAIS
B.Tech second year student (CSE)
JAHANGIRABAD INSTITUTE OF TECHNOLOGY
contents
• Testing objectives
• Unit testing
• Integration testing
• Acceptance testing
• Regression testing
• Testing for functionality
• Testing for performance
• Top down and bottom-up testing
• Test drivers test stubs
What is software testing ?
• Software testing is a process, to evaluate the functionality of a
software application with an intent to find whether the developed
software met the specified requirements or not and to identify the
defects to ensure that the product is defect free in order to
produce the quality product.
• A process of analyzing a software item to detect the differences
between existing and required conditions (i.e., defects) and to
evaluate the features of the software item.
What is Software Testing
Software testing is a process, to evaluate the
functionality of a software application with an
intent to find whether the developed software
met the specified requirements or not and to
identify the defects to ensure that the product
is defect free in order to produce the quality
product.
Software Testing Types
• Manual testing :
It is process of testing the software manually to find the defects. In this
process, testers execute the test cases and generate the reports manually
without using any automation tools.
• Automation testing:
It is the process of testing the software using an automation tool to find
the defects.
Some Automation tools(QTP/UFT and Selenium.)
Testing Methods
1. Static Testing : (Verification)
“ Does the product meet its specifications? ”
The set of activities to ensure that s/w correctly implement a specific function
or algo.
2. Dynamic Testing : (Validation)
“Does the product perform as desired ? ”
The set of activities to ensure that the s/w has been build is traceable to
customer requirements.
Testing Levels
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Regression Testing
Unit Testing
• Unit Testing: Unit Testing is done to check whether the
individual modules of the source code are working
properly. i.e. testing each and every unit of the
application separately by the developer in the
developer’s environment. It is AKA Module Testing or
Component Testing.
• Black Box
• White Box
• Grey Box
Unit testing
techniques
Integration Testing
• Integration Testing: Integration Testing is
the process of testing the connectivity or
data transfer between a couple of unit
tested modules. It is AKA I&T Testing or
String Testing. It is subdivided into Top-
Down Approach, Bottom-Up Approach and
Sandwich Approach (Combination of Top
Down and Bottom Up).
M1
M4M3M2
M5 M6 M7
M8
Top down testing
• Top down Testing: In this approach testing is conducted from main module to sub
module. if the sub module is not developed a temporary program called STUB is
used for simulate the submodule.
Advantages:
- Advantageous if major flaws occur toward the top of the program.
- Once the I/O functions are added, representation of test cases is easier.
Disadvantages:
- Stub modules must be produced
- Stub Modules are often more complicated than they first appear to be.
T
O
P
|
D
O
W
N
Bottom up testing
Bottom up testing: In this approach testing is conducted from sub module to main module, if the main module
is not developed a temporary program called DRIVERS is used to simulate the main module.
Advantages:
- Advantageous if major flaws occur toward the bottom of the program.
- Test conditions are easier to create.
- Observation of test results is easier.
Disadvantages:
- Driver Modules must be produced.
- The program as an entity does not exist until the last module is added.
B
O
T
T
O
M
|
U
P
System Testing
• System Testing (end to end testing):
It’s a black box testing.
Testing the fully integrated application this is also called as end to
end scenario testing. To ensure that the software works in all
intended target systems. Verify thorough testing of every input in
the application to check for desired outputs.
Flow of an application is behaving as expected right from start to
finish.
Regression testing
• Testing activities occur after software changes.
• Regression testing usually refers to testing activities during
software maintenance phase.
• During confirmation testing the defect got fixed and that part if
the application started working as intended.
• The purpose of a regression testing is to verify that modification in
the software or the environment have not caused any unintended
adverse side effects.
Regression testing
Regression
testing
Requirement
specification
Test
validation
Test set-up
Test
execution
Output
comparison
Fault
management
Acceptance Testing
• Acceptance Testing: It is also known as pre-
production testing. This is done by the end
users along with the testers to validate the
functionality of the application. After
successful acceptance testing. Formal testing
conducted to determine whether an application
is developed as per the requirement. It allows
the customer to accept or reject the
application. Types of acceptance testing are
Alpha, Beta
User
acceptance
testing
Alfa testing
Beta
testing
Operational
readiness
testing
Alpha, beta & gamma testing
• Alpha testing: Alpha testing is done by the in-house developers
(who developed the software) and testers. Sometimes alpha
testing is done by the client or outsourcing team with the
presence of developers or testers.
• Beta testing: Beta testing is done by a limited number of end
users before delivery. Usually, it is done in the client place.
levels
Levels of testing
Level 2
Integration
Level 1
Unit testing
Integration
testing
Level 3
System test
Level 4
Regression
Levels 5
Acceptance
Unit testing System
testing
User acceptance
testing
Developer/tester
developers Tester
Testing for functionality and performance
• Functional testing is a kind of black box testing that is performed
to confirm that the functionality if an application or system is
behaving as expected.
• It is done to verify all the functionality of an application.
• It is a document that describes what a user is permitted to do.
• It is defines what is acceptable and what is not.
 Performance testing is defined as a type of software testing to
ensure software applications will perform well under their
expected workload.
 The focus of performance testing is checking a software programs
 Speed
 Scalability
 stability
Test drivers and Test stubs
• A ‘Driver’ is a piece of software that drives (invokes) the Unit being tested. A
driver creates necessary ‘Inputs’ required for the Unit and then invokes the Unit.
•
A ‘Stub’ is a piece of software that works similar to a unit which is referenced by
the Unit being tested, but it is much simpler that the actual unit. A Stub works as
a ‘Stand-in’ for the subordinate unit and provides the minimum required behavior
for that unit.
• A Stub is a dummy procedure, module or unit that stands in for an unfinished
portion of a system.
Input
A=5,B=4
Not
developed
Driver
Addition
C=A+B
Stub
Addition
C=A+B
Not
developed
Input
A=5
B=4
B
O
T
T
O
M
U
P
Testing starting
From here
Testing start
from here
T
O
P
D
O
W
n
Thank you
By: Mohd Vais

Software testing

  • 1.
    Software Testing Software engineering MOHDVAIS B.Tech second year student (CSE) JAHANGIRABAD INSTITUTE OF TECHNOLOGY
  • 2.
    contents • Testing objectives •Unit testing • Integration testing • Acceptance testing • Regression testing • Testing for functionality • Testing for performance • Top down and bottom-up testing • Test drivers test stubs
  • 3.
    What is softwaretesting ? • Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product. • A process of analyzing a software item to detect the differences between existing and required conditions (i.e., defects) and to evaluate the features of the software item.
  • 4.
    What is SoftwareTesting Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product.
  • 5.
    Software Testing Types •Manual testing : It is process of testing the software manually to find the defects. In this process, testers execute the test cases and generate the reports manually without using any automation tools. • Automation testing: It is the process of testing the software using an automation tool to find the defects. Some Automation tools(QTP/UFT and Selenium.)
  • 6.
    Testing Methods 1. StaticTesting : (Verification) “ Does the product meet its specifications? ” The set of activities to ensure that s/w correctly implement a specific function or algo. 2. Dynamic Testing : (Validation) “Does the product perform as desired ? ” The set of activities to ensure that the s/w has been build is traceable to customer requirements.
  • 7.
    Testing Levels Unit Testing IntegrationTesting System Testing Acceptance Testing Regression Testing
  • 8.
    Unit Testing • UnitTesting: Unit Testing is done to check whether the individual modules of the source code are working properly. i.e. testing each and every unit of the application separately by the developer in the developer’s environment. It is AKA Module Testing or Component Testing. • Black Box • White Box • Grey Box Unit testing techniques
  • 9.
    Integration Testing • IntegrationTesting: Integration Testing is the process of testing the connectivity or data transfer between a couple of unit tested modules. It is AKA I&T Testing or String Testing. It is subdivided into Top- Down Approach, Bottom-Up Approach and Sandwich Approach (Combination of Top Down and Bottom Up). M1 M4M3M2 M5 M6 M7 M8
  • 10.
    Top down testing •Top down Testing: In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary program called STUB is used for simulate the submodule. Advantages: - Advantageous if major flaws occur toward the top of the program. - Once the I/O functions are added, representation of test cases is easier. Disadvantages: - Stub modules must be produced - Stub Modules are often more complicated than they first appear to be. T O P | D O W N
  • 11.
    Bottom up testing Bottomup testing: In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module. Advantages: - Advantageous if major flaws occur toward the bottom of the program. - Test conditions are easier to create. - Observation of test results is easier. Disadvantages: - Driver Modules must be produced. - The program as an entity does not exist until the last module is added. B O T T O M | U P
  • 12.
    System Testing • SystemTesting (end to end testing): It’s a black box testing. Testing the fully integrated application this is also called as end to end scenario testing. To ensure that the software works in all intended target systems. Verify thorough testing of every input in the application to check for desired outputs. Flow of an application is behaving as expected right from start to finish.
  • 13.
    Regression testing • Testingactivities occur after software changes. • Regression testing usually refers to testing activities during software maintenance phase. • During confirmation testing the defect got fixed and that part if the application started working as intended. • The purpose of a regression testing is to verify that modification in the software or the environment have not caused any unintended adverse side effects.
  • 14.
  • 15.
    Acceptance Testing • AcceptanceTesting: It is also known as pre- production testing. This is done by the end users along with the testers to validate the functionality of the application. After successful acceptance testing. Formal testing conducted to determine whether an application is developed as per the requirement. It allows the customer to accept or reject the application. Types of acceptance testing are Alpha, Beta User acceptance testing Alfa testing Beta testing Operational readiness testing
  • 16.
    Alpha, beta &gamma testing • Alpha testing: Alpha testing is done by the in-house developers (who developed the software) and testers. Sometimes alpha testing is done by the client or outsourcing team with the presence of developers or testers. • Beta testing: Beta testing is done by a limited number of end users before delivery. Usually, it is done in the client place.
  • 17.
    levels Levels of testing Level2 Integration Level 1 Unit testing Integration testing Level 3 System test Level 4 Regression Levels 5 Acceptance Unit testing System testing User acceptance testing Developer/tester developers Tester
  • 18.
    Testing for functionalityand performance • Functional testing is a kind of black box testing that is performed to confirm that the functionality if an application or system is behaving as expected. • It is done to verify all the functionality of an application. • It is a document that describes what a user is permitted to do. • It is defines what is acceptable and what is not.
  • 19.
     Performance testingis defined as a type of software testing to ensure software applications will perform well under their expected workload.  The focus of performance testing is checking a software programs  Speed  Scalability  stability
  • 20.
    Test drivers andTest stubs • A ‘Driver’ is a piece of software that drives (invokes) the Unit being tested. A driver creates necessary ‘Inputs’ required for the Unit and then invokes the Unit. • A ‘Stub’ is a piece of software that works similar to a unit which is referenced by the Unit being tested, but it is much simpler that the actual unit. A Stub works as a ‘Stand-in’ for the subordinate unit and provides the minimum required behavior for that unit. • A Stub is a dummy procedure, module or unit that stands in for an unfinished portion of a system.
  • 21.
  • 22.