SlideShare a Scribd company logo
Test Automation Framework Designs Designing standardized frameworks instead of simple scripting By Martin Lienhard
The Great Divide There has been a divide separating QA and Dev due in large part by 3 rd  party tool vendors and their proprietary test tools Open source tools have helped significantly to bridge that divide, so that we can work together to create better software Most QAs have the bigger picture of what they want to test, and how to do it, but have trouble building robust automation frameworks, because they lack the technical skills. Most Developers focus on testing code in isolation, but lack the testing experience from a system-wide or end-to-end perspective, so they have trouble building a test automation framework that suits the needs of QA.
1 st  Phase of Test Progression Most QA start out creating test scripts by using record & playback tools Lack conditional logic and looping Contain static data, UI locators, URLs, etc. Cannot be executed iteratively Cannot be reusable modules Should not be chained together as dependencies Lack configuration and global properties Cannot abstract away from the test tool or test runner
Record & Playback Test Scripts

Recommended for you

Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium

Here is the presentation of the lectore that a gave at my work (3Base group) about the web testing with Selenium and TestNG

testingwebautomation
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach

This document discusses test automation approaches and best practices. It defines test automation as using software to perform test activities like execution and checking results. The document outlines how test automation fits into the software development lifecycle and notes that reducing manual testing and redundant tasks is key to success. It also discusses factors to consider for test automation, types of tests that can be automated, and technologies used for test automation like object-based and image-based recognition.

test otomasyontest automationselenium
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt

Using Selenium for Automated testing - basic level: short introduction into the selectors and basic methods used in writing a simple script with Selenium Webdriver.

automationtestingsoftware testing
2 nd  Phase of Test Progression QA usually improves their tests by adding data-driven techniques Create variables and arrays to store data Create parameterized functions or methods to store data Add looping to recorded scripts
3 rd  Phase of Test Progression QA usually improves their tests by creating a business function library Modular, reusable test libraries of functions Create file readers that pull in parameters from text files, CSV files, etc. Abstract out the data from the tests by externalizing data Create parameterized or iterative tests that are data-driven Abstract out the UI locators from the tests by externalizing UI maps Create global properties and configuration files A vast array of disparate data pools and UI maps are created, which usually become unmanageable after a couple of years
4 th  Phase of Test Progression QA usually improves their tests by creating a keyword-driven library: Create ODBC functions that read data from spreadsheets and databases Create spreadsheets of keywords that represent business domain language Low-level keywords describe test operations High-level keywords describe business language Intermediate-level keywords map business functions to test operations Tests become readable by business users and non-technical QA
… continued Create spreadsheets of data that drive the tests Query data from the application database as input and verification points for tests A hierarchy of abstracted keyword spreadsheets are created Now non-technical BAs and QAs are creating automated tests A vast array of disparate keyword spreadsheets are created, which usually become unmanageable after a couple of years Nearly all 3 rd  party vendor test tools live in this area today Most of these tools use legacy scripting languages, which are not compatible with today’s technology

Recommended for you

Automation Testing
Automation TestingAutomation Testing
Automation Testing

The document discusses automation testing basics, including that automation testing is done using automated tools to write and execute test cases. It explains that automation testing should be used for tasks that are time-consuming, repeated, tedious, or involve high risk test cases. The document also lists some popular free and commercial automation testing tools.

QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium

The document discusses automation testing using Selenium. It provides an overview of Selenium, including what it is, its components like Selenium IDE, Selenium RC, Selenium Grid, and Selenium WebDriver. It explains the features and advantages of each component. Selenium is an open source tool that allows automated testing of web applications across different browsers and platforms. It supports recording and playback of tests and can help reduce testing time and costs through automation.

automationseleniumqspiders
How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy

This document discusses designing an effective test automation strategy. It notes that current testing processes often lack sufficient test coverage and ROI turns negative. It emphasizes defining the proper scope and selecting an automation solution that can cover that scope. The document then introduces iLeap 2.0, an automation platform from Impetus Technologies that integrates open-source frameworks and tools to automate functional, API/web service, and security testing according to best practices. iLeap 2.0 is said to improve test coverage and maximize ROI.

5 th  Phase of Test Progression QAs become more technical and improve their tests by using object oriented testing techniques: Objects are designed and created to further modularize and reuse code with very low maintenance Test code is stored in objects The page object design is used Component object designs are used Test data are stored in objects Configuration and properties are stored in objects Calls are made to the application and developer written APIs to make tests “smarter”
… continued Continuous integration environments are utilized to run tests QA moves into white box testing to drive quality deeper into the application UI tests are ran “headless” to make them execute faster QA expands the test framework to include multiple test tools and test runners Databases, web services, and APIs are created to reuse code and data across multiple test tools Test tools and 3 rd  party utilities can be upgraded to newer versions with enhanced functionality with minor impact to the test framework
… continued Developers can now run the tests, and contribute to the overall test suites More 3 rd  party vendors are rewriting their test tools to include object oriented languages to accommodate these technical QAs Due to the cost of the tools and their proprietary nature, it is difficult to place these tools into a continuous integration environment to share with developers
What is a test automation framework? A test automation framework is an application that allows you to write a series of tests without worrying about the constraints or limitations of the underlying test tools

Recommended for you

Test automation process
Test automation processTest automation process
Test automation process

The document discusses test automation process and framework. It provides details on what test automation means, benefits of automation, guidelines for identifying test cases to automate, challenges in automation, and components of an automation framework like data tables, libraries, object repositories, scripts, and results.

automation framework
Test automation
Test automationTest automation
Test automation

