Key Terms of Software Testing1. Career of a Software Tester
Key Terms of Software Testing
Software testing, like many other disciplines, has developed terminology to identify
important concepts. Each of the following definitions gives readers an overview only
and 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. 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. 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. 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