This document provides a brief overview of Agile QA tools.



Similar documents
Working with Open Source Companies

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00

REDEFINING QUALITY ASSURANCE

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

Test Automation Architectures: Planning for Test Automation

Agile Testing: The Agile Test Automation Pyramid

Business Agility SURVIVAL GUIDE

Smarter Balanced Assessment Consortium. Recommendation

Adopting Agile Testing

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

CASE STUDY: AgitarOne Ensures Quality of Outsourced Software Development at Major International Bank

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

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

Test-Driven Development. SC12 Educator s Session November 13, 2012

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

An Example Checklist for ScrumMasters

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the

Open Source Strategies

Chapter 9. The Role of Quality Assurance in Lean-Agile Software Development

Creating Business Value with Mature QA Practices

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

Agile Testing and Extreme Programming

Agile processes. Extreme Programming, an agile software development process

Agile Scrum Workshop

Fail early, fail often, succeed sooner!

Agile Testing. What Students Learn

APPLICATION LIFECYCLE MANAGEMENT AS A BUSINESS PROCESS

Agile Testing Intelliware Development Inc. BC

An Introduction to text-based test automation and the TextTest tool

TEST MANAGEMENT SOLUTION Buyer s Guide WHITEPAPER. Real-Time Test Management

BBBT Podcast Transcript

Evolving Agile Testing

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

Improved Software Testing Using McCabe IQ Coverage Analysis

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Smu mba transfer >>>CLICK HERE<<<

Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing

How To Be Successful At An Agile Software Engineering

Technical Debt. Thomas Sundberg. Consultant, Developer Stockholm, Sweden Sigma Solutions AB

Visionet IT Modernization Empowering Change

Measuring ROI of Agile Transformation

Software Engineering Principles The TriBITS Lifecycle Model. Mike Heroux Ross Bartlett (ORNL) Jim Willenbring (SNL)

Process Optimization - Automation The First Step

Introduction to extreme Programming (XP)

TESTING FRAMEWORKS. Gayatri Ghanakota

IT Operations Management: A Service Delivery Primer

QA & Test Management. Overview.

A Lightweight Semi-automated Acceptance Test-Driven Development Approach for Web Applications

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

Testing Rails. by Josh Steiner. thoughtbot

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

BPM To Automate or Not to Automate Is that the Question?

CONTEXT AWARE CONTENT MARKETING

Accelerate Software Delivery

JUnit. Introduction to Unit Testing in Java

AGILE & SCRUM. Revised 9/29/2015

Java course - IAG0040. Unit testing & Agile Software Development

Automation using Selenium

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Agile QA Process. Anand Bagmar Version 1.

Embracing Change with Squeak: Extreme Programming (XP)

AGILE SOFTWARE TESTING

Implementation of a Comprehensive Grant Management System Ecology Administration of Grants and Loans System (EAGL)

Test Automation: A Project Management Perspective

The Business Analyst role on Agile teams

Keeping a Healthy Product Backlog

ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010

Using Use Cases on Agile Projects

Codeless Test Automation for Web Apps

TESTING TRENDS IN 2016: A SURVEY OF SOFTWARE PROFESSIONALS

Software Continuous Integration & Delivery

Functional Testing: A Pattern to Follow and the Smells to Avoid

Schools of Software Testing

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

Certified Agile Software Test Professional (CASTP)

Application Development at Congruent

Next Generation Tech-Talk. Cloud Based Business Collaboration with Cisco Spark

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

NX CAM TURBOMACHINERY MILLING PRODUCT REVIEW

Title: Continuous Delivery and Continuous Integration. Conference: 13 th Annual Software Testing Conference 2013

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process

Break It Before You Buy It!

Agile Software Development and Service Science

What is meant by the term, Lean Software Development? November 2014

Advanced Test-Driven Development

SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework

Development of a Personal Budgeting Application Using the Waterfall Model. Lorena Flores and Dr. Jacalyn Huband Department of Computer Science

Good Agile Testing Practices and Traits How does Agile Testing work?

Worldwide Advanced and Predictive Analytics Software Market Shares, 2014: The Rise of the Long Tail

Unit Testing Best Practices

Optimizing Service Levels in Public Cloud Deployments

A Process is Not Just a Flowchart (or a BPMN model)

ENZO UNIFIED SOLVES THE CHALLENGES OF REAL-TIME DATA INTEGRATION

Agile Techniques and Tools. White Paper

OUTGROWING MICROSOFT DYNAMICS GP

Scenarios for Pair Coaching Exercises

Governments information technology

Transcription:

Page 1 of 6 Agile QA Automation A RedMonk Briefing Document Overview Agile software development thrives on rapid feedback loops. Few things are less rapid than manual testing. Thankfully, there are several key QA tools in the Agile world that automate and speed-up the development and QA process. As with Agile in general, these tools eliminate the barriers between development and QA, realizing efficiencies and speed by eliminating the communication and process paths required between the two split efforts. This document provides a brief overview of Agile QA tools. The Role of QA in Agile In traditional software development the role of QA is to find bugs and missing or incorrectly implemented features in software before it's released to customers. The assumption is that developers will accidently write bugs into the software or incorrectly implement features, including omitting a feature entirely. In both cases, traditional development assumes that the developers cannot find the bugs before the code is handed off to QA 1, as the old QA saying goes, "developers are people who write bugs." Assuring that the customer gets what they want is a necessary step in software development. But, Agile software development sees that as only part of QA's role. Agile QA's responsibilities also include helping eliminate bugs as quickly as possible, even before they're "found." This new responsibility requires both process changes and new tools to support that process. The process change is QA's involvement in development from the beginning, working along-side development both figuratively and literally. The most noticeable 1 Episode 10, "Seeing QA s as allies - The Lean-Agile Way" of Lean Agile Straight Talk podcast.