This document provides an overview of test automation using Cucumber and Calabash. It discusses using Cucumber to write automated test specifications in plain language and Calabash to execute those tests on Android apps. It outlines the environments, tools, and basic steps needed to get started, including installing Ruby and DevKit, creating Cucumber feature files, and using Calabash APIs to automate user interactions like tapping, entering text, and scrolling. The document also explains how to run tests on an Android app and generate an HTML report of the results.

calabashcucumberandroid test
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio

Katalon Studio is a free and robust automation solution for API, Web, and Mobile testing. It integrates all necessary components with built-in keywords and project templates into a complete automation framework. Katalon Studio is easy to use for beginners but still offers advanced capabilities for experienced users. This solution is trusted by an active community of over 150K users from 150+ countries around the world. In this knolx, we’ll take a look at what is API Testing and how the katalon studio is helpful in API Testing.

knolxknoldknow a knolder
Benefits of building a Test Framework Tool agnostic Abstracts away low level commands Utilize many test tools Test tools such as Selenium, WebDriver, etc. Test runner such as unit test frameworks Other common utilities Perform multiple levels and types of testing Functional, regression, load, performance, unit, integration, etc.
… continued Generic test API Common codebase and database Exception and error handling Modularized, reusable, and maintainable code and data Standardized test idioms Test configuration Configurable test suites Global test properties
… continued Automatic test versioning No need to get a specific version from the source control repository  Always get the latest version Eliminates deployment to multiple machines for testing different versions of an application Deploy to a single server machine
… continued Multi-threading Run tests in parallel Runs on test machines in the grid or cloud Test across multiple environments and application versions simultaneously Continuous integration Run in a continuous integration environment Share tests and collaborate with other teams

Recommended for you

Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for Success

Choosing an appropriate tool and building the right framework are typically thought of as the main challenges in implementing successful test automation. However, long term success requires that other key questions must be answered including: - What are our objectives? - How should we be organized? - Will our processes need to change? - Will our test environment support test automation? - What skills will we need? - How and when should we implement? In this workshop, Lee will discuss how to assess your test automation readiness and build a strategy for long term success. You will interactively walk through the assessment process and build a test automation strategy based on input from the group. Attend this workshop and you will take away a blue print and best practices for building an effective test automation strategy in your organization. • Understand the key aspects of a successful test automation function • Learn how to assess your test automation readiness • Develop a test automation strategy specific to your organization

test automationstrategy
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1

Slides from a session presented by Fadi Stephan from Kaizenko at the 2019 Global Scrum Gathering in Austin, TX on 05/20/2019 DC. Also see the blog series on Agile Testing at https://www.kaizenko.com/agile-testing/ Abstract: Many teams struggle with fitting in testing activities inside of a Sprint. They end up doing primarily development activities in a Sprint and push testing activities to run in dedicated testing Sprints following the coding Sprints or have a coding and testing Sprint running in parallel. However, in Scrum, the output of every Sprint is a potentially shippable product increment. This means the product increment should be well tested within the Sprint and ready to be delivered. Come to this presentation to learn how to tackle testing on an Agile team, what kind of tests to execute, what to automate and what not to automate, the different test responsibilities, and when to run which tests. Leave with a testing strategy that you can start applying the next day to gradually get a team to start testing from day 1 of the Sprint and deliver a true product increment at the end of each Sprint.

agileagile software developmentscrum
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt

This document provides an overview of Selenium, an open source tool for automating web application testing. It discusses why and when to automate testing, the key features and components of Selenium including Selenium WebDriver, Selenium Grid, and Selenium IDE. It also covers how to install Selenium and write sample test scripts using Selenium commands. The document explains the architectures of Selenium Grid and the user interface of Selenium IDE. It concludes by discussing other uses of Selenium and the future of testing.

testingseleniumprogramming
Test Framework Architecture
Test Suite A collection of tests to run Have test parameters i.e.: application, environment, version, etc. Have test groups i.e.: regression, build, etc.
Test Suite example
Test Configuration Any configurable test item that is separate from the test suite i.e.: web site URLs, database URLs, usernames, passwords, lab machine configurations, etc. Separated from the rest of the framework for information security and regulatory compliance

Recommended for you

Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium

This document provides an overview of test automation using Selenium. It discusses reasons to automate testing such as supporting regression testing and finding defects missed by manual testing. It also discusses when not to automate, such as when an application's behavior is unstable. The document then covers the Selenium framework, its components like Selenium IDE and WebDriver, and languages it supports like Java. It also discusses concepts in object-oriented programming relevant to test automation like classes, objects, inheritance and more.

Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber

The document describes an automated test framework developed using Cucumber to reduce testing costs and improve coverage. Cucumber allows writing tests in a readable format and mapping them to code. The framework uses Cucumber's Gherkin language, page object model, and integrates with tools like Selenium and Jenkins for cross-browser testing and continuous integration. Test reports are generated using Extent Reports and screenshots of failed tests. The framework aims to minimize gaps between developers and stakeholders through behavior-driven development and automation.

seleniumautomationjava
Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo

This document discusses test automation, including what it means, when it should be used, best practices, and examples of automation tools. Test automation involves writing software to reproduce the steps of a manual test process. It is useful for speeding up testing, improving coverage, and ensuring consistency. Tests that are repeated or will be run frequently are good candidates for automation. Common automation tools include NUnit, JUnit, Sahi, QTP, JMeter and Load Runner. Best practices include choosing the right tool, only automating repeated tests, identifying automatable cases, and using a data-driven approach.

