A Study of Automated Software Testing
A Study of Automated Software Testing
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.
1) JUnit
JUnit is a unit testing framework for the Java programming language. JUnit has been important in the
development of test-driven development, and it allows the developer to write an oracle for each test case, and to
automatically execute test sets. JUnit in particular permits to automatically regression test several test sets. If a
formal specification is available, it can be translated into assertions which can be checked at runtime, and thus
serve as a test oracle [31]. The JUnit framework is one of a family of unit testing frameworks that are
collectively known as xUnit that originated with SUnit [32].
Table 2: Advantages and Disadvantages of JUnit
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.
V. CONCLUSION
Test automation has become an essential part of a successful software testing. The latest World Quality Report
2018–2019 highlights that test automation is the biggest bottleneck to deliver “Quality at Speed,” as it saves
time, reduces cost, improves efficiency, and increases accuracy [37]. Thus, effective and successful test
automation cannot be achieved without the right automation tools and framework, this report presents a detailed
explanation about various test automation tools and frameworks as well as provides insights into some of the
important factors to consider when selecting automation tool and framework.
REFERENCE
[1] G. J. Myers, C. Sandler, and T. Badgett, The Art of Software Testing 3rd Edition, Third Edit. Canada.: John Wiley & Sons, Inc., 2012.
[2] D. R. Graham, ‘TESTING, VERIFICATION AND VALIDATION’, Int. J., vol. XVI, pp. 1069–1101, 1979.
[3] S. Rogerson, ‘The Chinook Helicopter Disaster’, 2002. [Online]. Available: https://www5.in.tum.de/~huckle/chinook_software.pdf.
[4] T. Gang, ‘A Collection of Well-Known Software Failures’. [Online]. Available: http://www.cse.psu.edu/~gxt29/bug/softwarebug.html.
[Accessed: 09-Sep-2019].
[5] C. Jones, ‘Software Quality in 2012: a Survey of the State of the Art’, 2012.
[6] NIST Report, ‘The Economic Impacts of Inadequate Infrastructure for Software Testing’, 2002.
[7] L. Luo, ‘A Report on Software Testing Techniques’, Pittsburgh, USA.
[8] A. Dennis, B. H. Wixom, and D. Tegarden, Systems Analysis and Design with OOP Approach with UML 2.0, 4th Editio. USA: John
Wiley & Sons, Inc., 2009.
[9] A. Dennis, B. H. Wixom, and R. M. Roth, Systems Analysis and Design 5th Edition, 5th Editio. USA: John Wiley & Sons, Inc., 2012.
[10] C. Padmini, ‘Beginners Guide To Software Testing’, pp. 1–41, 2013.
[11] ‘Automated Software Testing - International Software Test Institute’. [Online]. Available: https://www.test-
institute.org/Automated_Software_Testing.php. [Accessed: 18-Nov-2019].
[12] M. Polo, P. Reales, M. Piattini, and C. Ebert, ‘Test automation’, IEEE Softw., vol. 30, no. 1, pp. 84–89, 2013.
[13] M. A. Umar, ‘Comprehensive study of software testing : Categories , levels , techniques , and types’, International Journal of Advance
Research, Ideas and Innovations in Technology, vol. 5, no. 6, pp. 32–40, 2019.
[14] D. Huizinga and A. Kolawa, Automated defect prevention. Hoboken, N.J.: Wiley-Interscience, 2007.
[15] ‘difference between unit functional acceptance and integration testing - StackOverflow’. [Online]. Available:
https://stackoverflow.com/questions/4904096/whats-the-difference-between-unit-functional-acceptance-and-integration-test.
[16] ‘Functional Testing Wikipedia’. [Online]. Available: https://en.wikipedia.org/wiki/Functional_testing.
[17] Stackify, ‘Code Coverage Tools: 25 Tools for Testing in C, C++, Java’. [Online]. Available: https://stackify.com/code-coverage-tools/.
[Accessed: 29-Sep-2019].
[18] Atlassian, ‘About Code Coverage - Atlassian Documentation’, 2017. [Online]. Available:
https://confluence.atlassian.com/clover/about-code-coverage-71599496.html. [Accessed: 29-Sep-2019].
[19] SeaLights.io, ‘Code Coverage vs. Test Coverage: Pros and Cons | SeaLights’. [Online]. Available: https://www.sealights.io/test-
metrics/code-coverage-vs-test-coverage-pros-and-cons/. [Accessed: 29-Sep-2019].
[20] K. Sneha and G. M. Malle, ‘Research on software testing techniques and software automation testing tools’, 2017 Int. Conf. Energy,
Commun. Data Anal. Soft Comput. ICECDS 2017, pp. 77–81, 2017.
[21] ‘Performance Testing Wikipedia’. [Online]. Available: https://en.wikipedia.org/wiki/Software_performance_testing.
[22] E. Khan, ‘Different Forms of Software Testing Techniques for Finding Errors’, Int. J. Comput. Sci. Issues, vol. 7, no. 3, pp. 11–16,
2010.
[23] Aebersold Kirsten, ‘Software Testing Methodologies’. [Online]. Available: https://smartbear.com/learn/automated-testing/software-
testing-methodologies/. [Accessed: 10-May-2019].
[24] H. Bajaj, ‘CHOOSING THE RIGHT AUTOMATION TOOL AND FRAMEWORK’, Bengaluru, India.
[25] Aebersold Kirsten, ‘Test Automation Frameworks’. [Online]. Available: https://smartbear.com/learn/automated-testing/test-
automation-frameworks/. [Accessed: 26-Aug-2019].
[26] A. Bhargava, Designing and implementing test automation frameworks with QTP : learn how to design and implement a test
automation framework block by block. Packt Publishing, 2013.
[27] ‘A Guide to Automation Frameworks |Smartsheet’. [Online]. Available: https://www.smartsheet.com/test-automation-frameworks-
software. [Accessed: 30-Aug-2019].
[28] W. E. Perry, Effective Methods for Software Testing: Includes Complete Guidelines, Checklists, and Templates, Third Edit. 2007.
[29] S. Nidhra and J. Dondeti, ‘Black Box and White Box Testing Techniques’, Int. J. Embed. Syst. Appl., vol. 2, no. 2, pp. 29–50, 2012.
[30] C. Abraham, ‘Test Automation Tool Evaluation’, Tamil Nadu, India.
[31] C. Oriat, ‘Jartege: A tool for random generation of unit tests for Java classes’, Springer-Verlag Berlin Heidelb., pp. 242–256, 2005.
[32] ‘JUnit - Wikipedia’. [Online]. Available: https://en.wikipedia.org/wiki/JUnit. [Accessed: 19-Nov-2019].
[33] Altexsoft.com, ‘Comparing Automated Testing Tools: Selenium, TestComplete, Ranorex, and more | AltexSoft’, 2018. [Online].
Available: https://www.altexsoft.com/blog/engineering/comparing-automated-testing-tools-selenium-testcomplete-ranorex-and-more/.
[Accessed: 19-Nov-2019].
[34] ‘SeleniumHQ Browser Automation’. [Online]. Available: https://selenium.dev/. [Accessed: 19-Nov-2019].
[35] ‘A Comparison of Automated Testing Tools | Katalon Studio’. [Online]. Available: https://www.katalon.com/resources-
center/blog/comparison-automated-testing-tools/. [Accessed: 17-May-2019].
[36] Brian, ‘Best Automation Testing Tools for 2020 (Top 10 reviews)’, 2017. [Online]. Available:
https://medium.com/@briananderson2209/best-automation-testing-tools-for-2018-top-10-reviews-8a4a19f664d2. [Accessed: 20-Nov-
2019].
[37] worldqualityreport.com, ‘World Quality Report 2019’, 2018.
AUTHORS PROFILE
Mubarak Albarka Umar received BSc. (Honors) Degree in Software Engineering from the
University of East London in 2015, currently pursuing MSc. Degree in Computer Applied
Technology at Changchun University of Science and Technology. His research interests
include Data Mining, Soft Computing, and Software Engineering (mainly System Analysis
and Software Testing).
Zhanfang Chen, Ph.D., Associate Professor of School of Computer Science and Technology
at Changchun University of Science and Technology. His research interests include Network
Engineering, Software Engineering, and Computer Architecture.