Agile Web Application Testing



Similar documents
Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Continuous Integration

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

The maturity level of APEX. Patrick Hellemans Competence Manager Technology

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Test Automation Tool comparison HP UFT/QTP vs. Selenium - Prashant Malhotra

Automation and Virtualization, the pillars of Continuous Testing

HtmlUnit: An Efficient Approach to Testing Web Applications

Mobile Test Automation Framework

Sahi Web Automation and Test Tool

Perfecto Mobile. All rights reserved.

Automation using Selenium

Comparative Analysis of Various Automated Test Tools for Flex Application

Framework as a master tool in modern web development

Most of the security testers I know do not have

QA Tools (QTP, QC/ALM), Selenium with Java, Mobile with Automation, Unix, SQL, SOAP UI

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

Certified Selenium Professional VS-1083

Specify the location of an HTML control stored in the application repository. See Using the XPath search method, page 2.

Cucumber and Capybara

Mobile Test Automation - Right Tools and Right Approach

Adobe Marketing Cloud Bloodhound for Mac 3.0

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

An Overview of Agile Testing

Selenium 1.0 Testing Tools

Best Practices in Automation Testing of Mobile Applications

Getting Started with WPM

Automating Functional Tests Using Selenium

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

Performance Testing for Ajax Applications

Continuous Integration (CI) for Mobile Applications

Domain Specific Languages for Selenium tests

Regression & Load Testing BI EE 11g

Automated tests on websites using Selenium-IDE.

A Comprehensive Review of Web-based Automation Testing Tools

Best Practices for Performance Testing Mobile Apps

How do I Install and Configure MS Remote Desktop for the Haas Terminal Server on my Mac?

Implementing Continuous Integration Testing Prepared by:

SAP Cloud Identity Service Document Version: SAP Cloud Identity Service

HP LoadRunner. Software Version: Ajax TruClient Tips & Tricks

Introduction to Mobile Performance Testing

Test Automation Selenium WebDriver using TestNG

Dynamic Forms for SharePoint

Why Mobile Performance is Hard

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

How To Test On An Hp Mobile Device

Automated Performance Testing of Desktop Applications

Here are the steps to configure Outlook Express for use with Salmar's Zimbra server. Select "Tools" and then "Accounts from the pull down menu.

How to install and use the File Sharing Outlook Plugin

How do I Install and Configure MS Remote Desktop for the Haas Terminal Server on my Mac?

Mobile Performance Testing Approaches and Challenges

QEx Whitepaper. Automation Testing Pillar: Selenium. Naveen Saxena. AuthOr:

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

OPENTABLE GROUP SEARCH MODULE GETTING STARTED ADD RESERVATIONS TO YOUR WEBSITE

Automated testing for Mobility New age applications require New age Mobility solutions

Test Automation Process

How To Develop A Mobile App With Phonegap

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Windmill. Automated Testing for Web Applications

JTouch Mobile Extension for Joomla! User Guide

Selenium An Effective Weapon In The Open Source Armory

Progressive Enhancement With GQuery and GWT. Ray Cromwell

Web attacks and security: SQL injection and cross-site scripting (XSS)

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Tutorial JavaScript: Switching panels using a radio button

Fail early, fail often, succeed sooner!

Exploring Web Testing Tools For Use In A Classroom

User Guide. You will be presented with a login screen which will ask you for your username and password.

Continuous Integration and Delivery at NSIDC

Business Assurance & Testing QEx Automation Platform

Installation Guide For Choic Enterprise Edition

IBM Business Monitor V8.0 Global monitoring context lab

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Open Source in Mobile Test Automation. Ru Cindrea - Altom ru@altom.ro

Mechanics Bank Mobile Banking Mobile Finance Manager (MFM) Application Palm Treo Installation

Open source Test Automation Tools for Mobile Applications A Primer

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

CloudBees Continuous Integration and Test with Appvance Enterprise August 28, 2013 Frank Cohen, (408)

SBBWU PROXY SETTING IT CENTRE How to Set a Proxy Server in All Major Internet Browsers for Windows

HP Business Process Monitor

Automated Web Testing with Selenium

Payentry.com: Using Employee Self Service

Sandesh Prasanna Kumar

QA Tools (QTP, QC/ALM), ETL Testing, Selenium, Mobile, Unix, SQL, SOAP UI

Rational Quality Manager. Quick Start Tutorial

Ticketing Hands-on Exercise

IT Home 2015 DevOps 研 討 會

Building, testing and deploying mobile apps with Jenkins & friends

Software Development In the Cloud Cloud management and ALM

Portals and Hosted Files

Software Continuous Integration & Delivery

Transcription:

Agile Web Application Testing Technologies and Solutions V. Narayan Raman Tyto Software

Goals Rapid feedback on the quality of software

Problem in Web App Testing Many Browsers Many Operating Systems Browsers have quirks Browser technologies are evolving at an amazing pace