Test Configuration example
Test Properties Are thread specific Have global scope and can be accessed by any class method
Test Properties example
Test Data Repository Abstracts away changes made only to test data Data can be stored in databases and files such as XML, JSON, XLS, TXT, CSV, etc. Data can be retrieved from data sources such as databases, web services, APIs, EDI, etc. Metadata can be used to describe additional information about the test data such as versions, application names, required fields, invalid formats, etc. Share data across multiple screens, applications, and tools

Recommended for you

Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning

This document provides guidelines for effective test automation at IBM Global Services. It discusses that automation is viewed as a silver bullet but can also frustrate if not implemented properly. The document recommends starting simple and increasing complexity as skills grow. It provides considerations for automation, such as tests that are long, repetitive, and non-subjective. The document outlines 10 guidelines for automation, including establishing standards, separating what from how, using a six phase process, and defining required skills. It also discusses functional decomposition and keyword-driven methodologies and provides an overview of automation tools.

Selenium ppt
Selenium pptSelenium ppt
Selenium ppt

Selenium is a suite of tools used for browser automation testing. It was introduced in 2004 and is developed using JavaScript. Selenium has four main components: IDE, Remote Control, WebDriver and Grid. It is used to test web applications and can perform functional, regression and load testing. The Selenium IDE records user interactions in the Firefox browser and exports test cases to various languages. It has advantages like being open source and easy to use, but only supports the Firefox browser.

selenium ide
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile

What are the Key drivers for automation? What are the Challenges in Agile automation and How to deal with them? How to automate? Who will automate? Which tool to select? Commercial or open source? What to automate? Which features? Here is what our experience says

agile indiaagile india 2010post-modern agile
Test Data example
Parameterized Test example JUnit4 TestNG
Test Parameters Uses a hash map of key-value pairs Very useful for both functional and load testing Hash maps eliminate the need for Creating fixed method parameters that change frequently Changing data access objects that change frequently Hash maps can be easily populated from any data source Retrieve the test data and process the format for input to various test tools Handles version differences between test data
Test Parameters example

Recommended for you

Page Objects Done Right - selenium conference 2014
Page Objects Done Right - selenium conference 2014Page Objects Done Right - selenium conference 2014
Page Objects Done Right - selenium conference 2014

The document discusses page object design patterns for test automation. It describes four main steps: 1) Expose the service or page being tested rather than using WebDriver APIs directly in tests. 2) Eliminate random sleeps by adding wait methods. 3) Support different users by overloading methods or using parameters. 4) Initialize page objects using a page factory to avoid duplicating lookup code. It also discusses using coordinators to synchronize tests by waiting for events from the application under test.

selenium
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...

This document provides guidance on conducting manual test estimation for the pre-sale phase of a project. It discusses factors to consider like requirements, environments, and complexity. Main activities to estimate include requirements review, test design, execution, and bug handling. Regression is calculated based on sprint count, tested functionality percentage, and environments. Risks like changing requirements and infrastructure issues are accounted for with multipliers. A demo is provided of estimating a real project involving calculations, environments, and risks. Statistics on past projects estimated duration and team size are also included.

prymakovbenyukhtesting
Ivan Pashko - Simplifying test automation with design patterns
Ivan Pashko - Simplifying test automation with design patternsIvan Pashko - Simplifying test automation with design patterns
Ivan Pashko - Simplifying test automation with design patterns

The document discusses simplifying test automation through the use of design patterns. It begins by defining code smells that make tests complex, such as duplication, conditional logic, obscure tests, and fragile tests. It then explains several design patterns that can address these smells, including template method for removing duplication, strategy for replacing conditional logic, factory/builder for constructing complex objects, composite for grouping objects, and decorator for adding responsibilities dynamically. The document advocates for clean, well-structured test code through applying these patterns.

patternspashkoautomation
User Interface (UI) Mapping Abstracts away changes made only to UI object locators UI object identifiers can be stored in databases and files such as XML, JSON, XLS, TXT, CSV, etc. Metadata can be used to describe additional information about the UI objects such as versions, application names, form fields, etc. Share UI identifiers across multiple screens, applications, and tools
UI Map example
Test Controls Retrieve the UI locators and process the format for input to various test tools Handles version differences between UI locators Develop custom controls to mimic UI objects Self test verification
Test Control Interface example

Recommended for you

Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework

This document discusses patterns for test automation frameworks. It begins by introducing common patterns like page objects, business layer, and factories. It then provides examples of page object and business layer page object patterns. The document also discusses test data patterns and different ways to specify test data and locators. Finally, it outlines advantages of using patterns like reduced complexity, reusability, and maintenance. The key message is that the best pattern depends on the specific test automation context.

software testingautomationtest data pattern
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing

Once your organization has successfully implemented Agile methodologies, there are two major areas that will require improvements: Continuous Integration and Automated Testing. This presentation illustrates why it's important to invest in an Automated Testing Framework (ATF) to reduce technical debt, increase quality and accelerate time to market. Learn more at www.agiletestingframework.com.

testingframeworkbdd
How to be an awesome test automation professional
How to be an awesome test automation professionalHow to be an awesome test automation professional
How to be an awesome test automation professional

This document provides guidance on becoming an expert in test automation. It recommends learning multiple automation tools to test different applications and platforms, including Selenium for web, Appium for mobile, REST Assured for APIs, and tools like Robot Framework and Winium for desktop. The document also stresses the importance of creating reusable, scalable automation frameworks that integrate with other tools and are not dependent on a single language or platform. It suggests attending meetups and talks to learn from other experts and stay up to date on new techniques and tools in the evolving field of test automation.

test automationseleniumquality
Test Control Class example
Test Components A class object that represents a piece of a form, page, or screen Groups of common objects that can be found across more than one page Standardized component verification tests
Test Components example
Test Forms A class object that represents a piece a form Groups of components and controls that mimic the UI form Standardized form verification tests

