Key Terms of Software Testing


Published on

The document provides a list of key terms in Software Testing as well as different types of testing. It serves as a quick reference to terms commonly used in the discipline.

Published in: Career, Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Key Terms of Software Testing

  1. 1. Career of a Software TesterKey Terms of Software TestingSoftware testing, like many other disciplines, has developed terminology to identifyimportant concepts. Each of the following definitions gives readers an overview onlyand should not be considered exhaustive. White-box testing is based on knowledge of the programming logic of the software to be tested. It uses the control structure of the procedural design to derive test cases. Black-box testing helps us test the functionality of software from the users perspective. It uses the functional requirements of the software as the input for designing test cases. Exhaustive black-box testing is not feasible. Equivalence partitioning is a black-box technique that helps us overcome the infeasibility of exhaustive black-box testing. This technique is based on the assumption that similar inputs invoke similar reaction. Therefore, instead of testing every input, the input domain is partitioned into equivalence classes such that each input belongs to only one class. Then, one or more test cases are designed for testing each class.Copyright © QAI Global | Page 1 of 4
  2. 2. Boundary Value Analysis (BVA) is a black-box technique that is based on the assumption that if software functions correctly for the boundary values, it will function as well for the values that lie in between. It helps us design test cases to focus on the edges of the equivalence classes. Unit testing ensures that each unit functions according to its specifications. The term, unit, denotes the smallest component of software design that can be specified and tested individually. Unit testing is performed using white-box techniques and requires knowledge of the internal structure of the unit. Typically, the programmer who codes the unit performs unit testing. During unit testing, drivers and stubs might be required to check the unit in isolation, without using superior or subordinate units. Integration testing is performed after unit testing. It focuses on the problems related to integration of units that function correctly when used individually. The two possible approaches for integration testing are the big-bang approach and incremental approach. In practice, the incremental approach used for integration could be a combination of these two categories. Often, drivers and stubs are used to simulate units that are not a part of an increment. System Testing is high-order testing that checks that the software meets customer requirements and that the software, along with other system elements, meets the functional, behavioral, and performance requirements. It uses black- box techniques and requires an outsider perspective.Copyright © QAI Global | Page 2 of 4
  3. 3. Recovery Testing: Recovery testing focuses on checking how well a system recovers from a failure. It involves tests in which the system is forced to fail in a variety of ways to check whether the system recovers properly from these failures. Security Testing: Security testing involves running tests that attempt at penetrating the security of the system under test. These tests simulate attempts made by potential hackers to obtain passwords illegally, attack systems to cause denial-of-service, cause system errors, browse confidential data, and execute unauthorized transactions. Stress Testing: Systems that function properly under normal conditions sometimes fail under stress. A stress condition is caused by an abnormally high demand on resources. The focus of the tester performing stress testing is to break down the system by subjecting it to stress. This is done to understand the highest level of stress the system can take and decide if this level is satisfactory. Usability Testing: A software system needs to be tested for its ease of use for new users and different classes of users performing various functions. Usability testing assesses how easy it is to use a system. It is often performed by observing users while they use the system. An environment is set up in which users work on the system without realizing they are being observed. Trained observers monitor how the users try out options and their mistakes and difficulties. Based on the results of usability testing, the features found to be not intuitive enough for use may be changed to make them more user-friendly.Copyright © QAI Global | Page 3 of 4
  4. 4. Performance Testing: Performance testing measures the run-time performance of a system under real-life conditions and in the target environment. It involves using instrumentation and logs to measure performance levels. It is often combined with stress testing to see how performance degrades as the load is increased. User Acceptance Testing (UAT): Tests that are conducted by users to make sure requirements are met is called UAT. Regression Testing: Regression testing is done to make sure the defect got fixed or not and also to make sure the fix didn’t introduce any new errors.Copyright © QAI Global | Page 4 of 4