Exploring an Open Source Automation Framework Implementation.

Slides:



Advertisements
Similar presentations
Debugging ACL Scripts.
Advertisements

Design Validation CSCI 5801: Software Engineering.
Designing Reusable Frameworks for Test Automation
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
US Army Corps of Engineers BUILDING STRONG ® Performing Data Migration USACE SDSFIE Training Prerequisites: Implementing a Local Adaptation.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Test Automation An Approach to Automated Software Regression Testing Presented by Adnet, Inc Feb 2015.
Programming Types of Testing.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Exploring Office Grauer and Barber 1 Creating More Powerful Applications: Introduction to VBA(Wk9)
 2008 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
University of Southern California Enterprise Wide Information Systems Getting Started in R/3 Instructor: Richard W. Vawter.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Understanding the Mainline Logical Flow Through a Program (continued)
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Quick Start Guide. This 22 page introduction to the Financial Assessment Subsystem provides the user with a visual overview of the components of the system.
Understanding of Automation Framework A Storehouse of Vast Knowledge on Software Testing and Quality Assurance.
September 2009 QTP Automation Framework. Objective  Introduction to Automation  Benefits of Automated Testing  Automated Testing Process  Introduction.
Test Automation Best Practices
NYC Technology Forum Introduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director,
Lesson15. JavaScript Objects Objects encapsulate data (properties) and behavior(methods); the properties and the methods of an object are tied together.
Silent Dismissal Administrator Quick Start Guide.
UNIT-V The MVC architecture and Struts Framework.
Dataface API Essentials Steve Hannah Web Lite Solutions Corp.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Automation Fundamental Concepts &
Automation Testing- QTP Rajesh Charles Batch No: Date: jan
Module 3: Table Selection
Classroom User Training June 29, 2005 Presented by:
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
Moving into the Testing Phase Revised for October 22, 2008.
MAHI Research Database Data Validation System Software Prototype Demonstration September 18, 2001
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
CSCI 6962: Server-side Design and Programming Validation Tools in Java Server Faces.
OCAN College Access Program Data Submissions Vonetta Woods HEI Analyst, Ohio Board of Regents
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
Winrunner Usage - Best Practices S.A.Christopher.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Testing Workflow In the Unified Process and Agile/Scrum processes.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
Access Online Cardholder Transaction Approval Training 1 Client Logo.
Tutorial 8 Programming with ActionScript 3.0. XP Objectives Review the basics of ActionScript programming Compare ActionScript 2.0 and ActionScript 3.0.
Session Objectives • Login to PeopleSoft Test Framework(PTF)
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
Exploring Microsoft Access Chapter 8 Creating More Powerful Applications: Introduction to VBA.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
I Power Higher Computing Software Development Development Languages and Environments.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Office of Housing Choice Voucher Program Voucher Management System – VMS Version Released October 2011.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Chapter – 8 Software Tools.
HEI/OCAN College Access Program Data Submissions.
Chapter 3 Part II. 3.8 Placing a Class in a Separate File for Reusability.cpp file is known as a source-code file. Header files ◦ Separate files in which.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
QC – User Interface QUALITY CENTER. QC – Testing Process QC testing process includes four phases: Specifying Requirements Specifying Requirements Planning.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Enhanced Car Payment Calculator Application Introducing Exception Handling.
ASP.NET Programming with C# and SQL Server First Edition
Coupling and Cohesion 1.
Understanding of Automation Framework
Applied Software Implementation & Testing
Selection CIS 40 – Introduction to Programming in Python
Introduction to Classes and Objects
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Integration Testing.
Presentation transcript:

Exploring an Open Source Automation Framework Implementation

Journey of Test Automation Record and Playback Test Script Modularity creating small, independent scripts that represent modules, sections, and functions of the application-under-test combine them in a hierarchical fashion to construct larger tests Test Library Architecture divides the application-under-test into procedures and functions (or objects and methods depending on your implementation language) instead of scripts requires the creation of library files that represent modules, sections, and functions of the application-under-test library files are then called directly from your test case scripts Data-Driven Testing test input and output values are read from data files and are loaded into variables in captured or manually coded scripts navigation through the program, reading of the data files, and logging of test status and information are all coded in the test script Keyword-Driven Testing the entire process is data-driven, including functionality requires the development of data tables and keywords

Data Driven Testing Driver Scripts Perform initialization (if required), then call the Test Case scripts in the desired order Test Case Scripts Perform application test case logic using Business Function scripts Business Function Scripts Perform specific Business Functions within the application Subroutine Scripts Perform application specific tasks required by two or more Business scripts User-defined Functions General, Application-specific, and Screen-access functions

Keyword-Driven Testing Driver Script Performs initialization, if required Calls the Application-Specific “Controller” Script, passing to it the file-names of the Test Cases (which have been saved from the spreadsheets as a “tab-delimited” files) The “Controller” Script Reads and processes the file-name received from Driver Matches on “Key Words” contained in the input-file Builds a parameter-list from the records that follow Calls “Utility” scripts associated with the “Key Words”, passing the created parameter- list Utility Scripts Process input parameter-list received from the “Controller” script Perform specific tasks (e.g. press a key or button, enter data, verify data, etc.), calling “User Defined Functions” if required Report any errors to a Test Report for the test case Return to “Controller” script User Defined Functions General and Application-Specific functions may be called by any of the above script- types in order to perform specific tasks

WRAFS Architecture Application Under Test Application Map – WRAFS GUI MAP CycleDriver (TSL Script) WRAFS DRIVER Suite Driver (TSL Script) Step Driver (TSL Script) Suite Tables (.STD) WRAFS ENGINE Component Functions (TSL SCRIPT) Support Libraries (TSL SCRIPT) Suite Tables (.STD) Cycle Tables (.CDD) Step Tables (.SDD) START CYCLE TEST Step Tables (.SDD)