Recommended for you

Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs

Test automation framework designs by Martin Lienhard. In this slide Martin describes the phases of designing a test automation framework, and why we should move far, far away from record & playback test scripts. Data-driven and parameterized tests from external files, DBs, etc. External UI maps of locators. Using multiple test tools (Selenium/WebDriver being the favorite, of course). Testing across multiple environments on parallel deployment paths with different application versions. Online courses offered by Martin: https://www.udemy.com/beginning-webdriver-and-java/

automated-testingwebdriverappium
Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)

This document provides an overview and summary of new features in Visual Studio 2010 and Team Foundation Server 2010. It begins with introducing the product lineup and changes to MSDN subscriptions. Major sections then summarize new capabilities in project management, reporting, version control, architecture/modeling tools, development aids like profiling and testing tools like lab management and coded UI tests. The document aims to outline the key updates and highlights for developers across the application lifecycle with Visual Studio 2010 and TFS.

Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing

The acute software testing process, tools we use and tools we\'ve developed. We test with both open source and licensed-based products, such as Selenium and Mercury.

Test Form Interface example
Test Form Class example
… continued
Test Page or Screen A class object that represents a web page or screen – commonly referred to as “page objects” Groups of forms, components, and controls that mimic the UI page or screen Self test verification

Recommended for you

Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applications

Oracle Application Testing Suite (ATS) provides an integrated solution for testing applications, middleware, and infrastructure from end-to-end. It includes tools for test management, functional testing, load testing, and diagnostics to ensure quality, performance, and reliability. ATS offers accelerators to optimize testing for Oracle applications, SOA, Web services, and Application Development Framework applications.

murali iyengar
Vsts 2
Vsts 2Vsts 2
Vsts 2

The document summarizes Microsoft's Visual Studio Team System (VSTS) and Visual Studio 2010 products. It discusses key features like integrated development tools, source code management, work item tracking, build automation, testing capabilities, and support for different development processes. VSTS aims to improve team productivity and collaboration through an integrated platform for the entire development lifecycle. Visual Studio 2010 offers various editions that provide features for coding, testing, modeling, database development, and other tasks.

Development Practices & The Microsoft Approach
Development Practices & The Microsoft ApproachDevelopment Practices & The Microsoft Approach
Development Practices & The Microsoft Approach

Microsoft's approach focuses on removing barriers between roles, clearly defining a process, and providing quality-centric tools integrated throughout the lifecycle. Their solution includes Visual Studio Team Suite, Microsoft Solutions Framework process guidance, and Visual Studio Team Foundation Server. This unified platform supports agile, CMMI, and customized processes while enabling traceability, management of work items, and integration of tasks like version control, testing, and reporting.

Test Page Class example
Instances when  NOT  to return a new Page Object for each Page Submitting a page can return one of many different pages, or versions of pages, which would be represented by many different classes Page A could return B, C, or D Page A could return B v1.0, B v2.0, or Cv1.0, C v2.0, or D v1.0, D v2.0, etc. This means that you would need to do the following: Create multiple methods with similar names that return different page objects Page A.submitB() returns B Page A.submitC() returns C
… continued Return an page object of an inherited type, and then cast the type of the page in the script Page A.submit() returns page X Pages B and C inherit from page X Script checks the type of X and casts to B or C This can get very ugly in a script… Submitting a page may initiate an AJAX call, which can rewrite the same page Page A could display an AJAX (modal) dialog Page A could display some other AJAX widget Page A could be rewritten to look like page B
… continued If the page flow is not what is being tested, then an unexpected page or AJAX call could fail and kill the test Test case: We are trying to test the functionality of page Z The primary page flow is as follows: A to B, B to C, C to D, and D to Z The alternative page flows could also correctly occur, but are unpredictable base on many unknown variables: A to H, H to L, L to M, and M to Z A to R, R to S, and S to Z A to X, X to Y, and Y to Z

Recommended for you

Chapter 7)
Chapter 7)Chapter 7)
Chapter 7)

The document provides information about managing a website, including testing and evaluating it before and after publishing. It discusses submitting project documents, presentations, and exams. It also covers levels of web development, maintenance, testing the site for errors, and evaluating the design. Methods of acquiring server space, obtaining a domain name, and uploading the site are also outlined.

web hosting
Tfs Overview
Tfs OverviewTfs Overview
Tfs Overview

Chad Green is a project lead at HP Enterprise Services responsible for an IT acquisition system. He is providing an overview of new features in Visual Studio 2010 and Team Foundation Server 2010, including improved branch visualization, test impact analysis, requirements management, agile planning tools, and testing capabilities like IntelliTrace and test lab management. The release dates for Visual Studio 2010 and TFS 2010 are also provided.

Paper CS
Paper CSPaper CS
Paper CS

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software works as intended under normal and peak usage while finding errors. Static code analysis further checks for design, naming, security, and other issues based on configurable rules.

… continued What if page A unexpectedly returned page H, R, or X instead of page B? If page H, R, or X verified itself and asserted a failure, then how would the test ever reach page Z?
JavaScript & HTML DOM There are many instances when we need the test framework to mimic a human reading the content of a page and then making a decision on what action to perform next Verifying the list of items on a search results page Selecting items to purchase from a list Selecting elements to edit, update, or delete Scenarios like these usually occur as a result of some previous action, and display content generated dynamically to the user The test framework may have to query an application database or web service to provide the input to trigger the dynamic page content
… continued The test framework will then need to interrogate the page to determine if the expected elements, attributes, or content are present, and then make a decision on whether to perform an action on some element JavaScript can be used to inspect the HTML DOM to find these elements and their attributes and content JavaScript expressions can be evaluated by the test tool, and then return some result that the test framework can use to make a decision Checking if an element is present or getting a value will not work on a dynamically generated element
JS DOM example HTML JavaScript

