An Approach to Agile Automation Testing. QAANOVA September 16, 2008 Frank Hurley, Technical Manager



Similar documents
Agile and Secure: Can We Be Both?

Workshop on Agile Test Strategies and Experiences. Fran O'Hara, Insight Test Services, Ireland

Agile QA s Revolutionary Impact on Project Management

Testing in Agile methodologies easier or more difficult?

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Agile in Financial Services A Framework in Focus

Agile with XP and Scrum

Software Life Cycles and Configuration Management

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Introduction to Agile Software Development. EECS 690 Agile Software Development

Introduction to Agile and Scrum

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Agile Software Development

Software Development Methodologies

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Software Engineering I (02161)

Agile So6ware Development

Agile Project Management

Distributed Agile Development. Bapiraju Nandury Product Development Manager Bangalore Development Centre

QA or the Highway 2016 Presentation Notes

Collaborating for Quality in Agile Application Development From Beginning to End

Don t forget the testers

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

TESTING FRAMEWORKS. Gayatri Ghanakota

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

DATA DONE RIGHT. Applying Agile and XP Concepts. #DataDoneRight

Codeless Test Automation for Web Apps

The Agile Movement An introduction to agile software development

Agile Testing and Extreme Programming

Development. Lecture 3

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Latest Trends in Testing. Ajay K Chhokra

Continuous Integration

a new generation software test automation framework - CIVIM

Using Agile with Large, Geographically Dispersed Development Teams

A Quick Overview of Software Engineering. Paul Klint

IT Home 2015 DevOps 研 討 會

CONTINUOUS DELIVERY + DISTRIBUTED TEAMS Keys to Success

AGILE SOFTWARE TESTING

Tonight s Speaker. Life of a Tester at Microsoft Urvashi Tyagi Software Test Manager, Microsoft

Software Engineering

How To Benefit From An Automated Deployment

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

Agile Software Engineering Practice to Improve Project Success

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Preface Agile Testing Review

Scrum a tester s perspective

Agile Database Management & Development. Communication problems Political Barriers Competing Job Definitions Expectations

Agile Testing. What Students Learn

Lecture 21 March 7, 2013

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Software Engineering Process Economy & Quality

Agile Software Development Methodologies and Its Quality Assurance

Cost effective methods of test environment management. Prabhu Meruga Director - Solution Engineering 16 th July SCQAA Irvine, CA

Quality Assurance in an Agile Environment

<Insert Picture Here> When to Automate Your Testing (and When Not To)

Java course - IAG0040. Unit testing & Agile Software Development

Maximizing the value of good testing practice in an Agile environment. Delivering on time, in scope, on budget and at the right level of quality

The Importance of Continuous Integration for Quality Assurance Teams

Copyrighted , Address :- EH1-Infotech, SCF 69, Top Floor, Phase 3B-2, Sector 60, Mohali (Chandigarh),

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Guide to Mobile Testing

Agile Software Project Management Methodologies

Aspire's Approach to Test Automation

D25-2. Agile and Scrum Introduction

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

Agile Software Development. Stefan Balbo / Patrick Dolemieux

CALCULATING THE COSTS OF MANUAL REWRITES

How To Develop An Application

Synchronization with Microsoft Team Foundation Server 2010

Introduction to Agile Software Development Process. Software Development Life Cycles

AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems

Introduction to Software Engineering: Overview and Methodologies

Quality Assurance Training Program

Agile Web Application Testing

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Test Automation: A Project Management Perspective

Agile Scrum Workshop

Automated Testing Best Practices

Enabling Agile Testing Through Continuous Integration

Testhouse Training Portfolio

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Extreme Programming, an agile software development process

Scrum for Managers, Zurich March 2010

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

AGILE & SCRUM. Revised 9/29/2015

Domain Specific Languages for Selenium tests

Software Testing, Mythology & Methodologies

The Agile Manifesto is based on 12 principles:

Agile Software Development and Service Science

Bridging the Gap Between Acceptance Criteria and Definition of Done

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

A Practical Guide to implementing Agile QA process on Scrum Projects

Extreme Programming, an agile software development process

ecommerce and Retail Rainforest QA enables ecommerce companies to test highly visual user interfaces and customer experience and flow.

Transcription:

An Approach to Agile Automation Testing QAANOVA September 16, 2008 Frank Hurley, Technical Manager 1

Agile development is here Iterative development and deployment Faster times to market/client stakeholders Proven success -? Introduction 77% of of respondents indicated that 75% or more of their agile projects were successful Scott Ambler, The Agile Edge, Dr. Dobbs Journal, August 2007 Automated testing is key to agile One successful approach 2

Security solutions Assessments / Training / more QA solutions Testing management / Custom test automation / more About Cigital 3

Agile development QA s role Unit testing vs. QA testing Automated QA testing An approach to automated QA testing in an agile environment Framework Domain-specific language for test definition Conclusions Agenda 4

Started in 1990 s Extreme Programming (XP) Kent Beck Scrum Ken Schwaber, among others Agile Manifesto (2001) Brian Marick (former Cigitalite!) Principles of agile include: Frequent delivery/deployment Customer collaboratation Progress measured by working software Unit testing Safety net, allows refactoring courage Agile development 5

QA s role Before agile, there was Waterfall One development effort One over the wall delivery to QA team Spiral, other early iterative: repeat a few times Automation testing: an afterthought With agile No more over the wall Development and testing done in parallel as currently done with unit testing Testing is automated from the start No time consuming manual regression testing 6

Unit testing Goal: code coverage Automated Typically done by development Unit testing vs. QA testing QA testing Goal: requirements coverage Real goal: ensure solid software that meets users needs Other real goal: integration testing Often manual, some automation Typically done by testers 7