High Level Overview The SAFS framework consists of 5 layers. In order from the bottom up: Component Function Modules – Generic independent modules of code controlling functions for different objects Maps – Files that link given names to automation tool names for all components on each screen Step Tables – Low level tables linking data variables and actions to objects Suite Tables – Higher level tables assigning values to variables used in Step Tables Cycle Tables – The Highest level of abstraction, used to link Suite Tables (test cases) to form a complete test cycle to be executed

Cycle Table Cycle Table: VerifyAuthenticationFunction KEYWORDS (Suite Tables)TABLE PURPOSE VerifyInvalidLogin Tests with Invalid UserID and/or Password VerifyBlankLogin Tests with Missing UserID and/or Password VerifyValidLogin Tests with Valid UserID and Password

Cycle Driver Cycle Tables combine intermediate-level Suites into Cycles. The Suites can be combined in different ways depending upon the testing Cycle we wish to execute (Regression, Acceptance, Performance…). Each Cycle will likely specify a different type or number of tests. Different cycles are defined to exercise different modules or components of an application A regression test cycle might select an appropriate subset of suite tables from each of the other test cycles CycleDriver reads each record from the Cycle Table, passing SuiteDriver each Suite Table it finds during this process.

Cycle Driver Control Flow Execution starts from StartCycleTest Script All Libraries are loaded in DDEngine script CycleDriver.CDD file is opened Read the next record if it is present else execution is completed If 1 st field ; or # If 1 st field “T” If 1 st field “C” Goto DriverCommands Goto SuiteDriver Skip the Line Complete the Suite Process Execute the Command, set return codes, print Log messages

Suite Table Suite Table: VerifyInvalidLogin KEYWORDS (Step Tables)USERIDPASSWORD LaunchSite LoginBadUserGoodPassword VerifyLoginError LoginGoodUserBadPassword VerifyLoginError LoginBadUserBadPassword VerifyLoginError ExitLogin

Suite Table Suite Table: VerifyBlankLogin KEYWORDS (Step Tables)USERIDPASSWORD LaunchSite Login"" VerifyLoginError ExitLogin Suite Table: VerifyValidLogin KEYWORDS (Step Tables)USERIDPASSWORD LaunchSite LoginGoodUserGoodPassword VerifyLoginSuccess ShutdownSite

Suite Driver Suite Tables tables typically combine Step Tables into Suites in order to perform more useful tasks. The same Step Tables may be used in many Suites. We then mix-and-match them in Suites according to the purpose and design of our tests, for maximum reusability. SuiteDriver reads each record from the Suite Table, passing StepDriver each Step Table it finds during this process.

Suite Driver Control Flow FileName.STD file is opened Read the next record if it is present else give control back to the CycleDriver If 1 st field ; or # If 1 st field “T” If 1 st field “C” Goto DriverCommands Goto StepDriver Skip the Line Execute the Command, set return codes, print Log messages Complete the Step Process SuiteDriver

Step Table Step Table: LaunchSite COMMAND/DOCUMENTARG/COMPONENTACTION EXPECTED RESULTS LaunchBrowserDefault.htm Browser VerifyCaption"Login" Step Table: Login &user &password DOCUMENTCOMPONENTACTIONINPUT DATA LoginPageUserIDInputText&user LoginPagePasswordInputText&password LoginPageSubmitButtonClick Step Table: VerifyLoginError DOCUMENTCOMPONENTACTION EXPECTED RESULT ErrorWin VerifyCaption"Error" ErrorWinErrorMessageVerifyText"The User ID or Password was invalid." ErrorWinOKButtonClick

Step Table Step Table: ExitLogin DOCUMENTCOMPONENTACTION LoginPageCancelButtonClick Step Table: VerifyLoginSuccess DOCUMENTCOMPONENTACTION EXPECTED RESULT HomePage VerifyTitle"Home" Browser VerifyCaption"Welcome" Step Table: ShutdownSite DOCUMENTCOMPONENTACTIONINPUT DATA Browser SelectMenuItemFile>Exit

Step Driver Step Tables contain the detailed step-by-step instructions of our tests. Using the object names found in the Application Map, and the vocabulary defined by the Component Functions; these tables specify what document, what component, and what action to take on the component. StepDriver parses records in the Step Table and performs some initial error detection, correction, and synchronization making certain that the document and\or the component we plan to manipulate are available and active. StepDriver then routes the complete instruction record to the appropriate Component Function for final execution.

Step Driver Control Flow FileName.SDD file is opened Read the next record if it is present else give control back to the calling SuiteDriver If 1 st field ; or # If 1 st field “T” If 1 st field “C” Goto DriverCommands Check the ObjectType of the component Skip the Line Execute the Command, set return codes, print Log messages Goto the respective class of the component StepDriver Execute the called wrapper function Set proper return status and print corresponding Log Messages

Component Functions Component Functions are those functions that actively manipulate or interrogate component objects. Different Component Function module for each type of component we encounter Component Function modules are the application-independent extensions applied to the functions already provided by the automation tool with added extra code to help with error detection, error correction, and synchronization. The component Functions takes the windows name in which the component resides, the actual component name on which the action is to be performed, the values needed for performing the action and the type of action to be performed as its arguments. Each Component Function modules will define the keywords or "action words" that are valid for the particular component type it handles. The Component Function keywords and their arguments define the low-level vocabulary and individual record formats will be used to develop the test tables.