Recommended for you

alkatest7
alkatest7alkatest7
alkatest7

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software quality by finding defects early in development and validating that code works as intended under normal and peak loads. Static code analysis further helps enforce coding standards and reduces code reviews. Together, these automated testing practices help reduce software defects and associated economic costs.

Paper Ps
Paper PsPaper Ps
Paper Ps

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software works as intended under normal and peak usage while finding errors and allowing for more efficient development. Static code analysis further helps enforce coding standards and reduce issues through configurable rules.

justin presentation upload PPT june 19
justin presentation upload PPT june 19justin presentation upload PPT june 19
justin presentation upload PPT june 19

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software quality by finding defects early in development and validating that code performs as expected under normal and peak loads. Static code analysis further helps enforce coding standards and reduces code reviews. Together, these automated testing practices can help eliminate an estimated $22.2 billion in costs annually from software defects in the US economy.

Test Application Container A class object that represents the application, and contains the  major  page and component objects by version It provides the test services available to the test scripts Is thread specific
Container example Interface Class
Parallel Environment Tracks with Different Build Versions Parallel development tracks competing to deploy to production Run automated build verification tests Run automated functional and regression tests Run automated user acceptance tests Run automated tests for production patches and fixes Run automated sanity tests against production post-deployment Run automated tests across versions for production rollback strategy
Parallel Environment Tracks with Different Build Versions

Recommended for you

upload ppt1 by browse button
upload ppt1 by browse buttonupload ppt1 by browse button
upload ppt1 by browse button

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software works as intended under normal and peak usage while finding errors. Static code analysis further checks for design, naming, security, and other issues based on configurable rules.

Paper Ps
Paper PsPaper Ps
Paper Ps

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software quality by finding defects early in development and validating that code performs as expected under normal and peak loads. Static code analysis further helps enforce coding standards and reduces code reviews.

Paper Ps
Paper PsPaper Ps
Paper Ps

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software quality by finding defects early in development and validating that code performs as expected under normal and peak loads. Static code analysis further helps enforce coding standards and reduces code reviews.

Test Scripts Test scripts can be written using standard unit test frameworks Classes and methods are written using domain language Script details and complexity are abstracted to the framework layers Scripts are shorter and easier to read
Test Script Class
Test Reports and Logs Reports can be generated from The unit test framework External reporting tools Custom report utilities can be written Test execution activity can be written to standard logging utilities Test failures, errors, and exceptions can be written to the reports and logs  
Q&A Thank you for your time! Martin Lienhard [email_address]

Recommended for you

justin for ppt1 by browse button
justin for ppt1 by browse buttonjustin for ppt1 by browse button
justin for ppt1 by browse button

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools improve quality by finding defects early, validating that changes don't break existing functionality, and ensuring applications can handle expected user loads. Static code analysis also helps enforce coding standards and reduces code review effort.

alka ppt test from13
alka ppt test from13 alka ppt test from13
alka ppt test from13

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools help ensure software quality by finding defects early in development and validating that code performs as expected under normal and peak loads. Static code analysis further helps enforce coding standards and reduces code reviews. Together, these automated testing practices help reduce software defects and associated economic costs.

alka ppt upload no code change
alka ppt upload no code changealka ppt upload no code change
alka ppt upload no code change

Automated testing helps identify software bugs earlier through unit testing, code coverage, code analysis, web testing, load testing, and test case management. These tools improve quality by finding defects early in development and ensuring code changes do not break existing functionality. Static code analysis further helps enforce coding standards and reduces code reviews. Load, stress, and performance testing validate how applications function under normal and peak usage to identify scalability issues.

More Related Content

What's hot

Test Automation Framework Development Introduction
Test Automation Framework Development IntroductionTest Automation Framework Development Introduction
Test Automation Framework Development Introduction
Ganuka Yashantha
 
Automation testing
Automation testingAutomation testing
Automation testing
Biswajit Pratihari
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
Cuelogic Technologies Pvt. Ltd.
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
Tzirla Rozental
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
Keytorc Software Testing Services
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
Ana Sarbescu
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
Sun Technlogies
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
Qspiders - Software Testing Training Institute
 
How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy
Impetus Technologies
 
Test automation process
Test automation processTest automation process
Test automation process
Bharathi Krishnamurthi
 
Test automation
Test automationTest automation
Test automation
Xavier Yin
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
Knoldus Inc.
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for Success
Lee Barnes
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
Kaizenko
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Anirudh Raja
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
apoorvams
 
Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber
Ramesh Krishnan Ganesan
 
Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
Nivetha Padmanaban
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Aneesh Rangarajan
 

What's hot (20)

Test Automation Framework Development Introduction
Test Automation Framework Development IntroductionTest Automation Framework Development Introduction
Test Automation Framework Development Introduction
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
 
How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy
 
Test automation process
Test automation processTest automation process
Test automation process
 
Test automation
Test automationTest automation
Test automation
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for Success
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
 
Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber
 
Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 

Viewers also liked

Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Page Objects Done Right - selenium conference 2014
Page Objects Done Right - selenium conference 2014Page Objects Done Right - selenium conference 2014
Page Objects Done Right - selenium conference 2014
Oren Rubin
 
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Ievgenii Katsan
 
