0% found this document useful (0 votes)
287 views34 pages

Various Types of Software Testings

This document discusses various types of software testing including acceptance testing, ad hoc testing, object-oriented testing, and web design testing. It then focuses on user acceptance testing, describing what it is, who performs it, why it is needed, how it relates to the V-model of software development, how it is performed through test planning, scenarios, cases, data preparation, execution, and results analysis. Finally, it discusses the differences between user acceptance testing and functional testing, as well as some common tools used for user acceptance testing.

Uploaded by

syed yaqub
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
287 views34 pages

Various Types of Software Testings

This document discusses various types of software testing including acceptance testing, ad hoc testing, object-oriented testing, and web design testing. It then focuses on user acceptance testing, describing what it is, who performs it, why it is needed, how it relates to the V-model of software development, how it is performed through test planning, scenarios, cases, data preparation, execution, and results analysis. Finally, it discusses the differences between user acceptance testing and functional testing, as well as some common tools used for user acceptance testing.

Uploaded by

syed yaqub
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 34

Various types of Software

Testings
Acceptance Testing
Ad hoc
Testing in OOP
Testing in Web designing
Metrics of testing
User Acceptance Testing
User acceptance is a type of testing performed by the
Client to certify the system with respect to the
requirements that was agreed upon.
This testing happens in the final phase of testing
before moving the software application to Market or
Production environment.
The main purpose of this testing is to validate the end
to end business flow.
It does NOT focus on the cosmetic errors, Spelling
mistakes or System testing.
This testing is carried out in separate testing
environment with production like data setup. It is a
kind of black box testing where two or more end users
will be involved.
What is Acceptance testing or User
Acceptance Testing (UAT)?
After the system test has corrected all or most
defects, the system will be delivered to the
user or customer forAcceptance
TestingorUser Acceptance Testing (UAT).
Acceptance tests are useful, because:
they capture user requirements in a directly
verifiable way,
they identify problems which unit or integration
tests might have missed,
and they provide an overview on how done the
system is.
Who Performs UAT
Client
End users
Need of User Acceptance Testing:
Once a software has undergone Unit, Integration and
System testing the need of Acceptance Testing may
seem redundant.But Acceptance Testing is
required because

Developers code software based on requirements


document which is their "own" understanding of the
requirements andmay not actually be what the
client needs from the software.
Requirements changes during the course of the
project may not be communicated effectively to the
developers.
Acceptance Testing and V-Model
In V-Model, User acceptance testing
corresponds to the requirement
phase of the Software Development
life cycle(SDLC).
How is UAT Performed
Prerequisites of User Acceptance Testing:
Following are the entry criteria for User Acceptance
Testing:
Business Requirements must be available.
Application Code should be fully developed
Unit Testing, Integration Testing & System Testing
should be completed
No High, Medium defects in System Integration
Test Phase
UAT Environment must be ready
Sign off mail or communication from System
Testing Team that the system is ready for UAT
execution
User Acceptance Testing Template:
User Acceptance Testing Process
UAT is done by the intended users of the system or
software. This testing usually happens at the client
location which is known as Beta Testing.
Once Entry criteria for UAT are satisfied, following
are the tasks need to be performed by the testers:
Analysis of Business Requirements
Creation of UAT test plan
Identify Test Scenarios
Create UAT Test Cases
Preparation of Test Data
(Production like Data)
Run the Test cases
Record the Results
Confirm business objectives
Analysis of Business Requirements
One of the most important activities in the UAT is to identify and develop test
scenarios. These test scenarios are derived from the following documents:
Business Use Cases
Process Flow Diagrams
Business Requirements Document(BRD)
System Requirements Specification(SRS)

Creation of UAT Plan:


The UAT test plan outlines the strategy that will be used to verify and ensure an
application meets its business requirements. It documents entry andexit
criteria for UAT, Test scenarios and test cases approach and timelines of
testing.

Identify Test Scenarios and Test Cases:


Identify the test scenarios with respect to high level business process and create
test cases with clear test steps. Test Cases should sufficiently cover most of the
UAT scenarios. Business Use cases are input for creating the test cases.

Preparation of Test Data:


It is best advisable to use live data for UAT. Data should be scrambled for privacy
andsecurityreasons. Tester should be familiar with the data base flow.
Run and record the results:
Execute test cases and report bugs if any. Re-test bugs once
fixed.Test Managementtools can used for execution.

Confirm Business Objectives met:


Business Analysts or UAT Testers needs to send a sign off mail after
the UAT testing. After sign-off the product is good to go for
production. Deliverables for UAT testing are Test Plan, UAT Scenarios
and Test Cases, Test Results and Defect Log

Exit criteria for UAT:


