Testing is art and science that should ultimately lead to lower cost businesses through increasing control and reducing risk. Testing specialists should thoroughly understand the system or application from both the technical and the business perspective, and then design, build and implement the minimum-cost, maximum-coverage validation framework. Test Au- tomation is important ingredient for testing large scale applications. In this paper we discuss several automation frameworks, their advantages and disadvantages. We also propose a custom automation framework model that is suited for applications with very complex business requirements and numerous interfaces.Keywords: Software Testing, Test Automation, Test Automation Framework, Data Driven, Keyword Driven, HybridIntroductionS oftware testing has been a rapidly grow- ing industry in the past ten years. Neverthe- less, the domain is new so there is a lot of room for improvement and a lot of room for innovative ideas. very interesting and chal- lenging chapter of software testing is soft- ware testing automation. This falls some- where between software testing and software development, using both programming con- cepts as well as testing ones. Diving further into software automation, one of the biggest challenges is to keep the testing perspective while codding, as the independence of testing versus development is extremely im- portant principle.We see a lot of improvements in Software automation in the past five years. As it happens in any growing industry, there were set a lot of trends. It usually starts with rec- ord and play approach and evolved to a mod- ular approach and moving towards the data- driven and keyword driven. Of course, these trends started a lot of debates on which de- sign is better or more suitable for your team, your business and your needs.Before we start discussing automation design, we will define some of the most common terms related to this topic. Software testing is defined as an investigation con- ducted to provide stakeholders with infor- mation about the quality of the product or service under test [3]. Therefore, the main goals of this activity are to detect and prevent defects as well as to insure the intended be- havior of the tested software [5], [6], [7].Software automation represents the use of software to control the execution of tests, the comparison of actual outcomes to pre- dicted outcomes, the setting up of pre- conditions, and other control and re- porting functions (BS 7925-1) [1].Test Automation Framework represents a framework used for automation. It pro- vides some core functionality (e.g. logging and reporting) and allows its testing capabili- ties to be extended by adding new librar- ies [1]. An automated framework may be loosely defined as a set of abstract con- cepts, processes, procedures and environment in which automated tests will be designed, created and implemented. In addition, it in- cludes the physical structures used for creation and implementation, as well as the logical interactions among those compo- nents [2].A automation framework has the struc- ture of a software application. As applica- tion, a automation framework defines common functions such as handling external files, GUI interaction, provides templates for structure, and therefore developing automated solution is very similar to devel- oping software applications [3], [7], [9], [10], [11], [12], [13].In any type of design of software auto- mation framework, in order to appli- cation, we need the following:· Test case or flow - The definition of a case in automation is the same as the case defined by ISTQB: A set of input values, execution preconditions, expected results and execution post- conditions, developed for a particular objective or condition, such as to ex- ercise a particular program path or to verify compliance with a specific re- quirement [After IEEE 610]. …
Read full abstract