Ivan Pashko - Simplifying test automation with design patterns
Ivan Pashko - Simplifying test automation with design patternsIvan Pashko - Simplifying test automation with design patterns
Ivan Pashko - Simplifying test automation with design patterns
Ievgenii Katsan
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
Anand Bagmar
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
Dimitri Ponomareff
 
How to be an awesome test automation professional
How to be an awesome test automation professionalHow to be an awesome test automation professional
How to be an awesome test automation professional
Kushan Shalindra Amarasiri - Technical QE Specialist
 

Viewers also liked (7)

Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
Page Objects Done Right - selenium conference 2014
Page Objects Done Right - selenium conference 2014Page Objects Done Right - selenium conference 2014
Page Objects Done Right - selenium conference 2014
 
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
Volodymyr Prymakov and Vlada Benyukh Detailed manual estimation approach for ...
 
Ivan Pashko - Simplifying test automation with design patterns
Ivan Pashko - Simplifying test automation with design patternsIvan Pashko - Simplifying test automation with design patterns
Ivan Pashko - Simplifying test automation with design patterns
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
How to be an awesome test automation professional
How to be an awesome test automation professionalHow to be an awesome test automation professional
How to be an awesome test automation professional
 

Similar to Test Automation Framework Designs

Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
Test Automaton
 
Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)
Steve Lange
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing
sthicks14
 
Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applications
InSync Conference
 
Vsts 2
Vsts 2Vsts 2
Vsts 2
Mohamed Samy
 
Development Practices & The Microsoft Approach
Development Practices & The Microsoft ApproachDevelopment Practices & The Microsoft Approach
Development Practices & The Microsoft Approach
Steve Lange
 
Chapter 7)
Chapter 7)Chapter 7)
Chapter 7)
webhostingguy
 
Tfs Overview
Tfs OverviewTfs Overview
Tfs Overview
Chad Green
 
Paper CS
Paper CSPaper CS
Paper CS
techweb08
 
alkatest7
alkatest7alkatest7
alkatest7
techweb08
 
Paper Ps
Paper PsPaper Ps
Paper Ps
techweb08
 
justin presentation upload PPT june 19
justin presentation upload PPT june 19justin presentation upload PPT june 19
justin presentation upload PPT june 19
techweb08
 
upload ppt1 by browse button
upload ppt1 by browse buttonupload ppt1 by browse button
upload ppt1 by browse button
techweb08
 
Paper Ps
Paper PsPaper Ps
Paper Ps
techweb08
 
Paper Ps
Paper PsPaper Ps
Paper Ps
techweb08
 
justin for ppt1 by browse button
justin for ppt1 by browse buttonjustin for ppt1 by browse button
justin for ppt1 by browse button
techweb08
 
alka ppt test from13
alka ppt test from13 alka ppt test from13
alka ppt test from13
techweb08
 
alka ppt upload no code change
alka ppt upload no code changealka ppt upload no code change
alka ppt upload no code change
techweb08
 
justin presentation slideshare1
justin presentation slideshare1justin presentation slideshare1
justin presentation slideshare1
techweb08
 
justin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCEDjustin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCED
techweb08
 

Similar to Test Automation Framework Designs (20)

Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing
 
Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applications
 
Vsts 2
Vsts 2Vsts 2
Vsts 2
 
Development Practices & The Microsoft Approach
Development Practices & The Microsoft ApproachDevelopment Practices & The Microsoft Approach
Development Practices & The Microsoft Approach
 
Chapter 7)
Chapter 7)Chapter 7)
Chapter 7)
 
Tfs Overview
Tfs OverviewTfs Overview
Tfs Overview
 
Paper CS
Paper CSPaper CS
Paper CS
 
alkatest7
alkatest7alkatest7
alkatest7
 
Paper Ps
Paper PsPaper Ps
Paper Ps
 
justin presentation upload PPT june 19
justin presentation upload PPT june 19justin presentation upload PPT june 19
justin presentation upload PPT june 19
 
upload ppt1 by browse button
upload ppt1 by browse buttonupload ppt1 by browse button
upload ppt1 by browse button
 
Paper Ps
Paper PsPaper Ps
Paper Ps
 
Paper Ps
Paper PsPaper Ps
Paper Ps
 
justin for ppt1 by browse button
justin for ppt1 by browse buttonjustin for ppt1 by browse button
justin for ppt1 by browse button
 
alka ppt test from13
alka ppt test from13 alka ppt test from13
alka ppt test from13
 
alka ppt upload no code change
alka ppt upload no code changealka ppt upload no code change
alka ppt upload no code change
 
justin presentation slideshare1
justin presentation slideshare1justin presentation slideshare1
justin presentation slideshare1
 
justin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCEDjustin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCED
 

More from Sauce Labs

Simplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless ToolsSimplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless Tools
Sauce Labs
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location Services
Sauce Labs
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
Sauce Labs
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
Sauce Labs
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
Sauce Labs
 
Creating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationCreating Digital Confidence with Test Automation
Creating Digital Confidence with Test Automation
Sauce Labs
 
Just Enough (Automated) Testing
Just Enough (Automated) TestingJust Enough (Automated) Testing
Just Enough (Automated) Testing
Sauce Labs
 
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium TestsUsing Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
Sauce Labs
 
How Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product ObsessionHow Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product Obsession
Sauce Labs
 
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon StewartWebinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
Sauce Labs
 
[Deu] Test Automatisierung Mit Web Driver.io
[Deu] Test Automatisierung Mit Web Driver.io[Deu] Test Automatisierung Mit Web Driver.io
[Deu] Test Automatisierung Mit Web Driver.io
Sauce Labs
 
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Sauce Labs
 
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. ForresterAccelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
Sauce Labs
 
