Software Testing overview

Primary tabs

• Unit Testing.

The objective of unit testing is to identify coding errors and omissions in
the application components and modules. Unit testing helps in verifying
program design and coding to the specifications. Unit testing is the initial
phase of testing carried out on new and changed code before integration. The
scope of unit testing extends from the smallest constituent of a program such
a function to individual modules. Every phase of development has to include
unit testing be it new application or a change to existing code.

In order to carry out unit testing, the tester needs to have detailed
knowledge of requirements, application architecture, development environment,
design and good understanding the of code. As it is highly skilled activity,
the testers need to be technically competent to understand the code and carry
out exhaustive testing.

• Integration Testing

The purpose of integration testing is to verify the interfaces, communication
between sub-components and modules of the application and testing the basic
functionality of the unit-tested module/application. Integration testing scope
extends from individual module, where the sub-modules are tested to the entire
application where the constituent modules are tested. During code change,
integration testing will help analyze the impact of the change on other

The prerequisites for Integration testing are individual modules properly unit
tested, base lined test data for integration testing, design document,
definition of interfaces and communication channels between modules and
detailed test cases.

• System Testing.

The purpose of system testing is to verify the proper execution of the
application in its entirety and of the constituent modules. The applications
ability to interface with other applications (where ever necessary) is also
tested. From the project perspective System Testing carries prominence as it
this phase where the application is tested for functional and non-functional

Proper test data preparation and comprehensive test cases are the major
prerequisites for the system testing. A good understanding of requirements and
design of the application will aid the process of testing.

• Regression testing.

Regression testing is the phase of testing carried out over many cycles to
verify for introduced errors and repetitive defects due to change in code
during the phase of testing and defect elimination and during maintenance
phase. Though it is a common practice to automate regression testing, to speed
up the process, however regression testing can be carried out manually in some
cases where the process of automation is complex and the scale or duration of
the project is small.

Preliminary requirement for regression testing is well documented test cases
and test data. Regression testing contributes in a significant way to improve
the application quality especially in large projects spanning over long

• Test Automation.

In large scale testing projects involving many cycles of testing test
automation helps in speeding up the process of testing, with great deal of

Base lined data and stabilized requirements are the primary requirements for
test automation. Test automation helps in improving the quality of testing
with considerable saving of time, mainly in regression testing.

• Performance Testing.

The purpose of Performance testing is to verify that the system meets the
desired level of performance in production environment. Though performance
testing should be carried out on production environment, in many cases, a
simulated environment or a prototype is made use of.

Every application being tested for performance should have performance
criteria established. The performance criteria is normally specified by the
end user and will be amended by the designers taking into account any design
issues involved. Performance parameters such as transaction response time,
availability, number of simultaneous transactions etc… are measured.

• Stress Testing.

The intent of carrying out stress testing on the system is to verify the
system behavior with large number of transactions through the system (as
defined by the system requirements and design) in a defined period of time.
The performance characteristics of the system under maximum load and
sustainable load conditions are measured. Several parameters that affect the
system performance are the system configuration, processing capacity, network
bandwidth, disk space etc… are taken into consideration while performing the
test. Also the scalability of the application with load and with addition of
new modules will be tested.

• Security Testing.

With increasing number of companies opting to connect their legacy system with
Internet gateways, applications security at every stage of the system is
becoming an absolute necessity. Security testing services offered by GTC will
focus on testing applications for breach of security in terms of
authorization, authentication, data integrity and accessibility. The scope of
security testing is extended from web applications to legacy systems.

• Usability Testing.

Usability testing measures the ease of using the application. The purpose of
usability testing is to ensure the application is usable in practical
day-today scenario and is user friendly. Various aspects of the product such
as sequence and appearance of screens, the fonts used for and readability of
messages, jargon-free terminology, ease of understanding of the application,
the button and field labels etc… are taken into account while measuring the
usability of the application.

Usability is skilled activity requiring the testers to have adequate knowledge
of the domain and also to be aware of end user needs. A group of ambassador
users or a sample of the target user group as well as experts in the area of
Human Computer Interface can also conduct usability testing.

• Benchmarking

Benchmarking of an application is the comparison, measurement and
documentation of the candidate application against comparable products in the
same domain against defined parameters. Bench marking can also be done against
the same application on different platforms. Domain experts and sample of the
user groups that are targets of the application will carry out the activity of
bench marking.

• Acceptance Testing

Acceptance testing is the last phase of testing and also of the project life
cycle. Acceptance testing is carried out by a group of end users or ambassador
users, to verify the end to end functioning of the application to the required


marshamy0's picture

Once I originally commented I clicked the -Notify me when new comments are added- checkbox and now every time a comment is added I get four emails with the identical comment. Is there any manner you can remove me from that service? Thanks!
Viagra proviso