Software testing
Introduced to: Dr. Bilal Owaidat
Prepared by: Sara Shall
Date: 27/2/2017
Outline
• What is software testing?
• Why we need software testing?
• Types of software testing.
• Software testing lifecycle.
• Regression Testing.
• Unit Testing.
• Distributed Testing.
• Software testing in the cloud.
What is software testing?
• Software testing is a method of assessing the
functionality of a software program.
Why we need software
testing?
1. To deliver the best application we can.
2.To test compatibility.
Why we need software
testing?
3. To make sure that your website is always up and running.
4.To ensure that what we create does what it’s supposed to do.
Software testing lifecycle(STLC)
Software testing lifecycle(STLC)
• Requirements/design review:
In case of confusion
Software testing lifecycle(STLC)
• Test planning:
In this phase the QA manager prepare the Test
Plan and Test strategy documents.
• Test Case Development:
Software testing lifecycle(STLC)
Verification of Creation of
• Environment Setup:
This phase includes the setup or installation process of software and
hardware which is required for testing the application.
Software testing lifecycle(STLC)
• Test Execution:
In Test Execution phase the test cases are executed in the
testing environment.
Software testing lifecycle(STLC)
• Test Cycle Closure:
In Test Cycle phase the QA team will meet and discuss
about the testing artifacts.
Software testing lifecycle(STLC)
Types of software testing
Acceptance testing
Load testing
Stress testing
Performance testing
Usability testing
Install/uninstall testing
Recovery testing
Security testing
Compatibility testing
Comparison testing
Alpha testing
Beta testing
System testing
Integration testing
Acceptance testing
Software testing levels
Unit Testing
• Unit testing is a method by which individual units of
source code are tested to determine if they are fit for
use.
Unit Testing
• Types of testing:
Unit Testing
• Unit testing is supported by frameworks which are available
in different programming languages( JUnit , Google test
framework).
• The main elements of a unit framework:
 Test case.
 Test suite.
 Test fixture.
 Test result.
Unit Testing
Integration testing
• Integration testing is executed to establish whether the
components interact with each other consort to the
specification or not.
• Types of Integration Testing:
1)Top-Down Integration Testing
2) Bottom-Up Integration Testing
System testing
• System testing is the type of testing to check the
behavior of a complete and fully integrated software
product based on the software requirements
specification (SRS) document.
Acceptance testing
• Acceptance testing: Formal testing with respect to user
needs, requirements, and business processes
conducted to determine whether or not a system
satisfies the acceptance criteria and to enable the user,
customers or other authorized entity to determine
whether or not to accept the system.(Definition by
ISTQB)
• It is basically done by the user or customer .
Regression Testing
• What is Regression Testing?
It is a test that is made after any modification or update
occurs to the software to ensure that the existing
functionality is intact or not and that system update does
not re-introduce errors.
Regression Testing
Given program P, its modified version P’, and a test set T
that was used to previously test P, find a way to utilize T
to gain sufficient confidence in the correctness of P’
Regression testing is used when:
• Any new feature is added
• Any enhancement is done
• Any bug is fixed
• Any performance related issue is fixed
Regression Testing
• Regression Techniques:
Regression Testing
• Regression process:
Regression Testing
Software testing in the Cloud
• Cloud testing is migrating testing to the cloud in which
reduce the execution time for regression testing.
• Benefits:
1. virtualized hardware.
2. Unlimited storage.
3. Software services that help in reducing the execution
time.
Cloud testing & the supported types:
Software testing in the Cloud
• SMART-T:
The decision of whether or not to migrate software testing
to the cloud depending on three issues:
• the business drivers outlined
• the technical factors
• the operational results
Software testing in the Cloud
SMART-T
Software testing in the Cloud
• Hadoop: is a framework free and open source written in Java to facilitate
the creation of applications distributed and scalable for applications to work
with thousands of nodes and petabytes of data.
• The cloud enables organizations to deploy
Hadoop without acquiring hardware or
expertise.
• Vendors with a cloud offer include:
Microsoft, Amazon, IBM 9 and Google.
• Thank you