How to Measure Success in Continuous Testing
How to Measure Success in Continuous TestingHow to Measure Success in Continuous Testing
How to Measure Success in Continuous Testing
Sauce Labs
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
Sauce Labs
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
Sauce Labs
 
Sauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software TestingSauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs
 
BDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu PetetiBDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu Peteti
Sauce Labs
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Sauce Labs
 
Continuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa BenuaContinuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa Benua
Sauce Labs
 

More from Sauce Labs (20)

Simplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless ToolsSimplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless Tools
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location Services
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
 
Creating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationCreating Digital Confidence with Test Automation
Creating Digital Confidence with Test Automation
 
Just Enough (Automated) Testing
Just Enough (Automated) TestingJust Enough (Automated) Testing
Just Enough (Automated) Testing
 
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium TestsUsing Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
 
How Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product ObsessionHow Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product Obsession
 
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon StewartWebinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
 
[Deu] Test Automatisierung Mit Web Driver.io
[Deu] Test Automatisierung Mit Web Driver.io[Deu] Test Automatisierung Mit Web Driver.io
[Deu] Test Automatisierung Mit Web Driver.io
 
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
 
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. ForresterAccelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
 
How to Measure Success in Continuous Testing
How to Measure Success in Continuous TestingHow to Measure Success in Continuous Testing
How to Measure Success in Continuous Testing
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Sauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software TestingSauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software Testing
 
BDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu PetetiBDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu Peteti
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
 
Continuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa BenuaContinuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa Benua
 

Recently uploaded

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 

Recently uploaded (20)

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 

