Software Testing: Types of System Testing and Acceptance Testing, Lecture notes of Software Engineering

Various types of system testing including usability testing, load testing, regression testing, recovery testing, migration testing, functional testing, hardware/software testing, and security testing. It also covers acceptance testing and its different forms such as contract acceptance testing, user acceptance testing, operational acceptance testing, and field testing (alpha and beta testing). The document emphasizes the importance of testing in ensuring software functionality and compliance with business requirements.

Typology: Lecture notes

2020/2021

Uploaded on 07/03/2021

muhammad-haris-15
muhammad-haris-15 🇵🇰

6 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Chapter 3: Testing in Software Life Cycle
Software Testing
Lecture 6
Generic Testing Types
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Software Testing: Types of System Testing and Acceptance Testing and more Lecture notes Software Engineering in PDF only on Docsity!

Chapter 3: Testing in Software Life Cycle

Software Testing

Lecture 6

Generic Testing Types

Agenda for today Remaining Levels of Testing System Testing Different Types of System Testing Acceptance Testing Acceptance Testing different Forms Generic Types of Testing Functional Testing Non-functional Testing Testing of Software Structure Testing related to changes and regression testing

Different Types of System Testing

  • Usability Testing - Focuses on the user's ease to use the application
  • Load Testing – Checks software solution will perform under real-life loads.
  • Regression Testing- - Changes made over the course of the development process have caused new bugs
  • Recovery Testing - Software solution is reliable
  • Migration Testing - Software can be moved from older system infrastructures to current system infrastructures without any issues.
  • Functional Testing - To make sure that functionality of the product is working as per the requirements defined
  • Hardware/Software Testing - Check interaction of software and hardware are they working fine.
  • (^) Security Testing: Check system does not allow unauthorize access

What Types of System Testing Should Testers Use? Specific types used by a tester depend on several variables. Those variables include:

  • (^) Who the tester works for
  • (^) Time available for testing
  • Resources available to the tester
  • (^) Software Tester's Education
  • (^) Testing Budget

Forms of Acceptance Testing There are various forms of acceptance testing:

  • Contract acceptance Testing
    • Based on criteria and specifications which are predefined and agreed upon in a contract.
  • (^) User acceptance Testing
    • Testing a software by the user/client to determine whether it can be accepted or not first organization employees test software
  • (^) Operational acceptance Testing - Testing assures the acceptance of the system by the system administrators.
  • Field Testing (alpha and beta testing) - Alpha Testing takes place in development environment
  • Beta Testing takes place in customer’s enviornement

Generic Types of Testing The following types of testing can be distinguished:

  • Functional Testing
    • describe the functionality of the software system
  • (^) Non functional testing
    • describe the behaviour of the software system etc
  • (^) Testing of software structure
    • objective is to design and run enough test cases to completely cover all structural items.
  • Testing related to changes and regression testing
    • When changes are implemented, parts of the existing software are changed so regression testing may be performed.

Functional Testing Five steps need to be keeping in mind for functional testing:

  1. Preparation of test data based on the specifications of functions
  2. Business requirements are the inputs to functional testing
  3. Based on functional specifications find out of output of the functions
  4. The execution of test cases
  5. Observe the actual and expected outputs

Non Functional Testing

  • Emphasizes the behaviour of the product and not the functionality
  • (^) Non functional testing will answer How.
  • (^) It increases the ease of use, efficiency, maintainability, and portability of the product.
  • It helps reducing production risk and the cost associated with non- functional aspects of the product.
  • Optimize the way the product is installed, configured, executed, managed and monitored.
  • Improve and enhance the knowledge of the behaviour of the product and its uses.
  • Example: Website to pay utility bills (application security, page loading)

Testing Related to Changes and Regression Testing

  • (^) When changes are implemented, parts of the existing software are changed or new modules are added
  • (^) Regression Testing is nothing but a full or partial selection of already executed test cases which are re-executed to ensure existing functionalities work fine.
  • How much retest and regression test?
  1. Rerunning of all the tests that have detected failures whose reasons have been fixed in the new software release
  2. Testing of all program parts that were changed or corrected
  3. Testing of all program parts or elements that were newly integrated Testing of the whole system

Selection of regression test cases

  • (^) Repeating only the high-priority tests according to the test plan
  • (^) In the functional test, omitting certain variations (special cases)
  • (^) Restricting the tests to certain configurations only
  • (^) Restricting the test to certain subsystems or test levels