Unit - 6: Automated
Testing and Testing
Tools
Extract
• Introduction
• The Benefits of Automation and Tools
• Test Tools
• Software Test Automation
• Random Testing
• Realities of Using Test Tools and Automation
• Open Source Testing Tools
• Case Studies on Testing Tools Selenium
1
Explain Random Testing in automation.
2023 CS411.6 2 4.6.1 4
2
Write few benefits of using automation and tools. 2023 CS411.6 2 4.6.1 6
3
Explain in detail the Selenium testing tool. 2022 CS411.6 2 4.6.1 6
4
Realities of Using Test Tools and Automation 2022 CS411.6 2 4.6.1 8
5
Write a short note on open source testing tools CS411.6 2 4.6.1 4
6
Write a short note on Test Tools CS411.6 4.6.1
7
Explain Software Test Automation CS411.6 2 4.6.1 4
6.1 Introduction (Automated Testing and Testing Tools) :
Automation Testing is a software testing technique that performs using special
automated testing software tools to execute a test case suite. On the other hand,
Manual Testing is performed by a human sitting in front of a computer carefully
executing the test steps.
The automation testing software can also enter test data into the System Under Test,
compare expected and actual results and generate detailed test reports.
Software 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.
That is ,it allows for executing repetitive tasks without the intervention of a Manual
Tester.
Automated tests can be run multiple times across different environments, helping to
ensure consistent results.
Automated Testing Process:
Following steps are followed in an Automation Process
1.Select a Testing Tool: Choose a tool based on the type of testing
required and the platform on which the software is developed.
2.Define the Scope of Automation: Using the best software testing
practices, determine which parts of the software testing will be
automated.
3.Plan, Design, and Develop: Plan the automation strategy and develop
the test scripts.
4.Execute the Test: Run the software tests using automation scripts. The
tool should also collect data and provide detailed test reports.
5.Maintenance: Update and modify the automated test scripts as needed
with newer versions of the software build.
6.2 The Benefits of Automation and Tools :
1. Cost-Saving:
Automated testing is more cost-effective than manual. Manual testing doesn’t allow
you to run repetitive tests. In fact, the cost of testing your application manually rises
as time goes. By contrast, automated testing is cheaper in the long-term perspective,
because once you’ve created your test scripts, you can reuse them 24/7 without any
additional cost.
2. Fast Development and Delivery:
Test automation will help you save your time. Automated tests are completed
rapidly and can be run repeatedly. In other words, you don’t have to wait for weeks
to execute the tests all over again – just a few hours will be enough.
Thanks to fast test execution and the repeatable nature of tests, automated testing
increases the speed of development. Here are some of the advantages you get by
speeding up the testing process with automation:
• A shorter software development cycle
• Frequent releases
• Quicker changes and updates to the app
• Faster time-to-market delivery
3. Increased Productivity:
Automated tests don’t require any human intervention while running, meaning that
you can test your app at nighttime and harvest the results the next morning.
Because automated tests can run repeatedly on their own, software developers and
QAs are able to spend less time on testing. Basically, with automation, your
engineers can focus on critical tasks.
4. More Accurate Tests:
With test automation, you are more likely to have error-free releases. Thanks to
minimized human intervention, automated testing is more accurate than testing
applications manually. The thing is, a human tester can make mistakes during any
step of evaluation. But the machine won’t. Generated test cases are more precise
than human testers, which means that by eliminating human errors, you will reduce
the risk of failure.
5. High App Quality and Performance:
Automated testing will ensure your application’s high quality and performance. It
allows you to run thousands of automated test cases simultaneously, so you can
easily test your application against multiple platforms, on several devices at a time.
6. Immediate Feedback
Another benefit of automated testing is instant feedback. With fast test execution,
developers get testing reports instantly, so whenever a failure occurs, they will react
to it quickly. Immediate feedback is especially useful when your application is
already on the market. If you need to fix some bugs quickly, manual testing will only
slow the process down. By contrast, test automation will help you make quick
updates to your application. As a result, automated testing brings high team
responsiveness, better user experience and higher customer satisfaction.
7.Early Bug Detection: Automation enables continuous testing, allowing for early
detection of bugs and issues in the development cycle, which can save time and
costs later on.
8.Reusability: Test scripts can be reused across different projects or versions of
software, reducing the time and effort needed to create new tests from scratch.
9.Better Test Coverage: Automation allows for more extensive testing, including
scenarios that may be difficult to execute manually, thus improving overall test
coverage.
6.3 Test Tools
• There are many tools available for automation testing, each suited for different types of
applications and testing needs. Here’s a categorized list of popular testing tools:
1.Functional Testing Tools
• Selenium: A widely used open-source tool for automating web applications across
different browsers.
• Cypress: A modern front-end testing tool for web applications, known for its fast
execution and easy setup.
• TestComplete: A commercial tool that supports various scripting languages and allows
for functional UI testing.
• QTP/UFT (Unified Functional Testing): A commercial tool from Micro Focus for
functional and regression testing.
2.Performance Testing Tools
• Apache JMeter: An open-source tool for performance and load testing, widely used for
web applications.
• LoadRunner: A comprehensive performance testing tool from Micro Focus that
simulates user activity.
• Gatling: An open-source performance testing tool focused on ease of use and powerful
reporting.
3.API Testing Tools
• Postman: A popular tool for API testing, allowing users to create and run API requests
easily.
• SoapUI: An open-source tool for testing SOAP and REST APIs with extensive features for
functional and load testing.
• RestAssured: A Java library for testing RESTful services, often used in conjunction with
testing frameworks like JUnit.
4. Mobile Testing Tools
• Appium: An open-source tool for automating mobile applications across platforms (iOS,
Android).
• Espresso: A part of the Android Testing Support Library, used for writing UI tests for
Android apps.
• XCUITest: A testing framework for iOS apps, integrated into Xcode.
5.Continuous Integration Tools
• Jenkins: An open-source automation server that supports building, testing, and
deploying applications.
• CircleCI: A cloud-based CI tool that integrates seamlessly with version control systems.
• Travis CI: A CI service that automatically builds and tests code changes in GitHub
repositories.
6. Test Management Tools
TestRail: A web-based test case management tool that helps teams manage, track, and
organize testing efforts.
Jira: Often used for issue tracking, it can also be configured for test management with plugins
like Zephyr.
qTest: A comprehensive test management solution that integrates with various automation
tools and CI/CD systems.
7.Unit Testing Tools
JUnit: A widely used framework for Java applications, providing annotations and assertions for
testing.
pytest: A powerful testing framework for Python, known for its simplicity and scalability.
NUnit: A unit testing framework for .NET applications, supporting various test types and
features.
8.Security Testing Tools
OWASP ZAP: An open-source web application security scanner for finding vulnerabilities in
web applications.
Burp Suite: A comprehensive platform for web application security testing, with a free
community edition and a commercial version.
Fortify: A commercial tool for static and dynamic application security testing.
6.4 Software Test Automation:
Software Test automation makes use of specialized tools to control the execution of tests and
compares the actual results against the expected result.
They could run your test cases, look for bugs, analyze what they see, and log
the results. That’s software test automation.
Usually, regression tests, which are repetitive actions, are automated.
Testing Tools not only helps us to perform regression tests but also helps us to automate data
set up generation, product installation, GUI interaction, defect logging, etc.
Automation tools are used for both Functional and Non-Functional testing.
Criteria for Tool Selection:
For automating any application, the following parameters should be considered:
• Data driven capabilities
• Debugging and logging capabilities
• Platform independence
• Extensibility & Customizability
• E-mail Notifications
• Version control friendly
• Support unattended test runs
• Following is one of the software test automation tool
• Macro Recording and Playback
• The most basic type of test automation is recording your
keyboard and mouse actions as you run your tests for the
first time and then playing them back when you need to run
them again.
• If the software you’re testing is for Windows or the Mac,
recording and playing back macros is a fairly easy process.
6.5 Random Testing/Monkey Testing:
Random testing is software testing in which the system is tested with the help of
generating random and independent inputs and test cases. Random testing is also
named monkey testing. It is a black box assessment outline technique in which the
tests are being chosen randomly and the results are being compared by some
software identification to check whether the output is correct or incorrect.
Some important points about Random Testing:
Random testing was first examined by Melvin Breuer in the year 1971.
This testing was initially assessed by Pratima and Vishwani Agrawal in the year 1975
to check the successful output of the software.
Dumb Monkeys
The easiest and most straightforward type of test monkey is a dumb monkey. A dumb
monkey doesn’t know anything about the software being tested; it just clicks or
types randomly.
Working Random Testing:
Step-1: Identify Input domain
Step-2: Select test inputs independently/randomly from the input domain
Step-3: Test the system on these inputs and form a random test set
Step-4: Compare the result with system specification
Step-5: If the Report fails then take necessary action.
The below image represents the working of Random Testing more clearly.
Tools used for Random Testing
• QuickCheck
• Randloop
• Simulant
• Gram Test
6.6 Realities of Using Test Tools and Automation:
• Test automation isn't a solution or remedy for all difficulties. When it is properly
planned and executed it can make your testing immensely more efficient and
find bugs that would have otherwise gone undiscovered.
• Following are the issues related to test automation
1. Software is always changing, with new features and updates often added
late. If you record thousands of test macros, a last-minute change like an
extra startup screen could cause them all to fail. To avoid this, your
automation should be flexible and easy to update when needed.
2. Verifying test results can be difficult, especially with user interfaces. Capturing and
comparing screens is simple but creates large files, and the screens often change
during development. Ensure your tools check only what's necessary and can handle
changes efficiently.
3. Test automation is excellent for repetitive tasks and regression testing, but it’s not
always suitable for testing UI, usability, and complex workflows that require human
intuition and judgment. Some manual testing will always be necessary.
4. Relying too heavily on automated tests can lead to neglecting important manual
tests. Automation might miss context-specific issues that can only be found through
human exploration, creativity, or intuition.
5.Setting up automation tools and frameworks requires significant investment
in terms of time, money, and resources. The development of robust test
scripts demands skilled personnel and thorough planning.
6. Automated test scripts require regular maintenance as the application
under test evolves. Changes in UI, features, or environment may break the
scripts, leading to extra effort to keep them up-to-date.
7. There's no replacement for human intuition. Automated tests can only
check what they're programmed to, but they can't notice something unusual
and investigate further—at least, not yet.
6.6 Open Source Testing Tools
1. Selenium
Use Case: Web application testing.
Key Features:
Supports multiple programming languages (Java, C#, Python, etc.).
Cross-browser compatibility (Chrome, Firefox, Safari, etc.).
Popular For: Automating web browsers.
2. Appium
Use Case: Mobile application testing (iOS, Android).
Key Features:
Supports native, hybrid, and mobile web applications.
Compatible with many programming languages like Java, JavaScript, Ruby.
Cross-platform support: Write tests for both Android and iOS.
Popular For: Mobile test automation.
3. Cypress
Use Case: Web application testing (especially frontend/UI).
Key Features:
Real-time reloading and fast execution.
Built-in dashboard for test recording and review.
Easy to set up, minimal configuration.
Popular For: Frontend and end-to-end testing.
4. Katalon Studio
Use Case: Web, API, and mobile testing.
Key Features:
Supports web, mobile, API, and desktop applications.
Built on top of Selenium and Appium.
No coding skills required for basic test automation.
Detailed reports and analytics.
Popular For: All-in-one test automation solution.
5. JMeter
Use Case: Performance and load testing.
Key Features:
Simulates heavy loads on web apps, servers, and networks.
Supports a variety of protocols (HTTP, HTTPS, FTP, etc.).
Great for testing APIs.
Real-time monitoring and analysis.
Popular For: Load and performance testing.
6. TestNG
Use Case: Unit, functional, and end-to-end testing for Java applications.
Key Features:
Advanced test configuration and grouping.
Support for parallel testing.
Built-in reports and logs.
Integration with build tools like Maven, Gradle.
Popular For: Java application testing.
7.SoapUI
Use Case: API testing (SOAP and REST).
Key Features:
Supports functional, security, and
performance testing.
Powerful API mocking capabilities.
Integration with CI/CD tools.
Easy to create and run automated
tests.
Popular For: Web service testing.
8.Taiko
Use Case: Web application testing.
Key Features:
Simple syntax for writing readable
tests.
Built for Chromium-based browser
testing.
Smart selectors and implicit waiting.
Integration with CI/CD tools.
Popular For: Simplified web testing
automation.
6.7 Case Studies on Selenium
• Selenium is an open-source testing tool used primarily
for automating web applications.
• It supports multiple programming languages like Java,
Python, C#, Ruby, and JavaScript.
• Selenium allows testers to automate browsers for
testing purposes, making it one of the most popular
testing frameworks in the world.
• This case study explores how Selenium was
implemented in a software development company to
improve the efficiency and accuracy of its testing
processes.
Company Overview
Company: FinTech Solutions
Industry: Financial Technology
Size: 300 employees
Project: Web-based financial platform
Challenge: Slow manual testing and difficulty managing regression tests during
rapid development cycles
Goal: Automate the testing process to ensure reliability, speed, and consistency
in the deployment of their web applications
Challenges Faced
Time-Consuming Manual Testing FinTech Solutions relied on manual testers to
validate their web-based platform. With frequent updates to meet evolving
financial regulations, manual testing became cumbersome.
Regression Testing Overload With every update, regression testing became
necessary to ensure that the new features didn't break existing functionality.
Manual regression tests took days to complete, and the QA team often missed
critical bugs due to human error.
Cross-Browser Compatibility The application needed to work seamlessly on
multiple browsers and across different operating systems Testing manually on all
platforms was inefficient and prone to inconsistencies.
• Solution: Selenium for Automated Testing
• To address these issues, FinTech Solutions decided to adopt Selenium for
automating their web application testing. This allowed them to run automated
test scripts across multiple browsers, operating systems, and devices in parallel.
• Why Selenium?
• Open Source: Selenium is free to use, making it a cost-effective choice for the
company.
• Multi-Browser Support: Selenium can automate tests on different browsers
and platforms, meeting the cross-browser compatibility requirements.
• Integration with CI/CD Pipelines: Selenium could be integrated with their
existing continuous integration/continuous deployment (CI/CD) tools, enabling
automated testing with each build.
• Support for Multiple Languages: The QA team chose to write tests in Java,
leveraging the team's existing expertise in the language.
Thank you