Software Testing
By: Shahram Foroozan
December 2017
What is Software Testing?
 Software testing is a process of executing a program or application with the intent of finding The
Software Bugs.
 It can also be stated as the process of validating and verifying that a software program or
application or product
 Meets the business and technical requirements that guided it’s design and development
 Works as expected
 Can be implemented with the same characteristic
Why is software testing necessary?
 because we all make mistakes.
 It’s essential since it makes sure of the Customer’s reliability and their satisfaction in the application.
 It’s important to ensure that the application should not result into any failures because it can be
very expensive in the future or in the later stages of the development.
 It’s required to stay in the business.
Bad Result Of Not Testing
Explosion in :European Ariane 5
Cost :370 M $
Bad Result Of Not Testing
Types of Dynamic Testing
 Unit
 Integration
 System
 Regression
 UAT
 Exploratory
Unit testing
 Unit testing is code-based and performed primarily by developers to demonstrate that their
smallest pieces of executable code function suitably.
 Unit tests ensure that code works as intended
Why unit testing!
 Higher Quality
 More flexibility
 Easer Development (specially for newcomers)
 Test Driven Development
 Code Coverage represents the amount of the code covered by unit testing. Low Level Of
Coverage Is the sign of trouble
Code coverage
 Code coverage of 70-80% is a reasonable goal for system test of most projects with most
coverage metrics.
 Different Standard For Coverage are
 The aviation standard DO-178B (100%)
 IEC 61508 Electrical/Electronic/Programmable Electronic Safety(Highly Recommended)
 FDA requirements for Medical Devices(100%)
Sample
Integration testing
 demonstrates that two or more units or other integrations work together properly, and tends to
focus on the interfaces specified in low-level design.
System testing
 demonstrates that the system works end-to-end in a production-like environment to provide the
business functions specified in the high-level design.
 Test the software in the real environment in which it is to operate.
(hardware,people,information,etc.)
Types of System Testing
 •Performance
 Load Testing
 •Stress
 •Security
 •Localization
Performance Testing
 Many Programs have specific performance or efficiency objectives like response time &
throughput rates under certain workload & configurable conditions
 To ensure that the system is responsive to user interaction and handles extreme loading without
unacceptable operational degradation.
Load Testing
 N, the number of concurrent users
 T, the number of on-line transactions per user per unit time
 D, the data load processed by the server per transaction
Stress Testing
 In Stress testing a considerable load is generated as quickly as possible in order to stress the
application and analyze the maximum limit of concurrent users the application can support.
Tests should answer the following questions
 Does the system degrade gently or does the server shut down?
 Are appropriate messages displayed ? – Server not available.
 Are certain functions discontinued as capacity reaches the 80 or 90 percent level?
Regression Testing
 Regression Testing is the testing of software after a modification has been made to ensure the
reliability of each software release.
 Testing after changes have been made to ensure that changes did not introduce any new errors
into the system.
Acceptance testing
 is conducted by business owners and users to confirm that the system does, in fact, meet their
business requirements.
What Is a Test Strategy?
It provides a road map that describes the steps to be conducted as part of testing, when these
steps are planned and then undertaken, and how much effort, time and resources will be required.
Q & A
Thank you for coming.

Software Testing Concepts

  • 1.
    Software Testing By: ShahramForoozan December 2017
  • 2.
    What is SoftwareTesting?  Software testing is a process of executing a program or application with the intent of finding The Software Bugs.  It can also be stated as the process of validating and verifying that a software program or application or product  Meets the business and technical requirements that guided it’s design and development  Works as expected  Can be implemented with the same characteristic
  • 3.
    Why is softwaretesting necessary?  because we all make mistakes.  It’s essential since it makes sure of the Customer’s reliability and their satisfaction in the application.  It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development.  It’s required to stay in the business.
  • 4.
    Bad Result OfNot Testing Explosion in :European Ariane 5 Cost :370 M $
  • 5.
    Bad Result OfNot Testing
  • 6.
    Types of DynamicTesting  Unit  Integration  System  Regression  UAT  Exploratory
  • 7.
    Unit testing  Unittesting is code-based and performed primarily by developers to demonstrate that their smallest pieces of executable code function suitably.  Unit tests ensure that code works as intended
  • 8.
    Why unit testing! Higher Quality  More flexibility  Easer Development (specially for newcomers)  Test Driven Development  Code Coverage represents the amount of the code covered by unit testing. Low Level Of Coverage Is the sign of trouble
  • 9.
    Code coverage  Codecoverage of 70-80% is a reasonable goal for system test of most projects with most coverage metrics.  Different Standard For Coverage are  The aviation standard DO-178B (100%)  IEC 61508 Electrical/Electronic/Programmable Electronic Safety(Highly Recommended)  FDA requirements for Medical Devices(100%)
  • 10.
  • 13.
    Integration testing  demonstratesthat two or more units or other integrations work together properly, and tends to focus on the interfaces specified in low-level design.
  • 15.
    System testing  demonstratesthat the system works end-to-end in a production-like environment to provide the business functions specified in the high-level design.  Test the software in the real environment in which it is to operate. (hardware,people,information,etc.)
  • 16.
    Types of SystemTesting  •Performance  Load Testing  •Stress  •Security  •Localization
  • 17.
    Performance Testing  ManyPrograms have specific performance or efficiency objectives like response time & throughput rates under certain workload & configurable conditions  To ensure that the system is responsive to user interaction and handles extreme loading without unacceptable operational degradation.
  • 18.
    Load Testing  N,the number of concurrent users  T, the number of on-line transactions per user per unit time  D, the data load processed by the server per transaction
  • 19.
    Stress Testing  InStress testing a considerable load is generated as quickly as possible in order to stress the application and analyze the maximum limit of concurrent users the application can support.
  • 20.
    Tests should answerthe following questions  Does the system degrade gently or does the server shut down?  Are appropriate messages displayed ? – Server not available.  Are certain functions discontinued as capacity reaches the 80 or 90 percent level?
  • 21.
    Regression Testing  RegressionTesting is the testing of software after a modification has been made to ensure the reliability of each software release.  Testing after changes have been made to ensure that changes did not introduce any new errors into the system.
  • 22.
    Acceptance testing  isconducted by business owners and users to confirm that the system does, in fact, meet their business requirements.
  • 23.
    What Is aTest Strategy? It provides a road map that describes the steps to be conducted as part of testing, when these steps are planned and then undertaken, and how much effort, time and resources will be required.
  • 24.
    Q & A Thankyou for coming.