Test Automation Framework Designs

  • 1. Test Automation Framework Designs Designing standardized frameworks instead of simple scripting By Martin Lienhard
  • 2. The Great Divide There has been a divide separating QA and Dev due in large part by 3 rd party tool vendors and their proprietary test tools Open source tools have helped significantly to bridge that divide, so that we can work together to create better software Most QAs have the bigger picture of what they want to test, and how to do it, but have trouble building robust automation frameworks, because they lack the technical skills. Most Developers focus on testing code in isolation, but lack the testing experience from a system-wide or end-to-end perspective, so they have trouble building a test automation framework that suits the needs of QA.
  • 3. 1 st Phase of Test Progression Most QA start out creating test scripts by using record & playback tools Lack conditional logic and looping Contain static data, UI locators, URLs, etc. Cannot be executed iteratively Cannot be reusable modules Should not be chained together as dependencies Lack configuration and global properties Cannot abstract away from the test tool or test runner
  • 4. Record & Playback Test Scripts
  • 5. 2 nd Phase of Test Progression QA usually improves their tests by adding data-driven techniques Create variables and arrays to store data Create parameterized functions or methods to store data Add looping to recorded scripts
  • 6. 3 rd Phase of Test Progression QA usually improves their tests by creating a business function library Modular, reusable test libraries of functions Create file readers that pull in parameters from text files, CSV files, etc. Abstract out the data from the tests by externalizing data Create parameterized or iterative tests that are data-driven Abstract out the UI locators from the tests by externalizing UI maps Create global properties and configuration files A vast array of disparate data pools and UI maps are created, which usually become unmanageable after a couple of years
  • 7. 4 th Phase of Test Progression QA usually improves their tests by creating a keyword-driven library: Create ODBC functions that read data from spreadsheets and databases Create spreadsheets of keywords that represent business domain language Low-level keywords describe test operations High-level keywords describe business language Intermediate-level keywords map business functions to test operations Tests become readable by business users and non-technical QA
  • 8. … continued Create spreadsheets of data that drive the tests Query data from the application database as input and verification points for tests A hierarchy of abstracted keyword spreadsheets are created Now non-technical BAs and QAs are creating automated tests A vast array of disparate keyword spreadsheets are created, which usually become unmanageable after a couple of years Nearly all 3 rd party vendor test tools live in this area today Most of these tools use legacy scripting languages, which are not compatible with today’s technology
  • 9. 5 th Phase of Test Progression QAs become more technical and improve their tests by using object oriented testing techniques: Objects are designed and created to further modularize and reuse code with very low maintenance Test code is stored in objects The page object design is used Component object designs are used Test data are stored in objects Configuration and properties are stored in objects Calls are made to the application and developer written APIs to make tests “smarter”
  • 10. … continued Continuous integration environments are utilized to run tests QA moves into white box testing to drive quality deeper into the application UI tests are ran “headless” to make them execute faster QA expands the test framework to include multiple test tools and test runners Databases, web services, and APIs are created to reuse code and data across multiple test tools Test tools and 3 rd party utilities can be upgraded to newer versions with enhanced functionality with minor impact to the test framework
  • 11. … continued Developers can now run the tests, and contribute to the overall test suites More 3 rd party vendors are rewriting their test tools to include object oriented languages to accommodate these technical QAs Due to the cost of the tools and their proprietary nature, it is difficult to place these tools into a continuous integration environment to share with developers
  • 12. What is a test automation framework? A test automation framework is an application that allows you to write a series of tests without worrying about the constraints or limitations of the underlying test tools
  • 13. Benefits of building a Test Framework Tool agnostic Abstracts away low level commands Utilize many test tools Test tools such as Selenium, WebDriver, etc. Test runner such as unit test frameworks Other common utilities Perform multiple levels and types of testing Functional, regression, load, performance, unit, integration, etc.
  • 14. … continued Generic test API Common codebase and database Exception and error handling Modularized, reusable, and maintainable code and data Standardized test idioms Test configuration Configurable test suites Global test properties
  • 15. … continued Automatic test versioning No need to get a specific version from the source control repository Always get the latest version Eliminates deployment to multiple machines for testing different versions of an application Deploy to a single server machine
  • 16. … continued Multi-threading Run tests in parallel Runs on test machines in the grid or cloud Test across multiple environments and application versions simultaneously Continuous integration Run in a continuous integration environment Share tests and collaborate with other teams
  • 18. Test Suite A collection of tests to run Have test parameters i.e.: application, environment, version, etc. Have test groups i.e.: regression, build, etc.
  • 20. Test Configuration Any configurable test item that is separate from the test suite i.e.: web site URLs, database URLs, usernames, passwords, lab machine configurations, etc. Separated from the rest of the framework for information security and regulatory compliance
  • 22. Test Properties Are thread specific Have global scope and can be accessed by any class method
  • 24. Test Data Repository Abstracts away changes made only to test data Data can be stored in databases and files such as XML, JSON, XLS, TXT, CSV, etc. Data can be retrieved from data sources such as databases, web services, APIs, EDI, etc. Metadata can be used to describe additional information about the test data such as versions, application names, required fields, invalid formats, etc. Share data across multiple screens, applications, and tools
  • 26. Parameterized Test example JUnit4 TestNG
  • 27. Test Parameters Uses a hash map of key-value pairs Very useful for both functional and load testing Hash maps eliminate the need for Creating fixed method parameters that change frequently Changing data access objects that change frequently Hash maps can be easily populated from any data source Retrieve the test data and process the format for input to various test tools Handles version differences between test data
  • 29. User Interface (UI) Mapping Abstracts away changes made only to UI object locators UI object identifiers can be stored in databases and files such as XML, JSON, XLS, TXT, CSV, etc. Metadata can be used to describe additional information about the UI objects such as versions, application names, form fields, etc. Share UI identifiers across multiple screens, applications, and tools
  • 31. Test Controls Retrieve the UI locators and process the format for input to various test tools Handles version differences between UI locators Develop custom controls to mimic UI objects Self test verification
  • 34. Test Components A class object that represents a piece of a form, page, or screen Groups of common objects that can be found across more than one page Standardized component verification tests
  • 36. Test Forms A class object that represents a piece a form Groups of components and controls that mimic the UI form Standardized form verification tests
  • 38. Test Form Class example
  • 40. Test Page or Screen A class object that represents a web page or screen – commonly referred to as “page objects” Groups of forms, components, and controls that mimic the UI page or screen Self test verification
  • 41. Test Page Class example
  • 42. Instances when NOT to return a new Page Object for each Page Submitting a page can return one of many different pages, or versions of pages, which would be represented by many different classes Page A could return B, C, or D Page A could return B v1.0, B v2.0, or Cv1.0, C v2.0, or D v1.0, D v2.0, etc. This means that you would need to do the following: Create multiple methods with similar names that return different page objects Page A.submitB() returns B Page A.submitC() returns C
  • 43. … continued Return an page object of an inherited type, and then cast the type of the page in the script Page A.submit() returns page X Pages B and C inherit from page X Script checks the type of X and casts to B or C This can get very ugly in a script… Submitting a page may initiate an AJAX call, which can rewrite the same page Page A could display an AJAX (modal) dialog Page A could display some other AJAX widget Page A could be rewritten to look like page B
  • 44. … continued If the page flow is not what is being tested, then an unexpected page or AJAX call could fail and kill the test Test case: We are trying to test the functionality of page Z The primary page flow is as follows: A to B, B to C, C to D, and D to Z The alternative page flows could also correctly occur, but are unpredictable base on many unknown variables: A to H, H to L, L to M, and M to Z A to R, R to S, and S to Z A to X, X to Y, and Y to Z
  • 45. … continued What if page A unexpectedly returned page H, R, or X instead of page B? If page H, R, or X verified itself and asserted a failure, then how would the test ever reach page Z?
  • 46. JavaScript & HTML DOM There are many instances when we need the test framework to mimic a human reading the content of a page and then making a decision on what action to perform next Verifying the list of items on a search results page Selecting items to purchase from a list Selecting elements to edit, update, or delete Scenarios like these usually occur as a result of some previous action, and display content generated dynamically to the user The test framework may have to query an application database or web service to provide the input to trigger the dynamic page content
  • 47. … continued The test framework will then need to interrogate the page to determine if the expected elements, attributes, or content are present, and then make a decision on whether to perform an action on some element JavaScript can be used to inspect the HTML DOM to find these elements and their attributes and content JavaScript expressions can be evaluated by the test tool, and then return some result that the test framework can use to make a decision Checking if an element is present or getting a value will not work on a dynamically generated element
  • 48. JS DOM example HTML JavaScript
  • 49. Test Application Container A class object that represents the application, and contains the major page and component objects by version It provides the test services available to the test scripts Is thread specific
  • 51. Parallel Environment Tracks with Different Build Versions Parallel development tracks competing to deploy to production Run automated build verification tests Run automated functional and regression tests Run automated user acceptance tests Run automated tests for production patches and fixes Run automated sanity tests against production post-deployment Run automated tests across versions for production rollback strategy
  • 52. Parallel Environment Tracks with Different Build Versions
  • 53. Test Scripts Test scripts can be written using standard unit test frameworks Classes and methods are written using domain language Script details and complexity are abstracted to the framework layers Scripts are shorter and easier to read
  • 55. Test Reports and Logs Reports can be generated from The unit test framework External reporting tools Custom report utilities can be written Test execution activity can be written to standard logging utilities Test failures, errors, and exceptions can be written to the reports and logs  
  • 56. Q&A Thank you for your time! Martin Lienhard [email_address]