Before moving into production, following needs to be considered:
No critical defects open
Business process works satisfactorily
UAT Sign off meeting with all stakeholders
Types of User Acceptance Testing
Now that weve clearly separated
functional testing from User Acceptance
Testing, we can look at the various types
of User Acceptance Testing.
The following User Acceptance Testing
Types exist:
Alpha & Beta Testing
Contract Acceptance Testing
Regulation Acceptance Testing
Operational Acceptance Testing
Black Box Testing
Alpha & Beta Testing
Alpha Testingnormally takes place in the development
environment and is usually done by internal staff long before
the product is even released to external testers or customers.
Alpha Testing can also be done by potential user groups, but the
important thing here is that it takes place in the development
environment. The feedback collected from the alpha testers
is then used to fix certain issues or bugs and improve the
usability of the product.
Beta Testing, also known as field testing, takes place in the
customers environment and involves some extensive testing by
a group of customers who use the system in their environment.
These beta testers then provide feedback, which in turn leads to
improvements of the product.
Alpha and Beta Testing are done before the software is released
to all customers.
Contract Acceptance Testing
Contract Acceptance Testing means that a developed software
is tested against certain criteria and specifications which are
predefined and agreed upon in a contract. The relevant criteria
and specifications for acceptance must be defined when the
contract itself is defined and agreed upon.

Regulation Acceptance Testing


Regulation Acceptance Testing, also known as Compliance
Acceptance Testing, examines whether the software complies
with the regulations. This includes governmental and legal
regulations.

Operational acceptance testing


Also known asOperational Readiness
TestingorProduction Acceptance Testing, these test cases
ensure there are workflows in place to allow the software or
system to be used.
This should include workflows for backup plans, user training,
and various maintenance processes and security checks.
UAT Tools

There are several tools in the market used for User


acceptance testing and some are listed for reference:
Fitnesse tool: It isjavatool used as a testing
engine. It is easy to create tests and record results
in a table. Users of the tool enter the formatted
input and tests are created automatically. The tests
are then executed and output is returned back to
the user.
Watir: It is tool kit used to automate browser based
tests during User acceptance testing. Ruby is the
programming language used for inter process
communication between ruby and Internet explorer.
Usersnap
An easy-to-use bug tracking & feedback solution such asUsersnap helps a
lot when it comes to verifying if a certain solution works for the user. When it
comes to User Acceptance Testing, its less about functional requirements and
more about how the user perceives your product and if it works for the user.
By having a simple and easy-to-usefeedback widgetor any kind of
feedback form, users can provide comprehensive feedback on your software.
https://usersnap.com
engageuat
engageuat is a tool which lets you manage every aspect of User Acceptance
Testing. From creating test cases to actually conducting the tests to analyzing
the results. With engageuat everything is stored in one place. Definitely, give
them a try.
http://www.engageuat.com/
QASymphony
QASymphony calls itself a testing software for an agile world. Its a tool for
testing your software and conducting various acceptance tests.
The great thing about QASymphony is that it also integrates with commonly-
used issue and testing software, such as JIRA.
How is User Acceptance Testing (UAT) different
from functional testing?

User Acceptance Testsconsist of a set of test steps, which


verify if specific requirements are working for the user. If the
customer and the supplier agree on the product, the software
development is done. Legally. And practically.
Functional testing,on the other hand, tests specific
requirements and specifications of the software. It lacks the user
component. A functional test could conclude that the software
meets its specifications. However, it doesnt verify if it actually
works for the user. The functional dimension is only one of many.
Let me give you an example:A certain feature lets say, your
in-app search feature has some performance issues, and the
loading time of the results page is pretty bad. Technically, it
works. Every tester can use it but because of the bad
performance no one will want to. Functional tests would go well,
usability tests would go fine as well, but the performance
problems would probably lead to a failed acceptance test.
Functional testing tools:
There are several tools available in the market to
perform functional testing. They are explained as
follows:
Selenium- Popular Open Source Functional Testing Tool
QTP- user-friendly Functional Test tool by HP
JUnit- Used mainly forJavaapplications and this can be
used in Unit and system testing
soapUI- This is an open source functional testing tool,
mainly used for Web service testing. It supports
multiple protocols such HTTP, SOAP and JDBC.
Watir - This is functional testing tool for web
applications. It supports tests executed at the web
browser and uses ruby scripting language
What is Usability Testing?

Usability Testing is a type of software testing


where, a small set of target end-users, of a
software system, "use" it to expose usability
defects.
This testing mainly focuses on the user's ease to
use the application, flexibility in handling controls
and ability of the system to meet its objectives. It
is also called User Experience Testing.
This testing is recommended during the initial
design phase of SDLC, which gives more
visibility on the expectations of the users
Need for Usability Testing
Aesthetics and design are important. How well a product
looks usually determines how well it works.
There are many software applications / websites, which
miserably fail, once launched, due to following reasons -
Where do I click next?
Which page needs to be navigated?
Which Icon represents what?
Error messages are not consistent or effectively displayed
Session time not sufficient.
Usability Testing identifies usability errors in the
system early in development cycle and can save a
product from failure.
Goals of Usability Testing
Goal of this testing is to satisfy users and it mainly concentrates on the
following parameters of a system:
Effectiveness of the system
Is the system is easy to learn?
Is the system useful and adds value to the target audience?
Is Content, Color, Icons, Images used are aesthetically pleasing ?
Efficiency
Navigation required to reach desired screen/webpage should be very
less. Scroll bars shouldn't be used frequently.
Uniformity in theformatof screen/pages in your application/website.
Provision to search within your software application or website
Accuracy
No outdated or incorrect data like contact information/address should
be present.
No broken links should be present.
User Friendliness
Controls used should be self-explanatory and must not require training
to operate
Help should be provided for the users to understand the application /
website
Alignment with above goals helps in effective usability testing
What is Ad-hoc testing? Types, Advantages and
Disadvantages