Page 2 of 6 practice is test-driven development (TDD) in which tests are written before code is written to specify what the code must do. The remainder of this document cover several tools and related practices that support Agile QA. Unit Testing A unit test is a small piece of code that can be easily and quickly run to verify that changes to a given piece of code have not created new bugs 2. Unit tests are the first tool that Agile QA typically encounters. Developers maintain and write the bulk of unit tests, but QA shares the responsibility of making sure unit tests are used and maintained. JUnit JUnit and it's equivalents in other languages are the undisputed leaders of unit testing tools. For ease of reference, JUnit and it's variants will simply be labeled "JUnit" for the remainder of this document. These libraries are actually small packages that developers can use to write a series of tests, each containing "asserts" that exercise different paths through code execution. Aside from being a great tool on it's own, the real benefit of JUnit comes from the wide standardization on JUnit that IDEs and other tools include. For example, Eclipse and NetBeans both provide rich and seamless integration with JUnit. When it comes to unit testing, any organization should be ready with a rock-solid excuse not to use JUnit. JUnit is open source and, thus, freely available. Agitar While JUnit is an open source, freely available unit testing tool, Agitar is a commercial unit testing suite. Agitar provides much more than a framework and library for writing tests, it also provides tools for generating unit tests. As with all code-generation tools, Agitar is not a panacea that can substitute for all human written unit tests. Instead, Agitar automates the writing of several common and 2 "What Does Agile Look Like? Briefing Document," RedMonk

Page 3 of 6 uncommon testing scenarios, taking the drudgery out of writing straight-forward tests. Additionally, Agitar provides "code coverage" reporting that reports on sections of the code that are tested and not tested. For example, Agitar may tell you that only 40% of your code is actually executed during tests indicating that, more or less, 60% of your code is not being tested. The price for this automation is high compared to the "free" of JUnit and commercial test coverage tools such as Clover. That said, as in build vs. buy decisions, the choice to use Agitar is one of trading money for time: the price of Agitar could buy you more time for your developers and QA to do other tasks instead of write and maintain the tests that Agitar generates. Acceptance Tests Being close to the actual code, unit tests are primarily the responsibility of the development role and highly technical. A different type of automated testing, acceptance tests span both the development and QA role. While a unit test exercises code directly, acceptance tests exercise the software's functionality. A unit test can be thought of as testing methods and objects, while acceptance tests test scenarios and user stories 3. As with all Agile QA, the goal with acceptance tests is to make them as quick as possible: both to write and run. The dominant tool suite, FIT and FITness, reflect this desire. FIT & FITness Technically, FIT and FITness are two separate tools. FIT is the core framework, while FITness layers a wiki-based UI on-top of FIT. Typically, both are used. This document will refer to the combination of the two as FITness for brevity. In it's simplest form, testers use FITness to specify a set of inputs, several pieces of functionality to call with those inputs, and the expected outputs. FITness then runs those test cases, reporting on the results. In a very real since, FITness is a tool for writing and then running test cases. 3 User stories can be loosely thought of as use cases. See Mike Cohn's User Stories Applied for more.

Page 4 of 6 Ideally, QA writes FITness tests before developers begin coding, providing developers with a clear-cut way to verify if and when they've written their code correctly. Developers will need to write small pieces of "glue code" called fixtures to link together more complex portions of the code base with the FITness tests, but FITness provides many such "fixtures" out of the box. While this may seem like more work than traditional models, the collaboration and test-driven development that it encourages pays off in the end. FIT and FITness are both open source and, thus, freely available. Choosing Agile QA Tools The primary context to establish when choosing QA tools is the nature of the code being tested: existing code or new code? If the code base is new, using a unit testing framework such as JUnit and/or Agitar along with acceptance testing tools like FITness are an easy and wise choice. Existing, or "legacy," code is notoriously tedious to test with Agile QA tools. The method of applying test-driven development to legacy code is a slow and steady containment and then elimination or refactoring of the older code. That said, the alternative not quickly, but manually testing the code is less favorable than the tediousness of writing those tests and refactorings as needed. In both cases, developers and the organization as a whole must understand and internalize the practice of test-driven development. Writing tests before code seems ludicrous to those who are comfortable with water-fall methods of software development, but become immediately comforting and effective once used. Whether your project involves all new code or existing code, the benefits of establishing Agile QA will be immediate and clear: faster feedback loops between writing and verifying code, leading to more flexibility in delivering software that customers value and desire.

Page 5 of 6 More Resources Links and books: http://fitnesse.org/ - home of the acceptance testing framework. http://www.junit.org - home the JUnit and other nunit frameworks. User Stories Applied: For Agile Software Development, Mike Cohn. Working Effectively with Legacy Code, Michael Feathers - strategies for applying Agile QA to existing code bases. Fit for Developing Software: Framework for Integrated Tests, Rick Mugridge, Ward Cunningham an introduction and overview of acceptance testing with FIT and FITness. Test Driven Development Book

Page 6 of 6 About the Creative Commons License This work is licensed under the Creative Commons Attribution- NonCommercial-NoDerivs License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/2.5/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. About RedMonk RedMonk is a research and advisory services firm that assists enterprises, vendors, systems integrators and corporate finance analysts in the decision making process around today s enterprise software stacks. We cover the industry by looking at integrated software stacks, focusing on business and operational context rather than speeds and feeds and feature tick-lists. Founded by James Governor and Stephen O Grady, and headquartered in Denver, Colorado, RedMonk is on the web at. If you would like to discuss this report email Michael Coté, cote@redmonk.com.