Testing Tools for the Ibex Control System T

Total Page:16

File Type:pdf, Size:1020Kb

Testing Tools for the Ibex Control System T 17th Int. Conf. on Acc. and Large Exp. Physics Control Systems ICALEPCS2019, New York, NY, USA JACoW Publishing ISBN: 978-3-95450-209-7 ISSN: 2226-0358 doi:10.18429/JACoW-ICALEPCS2019-WEPHA090 TESTING TOOLS FOR THE IBEX CONTROL SYSTEM T. Löhnert, F. A. Akeroyd, K. Baker, D. Keymer, A. J. Long, C. Moreton-Smith, D. Oram, ISIS Neutron and Muon Source, Didcot, UK J. R. Holt, T. A. Willemsen, K. J. Woods, Tessella, Abingdon, UK Abstract behaviour of the component being tested, which is espe- cially helpful if the original author has since moved on. At the ISIS Neutron and Muon Source [1], we are cur- Finally, having a well-designed test framework with rently in the process of replacing the legacy SECI control strong simulation capabilities goes a long way to ensure system with the next generation IBEX control system [2] the surprises when testing with a real beamline are kept to based on EPICS [3]. Since IBEX replaces a fully func- a minimum. tional control program, users and developers need to have Robust testing practices raise the confidence of the de- confidence that the new system works as well as the old velopers that new code works as intended, and that exist- one, ensuring that the migration does not cause any undue ing code continues to work when subjected to changes. It disruption to beamline operations. Automated testing is an also helps raise the confidence of users, who are generally indispensable tool to continuously ensure our software is risk-averse that the new control system they are being up to the highest standard of quality. This paper gives an given performs its function satisfactorily. overview of the various types of testing tools we utilize at In the following sections, we will explore a selection of ISIS, with a particular focus on our IOC test framework relevant IBEX components, and the tools in place to en- [4]. This framework has been developed in-house for sure their continued functionality. testing drivers with simulated devices in order to circum- vent testing limitations due to beamline/device availabil- IBEX COMPONENTS ity. INTRODUCTION For the last 5 years, we in the Experiment Control team have been developing the next-generation instrument control system called IBEX for use on beamlines in the ISIS facility. The migration to IBEX is an ongoing pro- cess, with around half of our beamlines currently running on the new system. Being such a large, complex and long- running project make IBEX prone to failure if proper care is not taken. Consider the following facts: 2019). Any distribution of this work must maintain attribution to the author(s), title of the work, publisher, and DOI. • IBEX is a complex ecosystem consisting of many © different services. It is not always obvious what im- pact changes to one component will have on another Figure 1: Overview of (selected) IBEX components. • Over the course of its lifetime, over 30 developers IBEX covers a wide range of responsibilities related to have contributed to the IBEX project, many only for experiment control, from interacting with individual bits a limited duration and sometimes early in their soft- of beamline equipment such as temperature or pressure ware engineering careers controllers, choppers, jaws etc. to managing data collec- • The IBEX system is too complex even for permanent tion and writing the final experiment data file. To this staff to be familiar with every part of it at any one end, it comprises a number of technologies and services. time, let alone have in-depth knowledge of it Figure 1 shows a schematic of the core system. On the • Devices are often fixed on the beamline they are left side, we have the server comprised of various used on. Since beam time is highly valuable, it is of- backend components: ten difficult to get sufficient time to test a new device • A number of devices which are driven through EPICS driver before it is needed in production. This can Input-Output Controllers (IOCs), which expose rele- similarly apply to re-testing if changes/updates are vant values to be read/written to over the network using later made the EPICS Channel Access protocol. Automated testing helps meet all of the above challeng- • The Instrument Control Program (ICP), which deals es. A robust set of tests ensures any unforeseen changes in with the neutron data (collection, processing and writ- behaviour are caught before they are deployed to produc- ing to file) obtained from the Data Acquisition Elec- tion beamlines. Once written, robust tests benchmark any tronics (DAE) newly developed code to forever protect it from regres- • The Block Server, which is a python process that man- sion. Tests can also act as a form of documentation for ages the beamline configuration – i.e. which devices to unknown parts of the system (in addition to other forms control, which sample environment values to log etc. of documentation), as they demonstrate the expected WEPHA090 Content from this work may be used under the terms of the CC BY 3.0 licence ( Software Technology Evolution 1295 17th Int. Conf. on Acc. and Large Exp. Physics Control Systems ICALEPCS2019, New York, NY, USA JACoW Publishing ISBN: 978-3-95450-209-7 ISSN: 2226-0358 doi:10.18429/JACoW-ICALEPCS2019-WEPHA090 On the right hand side, we have various frontend clients set of tests. As such, out of the components above, the that communicate with the server through which users can GUI client, Genie_Python, web dashboard and blockserv- interact with the system: er components all come with substantial unit test suites. Some older parts of the system (such as the ICP) are missing unit tests because they are rarely touched and we generally consider them stable, which means implement- ing unit tests has not become a sufficiently high priority. In the meantime, we use static code analysis tools to keep track of test coverage so that we remain aware of such gaps. For IOCs, we do not have what would strictly be con- sidered unit tests, since they require at least a device to test against. Devices can be arbitrarily complicated, thus mocking their behaviour is a bit more involved. Figure 2: The IBEX GUI. DEVICE TESTING • The IBEX GUI – this is an Eclipse/RCP desktop appli- A large part of the work we do is writing IOC drivers cation based on the CS Studio framework [5], and rep- for specific devices used on the beamlines. EPICS pro- resents the primary form of interaction (shown in Fig. vides meta-languages which make it easy to implement 2) device drivers, but these are bespoke and do not come • Genie_Python [6], a library of python commands used with any testing frameworks. Thus, we have developed an to interact with the control system via a command line in-house IOC testing framework which allows you to interface or through running user-written scripts write tests in python that test the behaviour of IOCs against the devices with which they communicate. • The web dashboard, a basic web interface, which pro- Devices are often fixed equipment, meaning we cannot vides a read-only view of the beamline status. confirm our drivers behave correctly without having ac- Note that there are many other services and features that cess to the beamline, which is not always easy or indeed are not included in this selection, for example those that possible. With smaller devices, we are sometimes able to manage device alarms or logging. However, this repre- test against the device in the office, but even so, we usual- sentative set of core components is useful for illustrating ly only have these available for a limited time and there- our use of various different forms of automated testing. fore they are unsuitable for use in a continually running UNIT TESTING automated test suite. Because of this, we simulate the behaviour on the de- Unit tests are a standard software engineering tool most vice side, which we can do at two different levels: The 2019).developers Any distribution of this work must maintain attribution to the author(s), title of the work, publisher, and DOI. should already be familiar with. They are used © EPICS record level, and the device level. to test the system “bottom up” by testing the behaviour of small pieces of code (e.g. individual methods) in isola- Record Simulation tion, and should complete in a matter of seconds or less. Record simulation is a concept that is built into the EP- Each unit test should be strongly focused and mock (sim- ICS framework [9]. Every one of our IOCs has a “simu- ulate) functionality outside of that which is being tested, late” field, which, when enabled, will use a set of aliased e.g. a test for a method parsing the content of a text file dummy simulation database records instead of the real should never fail on account of a file system error. ones. These simulated records bypass communication Most of the languages used in our code base come with with a real device and instead use purely virtual values unit testing frameworks (e.g. JUnit in Java, unittest in held in the IOC itself. While it is possible to link simula- Python). We are conscientious that the code we write is tion records logically (e.g. when setting a setpoint on a structured in a way that permits comprehensive testing. parameter, automatically update its readback value, too), We do this for example by using test driven development the EPICS database language is too restrictive to effec- [7], a coding approach where one first writes tests, and tively simulate complex device behaviour.
Recommended publications
  • Practical Example of Tcl Command Design in a Qt/C++ Graphical Application Tony Johnson October 18Th, 2017 Tony [email protected]
    Practical Example of Tcl Command Design in a Qt/C++ Graphical Application Tony Johnson October 18th, 2017 [email protected] Abstract Tcl provides excellent support for creating complicated user commands in applications that have correct-by-construction built-in help, support for hidden commands, support for position- independent switches, and more. This paper discusses the technical details for how we created one such command in our Qt-based application. Summary In this paper I will discuss the technical details around the design for the Tcl “wave” command in our Qt-based [1] application. Visualizer is a GUI for displaying and analyzing simulation waveforms. It is driven by the user either via standard GUI operations such as menu selections, button clicks, drag and drop, key accelerators, etc or via commands passed in through a command prompt which is a Tcl shell. Because GUI operations are inherently difficult to automate among other reasons, there was a strong need to have a command for our waveform window that could do everything that could be done via the GUI. Since we already had a Tcl shell in our application, the obvious answer was to create a Tcl command to provide this capability. Luckily Tcl is well suited for implementing such a complex command. Background and Motivation Command-based control of graphical user interface interactions is important for many different reasons. The four key reasons that motivated this work were: Testing; User Control; 3rd Party Access; Save/Restore; and Expandability. Testing Unless you want to retest the GUI operations in your application by hand with every major release, minor release, feature addition and bug fix (trust me, you don’t), then you will want to have some way to create automated tests for GUI interactions.
    [Show full text]
  • Squish Coco 3.3.2 - Copyright ©2015 Froglogic Gmbh CONTENTS
    Squish Coco 3.3.2 - Copyright ©2015 froglogic GmbH CONTENTS Contents 1 Introduction 1 1.1 Squish Coco - Code Coverage Tool for Tcl, C# and C/C++ . .1 1.2 CoverageScanner—Instrumentation during the Generation . .2 1.3 CoverageBrowser—View, Analyse, and Manage, Code Coverage Results . .2 I Quick Start and Tutorials 4 2 Synopsis 5 3 Using Squish Coco 6 4 Creating an instrumented project 7 4.1 Installing Squish Coco ..............................................7 4.2 C++ on Microsoft Visual Studio using the Microsoft Visual Studio Add-in . .7 4.3 C# on Microsoft Visual Studio . .8 4.4 Tcl.........................................................9 4.4.1 Using more than one Tcl version on one system . 10 4.5 Command Line Tools . 10 5 Generating Instrumentations Without Modifying Projects 12 5.1 GNU Make . 12 5.2 Microsoft NMake . 12 5.3 Microsoft Visual Studio . 13 5.4 Microsoft MSBuild . 13 5.5 Mono C# XBuild . 13 6 Instrumenting a simple project 14 6.1 UNIX and Apple Mac OS X setup . 14 6.1.1 Setup . 14 6.1.2 Structure of the parser directories . 15 6.1.3 Compiling and testing . 15 6.1.4 Instrumentation . 15 - i - froglogic GmbH CONTENTS 6.1.5 How the project is instrumented . 16 6.1.6 Additional changes . 17 6.2 Microsoft Windows setup . 17 6.2.1 Setup . 17 6.2.2 Structure of the parser directories . 17 6.2.3 Compiling and testing . 18 6.2.4 Instrumentation . 18 6.2.5 How the project is instrumented . 19 6.2.6 Additional changes .
    [Show full text]
  • Analysis of Domain Specific Languages for GUI Testing: Rspec and Cucumber for Sikuli
    Journal of Multidisciplinary Engineering Science and Technology (JMEST) ISSN: 3159-0040 Vol. 2 Issue 1, January - 2015 Analysis of Domain Specific Languages for GUI testing: RSpec and Cucumber for Sikuli Ivan Evgrafov, [email protected] Raimund Hocke Roman S. Samarev, [email protected] Head Developer of SikuliX, Elena V. Smirnova, [email protected] [email protected], Nidderau, Germany Bauman Moscow State Technical University, Russia Abstract – This article is devoted to new usage tions. Little languages are small DSLs that do not include of the domain specific languages (DSL) for software many features found in General Purpose Programming with a Graphical User Interfaces (GUI) testing. This languages (GPLs). The testers use the GPPL in case if paper’s authors are a developers of the enhanced there is no time to create special DSL - in case of the short software Sikulix, the product which targeted for the term software project or if they could not find a proper programs with graphical interface testing. They pro- DSL, or if they could not create their own DSL. And they pose it as a functional basis for DSL. The SikuliX is use a domain-specific language (DSL), a computer lan- considering as an environment for domain specific guage specialized to a particular application domain in languages (DSL and DSEL). The results of two spe- such a case [17]. This is in contrast to a general-purpose cialized testing DSL’s estimation are being presented language (GPPL), which is broadly applicable across do- in this paper: the frameworks Rspec which belongs mains, and lacks specialized features for a particular do- to a Domain Specific Embedded Language (DSEL) main.
    [Show full text]
  • Squish for Java Data Sheet
    Home: www.froglogic.com E-Mail: [email protected] Evaluation: www.froglogic.com/evaluate ...one leap ahead Squish® for Java® DATA SHEET Functional GUI testing is a vital part of the development and QA process of today©s complex GUI applications. Manually testing the GUI of an application is error-prone, unreliable, unpredictable and slow. Automating this process on the other hand, allows to reliably deliver results quickly, enabling developers to find and fix regressions in nearly no time. This does not only save time but also money. Squish for Java is the most powerful automated GUI testing tool for Java™ Swing/AWT, SWT and Eclipse® Rich Client Platform (RCP) applications. Squish for Java offers dedicated support and tight integration for these GUI toolkits. Using the comfortable Squish IDE, tests are created using Squish©s event recorder. Verification and synchronization points can be easily inserted. Squish allows the user to choose between popular and open scripting languages such as Python, JavaScript, Perl and Tcl for test scripts. Therefore the complete set of language features, in addition to Squish©s test-specific APIs can be used to create powerful and robust tests. Squish for Java recognizes all standard Java GUI controls and offers special support for complex widgets such as tree-, table-, list and menu controls. In addition Squish for Java recognizes custom Java controls. Squish for Java©s mechanism to identify Java GUI widgets is very robust to make sure Squish tests will keep working while the application evolves. Squish for Java provides access to the complete Java API via its test scripting languages and offers access to all objects and properties via the Spy and verification point editor.
    [Show full text]
  • Jumpstart for Squish Datasheet
    Jumpstart for Squish Accelerate the Use of Squish Within Your QA Team Your acquisition of froglogic’s Squish® software product Optional Add-ons was the first step in creating a cost effective approach to Depending on your needs and staffing, ICS offers testing your Qt® based applications. The next step is for optional extensions to this program: your team to learn quickly how to use Squish in your en- vironment. ICS has developed Jumpstart for Squish for Extension of Test Infrastructure: ICS recommends organizations that are under tight deadlines and that the test scripts and test results be placed under cannot wait for the natural development of internal configuration management, and that you start with experts. By purchasing the Jumpstart for Squish service, overnight batch runs of your regression tests. As part of ICS experts will educate your team on the best practices this phase, ICS will help you publish the results of your in using Squish and help you get started immediately. nightly test runs on an internal web server for manageri- This Jumpstart will shave off weeks of trial and error and al review of test results. false starts. It is the best way to get started now, and get started right. Development of Initial Smoke Tests: We will work with your team to develop an initial set of smoke tests The Jumpstart for Squish is a 5-day engagement that that can be used immediately to validate the proper includes formal training installation, infrastructure functioning of your application. These initial tests will development, and test creation by ICS experts.
    [Show full text]
  • Froglogic Slidedeck
    Behavior Driven Development and Testing of Qt and QML applications Qt Developer Days 2014 by Reginald Stadlbauer About me . Name: Reginald Stadlbauer . Company: froglogic GmbH . Position: co-founder and CEO . Worked as Software Engineer at Trolltech and the KDE project About froglogic . HQ: Hamburg . Founded: 2003 . US presence since 2008 . Product focus on Squish - Squish GUI Tester (Cross-Platform/Cross-Technology GUI Test Automation) - Squish Coco (C, C++ and C# Code Coverage) . More than 3.000 customers world-wide Overview . What is BDD and TDD . Automating a Behavior Driven Test . Live Demo & Conclusion What is BDD / BDT? “BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.” - Dan North http://en.wikipedia.org/wiki/Behavior-driven_development OR... What is BDD / BDT? . Based on Test Driven Development - Write (failing) test - Implement feature until test passes - Unit-Test level granularity (inside-out) . But - Focus on application's behavior and specification - Description in a human-readable DSL (e.g. Gherkin) - Less focus on implementation details Versatile usage of Feature Files . User story / feature specification . Communicate with customer / users . Documentation of acceptance test . Sequence to walk through for manual tests . Storyboard for automation of tests Why BDD/BDT . “Test first” development on a higher level . Clearly
    [Show full text]
  • "Selecting Mobile Application Automation Tools"
    T23 Class 10/6/2011 3:00 PM "Selecting Mobile Application Automation Tools" Presented by: Pradeep Kumar Govindasamy Cognizant Technology Solutions Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888‐268‐8770 ∙ 904‐278‐0524 ∙ [email protected] ∙ www.sqe.com Pradeep Govindasamy Cognizant Technology Solutions With more than twelve years of experience in the information technology industry, Pradeep Govindasamy currently holds the lead role for the Automation and Mobile Testing Center of Excellence at Cognizant. Pradeep started—and is now the research and development unit lead for—the automation and mobile practices which has more than 1500 experts servicing global customers. Pradeep has spoken on topics of automation, test data management, and tools at conferences worldwide including STARWEST, STAREAST 2011, Swiss Testing Day, HP Universe, and EuroStar. Mobile Testing Selecting Mobile Application Automation Tools Thursday, October 06, 2011 3:00 PM | ©2011, Cognizant 1 | ©2011, Cognizant Agenda Demystifying Mobile Platforms Understanding & Challenges l Introduction Testing Tool selection Criteria o to Understanding Cognizant tools framework Right Automatin the frameworks Mobile class termining n e i D Best 2 | ©2011, Cognizant Mobile Operating Systems Part – 1 Demystifying the Mobile World 3 | ©2011, Cognizant Mobile Platform iPhone OS Android Windows Phone Symbian Blackberry OS Current version 4.3 Current Version 3 Current Version 7 Symbian^4 Current version 6.0 Closed Source Open Source Closed Source Open Source Closed
    [Show full text]
  • Squish Manual I
    Squish Manual i Squish Manual Squish Manual ii COLLABORATORS TITLE : Squish Manual ACTION NAME DATE SIGNATURE WRITTEN BY April 10, 2009 REVISION HISTORY NUMBER DATE DESCRIPTION NAME Squish Manual iii Contents 1 Welcome 1 2 Release Notes 2 2.1 Version 3.4.4.....................................................2 2.1.1 General....................................................2 2.1.2 IDE......................................................2 2.1.3 Qt-specific..................................................3 2.1.4 Java-specific.................................................3 2.1.5 Web-specific.................................................3 2.1.6 Tk-specific..................................................3 2.1.7 Source Builds.................................................3 2.2 Version 3.4.3.....................................................4 2.2.1 General....................................................4 2.2.2 IDE......................................................4 2.2.3 Qt-specific..................................................5 2.2.4 Java-specific.................................................5 2.2.5 Web-specific.................................................5 2.2.6 Tk-specific..................................................5 2.2.7 Mac-specific (Cocoa/Carbon edition)....................................6 2.2.8 Source Builds.................................................6 2.3 Version 3.4.2.....................................................6 2.3.1 General....................................................6 2.3.2 Qt-specific..................................................7
    [Show full text]
  • Snake Wrangling for Kids, Learning to Program with Python by Jason R
    Snake Wrangling for Kids, Learning to Program with Python by Jason R. Briggs Version 0.7.7 Copyright c 2007. Published by... ah, no one actually. Cover art and illustrations by Nuthapitol C. Website: http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids Thanks To: Guido van Rossum (for benevelont dictatorship of the Python language), the mem- bers of the Edu-Sig mailing list (for helpful advice and commentary), author David Brin (the original instigator of this book), Michel Weinachter (for providing better quality versions of the illustrations), and various people for providing feedback and errata, including: Paulo J. S. Silva, Tom Pohl, Janet Lathan, Martin Schimmels, and Mike Cariaso (among others). Anyone left off this list, who shouldn’t have been, is en- tirely due to premature senility on the part of the author. License: This work is licensed under the Creative Commons Attribution-Noncommercial- Share Alike 3.0 New Zealand License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/nz/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Below is a summary of the license. You are free: • to Share to copy, distribute and transmit the work • to Remix to adapt the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial. You may not use this work for commercial purposes.
    [Show full text]
  • Metaprogramming Ruby
    Prepared exclusively for Shohei Tanaka What Readers Are Saying About Metaprogramming Ruby Reading this book was like diving into a new world of thinking. I tried a mix of Java and JRuby metaprogramming on a recent project. Using Java alone would now feel like entering a sword fight carrying only a banana, when my opponent is wielding a one-meter-long Samurai blade. Sebastian Hennebrüder Java Consultant and Trainer, laliluna.de This Ruby book fills a gap between language reference manuals and programming cookbooks. Not only does it explain various meta- programming facilities, but it also shows a pragmatic way of making software smaller and better. There’s a caveat, though; when the new knowledge sinks in, programming in more mainstream languages will start feeling like a chore. Jurek Husakowski Software Designer, Philips Applied Technologies Before this book, I’d never found a clear organization and explanation of concepts like the Ruby object model, closures, DSLs definition, and eigenclasses all spiced with real-life examples taken from the gems we usually use every day. This book is definitely worth reading. Carlo Pecchia Software Engineer I’ve had a lot of trouble finding a good way to pick up these meta- programming techniques, and this book is bar none the best way to do it. Paolo Perrotta makes it painless to learn Ruby’s most complex secrets and use them in practical applications. Chris Bunch Software Engineer Prepared exclusively for Shohei Tanaka Metaprogramming Ruby Program Like the Ruby Pros Paolo Perrotta The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Prepared exclusively for Shohei Tanaka Many of the designations used by manufacturers and sellers to distinguish their prod- ucts are claimed as trademarks.
    [Show full text]
  • Automated Qt and Web GUI Testing with Froglogic Squish on Actual
    Automated Qt and Web GUI Testing with froglogic Squish on Actual Hardware Using Timesys Board Farm Cloud (BFC) Squish + Timesys BFC = Highest UI quality, no matter where your boards are located froglogic’s Squish provides the ability to automatically test Qt based and Web User Interfaces without the need for human interaction, helping to accelerate tested, high-quality UI product releases. When it comes to embedded devices, in order to automate testing on your actual hardware using Squish, you’re tasked with either running Squish locally or via a local network connection. But this local PC/local hardware solution does not scale, often leaving test teams faced with the challenges associated with limited hardware constraints and not having timely access to hardware resources. To scale automated testing of Qt and Web UIs using Squish, you need the ability to run it on a remote target. Timesys On-Premises BFC — Remote Testing with Full Control Over Your Hardware The Timesys BFC provides a standardized infrastructure to add and manage hardware across locations. The BFC complements Squish by extending it to your actual product hardware, provid- ing seamless integration of automated testing on your hardware, no matter where it is located. The Squish-BFC solution enables remote testing on different boards in multiple locations. Squish GUI Testing Squish GUI Testing Using a Dedicated PC Connection Using BFC for Connecting to Different Boards Enable remote to a Single Board In Multiple Locations UI testing on your actual hardware Set up automated test processes and frameworks with global access Full control of the system by In addition, when you use Squish with the BFC, you have the ability to remote deploy SD card development images with Squish-aware runtime software, enabling you to select images you want to run.
    [Show full text]
  • GUI Test Automation for Qt Application
    Institutionen för datavetenskap Department of Computer and Information Science Final thesis GUI test automation for Qt application by Lei Wang LIU-IDA/LITH-EX-A--15/053--SE 2015-09-15 Linköpings universitet Linköpings universitet SE-581 83 Linköping, Sweden 581 83 Linköping Linköping University Department of Computer and Information Science Final Thesis GUI test automation for Qt application by Lei Wang LIU-IDA/LITH-EX-A--15/053--SE 2015-09-15 Supervisor: Nima Aghaee Ghaleshahi IDA, Linköping University Examiner: Ahmed Rezine IDA, Linköping University Abstract GUI test automation is a popular and interesting subject in the testing industry. Many companies plan to start test automation projects in order to implement efficient, less expensive software testing. However, there are challenges for the testing team who lack experience performing GUI tests automation. Many GUI test automation projects have ended in failure due to mistakes made during the early stages of the project. The major work of this thesis is to find a solution to the challenges of establishing new test automation projects and determine an appropriate method to build GUI tests automation. Due to the particularity of GUI tests automation, keyword driven test approach is introduced in this thesis. The advantages and disadvantages are shown by undertaking comparison with the Record and replay testing method and the data driven testing method. The research also includes a feasibility study of GUI tests automation. The analysis report points out which kinds of test projects should be automated and which kinds should not be automated. Test automation tool selection is a critical step for an test automation project.
    [Show full text]