1 Software Testing (Part-II) Lecture 13
2 Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and Validating if the software is working as it is intended to be working. Testing may be viewed as an important part of the SQA process. Testing can be done by software testers.
3 Testing Methods (1) Black Box Testing:- It treats the software as black box without any understanding of internal behavior. It aims to test the functionality according to the requirements. (2) White Box Testing:- In this, tester has access to the internal data structures, code and algorithms.
4 Types of Testing Unit Testing Integration Testing Functionality Testing Usability Testing System testing Performance Testing Load Testing
5 Unit Testing Unit Testing is a test that validates the individual units of source code are working properly. A Unit is the smallest testable part of an application. The goal of Unit Testing is to isolate each part of the program and show that the individual parts are correct.
6 Integration Testing Integration Testing is the phase of a software testing in which individual software modules are combined and tested as a group. The purpose of this testing is to verify performance and reliability of the product.
7 Functionality Testing Functionality Testing is employed to verify whether your product meets the intended specification and functionality requirements. It helps to provide the products with a minimum amount of issues to an increasing sophisticated pool of end users.
8 Usability Testing Usability Testing is a technique used to evaluate a product by testing it on users. It involves direct input on how real user use the system. It focuses on measuring a human-made product’s capacity to meet its intended purpose.
9 System Testing System Testing is conducted on a complete, integrated system to evaluate the system’s complain with its specified requirements. It should not require the knowledge of inner design of code or logic. It is performed on the entire system.
10 Performance Testing Performance Testing is the testing that is performed, from one prospective, to determine how fast some aspect of a system performs under a particular workload. It covers a broad range of engineering or functional evaluations. It is used to determine speed or effectiveness of a software
11 Load Testing Load Testing is generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program services concurrently. As such, this testing is most relevant to the multi-users systems, often one built using a client/server model, such as web servers.
12 Testing Life Cycle Test Planning Test Analysis Test Design Construction & Verification Testing Cycles Final Testing & Implementation
13 Test Planning This is the phase where project manager has to decide what things need to be tested, do I have sufficient budget etc. Naturally proper planning at this stage would greatly reduce the risk of low quality software.
14 Test Analysis Once test plan is made and decided upon, next step is to delve little more into the project and decide what type of testing should be carried out at different set of stages of SDLC, do we need or plan to automate, what type of documentation need for testing.
15 Test Design Test Plans and Cases which were developed in the analysis phase are revised. In this stage risk assessment criteria is developed. Test data is prepared.
16 Construction & Verification In this phase we have to complete all the test plan, test cases, complete the scripting of the automated test cases, stress and performance testing plans needs to be completed. We have to support the development team in their unit testing phase. And obviously bug reporting would be done as when the bugs are found.
17 Testing Cycles In this phase we have to complete the testing cycles until test cases are executed without errors or a predefined condition is reached. Run test cases Report Bugs revise test cases (if any) add new test cases (if needed) bug fixing retesting
18 Final Testing and Implementation In this phase we have to execute remaining test cases, documentation for testing is completed / updated. Acceptance, recovery and load testing will also be conducted and the application needs to be verified under production conditions.