software testing

  • 1.
    Software testing Introduced to:Dr. Bilal Owaidat Prepared by: Sara Shall Date: 27/2/2017
  • 2.
    Outline • What issoftware testing? • Why we need software testing? • Types of software testing. • Software testing lifecycle. • Regression Testing. • Unit Testing. • Distributed Testing. • Software testing in the cloud.
  • 3.
    What is softwaretesting? • Software testing is a method of assessing the functionality of a software program.
  • 4.
    Why we needsoftware testing? 1. To deliver the best application we can. 2.To test compatibility.
  • 5.
    Why we needsoftware testing? 3. To make sure that your website is always up and running. 4.To ensure that what we create does what it’s supposed to do.
  • 6.
  • 7.
    Software testing lifecycle(STLC) •Requirements/design review: In case of confusion
  • 8.
    Software testing lifecycle(STLC) •Test planning: In this phase the QA manager prepare the Test Plan and Test strategy documents.
  • 9.
    • Test CaseDevelopment: Software testing lifecycle(STLC) Verification of Creation of
  • 10.
    • Environment Setup: Thisphase includes the setup or installation process of software and hardware which is required for testing the application. Software testing lifecycle(STLC)
  • 11.
    • Test Execution: InTest Execution phase the test cases are executed in the testing environment. Software testing lifecycle(STLC)
  • 12.
    • Test CycleClosure: In Test Cycle phase the QA team will meet and discuss about the testing artifacts. Software testing lifecycle(STLC)
  • 13.
    Types of softwaretesting Acceptance testing Load testing Stress testing Performance testing Usability testing Install/uninstall testing Recovery testing Security testing Compatibility testing Comparison testing Alpha testing Beta testing System testing Integration testing Acceptance testing
  • 14.
  • 15.
    Unit Testing • Unittesting is a method by which individual units of source code are tested to determine if they are fit for use.
  • 16.
  • 17.
    • Types oftesting: Unit Testing
  • 18.
    • Unit testingis supported by frameworks which are available in different programming languages( JUnit , Google test framework). • The main elements of a unit framework:  Test case.  Test suite.  Test fixture.  Test result. Unit Testing
  • 19.
    Integration testing • Integrationtesting is executed to establish whether the components interact with each other consort to the specification or not. • Types of Integration Testing: 1)Top-Down Integration Testing 2) Bottom-Up Integration Testing
  • 20.
    System testing • Systemtesting is the type of testing to check the behavior of a complete and fully integrated software product based on the software requirements specification (SRS) document.
  • 21.
    Acceptance testing • Acceptancetesting: Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.(Definition by ISTQB) • It is basically done by the user or customer .
  • 22.
    Regression Testing • Whatis Regression Testing? It is a test that is made after any modification or update occurs to the software to ensure that the existing functionality is intact or not and that system update does not re-introduce errors.
  • 23.
    Regression Testing Given programP, its modified version P’, and a test set T that was used to previously test P, find a way to utilize T to gain sufficient confidence in the correctness of P’
  • 24.
    Regression testing isused when: • Any new feature is added • Any enhancement is done • Any bug is fixed • Any performance related issue is fixed Regression Testing
  • 25.
  • 26.
  • 28.
    Software testing inthe Cloud • Cloud testing is migrating testing to the cloud in which reduce the execution time for regression testing. • Benefits: 1. virtualized hardware. 2. Unlimited storage. 3. Software services that help in reducing the execution time.
  • 29.
    Cloud testing &the supported types: Software testing in the Cloud
  • 30.
    • SMART-T: The decisionof whether or not to migrate software testing to the cloud depending on three issues: • the business drivers outlined • the technical factors • the operational results Software testing in the Cloud
  • 31.
  • 32.
    Software testing inthe Cloud • Hadoop: is a framework free and open source written in Java to facilitate the creation of applications distributed and scalable for applications to work with thousands of nodes and petabytes of data. • The cloud enables organizations to deploy Hadoop without acquiring hardware or expertise. • Vendors with a cloud offer include: Microsoft, Amazon, IBM 9 and Google.
  • 33.

Editor's Notes

  • #7 Software Testing Life Cycle (STLC) defines the steps/ stages/ phases in testing of software. However, there is no fixed standard STLC in the world and it basically varies
  • #8 In this phase testing team goes through the Requirement document with both Functional and non-functional details in order to identify the testable requirements. In case of any confusion the QA team may setup a meeting with the clients and the stakeholders
  • #9 Test Planning phase starts soon after the completion of the Requirement Analysis phase. In this phase the QA manager or QA Lead will prepare the Test Plan and Test strategy documents. As per these documents they will also come up with the testing effort estimations.
  • #13 The whole intent of this discussion is to learn lessons from the bad practices. This will help in future projects. To evaluate the test completion on the basis of Test Coverage and Software Quality Documentation of the learning from the project Analyzing the test results to find out the distribution of severe defects Test Closure Report preparation
  • #17 Unit testing is often called “developer’s testing” because developers are responsible for creating, maintaining and executing the test cases. Its main focus is on the implementation of the unit being tested.
  • #18 Black- box testing: application interface and input/output description White-box testing: function executed Gray-box testing: test cases and test methods
  • #19 Test case : the are a java class contains one or more test methods Test suite:is an aggregation of one or more test cases. Multiple test cases can run as a whole through a Test suite. Test fixture: in an enviroment for initializing variables and creating objects. Test result: a test may pass, fail, or have an error.
  • #20 Integration testing in large refers to joining all the components resulting in the complete system. It is further performed by the developer or the software Tester or by both. Example- checking that a Payroll system interacts as required with the Human Resource system. Top-Down Integration Testing: Top Down Integration as the term suggests, starts always at the top of the program hierarchy and travels towards its branches. This can be done in either depth-first or breadth-first. Bottom-Up Integration Testing: Bottom –Up integration as it name implies starts at the lowest level in the program structure
  • #26 Reset All: this method use all the test cases that have been Developed before and any new Test cases that are needed Once the program is modified. Regression Test Selection : this method selects part of the test suit to be run. Prioritization of Test Cases: this method Prioritize test cases depending on impact , critical & frequently used functionalities.
  • #27 Test revalidation refers to the task of checking which tests for P remain valid for P’.  Test selection refers to the identification of tests that traverse the modified portions in P’.  Test minimization refers to the removal of tests that are seemingly redundant with respect to some criteria.  Test prioritization refers to the task of prioritizing tests based on certain criteria.
  • #31 Why Migrate to the Cloud(Sect. 2.2) (When to Migrate to the Cloud (How to Migrate to the Cloud