Sayan Ghosh Software Engineering
Sayan Ghosh Software Engineering
Sayan Ghosh Software Engineering
Submitted by
DEPARTMENT : CSE
YEAR : 3rd
SEMESTER : 5th
SESSION : 2023-2024
AKNOWLEDGEMENT
I would like to express my special thanks to our ‘SOFTWARE ENGINEERIG ’ professor for
giving me this golden opportunity to do this wonderful project on the topic ‘The Role of
Automation in Software Enginering ’. I would also like to thank our college MODERN
INSTITUTE OF ENGINEERING & TECHNOLOGY and our teacher In charge “Kalyan
Adhikary” Sir. Finally, I would like to thanks my parents, and my friends who helped me a lot to
finalize this project and have been with me all the time.
The Role of Automation in
Software Testing
Abstract - The growing demand for delivering quality software faster “Quality at Speed” requires faster and
successful execution of software testing to ensure its standard. Utilizing appropriate testing method(s) and
right test automation tools/framework are two defining factors for a successful and effective software testing
project. Using one testing method will not be sufficient to test software and ensure its standard, a
combination of some appropriate testing techniques is often required. Likewise, is no one tool that can satisfy
all automated testing needs which makes finding the right tool combination difficult. Knowing the various
testing methods and tools/frameworks is the first step towards achieving a successful and efficient software
testing. This article presents a comprehensive study of test automation tools and frameworks. Firstly,
automated testing and their categories were explained, followed by an explanation of the various test
automation frameworks. Finally, a brief explanation and comparison of some of the most commonly used
automation tools was presented.
Keywords: Software Testing, Software Automated Testing, Automation Tools Categories, Test Automation
Tools, Test Automation Frameworks
I. INTRODUCTION
Software programs has become an integral part of our everyday life as it potentially touches millions of people
in various domain of life [1], this calls for safe and reliable software. Unfortunately, humans are prone to error,
therefore the fundamental facts of humans’ core involvement in software development makes errors an
inevitable inclusion in software [2]. Software errors (bugs) can negatively affect the live operation and even
cause death [3]. It is important to treat such errors early in the development phase because they get costlier with
progress [4]. For example; Jones, in his survey [5], shows that $500 billion is lost annually due to poor software
quality, furthermore, a report released by the National Institute of Standards and Technology (NIST) shows that
Software bugs are costing the USA economy an estimated $59.5 billion annually, and about a third of the cost
($22.5 billion) could be reduced through improvements in testing, although it won’t eliminate all the bugs [6].
The eminent effects of software bugs cannot be overestimated and hence, the need for software to be tested
before delivered.
Software testing is defined as the process of evaluating a software program with the intent of finding fault or
errors. Software testing is also done to; make sure that software performs its intended purpose correctly [1],
access, achieve and preserve the quality of a software [2], and thereby verify that the software is fit for use [7].
Software testing is an integral phase in Software Development Life Cycle (SDLC) process [8], testing utilizes
around 50% of software projects’ development time and effort [1], [2], [7]. In SDLC, software is incomplete
until it has passed testing [9]. The overall purpose of testing is not to demonstrate that the system is free of
errors but to give confidence that the system is working well before installation. An error-free system shows that
either no testing or poor testing was performed on the software system [2].
Software testing can be manual or automated. Manual Testing does not require knowledge of any testing tool, it
requires lots of effort and more people. Automating manual testing is no different from a programmer using a
coding language to write programs to automate any manual process [10]. Automated testing involves the use of
automation tools and/or with frameworks in executing tests. It requires knowledge of automation tools and,
sometimes, programming skills. Automated testing increases testing accuracy and saves effort and time of tester
compared to manual testing [11], which is not only a costly and time-consuming exercise, but it is also prone to
error.
Defining factors for successful and efficient software testing projects are: (a) selecting and using an appropriate
testing method, and (b) choosing and using the right test automation tool and/or framework [12]. Software
testing methods are the various strategies or approaches used to test an application to ensure it behaves and
looks as expected. These encompass everything from front to back-end testing, including unit and system
testing. Umar [13] provides a detailed explanation on software testing methods, this paper focuses on software
test automation, specifically, on automated software testing, its various tools, and their categories as well as
testing frameworks that can be used to achieve effective, and successful testing project.
The rest of this paper is organized as follows: Section I is the Introduction, followed by Automated Software
Testing and their categories in Section II, then Section III presents Test Automation Frameworks and their
types. In Section IV, an explanation and comparison of some popular test automation tools were provided and
the last Section (V) Concludes the paper.
II. AUTOMATED SOFTWARE TESTING
Automated testing is a process using software separate from the software under test to control the execution of
tests and the comparison of actual outcomes with the expected outcomes [14]. Automation tools are used to
automate certain sections of manual testing but not all [11]. Automated testing generally saves time, the tester
can efficiently run a large number of tests in a short period and so important and repetitive tasks, as well as
testing that would be difficult to do manually, can be automated. Besides saving time, automation testing saves
money and effort, increases the quality of the testing tasks [12] and also helps in improving software accuracy.
Test Automation requires a skilled tester with knowledge of the automation tools and the software being tested
to set up the test cases and perform the testing [10].
Table 1: Advantages and Disadvantages of Test Automation
Advantages Disadvantages
Improves accuracy and quick finding of bugs Choosing the right tool requires considerable effort,
compared to manual testing time, and evolution plan.
Saves time and effort by making testing more Requires knowledge of the testing tool.
efficient
Increases test coverage because multiple testing tools Cost of buying the testing tool and, in the case of
can be used at once allowing for parallel testing of playback methods, test maintenance is a bit
different test scenarios expensive
Automation test script is repeatable Proficiency is required to write the automation test
scripts.
A. Automation Tools Categories
Software testing automation tools can be divided into different categories as follows: Unit Testing Tools,
Functional Testing Tools, Code Coverage Tools, Test Management Tools, and Performance Testing Tools.
Advantages Disadvantages
Facilitates Changes and Simplifies Requires programming skills and consume time to write
Integration and check.
Bugs can be found and resolved early It can only run tests on one JVM (Java virtual machine), as
without affecting other pieces of the code. such developers are unable to test applications that require
multiple JVMs
Makes the coding process more Agile Unit tests tools only automate the testing of functionality
at the unit level
2) Selenium
Selenium is a framework for testing web applications that is compatible with various browsers and platforms
like Windows, Mac, and Linux. Selenium helps the testers to write tests in various programming languages like
Java, PHP, C#, Python, Groovy, Ruby, and Perl. It offers record and playback features for doing tests without
the need to learn test scripting language [33]. Selenium is perhaps the most popular automation framework that
consists of many tools and plugins for Web application testing. Selenium is known for its powerful capability in
performance testing and is a popular choice in open-source test automation space, partly due to its large and
active development and user community [34].
Table 3: Advantages and Disadvantages of Selenium
Advantages Disadvantages
Open source, no licensing and maintenance fees. New teams need to invest time upfront for setup
and integration.
Large and active development and user community to Slow support from the community.
keep pace with software technologies.
Open for integration with other tools and frameworks Required good programming skills and experience
to enhance its capability to set up and integrate Selenium with other tools
and frameworks.
3) Unified Functional Testing (UFT)
UTF, formerly QuickTest Professional (QTP), is a test automation tool for functional and regression testing, it’s
probably the most popular commercial tool for functional test automation [33]. UFT offers a comprehensive set
of features that can cover most of functional automated testing needs on desktop, mobile and Web platforms.
Visual Basic Scripting Edition scripting language is used by this tool to register test processes, operate various
objects and control in testing the applications [27].
Table 4: Advantages and Disadvantages of Unified Functional Testing (UTF)
Advantages Disadvantages
Mature, comprehensive automated testing features Costly solution: license and maintenance fees are
integrated into a single system. considerably high.
Requiring only basic programming skills to get Supporting only VBScript.
started with test creation and execution.
Dedicated user support plus an established large user Possible high costs for upgrades and additional
community. modules.
4) Katalon Studio
Katalon Studio is an automated testing platform that offers a comprehensive set of features to implement full
automated testing solutions for Web, API, and Desktop and Mobile applications. Built on top of the open-source
Selenium and Appium frameworks, Katalon Studio allows teams to get started with test automation quickly by
reducing the effort and expertise required for learning and integrating these frameworks for automated testing
needs [35].
Table 5: Advantages and Disadvantages of Katalon Studio
Advantages Disadvantages
No licensing and maintenance fees required Poor Community support
Integrating necessary frameworks and features for Support limited features
quick test case creation and execution.
Built on top of the Selenium framework but Lack of choices for scripting languages: only
eliminating the need for advanced programming Java/Groovy is supported.
skills required for Selenium.
5) TestComplete
TestComplete is also a commercial integrated platform for desktop, mobile and Web application testing. It
enables testers to build a robust testing framework that utilizes the broad spectrum of available software testing
methodologies [23]. Like UFT, TestComplete offers some key test automation features such as keyword-driven
and data-driven testing, cross-browser testing, API testing, and CI integrations. This tool supports many
languages including JavaScript, Python, VBScript, JScript, DelphiScript, C++Script, and C#Script for writing
test scripts [36].
Table 6: Advantages and Disadvantages of TestComplete
Advantages Disadvantages
Many scripting languages to choose from. Additional fees for extra modules and add-ons.
Only basic programming skills needed.
Mature, comprehensive automated testing features Like UFT, considerable licensing and maintenance
integrated into a single system. fees needed for TestComplete.
A. Comparison of Automation Tools
There are various automation tools available in the market. Identification of the right automation tool is critical
to ensure the success of the testing project. The table below presents a comparison of some of the popular
testing tools discussed.
Table 7: Automation Tools Comparison