The meaning of word Ad-hoc is something which


is not in order or not organised or unstructured.
In the similar note the Ad-hoc testing is nothing
but a type ofblack box testing or
behavioural testing which is carried out
without following any formal process like
requirement documents,test plan, test cases,
etc.
Similarly while executing the ad-hoc testing
there is NO formal process of testing which can
be documented.
Ad-hoc testing is usually done to discover
the issues ordefectswhich cannot be
found by following the formal process.
The testers who perform this testing should
have a very good and in-depth knowledge
of the product or application.
When testers execute ad-hoc testing they
only intend to break the system without
following any process or without having
any particular use case in mind.
Characteristics of Ad-hoc testing

Ad-hoc testing is done after the completion of the


formal testing on the application or product.
This testing is performed with the aim to break
the application without following any process.
The testers executing the ad-hoc testing should
have thorough knowledge on the product.
The bugs found during ad-hoc testing exposes
the loopholes of the testing process followed.
Ad-hoc testing can be executed only once until
and unless a defect is found which
requiresretesting.
Types of Ad-hoc testing
Basically there are three types of Ad-hoc testing. They are:
Buddy testing:This type of testing is done by the developer
and the tester who are responsible for that particular module
delivery. In this type of testing the developer and tester will sit
together and work on that particular module in order to avoid
from building the invalid scenarios which also in other hand help
the tester from reporting the invalid defects.
Pair testing:In this type of testing two testers work together on
one module. They basically divide the testing scenarios between
them. The aim of this type of testing is to come up with maximum
testing scenarios so that the entire module should have
completetest coverage. Post testing the entire module together
they can also document their test scenarios and observations.
Monkey testing:In this type of testing some random tests are
executed with some random data with the aim of breaking the
system. This testing helps us to discover some new bugs which
might not be caught earlier.
Advantages or benefits of Ad-hoc testing:

Ad-hoc testing gives freedom to the tester to apply their own new
ways of testing the application which helps them to find out more
number of defects compared to the formal testing process.
This type of testing can be done at anytime anywhere in
theSoftware Development Life cycle (SDLC) without following
any formal process.
This type of testing is not only limited to the testing team but this
can also be done by the developer while developing their module
which helps them to code in a better way.
Ad-hoc testing proves to be very beneficial when there is less time
and in-depth testing of the feature is required. This helps in
delivering the feature withqualityand on time.
Ad-hoc testing can be simultaneously executed with the other
types of testing which helps in finding more bugs in lesser time.
In this type of testing the documentation is not necessary which
helps the tester to do the focused testing of the feature or
application without worrying about the formal documentation.
Disadvantages of Ad-hoc
testing
Since ad-hoc testing is done without any
planning and in unstructured way so recreation
of bugs sometime becomes a big trouble.
The test scenarios executed during the ad-hoc
testing are not documented so the tester has to
keep all the scenarios in their mind which
he/she might not be able to recollect in future.
Ad-hoc testing is very much dependent on the
skilled tester who has thorough knowledge of
the product it cannot be done by any new joiner
of the team.
Best practices while executing ad-
hoc testing
If ad-hoc testing is not executed in the proper
manner then it can result in total loss of time and
effort. Below are few pointers to keep in mind as
where and how to apply this ad-hoc testing:
Good knowledge on the product:
The tester who is going to execute the ad-hoc
testing should have a very good knowledge of the
product. He should be very well aware with all the
features in the product. This helps the tester
inerror guessingand finding the maximum
number of bugs from the defect prone areas.
Prioritizing feature:
When ad-hoc testing is to be done for the multiple features
then the testers should first categorize and prioritize the
features. Features which are highly used by the customers
should be tested first so that if any priority bug exists in the
feature can be reported and fixed early.
Rough planning:
Although there is no need of any documentation in ad-hoc
testing as stated earlier but noting down the pointers to be
tested during this testing will help the tester to remember all
the possible areas for testing. This helps in having the
maximum test coverage in lesser time.
Usage of Tools:
Sometimes during testing there are bugs or exceptions found
in logs which are not seen in the UI or which is not obstructing
the testing in any way. Such kind of bugs can also be of high
severity. In order to catch such kind of bugs or exceptions we
need to use tools like debuggers, profilers or task monitors.
Documentation of observations:
Even though the ad-hoc testing does not support
documentation but its always better to write a note in brief
about your testing, findings, deviations. If defects are found
then the relevant test case should be created so that it will
help the tester to retest the scenario in future.

You might also like