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:
- Preparation of test data based on the specifications of functions
- Business requirements are the inputs to functional testing
- Based on functional specifications find out of output of the functions
- The execution of test cases
- 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?
- Rerunning of all the tests that have detected failures whose reasons have been fixed in the new software release
- Testing of all program parts that were changed or corrected
- 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