You are on page 1of 5

CalSoft Pvt. Ltd.

Software Testing - Definition

Software Testing Definitions


Contents
Software Testing Definitions................................................................................ 1
Introduction........................................................................................................... 2
Verification & Validation......................................................................................... 2
Types of Testing..................................................................................................... 2
Unit Testing:........................................................................................................ 2
Integration Testing:............................................................................................. 2
Regression Testing:............................................................................................. 3
Functional/System Testing:................................................................................. 3
Acceptance Testing:............................................................................................ 3
Performance Testing:.......................................................................................... 4
User Interface Testing:........................................................................................ 4
Usability Testing:................................................................................................ 4
Soak Testing:...................................................................................................... 5
Build Verification testing (BVT)/Smoke/Sanity Testing:.......................................5

CALSOFT Pvt Ltd.


Page 1 of 5
Confidential For Authorized Use Only
This document contains confidential information and is for the sole use of Calsoft. Unauthorized
distribution of this document without prior consent of Calsoft is subjected to legal action per laws.

CalSoft Pvt. Ltd.

Software Testing - Definition

Introduction
Software testing involves performing developed codes verification & validation.
In this process there are various types of testing that the product needs to pass
through in order to consider it shippable.

Verification & Validation


The difference between Verification & Validation is:

Are we building the right product?


Are we building the product right?

Validation is a process of evaluating a system or component during or at the


end of the development process to determine whether it satisfies specified
requirements. Are we building the right product?
Verification is the process of evaluating a system or component to determine
whether the products of a given development phase satisfy the conditions
imposed at the start of that phase. Are we building the product right?

Types of Testing
Unit Testing:

Testing of individual hardware or software units or groups of related


units.
Done by programmer(s).
Generally all white box.
Automation desirable for repeatability.

Example: Testing to verify that modification of existing code does not


generate invalid output that usually is input to one or more other modules
in the system.

Integration Testing:

Testing in which software components, hardware components, or both


are combined and tested to evaluate the interaction between them.
Done by programmer as they integrate their code into code base.
Generally white box, maybe some black box.
Automation desirable for repeatability.

Example: Testing to verify that logging module integration with the Event
generation module works together as a complete system.
CALSOFT Pvt Ltd.
Page 2 of 5
Confidential For Authorized Use Only
This document contains confidential information and is for the sole use of Calsoft. Unauthorized
distribution of this document without prior consent of Calsoft is subjected to legal action per laws.

CalSoft Pvt. Ltd.

Software Testing - Definition

Regression Testing:

Regression testing is selective re-testing of a system or component to


verify that modifications have not caused unintended effects and that
the system or component still complies with its specified requirements.
Smoke test group of test cases that establish that the system is stable
and all major functionality is present and works under normal
conditions.

Example: Testing to verify that a change made in email module does not
impact the system event generation module.
Usually carried out whenever there is a major change made to the
dependent or legacy features/functions of a product. The entire regression
test suite can be executed after every such change to verify that no legacy
or dependent feature develops newer issues due to the code change.
More usually, a sub-set of the test suite is identified to execute it around
the fix that is made in the code & only that area is regressed to find any
newer issues.

Functional/System Testing:

Testing conducted on a complete, integrated system to evaluate the


system compliance with its specified requirements.
Stress testing, performance testing, and usability testing.
It is recommended that this be done by external test group.
Mostly black box so that testing is not corrupted by too much
knowledge.
Test automation desirable

Example: Testing to verify if the system can create 100 objects in the
backend database can be considered as System or functional testing.
Usually all the developed components are involved & end-to-end testing of
the complete product is carried out on different OS platforms or hardware.

Acceptance Testing:

Formal testing conducted to determine whether or not a system


satisfies its acceptance criteria (the criteria the system must satisfy to
be accepted by a customer) and to enable the customer to determine
whether or not to accept the system
Generally done by customer/customer representative in their
environment

Example: Testing to verify that the software when configured in customer