Functional or Unit Testing? Functional tests How the end user engages with the system Very important Unit tests Does not matter to the end user Necessary from a dev perspective Functional or AND Unit Testing

Automation vs. Manual Automation Can rapidly go over known scenarios and paths Manual Can be creative and go over new scenarios and explore new ways of interacting with the system Automation is a time saving tool for Manual testers

Agile Ability to rapidly adapt to changes in business requirement Automation scripts can break due to evolution of web application Good engineering practices are required to ensure effectiveness

Engineering practices Frequent check-ins Frequent releases A good continuous integration set-up CruiseControl, Jenkins etc. Ensure Automation scripts are green before delivering the build to QA for testing Needs good interaction between Testers and Devs

Automation Tools Everything on the desktop Good for broad level testing Ineffective for complex web applications Only web applications Good for web app testing Tools: Sahi, Selenium, Watir

Technology choices of Tools - Factors Identification of elements Event Simulation Reliability of playback Library Dependencies Recorders/Object Spys

Identification of elements Ids, names and other DOM properties Best if you can have them. Not always possible though XPaths A very popular but amazingly bad way of writing tests CSS Selectors Better than XPaths but still depends too much on code structure User Interface Relations Best way to identify elements without depending on code structure

Examples DOM _textbox( username ) XPath "/html/body/table[@id='rootfragment']/tbody/tr[ 2]/td/table/tbody/tr[2]/td[4]/table/tbody/tr[1]/td /table/tbody/tr[1]/td/div/table/tbody/tr/td[2]/ta ble/tbody/tr/td*1+/strong

Examples CSS Locator "css=div#myid > a:contains(confirm Transaction) User Interface Relations _button( Delete, _near(_cell( Ram ))) _cell(0, _near(_div("my product one")), _under(_div("cost")))

Good Identifiers Should be resilient to structural changes in UI XPaths and CSS Selectors are dependent on code structure Should remain constant even when moved across frames/iframes Should be able to resolve one element with respect to another _checkbox(0, _under(_tableheader( Choose )))

Event Simulation OS level events Theoretically more correct Needs focus of window/element (prevents reliable parallel playback) Browser level events Vary between browsers Does not need focus of browser

Reliable Playback Problem Variable load times for AJAX, Page/Frame/Iframe Solutions Explicit waits _wait(30000) Bad practice Explicit conditional waits _wait(30000, _isvisible(element)); Needs more code and knowledge of application Implicit Waits Tool decides how much to wait Much better and more reliable

Library Dependencies Usage of common development libraries for testing Eg. JQuery, Sizzle Problem Conflict between tool s version and web application s version 2 web apps with different library versions cannot be tested with the same tool Solution Avoid dependence on libraries which are used in your web app development

Recorder/Object Spy Recorder Nice to have But scripts should be refactored Object Spy Absolute must have For rapid feedback and trouble shooting across browsers

Automation Approach 1 Protocol Level Protocol level request response validation May use a proxy Cannot simulate javascript events reliably Does not work for modern AJAX applications with lots of snippets of request responses

Automation Approach 2 Proxy Based Javascript Injection Javascript injection via Proxy Uses technologies like Proxy and Javascript which are guaranteed to be implemented by all browsers (with minor differences) Works across browsers and can easily support a new browser Con: Needs configuration of Proxy, SSL certificate management

Automation Approach 3 Browser Extensions Very tedious to write extensions for every browser on every OS Maintenance problem for project developers Common libraries for javascript needs to be injected similar to proxy based approach

Comparison of common Tools Criteria Sahi Selenium 1 Selenium 2 Identification Event Simulation (Predominant) Waits (Predominant) Library dependencies Recorder/Object Spy Automation approach DOM, UI Relations (XPath, CSS Selector also possible) Browser DOM, XPath, CSS Selector Browser (but does not simulate all events) Implicit Explicit + Conditional None by default. Needed for XPath and CSS Selector For XPath and CSS Selector DOM, XPath, CSS Selector Native Half way For XPath and CSS Selector Yes on all browsers Yes on Firefox only In development for Firefox only Proxy based Proxy based + Plugin based Native extensions for browsers

Other features to look out for Integration with build tools and CI systems Parallel playback Saves time IDE support (Real ones, not Se IDE) Refactorable test scripts Easily understandable and learnable by testing team Inbuilt Reporting

Note to Developers A testing tool is used mostly by testers Remember how long you took to be good at any programming language. Don t force your programming language onto your testers. It will hamper productivity Really, don t think like a developer when testing Bad practices like XPath usage have come in because of thinking in code Think like the End User

Things to check out Tools Sahi, Selenium, Watir Behavior Driven Development (BDD) Cucumber, Behat, EasyB, Twist Performance and Load Testing PushToTest TestMaker Continuous Integration Cruise Control, Jenkins (Hudson)

Q & A Thank You Twitter: @narayanraman Website: http://sahi.co.in/