Testing Document
V -Model of Testing
V - Model talks about lifecycle testing where corresponding to each of the development phase there
is a test associated with it. The checks/tests that happen when the development activities are going
on are in the form of reviews, inspections and walkthroughs. Also planning for Unit, Integration,
System & User acceptance tests are done. Also this helps in identifying the discrepancies earlier in
life cycle where it is easier and cheaper to fix the defects.
Types of Testing
Types of Testing
Functional Testing Non-Functional Testing
1. Functional Testing
Functional Testing refers to verifying if the module performs its intended functions in accordance
with the specification. The purpose is to ensure that the application behaves in a way it is expected
to behave E.g. data entry, Performance Testing
Unit Testing navigation, processing, o Stress Testing
Integration Testing retrieval and display o Volume Testing
Smoke/Sanity Testing based on requirements. o Load Testing
System Testing o Endurance Testing
Different types of
Regression Testing Compatibility Testing
functional testing are
User Acceptance Testing Data Conversion Testing
explained below:-
o Alpha Testing Security/Penetration Testing
o Beta Testing Unit Testing
Primary test performed Usability Testing
Globalization Testing
on software is the ‘Unit
Localization Testing Testing’ to see if a
standalone module is
working as per the requirements
This isolated testing provides four main benefits:
o Flexibility when changes are required.
o Facilitates integration
o Ensures documentation of the code
o Separation of interface from implementation
Integration Testing
Phase of software testing in which individual software modules are combined and tested as a group.
It follows unit testing and precedes system testing.
It takes the unit tested modules as input, groups them in larger aggregates, applies tests defined in
an Integration test plan and delivers as its output, the integrated system which is ready for system
testing.
Data transfer between the integrated modules is thoroughly tested
Three strategies of integration are
o Bottom-Up Strategy
o Top-Down Strategy
o Sandwich Strategy
Smoke Testing
This is a quick & non exhaustive test performed on the new version of the software to see whether it
is performing well enough to accept it for major testing. This test is used to validate if the major
functions of a piece of software work as intended.
Reasons, why a build could be rejected include
o Major functionalities are not working fine or missing
o Navigations are not appropriate
o Look and feel is not according to specification
System Testing
Black-box type testing that is based on overall system requirement specifications. It is carried on an
integrated system and end to end testing is carried out. . During system test execution phase,
defects that can only be exposed by testing the entire system are found
Regression Testing
Testing conducted for the purpose of evaluating whether or not a change (defect fix or
enhancement) to the system has introduced a new failure. This refers to continuous testing of an
application for each new build.
User Acceptance Testing
Acceptance testing is one of the last phases of testing which is typically done at the customer place.
Generally users of the system will perform these tests which ideally are derived from the User
Requirements Specification, to which the system should conform. The focus is on a final verification
of the required business function in a simulated environment which is very close to the real
environment. Idea is that if the software works as intended during the simulation of normal use, it
will work just the same in production. These tests are often used to enable the customer to
determine whether or not to accept a system. Planning for this should be done during the
requirement analysis phase, which will help to identify the gaps in requirements and to verify the
testability of the requirements. Acceptance testing will be carried out when the test team has
completed the System testing.
Types of UAT:-
Alpha Testing: Simulated or actual operational testing performed by end users
within a company but outside development group.
Beta Testing: Simulated or actual operational testing performed by a sub-set of
actual customers outside the company
Globalization Testing
To ensure that internationally localized versions do not have problems unique to language/currency
etc.
To validate whether application developed provide support for
o Multi-language
Check whether messages are accurate
UI objects in all languages reflects same meaning
o Multi-Currency
Localization Testing
Subset of globalization testing and checks for a particular locale
This test is based on the results of globalization testing, which verifies the functional support for that
particular culture/locale.
Can be executed only on the localized version of a product
2. Non-Functional Testing
Non-functional testing verifies if the application performs its intended functions as per the non-
functional requirements which could be performance, security, usability, compatibility etc.
Performance Testing
This testing is carried out to analyze/measure the behavior of the system in terms of time, stability
and scalability and the parameters generally used are response time, transaction rates etc. This is
done to verify whether the performance requirements have been achieved.
Performance testing is implemented and executed to profile and "tune" an application's
performance behaviors as a function of conditions such as workload or hardware configurations
Types of Performance Testing:
Load Testing
Load testing is defined as type of performance testing where performance of the
application is monitored when subjected to different loads. Load is referred to as the
number of users using the application. Load testing consists of simulating a real-time
workload conditions for the application under test
Stress Testing
Stress testing is conducted to evaluate a system or a component at or beyond the
limits of its specified requirements. Ideally, stress testing emulates the maximum
capacity the application can support before causing a system outage or disruption. It
ensures that the application which is tested for expected load, can withstand spikes
in load conditions (like increase in rate of transactions). Based on the results of
stress testing, system can be configured and fine-tuned for optimal performance.
Volume Testing
Volume testing is the testing where the system is subjected to large volume of data
to determine its point of failure. The main objective of volume testing is to find the
limitations of the software by processing large amount of data
Endurance Testing
Execute the test with expected user load sustained over longer period of time with
normal ramp up and ramp down
Compatibility Testing
Test to validate that the application functions the same way across different supported
o Hardware and software configurations
o Operating systems (OS)
o Web browsers
o Database types
Data Conversion Testing
The Data Conversion testing is done to validate the Conversion of the source data to the target data.
Data Conversion testing and implementation are practically inseparable. The Data Conversion testing
plan should be made to confirm the following
o Whether or not the source data type has been converted to the target data type?
o Is there any loss in the data?
o Is data integrity maintained?
Security/Penetration Testing
Security testing evaluates that an Information Systems maintains confidentiality, availability and
integrity of data. Security testing is performed to assess the sensitivity of the system against
unauthorized internal or external access. Testing is done to ensure that unauthorized persons are
not given access.
Usability Testing
In usability testing, software is evaluated for the easiness with which user can learn and use the
application. Essentially it means testing the software to ensure that it is ‘user friendly’ in nature.