Manual Testing Tutorial for Beginners
What is Manual testing?
Manual Testing is a type of Software Testing where Testers manually execute
test cases without using any automation tools.
Manual Testing is the most primitive of all testing types and helps find bugs in the
software system.
Any new application must be manually tested before its testing can be
automated. Manual Testing requires more effort, but is necessary to
check automation feasibility.
Manual Testing does not require knowledge of any testing tool.
One of the Software Testing Fundamental is "100% Automation is not
possible".
This makes Manual Testing imperative.
Please be patient. The Video will load in some time. If you still face issue viewing
video click here
Goal of Manual Testing
The key concept of manual testing is to ensure that the application is error
free and it is working in conformance to the specified functional
requirements.
Test Suites or cases ,are designed during the testing phase and should have
100% test coverage.
It also makes sure that reported defects are fixed by developers and re-testing
has been performed by testers on the fixed defects.
Basically, this testing checks the quality of the system and delivers bug-free
product to the customer.
Types of Manual Testing :
Below given diagram depicts Manual Testing Types. In fact any type of software
testing type can be executed both manually as well using an automation tool.
Myths of Manual Testing
Following are few common myths and facts related to testing:
Myth: Anyone can do manual testing
Fact: Testing requires many skill sets
Myth: Testing ensures 100% Defect free product
Fact: Testing attempts to find as many defects as possible. Identifying all possible
defects is impossible.
Myth: Automated testing is more powerful than manual testing
Fact: 100% test automation cannot be done. Manual Testing is also essential.
Myth: Testing is easy
Fact: Testing can be extremely challenging .Testing an application for possible
use cases with minimum test cases requires high analytical skills.
Manual Testing vs Automation Testing
Manual Testing Automated Testing
Manual testing requires human intervention Automation Testing is use of tools to
for test execution. execute test cases
Manual testing will require skilled labour, Automation Testing saves time, cost and
long time & will imply high costs. manpower. Once recorded, it's easier to run
an automated test suite
Any type of application can be tested Automated testing is recommended only for
manually, certain testing types like ad-hoc stable systems and is mostly used
and monkey testing are more suited for for Regression Testing
manual execution.
Manual testing can be become repetitive and The boring part of executing same test cases
boring. time and again, is handled by automation
software in Automation Testing.
Tools to Automate Manual Testing
Selenium
QTP
Jmeter
Loadrunner
TestLink
Quality Center(ALM)
Conclusion
Manual testing is an activity where the tester needs to be very patient, creative
& open minded.
They need to think and act with an End User perspective.
AUTOMATION TESTING Tutorial: Process,
Planning & Tools
What is Automation Testing?
Manual Testing is performed by a human sitting in front of a computer carefully
executing the test steps.
Automation Testing means using an automation tool to execute your test case
suite.
The automation software can also enter test data into the System Under Test,
compare expected and actual results and generate detailed test reports. Test
Automation demands considerable investments of money and resources.
Successive development cycles will require execution of same test suite
repeatedly. Using a test automation tool, it's possible to record this test suite and
re-play it as required.Once the test suite is automated, no human intervention is
required.This improved ROI of Test Automation.The goal of Automation is to
reduce the number of test cases to be run manually and not to eliminate Manual
Testing altogether.
Please be patient. The Video will load in some time. If you still face issue viewing
video click here
Why Automated Testing?
Automated software testing is important due to following reasons:
Manual Testing of all workflows, all fields, all negative scenarios is time and
money consuming
It is difficult to test for multilingual sites manually
Automation does not require Human intervention. You can run automated
test unattended (overnight)
Automation increases the speed of test execution
Automation helps increase Test Coverage
Manual Testing can become boring and hence error-prone.
Which Test Cases to Automate?
Test cases to be automated can be selected using the following criterion to
increase the automation ROI
High Risk - Business Critical test cases
Test cases that are repeatedly executed
Test Cases that are very tedious or difficult to perform manually
Test Cases which are time-consuming
The following category of test cases are not suitable for automation:
Test Cases that are newly designed and not executed manually at least
once
Test Cases for which the requirements are frequently changing
Test cases which are executed on an ad-hoc basis.
Automated Testing Process:
Following steps are followed in an Automation Process
Test tool selection
Test Tool selection largely depends on the technology the Application Under Test
is built on. For instance, QTP does not support Informatica. So QTP cannot be
used for testingInformatica applications. It's a good idea to conduct Proof of
Concept of Tool on AUT.
Define the scope of Automation
The scope of automation is the area of your Application Under Test which will be
automated. Following points help determine scope:
The features that are important for the business
Scenarios which have a large amount of data
Common functionalities across applications
Technical feasibility
The extent to which business components are reused
The complexity of test cases
Ability to use the same test cases for cross-browser testing
Planning, Design, and Development
During this phase, you create Automation strategy & plan, which contains
following details-
Automation tools selected
Framework design and its features
In-Scope and Out-of-scope items of automation
Automation testbed preparation
Schedule and Timeline of scripting and execution
Deliverables of Automation Testing
Test Execution
Automation Scripts are executed during this phase. The scripts need input test
data before there are set to run. Once executed they provide detailed test reports.
Execution can be performed using the automation tool directly or through the Test
Management tool which will invoke the automation tool.
Example: Quality center is the Test Management tool which in turn it will invoke
QTP for execution of automation scripts. Scripts can be executed in a single
machine or a group of machines. The execution can be done during the night, to
save time.
Maintenance
As new functionalities are added to the System Under Test with successive
cycles, Automation Scripts need to be added, reviewed and maintained for each
release cycle.Maintenance becomes necessary to improve the effectiveness
of Automation Scripts.
Framework for Automation
A framework is set of automation guidelines which help in
Maintaining consistency of Testing
Improves test structuring
Minimum usage of code
Less Maintenance of code
Improve re-usability
Non Technical testers can be involved in code
The training period of using the tool can be reduced
Involves Data wherever appropriate
There are four types of frameworks used in automation software testing:
1. Data Driven Automation Framework
2. Keyword Driven Automation Framework
3. Modular Automation Framework
4. Hybrid Automation Framework
Automation Tool Best Practices
To get maximum ROI of automation, observe the following
The scope of Automation needs to be determined in detail before the start
of the project. This sets expectations from Automation right.
Select the right automation tool: A tool must not be selected based on its
popularity, but it's fit to the automation requirements.
Choose appropriate framework
Scripting Standards- Standards have to be followed while writing the scripts
for Automation. Some of them are-
o Create uniform scripts, comments, and indentation of the code
o Adequate Exception handling - How error is handled on system
failure or unexpected behavior of the application.
o User-defined messages should be coded or standardized for Error
Logging for testers to understand.
Measure metrics- Success of automation cannot be determined by
comparing the manual effort with the automation effort but by also
capturing the following metrics.
o Percent of defects found
o The time required for automation testing for each and every release
cycle
o Minimal Time is taken for release
o Customer Satisfaction Index
o Productivity improvement
The above guidelines if observed can greatly help in making your automation
successful.
Benefits of Automation Testing
Following are benefits of automated testing:
70% faster than the manual testing
Wider test coverage of application features
Reliable in results
Ensure Consistency
Saves Time and Cost
Improves accuracy
Human Intervention is not required while execution
Increases Efficiency
Better speed in executing tests
Re-usable test scripts
Test Frequently and thoroughly
More cycle of execution can be achieved through automation
Early time to market
Different types of software testing that can be
automated
Smoke Testing
Unit Testing
Integration Testing
Functional Testing
Keyword Testing
Regression Testing
Data Driven Testing
Black Box Testing
How to Choose an Automation Tool?
Selecting the right tool can be a tricky task. Following criterion will help you select
the best tool for your requirement-
Environment Support
Ease of use
Testing of Database
Object identification
Image Testing
Error Recovery Testing
Object Mapping
Scripting Language Used
Support for various types of test - including functional, test management,
mobile, etc...
Support for multiple testing frameworks
Easy to debug the automation software scripts
Ability to recognize objects in any environment
Extensive test reports and results
Minimize training cost of selected tools
Tool selection is one of biggest challenges to be tackled before going for
automation. First, Identify the requirements, explore various tools and its
capabilities, set the expectation from the tool and go for a Proof Of Concept.
Automation Testing Tools
There are tons of Functional and Regression Testing Tools available in market.
Here are 5 best tools certified by our experts
1. Tricentis
Tricentis is the industry’s #1 Automation Testing platform and is recognized for
reinventing software testing for DevOps. Tricentis is the only vendor to achieve
“leader” status in all three top analyst reports.
Features:
Risk-based testing
Scriptless end-to-end test automation
Supports API, BI, Mobile, Cross Browser, RPA and other automation
testing types
The industry’s most extensive technical support
Download Tricentis
2. mabl
mabl delivers scriptless end-to-end test automation, integrated with your delivery
pipeline, so you can focus on improving your app.
Features:
Proprietary machine learning models automatically identify and surface
application issues
Tests are automatically repaired when UI changes
Automated regression insights on every build
Learn more about mabl
3. Selenium
It is a software testing tool used for Regression Testing. It is an open source
testing tool that provides playback and recording facility for Regression Testing.
The Selenium IDE only supports Mozilla Firefox web browser.
It provides the provision to export recorded script in other languages like
Java, Ruby, RSpec, Python, C#, etc
It can be used with frameworks like JUnit and TestNG
It can execute multiple tests at a time
Autocomplete for Selenium commands that are common
Walkthrough tests
Identifies the element using id, name, X-path, etc.
Store tests as Ruby Script, HTML, and any other format
It provides an option to assert the title for every page
It supports selenium user-extensions.js file
It allows to insert comments in the middle of the script for better
understanding and debugging
Download Selenium
4. QTP (MicroFocus UFT)
QTP is widely used for functional and regression testing, it addresses every major
software application and environment. To simplify test creation and maintenance,
it uses the concept of keyword driven testing. It allows the tester to build test
cases directly from the application.
It is easier to use for a non-technical person to adapt to and create working
test cases
It fix defects faster by thoroughly documenting and replicating defects for
developer
Collapse test creation and test documentation at a single site
Parameterization is easy than WinRunner
QTP supports .NET development environment
It has better object identification mechanism
It can enhance existing QTP scripts without "Application Under Test" being
available, by using the ActiveScreen
Download QTP
5. Rational Functional Tester
It is an Object-Oriented automated Functional Testing tool that is capable of
performing automated functional, regression, data-driven testing and GUI testing.
The main features of this tool are
It supports a wide range of protocols and applications like Java, HTML,
NET, Windows, SAP, Visual Basic, etc.
It can record and replay the actions on demand
It integrates well with source control management tools such as Rational
Clear Case and Rational Team Concert integration
It allows developers to create keyword associated script so that it can be
re-used
Eclipse Java Developer Toolkit editor facilitates the team to code test
scripts in Java with Eclipse
It supports custom controls through proxy SDK (Java/.Net)
It supports version control to enable parallel development of test scripts
and concurrent usage by geographically distributed team
Download Rational Functional Tester
6. WATIR
It is an open source testing software for regression testing. It enables you to write
tests that are easy to read and maintain. Watir supports only internet explorer on
windows while Watir webdriver supports Chrome, Firefox, IE, Opera, etc.
It supports multiple browsers on different platforms
Rather than using proprietary vendor script, it uses a fully-featured modern
scripting language Ruby
It supports your web app regardless of what it is developed in
Download Watir
7. SilkTest
Silk Test is designed for doing functional and regression testing. For e-business
application, silk test is the leading functional testing product. It is a product of
Segue Software takeover by Borland in 2006. It is an object-oriented language
just like C++. It uses the concept of an object, classes, and inheritance. Its main
feature includes
It consists of all the source script files
It converts the script commands into GUI commands. On the same
machine, commands can be run on a remote or host machine
To identify the movement of the mouse along with keystrokes, Silktest can
be executed. It can avail both playback and record method or descriptive
programming methods to get the dialogs
It identifies all controls and windows of the application under test as objects
and determines all of the attributes and properties of each window
Download SilkTest
Conclusion
The right selection of automation tool, testing process, and team, are important
players for automation to be successful. Manual and automation methods go
hand-in-hand for successful testing.
Automated Testing Vs. Manual Testing:
What’s the difference?
What is Manual Testing?
Manual testing is testing of the software where tests are executed manually by a
QA Analysts. It is performed to discover bugs in software under development.
In Manual testing, the tester checks all the essential features of the given
application or software. In this process, the software testers execute the test
cases and generate the test reports without the help of any automation software
testing tools.
It is a classical method of all testing types and helps find bugs in software
systems. It is generally conducted by an experienced tester to accomplish the
software testing process.
What is Automation Testing?
In Automated Software Testing, testers write code/test scripts to automate test
execution. Testers use appropriate automation tools to develop the test scripts
and validate the software. The goal is to complete test execution in a less amount
of time.
Automated testing entirely relies on the pre-scripted test which runs automatically
to compare actual result with the expected results. This helps the tester to
determine whether or not an application performs as expected.
Automated testing allows you to execute repetitive task and regression test
without the intervention of manual tester. Even though all processes are
performed automatically, automation requires some manual effort to create initial
testing scripts.
Automation Testing Vs. Manual Testing
Parameter Automation Testing Manual Testing
In manual testing, test cases are
Automation Testing uses automation tools to
Definition executed by a human tester and
execute test cases.
software.
Automated testing is significantly faster than a Manual testing is time-consuming and
Processing time
manual approach. takes up human resources.
Exploratory Exploratory testing is possible in
Automation does not allow random testing
Testing Manual Testing
The initial investment in the Manual
The initial investment in the automated testing
testing is comparatively lower. ROI is
Initial investment is higher. Though the ROI is better in the long
lower compared to Automation testing
run.
in the long run.
Automated testing is a reliable method, as it is Manual testing is not as accurate
Reliability performed by tools and scripts. There is no because of the possibility of the
testing Fatigue. human errors.
For even a trivial change in the UI of the AUT, Small changes like change in id, class,
UI Change Automated Test Scripts need to be modified to etc. of a button wouldn't thwart
work as expected execution of a manual tester.
Investment is required for testing tools as well Investment is needed for human
Investment
as automation engineers resources.
Not cost effective for high volume
Cost-effective Not cost effective for low volume regression
regression.
With automation testing, all stakeholders can Manual Tests are usually recorded in
Test Report
login into the automation system and check test an Excel or Word, and test results are
Visibility
execution results not readily/ readily available.
Parameter Automation Testing Manual Testing
Automated testing does not involve human
The manual testing method allows
Human consideration. So it can never give assurance of
human observation, which may be
observation user-friendliness and positive customer
useful to offer user-friendly system.
experience.
Performance Tests like Load Testing, Stress
Performance Performance Testing is not feasible
Testing, Spike Testing, etc. have to be tested by
Testing manually
an automation tool compulsorily.
Manual tests can be executed in
This testing can be executed on different
Parallel parallel but would need to increase
operating platforms in parallel and reduce test
Execution your human resource which is
execution time.
expensive
You can Batch multiple Test Scripts for nightly
Batch testing Manual tests cannot be batched.
execution.
Programming Programming knowledge is a must in No need for programming in Manual
knowledge automation testing. Testing.
Automation test requires less complex test Manual testing needs have a more
Set up
execution set up. straightforward test execution setup
Done by tools. Its accurate and never gets Repetitive Manual Test Execution can
Engagement
bored! get boring and error-prone.
Manual testing proves useful when the
Automation testing is useful when frequently
Ideal approach test case only needs to run once or
executing the same set of test cases
twice.
Build Executing the Build Verification
Automation testing is useful for Build
Verification Testing (BVT) is very difficult and
Verification Testing (BVT).
Testing time-consuming in manual testing.
Manual Testing has a higher risk of
Automated Tests have zero risks of missing out
Deadlines missing out the pre-decided test
a pre-decided test.
deadline.
Manual Testing does not use
Automation testing uses frameworks like Data
frameworks but may use guidelines,
Framework Drive, Keyword, Hybrid to accelerate the
checklists, stringent processes to draft
automation process.
certain test cases.
Automated Tests acts as a document provides
training value especially for automated unit test Manual Test cases provide no training
Documentation
cases. A new developer can look into a unit test value
cases and understand the code base quickly.
Automated Unit Tests enforce/drive Test Driven Manual Unit Tests do not drive design
Test Design
Development Design. into the coding process
Automated Tests help in Build Verification
Manual Testing defeats the automated
Devops Testing and are an integral part of DevOps
build principle of DevOps
Cycle
Manual Testing is suitable for
Automated Testing is suited for Regression
Exploratory, Usability and Adhoc
When to Use? Testing, Performance Testing, Load Testing or
Testing. It should also be used where
highly repeatable functional test cases.
the AUT changes frequently.
Manual Testing Pros and Cons
Pros of Manual Testing:
Get fast and accurate visual feedback
It is less expensive as you don't need to spend your budget for the
automation tools and process
Human judgment and intuition always benefit the manual element
While testing a small change, an automation test would require coding
which could be time-consuming. While you could test manually on the fly.
Cons of Manual Testing:
Less reliable testing method because it's conducted the human. Therefore,
it is always prone to mistakes & errors.
The manual testing process can't be recorded, so it is not possible to reuse
the manual test.
In this testing method, certain tasks are difficult to perform manually which
may require an additional time of the software testing phase.
Automated Testing Pros and Cons
Pros of automated testing:
Automated testing helps you to find more bugs compare to a human tester
As most of the part of the testing process is automated, you can have a
speedy and efficient process
Automation process can be recorded. This allows you to reuse and execute
the same kind of testing operations
Automated testing is conducted using software tools, so it works without
tiring and fatigue unlike humans in manual testing
It can easily increase productivity because it provides fast & accurate
testing result
Automated testing support various applications
Testing coverage can be increased because of automation testing tool
never forget to check even the smallest unit
Cons of Automated Testing:
Without human element, it's difficult to get insight into visual aspects of
your UI like colors, font, sizes, contrast or button sizes.
The tools to run automation testing can be expensive, which may increase
the cost of the testing project.
Automation testing tool is not yet full proof. Every automation tool has their
limitations which reduces the scope of automation.
Debugging the test script is another major issue in the automated testing.
Test maintenance is costly.
Conclusion
Manual testing is testing of the software where tests are executed manually
by a QA Analyst.
In Automated Software Testing, testers write code/test scripts to automate
test execution.
Manual Testing helps you to get fast and accurate visual feedback.
Automated testing helps you to find more bugs compare to a human tester.
Manual testing is a less reliable testing method because it's conducted by a
human. Therefore, it is always prone to mistakes & errors.
The tools to run automation testing can be expensive, which may increase
the cost of the testing project.
Manual testing is time-consuming and takes up human resources.
Automated testing is significantly faster than a manual approach.