environment produces desired outcome & produces no fault/error in
normal circumstances.
CALSOFT Pvt Ltd.
Page 3 of 5
Confidential For Authorized Use Only
This document contains confidential information and is for the sole use of Calsoft. Unauthorized
distribution of this document without prior consent of Calsoft is subjected to legal action per laws.

CalSoft Pvt. Ltd.

Software Testing - Definition

This testing is usually performed by the customer with help from


outsourced team. Any bugs found during this phase is fixed on need &
severity (Use case affected) basis & a new build is provided to customer to
continue further acceptance.

Performance Testing:

Check quality attributes of the software product like Stability,


Reliability/Robustness and Availability.
It is non-functional testing, it tests how well the software code works in
anticipated and peak workloads.
Load testing, Stress testing, Soak testing & Configuration testing are
considered as part of performance testing.

Example: Testing to verify the throughput of a Storage sub-system when


subjected to upper limits of the software/hardware.
Finding the Megabytes per second throughput or IO (Input/Output)
delivered per second by the software/hardware can be considered as
parameters that are recorded during this type of testing.

User Interface Testing:

Validating the output generated by various interfaces exposed by


the software such as Command line interface (CLI), Graphical User
Interface (GUI) and Application Programming interface (API).
CLI command syntax & error validation, GUI workflow, buttons,
options, menu action validation, API syntax & error validation.

Example: Testing to validate that the CLI command/sub-command


along with its parameter options accept valid values & generates error
when provided with invalid values.
Testing the graphical elements such as layout of page, wizards,
buttons, textual contents, images, flow, icons, error messages & its
usability are tested as part of UI testing.

Usability Testing:

Understanding how user-friendly the software is so as to measure


the comfort level of the users when working with the software.
Collecting the feedback of users & identifying means to improve the
usability of the software.

Example: Using a Wizard in an object creation/modification such that


user does not need to remember what valid values to input or range of
value acceptable by the product, due to intuitiveness of the wizard.

CALSOFT Pvt Ltd.


Page 4 of 5
Confidential For Authorized Use Only
This document contains confidential information and is for the sole use of Calsoft. Unauthorized
distribution of this document without prior consent of Calsoft is subjected to legal action per laws.

CalSoft Pvt. Ltd.

Software Testing - Definition

Placement of buttons, labels, titles, scrolling controls, forward/backward


navigation, checkbox/radio buttons, drop-down/list boxes can all be
considered as part of usability testing, error messages/codes.

Soak Testing:

This is a type of non-functional & part of performance testing where


the software is subjected to load for a significant amount of time.
Days, weeks or even months.
This types of testing finds errors in the code that results in
degeneration of the software performance with continued usage.
Majorly done on hardware or appliance those are required to keep
running for weeks/months/years non-disrupted.

Example: Soaking a storage appliance for a prolonged period of 14-21


days using the Beta code or Release candidate code to gauge the
system stability while applying load under boundary conditions &
measuring the various parameters such as Memory use, CPU use,
bandwidth & throughput of the system, etc.

Build Verification testing (BVT)/Smoke/Sanity Testing:

This type of testing is carried out mostly by testers or developers on


the software before it is accepted by the tester community to
perform more rigorous/detailed testing later.
Check the stability of all major functions integrated together.
Intention is to find a showstopper defect that can prevent detailed
testing of the software code.

Example: Build verification test carried out on builds generated


overnight using an automated test harness before releasing the build
for detailed testing to the Test Team.
Sanity or BVT is carried out on all builds that are released or to be
released to QA team. A sub-set of tests corresponding to all
functionality developed till date is used as a Sanity Test suite. Its
preferable to automate the sanity testing as it is a repetitive task that
is performed daily or whenever a new build is made available.
Sanity Test Suite needs to be updated as & when new features are
code complete & integrated with code base.

CALSOFT Pvt Ltd.


Page 5 of 5
Confidential For Authorized Use Only
This document contains confidential information and is for the sole use of Calsoft. Unauthorized
distribution of this document without prior consent of Calsoft is subjected to legal action per laws.

You might also like