Testers and Developers Think Differently Bret Pettichord, STQE Magazine, Jan/Feb 2000 Good Developers Model system design Knowledge of product internals Focus on how it can work Good Testers Model user behavior Domain knowledge Focus on how it can go wrong Need best of both worlds for an automated QA solution What is a tester? 8

Case in point: Microsoft Vista Need best of both worlds Replaced non-coding testers with SDET s (Software Development Engineers in Test) Source: Joel Spolsky, Talk at Yale CS Dept., http://www.joelonsoftware.com/items/2007/12/03.html Result:? Bottom line: We need both developers and testers to build effective automated QA testing Need developers (SDET s) to code it Need testers to somehow tell what to code 9

Tools for GUI automation Quick Test Pro, WinRunner Others: Silk, Visual Test, QARun Phases Record and Play Looks so simple Gets complicated quickly Scripting Requires low level details Not scalable if not organized correctly Data Driven Getting better testers can define data set Not scenario driven Automated QA testing 10

The Problem Automated QA testing Automation testing requires development Development requires developers Developers (i.e. automation experts ) = big $$$ Development requires decent development tools testers had to jump through extra hoops to do basic things when they were saddled with crummy languages. Bret Pettichord, Homebrew Test Automation, September 2004 It would be nice if Testers could write tests Developers could write the automation code Combine the two with little effort 11

An approach: the framework The framework Testers write tests in high level domain-specific language QA developers (aka Automation experts, SPET s) write specific test commands Integration combines the two Domain-specific language (DSL) Easy to learn Business-specific No techie required! 12

<testsuite name= Reservation tests" > Domain-specific language (DSL) <test name= Book-Flight-001" testcaseid= FLT-01 > <login username= TestAdmin27 /> <addcustomer firstname= John lastname= Doe address= 123 Main Street city= Manassas state= VA /> <bookflight fromairport= IAD toairport= HNL /> <verifyflights> <flight no= 3423 depart= 10:15 arrive= 17:22 /> <flight no= 6342 depart= 11:20 arrive= 19:04 /> <flight no= 7311 depart= 14:45 arrive= 22:43 /> </verifyflights> </test> <teardown><logout /></teardown> 13

public class LoginUI extends DefaultUI { public void goto(string menu) { selenium.selectframe("relative=top"); String menuid = menu.replaceall(" ", ""); String menulocator = "//a[c ns(@href, '" + menuid + "') and @class='signpost']"; <testsuite name= Reservation tests" > DSL hides implementation details selenium.click(menulocator); } public class AddCustomerUI extends DefaultUI { public void opencornermenu() { selenium.selectframe("relative=top"); <test name= Book-Flight-001" testcaseid= FLT-01 > String menuitem = "//div[@class='menuitem']"; selenium.mouseover(menuitem); <login username= TestAdmin27 /> <addcustomer firstname= John lastname= Doe address= 123 Main selenium.click(submenuitem); Street city= Manassas state= VA /> String submenuitem = "//div[@class='subitem']"; selenium.waitforelementpresent(submenuitem); String findneutralform = "//div[]//table[@]"; selenium.waitforelementpresent(findform); } <bookflight fromairport= IAD toairport= HNL /> <verifyflights> public class BookFlightUI extends DefaultUI { private Context <flight ctx; no= 3423 depart= 10:15 arrive= 17:22 /> private NeutralUI ui; <flight no= 6342 depart= 11:20 arrive= 19:04 /> protected <flight void execute(context no= 7311 ctx) throws depart= 14:45 Exception { arrive= 22:43 /> if(getname().contains("minimize")) { </verifyflights> </test> minimize(); } else if(getname().contains("maximize")) { maximize(); } else if(getname().contains("goto")) { goto(); }else if(getname().contains("add")) { addproperty(); }else if(getname().contains("edit")) { editproperty(); 14

Old way Development team Create Iteration 1 application code Create Iteration 2 application code Fix I1 bugs Create Iteration 3 application code Fix I2 bugs Bugs found Bugs found QA team Test planning activity Manual testing of Iteration 1 code Manual testing of Iteration 2 code Automation team Automation testing develops independently of iteration plan Start of development End of Iteration 1 End of Iteration 2 End of Iteration 3 15

New way Development team Create Iteration 1 application code Create Iteration 2 application code Create Iteration 3 application code Continuous Integration Continuous Integration Continuous Integration QA Testers Create test scripts for Iteration 1 code Create test scripts for Iteration 2 code Create test scripts for Iteration 3 code Automation team Create test commands for Iteration 1 Create test commands for Iteration 2 Create test commands for Iteration 3 Start of development End of Iteration 1 End of Iteration 2 End of Iteration 3 16

Pros Cost Savings 1 Automation Expert : 2-3 Test Scripters Instead of 2-3 automation experts Time Savings Parallel Development Stable test scripts If GUI changes, test scripts stay the same Test commands need to change Pros and Cons Simple/maintainable test command code 17

More Pros Automation tests from the start Tests are authored by testers, not developers Pros and Cons Cons Tight synchronization between dev team and QA team can be a challenge Normal GUI automation issues Timing / data setup / etc. Requires pair debugging In reality: Some overlap in old way/new way 18

Agile software development requires automated testing Automated QA testing requires skills from both tester and developer The trick is to use the skills from both groups in and efficient and effective manner Summary This framework provides an avenue to allow: Testers to concentrate on test scenarios without worrying about low-level details QA developers to implement test commands without worrying about business domain Big time/cost savings 19

Where to Get More Information Agile Automated Test Framework Frank Hurley <frank.hurley@cigital.com> Drew Kilbourne <drew.kilbourne@cigital.com> Stuart Dross <stuart.dross@cigital.com> Terri Randolph <terri.randolph@cigital.com> 20