The Black Swan of Software Testing An experience report on exploratory testing

Similar documents
Two Futures of Software Testing

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

The Nature of Exploratory Testing

IT4305: Rapid Software Development Part 2: Structured Question Paper

Visit us at:

TU-E2090 Research Assignment in Operations Management and Services

Strategic Practice: Career Practitioner Case Study

Generating Test Cases From Use Cases

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

Fearless Change -- Patterns for Introducing New Ideas

A Pipelined Approach for Iterative Software Process Model

Getting Started with Deliberate Practice

White Paper. The Art of Learning

Software Maintenance

A cognitive perspective on pair programming

Deploying Agile Practices in Organizations: A Case Study

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

Book Review: Build Lean: Transforming construction using Lean Thinking by Adrian Terry & Stuart Smith

The Good Judgment Project: A large scale test of different methods of combining expert predictions

Team Dispersal. Some shaping ideas

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

Measurement & Analysis in the Real World

WORK OF LEADERS GROUP REPORT

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

The open source development model has unique characteristics that make it in some

Running Head: STUDENT CENTRIC INTEGRATED TECHNOLOGY

Lecturing Module

WE GAVE A LAWYER BASIC MATH SKILLS, AND YOU WON T BELIEVE WHAT HAPPENED NEXT

Just in Time to Flip Your Classroom Nathaniel Lasry, Michael Dugdale & Elizabeth Charles

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

Personal Tutoring at Staffordshire University

A non-profit educational institution dedicated to making the world a better place to live

A Context-Driven Use Case Creation Process for Specifying Automotive Driver Assistance Systems

IBM Software Group. Mastering Requirements Management with Use Cases Module 6: Define the System

Delaware Performance Appraisal System Building greater skills and knowledge for educators

Top Ten Persuasive Strategies Used on the Web - Cathy SooHoo, 5/17/01

Keeping our Academics on the Cutting Edge: The Academic Outreach Program at the University of Wollongong Library

On-Line Data Analytics

Success Factors for Creativity Workshops in RE

PERFORMING ARTS. Unit 2 Proposal for a commissioning brief Suite. Cambridge TECHNICALS LEVEL 3. L/507/6467 Guided learning hours: 60

Strategy and Design of ICT Services

Lecture 1: Machine Learning Basics

Empirical Software Evolvability Code Smells and Human Evaluations

Guidelines for Writing an Internship Report

Major Milestones, Team Activities, and Individual Deliverables

Myers-Briggs Type Indicator Team Report

Assessment of Student Academic Achievement

Leveraging MOOCs to bring entrepreneurship and innovation to everyone on campus

Requirements-Gathering Collaborative Networks in Distributed Software Projects

PROCESS USE CASES: USE CASES IDENTIFICATION

University of Groningen. Systemen, planning, netwerken Bosman, Aart

No Parent Left Behind

A BOOK IN A SLIDESHOW. The Dragonfly Effect JENNIFER AAKER & ANDY SMITH

WHY SOLVE PROBLEMS? INTERVIEWING COLLEGE FACULTY ABOUT THE LEARNING AND TEACHING OF PROBLEM SOLVING

Easy way to learn english language free. How are you going to get there..

Tap vs. Bottled Water

Grade 4. Common Core Adoption Process. (Unpacked Standards)

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

A Note on Structuring Employability Skills for Accounting Students

Reflective problem solving skills are essential for learning, but it is not my job to teach them

MYCIN. The MYCIN Task

The Success Principles How to Get from Where You Are to Where You Want to Be

UNDERSTANDING DECISION-MAKING IN RUGBY By. Dave Hadfield Sport Psychologist & Coaching Consultant Wellington and Hurricanes Rugby.

Mock Trial Preparation In-Class Assignment to Prepare Direct and Cross Examination Roles 25 September 2015 DIRECT EXAMINATION

Expert Reference Series of White Papers. Mastering Problem Management

An Introduction to Simio for Beginners

Unit 7 Data analysis and design

Cognitive Thinking Style Sample Report

BLENDED LEARNING IN ACADEMIA: SUGGESTIONS FOR KEY STAKEHOLDERS. Jeff Rooks, University of West Georgia. Thomas W. Gainey, University of West Georgia

Why Pay Attention to Race?

Making welding simulators effective

Learning or lurking? Tracking the invisible online student

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Cooking Matters at the Store Evaluation: Executive Summary

Innovative Methods for Teaching Engineering Courses

Get with the Channel Partner Program

Section 3.4. Logframe Module. This module will help you understand and use the logical framework in project design and proposal writing.

STUDENT PERCEPTION SURVEYS ACTIONABLE STUDENT FEEDBACK PROMOTING EXCELLENCE IN TEACHING AND LEARNING

Designing a Rubric to Assess the Modelling Phase of Student Design Projects in Upper Year Engineering Courses

Classroom Assessment Techniques (CATs; Angelo & Cross, 1993)

Administrative Services Manager Information Guide

Davidson College Library Strategic Plan

University of Toronto

Higher Education Review (Embedded Colleges) of Navitas UK Holdings Ltd. Hertfordshire International College

What s in Your Communication Toolbox? COMMUNICATION TOOLBOX. verse clinical scenarios to bolster clinical outcomes: 1

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

Soaring With Strengths

Team Love <3. Because it s all about heart.

Red Flags of Conflict

Changing User Attitudes to Reduce Spreadsheet Risk

DevelopSense Newsletter Volume 2, Number 2

University Library Collection Development and Management Policy

3. Improving Weather and Emergency Management Messaging: The Tulsa Weather Message Experiment. Arizona State University

Development of an IT Curriculum. Dr. Jochen Koubek Humboldt-Universität zu Berlin Technische Universität Berlin 2008

Section 1: Basic Principles and Framework of Behaviour

M55205-Mastering Microsoft Project 2016

Transcription:

The Black Swan of Software Testing An experience report on exploratory testing Shaham Yusuf & Venkat Moncompu shyusuf@deloitte.com, venkatams@yahoo.com Abstract: In an industry where prescriptive practice focused on requirements-based testing is prevalent, much attention is paid to scripted test development and verification for conformance. Some people take extra effort to provide visibility of test coverage to leadership that is sufficiently satisfactory yet products/applications continue to fall short of meeting the fitness of use criteria of Quality. One reason is the dysfunctional relationship between a design that is system-centric and a solution that ought to be user-centric, which leads to user acceptance issues during software development or defect leakage to production. Exploratory testing relying on continuous learning, test adaptation and execution, is an effective complementary testing approach which addresses above mentioned gap and helps to detect business critical defects quickly in the testing cycle. However, traditionalists revile at the suggestion of using exploratory testing citing reasons of coverage, test design, traceability, accountability etc. The curious gen Y testers are faced with the daunting task of winning over the skeptics to adopt the practice. In this presentation we are sharing key factors that have helped us succeed in our efforts to convince stakeholders and to adopt exploratory testing in large scale independent testing engagements. We intend to showcase our blended approach (in other words, Alternative Test Design Techniques) where test designing was done on high level leveraging Scenarios, Mind Maps, Checklist, and Cheat Sheets. Also, the defect metrics presented would intrigue you to give exploratory testing another chance! Biography: Shaham Yusuf is a passionate tester and vivid learner and practitioner of software testing from Deloitte, Mumbai. He is self-inspired and believes in continuous learning and practice. Testing an application with an exploratory approach makes more sense to him than a scripted approach. He has contributed significantly in implementing context-based testing in his work and has also written couple of white papers on the same. He is an active member of Testing Center of Excellence at Deloitte and contributes significantly there. Venkat Moncompu is a manager with West Monroe Partners, LLC where he is advocating quality by design in the software development projects that he engages in. Venkat has 15 years of experience in the software industry and interests include quality management, agile test automation, user experience and design thinking. Venkat has a master s degree in Engineering from Arizona State University. Venkat has published articles and spoken at various forums on Quality Assurance in Information Technology. West Monroe Partners, LLC is an international, full-service business and technology consulting firm focused on guiding organizations through projects that fundamentally transform their business. Copyright. Shaham Yusuf & Venkat Moncompu, 2012. Copies may not be made or distributed for commercial use Page 1

1. Introduction: In the ancient world, some 300 years ago, there was a firm belief that all species of swans were white. Every bit of empirical evidence confirmed this to be true. But in the late 17th century, the discovery in Australia of a swan species that was completely black destroyed any previous notion that all swans are, and must be, white. It hardly mattered anymore that thousands of years of recorded history had only produced the undeniable truth that swans were white, because with the first sighting of a black swan, the undeniable truth was rendered false, says Nassim Nicholas Taleb, the famous author of the book The Black Swan: The Impact of the Highly Improbable (Taleb, 2007). Taleb defines black swans by three attributes. First, as the outlier from our traditional expectations; second, as the one which carries high impact and lastly, as the one which is possible though not predictable. We consider Exploratory testing as the black swan of software testing. Exploratory testing approach is seldom considered in our test planning as it is the outlier of our scripted testing approach which we take for granted. Exploratory testing carries high impact and can exponentially increase the defect detection rate. Further, with exploratory testing, we get a chance to look at issues during retrospection which does not happen in scripted testing early, thereby reducing defects from leaking to User Acceptance Testing (UAT). For an example, in scripted approach we usually tend to stick to the pre-defined test cases whereas exploratory testing helps to look back and learn from, on-the-fly while testing. Taleb says one single sighting of black swan can invalidate the belief that all swans are white. This presentation is such demonstration of the black swan of testing which might help us to shift our mindset from the granted belief of scripted testing. Exploratory testing may not always be applicable in certain situations e.g. compliance applications / testing medical devices etc. which have strict requirements and standards. However while testing those applications too, testers do have a tendency to look beyond the written steps or to look at certain other things happening on the system. This tendency or the other things is a simple example of exploration. The key idea is to tap this tendency in a way which benefits the application as well as stakeholders. In testing applications having strict requirements and standards, the exploration may be less compared to testing other types of applications. We are trying to showcase a blended approach, between perfect scripting and pure exploration, and calling it as Alternative Test Design Techniques. 1.1. Case Study (Traditional Approach): Now look back and think about the testing approaches you have seen or you have followed in the history of your career. We tend more-or-less to follow the same old scripted or documented test case based approach and our belief is firm that it alone works, no matter what type of application we are testing. We bias this belief on the three pillars of Scripted Testing. First is the execution accountability, second is traceability and third is detailed steps having expected results. While working on a large and complex project and following the traditional scripted testing approach, we have captured the following metrics along with some key observations. 1.1.1. Test Design: Average Total time Average Total time Total Time Test Cases Test Case time spent spent on time spent spent on spent on Created Complexity Creation of Test Case Review of Test Case Test Copies may not be made or distributed for commercial use Page 2

Total each Test Case (hours) Creation (hours) each test case (hours) Review (hours) Design (Hours) 706 Simple 1 706 0.5 353 1059 1178 Medium 2 2356 0.75 883.5 3239.5 472 Complex 3 1416 1 472 1888 2356 4478 1708.5 6186.5 Some notes around above metrics: Some hours were spent on requirement study, which is separate from the total test design time shown above. Key Observation: Significant amount of project time, 6186 hours, was spent on Test Design. With the team of 12 resources (including test lead), we spent over 3 months of time in test design phase (considering 45 hours per week per resource). 1.1.2. System Integration Testing (SIT) Defects: Test Cases Executed Total Test Case Complexity SIT Defects Detected by Test Cases SIT Defects Detected on Ad-hoc basis (does not maps to a test case directly) Total SIT Defects Detected 706 Simple 69 65 134 1178 Medium 104 96 200 472 Complex 24 39 63 2356 197 200 397 Key Observation: After going through robust test design phase, about 50% of the total SIT defects were detected on Ad-Hoc basis, i.e., they were tangential to the test cases. 1.1.3. SIT v/s UAT Defects: Number of SIT Defects 397 Number of UAT Defects 50 Key Observation: There was significant defect leakage to UAT ((50/397)*100 = 12.5%). 1.1.4. Some overall observations: We observed that after spending more than 3 months of time in Test Design phase, we discovered lots of the defects which were valid ones but not directly or explicitly related to the test cases per se. The test cases indeed helped the team to get closer to those defects though not directly. This made us take a step back and see if our Test Design was ineffective though those test cases were reviewed and approved by domain experts! After doing extended analysis of the designed test cases as well as analysis of those defects, we found that most of the defects being detected were tangential to the pre-designed test cases because the predesigned test cases are mere interpretation of requirements linguistically; whereas during testing we questioned the product from end user s expectation or perspective. Copies may not be made or distributed for commercial use Page 3

On top of the high defect leakage of 12.5% UAT, we realized we were too caught up in the perfection of test design. We were quite taken aback by the large number of so called non-test cases defects which led to defect leakage to UAT. Maybe, we were so confident and comfortable with the detailed approach i.e., the test case based approach that we never felt the need to think in any other manner or of a better approach! 1.2. The trigger that led us to change our testing approach: In the course of the project many events happened: we missed important bugs, bugs were found during UAT, some in production too and we got bugs at such a later stage that we challenged our so-called robust test design because we seemed to have missed bugs though we spent huge amount of time on creating detailed test cases and up-front planning. Though these events are something that could not have been predicted in the traditional scripted approach, human nature compels us to create explanations for the occurrence of these events making it explainable and, in retrospect, predictable. In such situations we sometimes may say, it is out of scope of our test case etc.; but the client were not satisfied! We make 10 years projections on oil prices, economy, social events, political affairs etc., without realizing that that we cannot even predict these for next summer! All our prediction failed terribly on major unpredictable events like financial crisis of 2009 or the 9/11 attack. On a very similar note, we design amazing test cases with explicit steps prior to the creation of the application. While executing those test cases we are strongly biased by the steps and hence concentrate on the events which are mentioned in the steps or the expected results only. What about millions of other things happening in the application during the same time? Do we focus on them? Do we de-focus from them? These would result in defect leakage. In a traditional approach (i.e., scripted testing), when a tester executes a pre-defined test case, he/she also looks into a day in the life type of tests. Putting the system through these conditions that is not scripted is nothing but Exploratory Testing. If these are practiced in a consciously structured manner then the results can be very impressive; as was in our case. The other pitfall of running scripted tests In practice, most testing that people actually do probably sits in the middle, somewhere between pure exploration and perfect scripting. My bias is that most of the best testing sits a lot closer to the exploratory side of that continuum Cem Kaner over-and-over is that these tests become ineffective over the repeated runs analogous to following in someone else' footsteps in a minefield which has a much lower probability of actually finding anything new. 2. What is Exploratory Testing? Exploratory testing is an approach where tester investigates and finds various information about the product, which may matter to stakeholders. The tester is not driven by the pre-defined test cases, rather has control over the test designs during execution and uses the findings to design or vector subsequent tests. Exploratory Testing is not procedurally structured, rather it is cognitively structured, says Michel Bolton (Bolton, 2008). It is like a chess game. We revise our plans after seeing the move of the opponent (application behavior). Yet all our plans can be changed after one unpredictable move of our opponent. Can we write cases for the chess move beforehand? Even if we write the exhaustive cases (millions of possible cases) then which case to apply when depends on the context and is a cognitive judgment. Copies may not be made or distributed for commercial use Page 4

Exploration is the basic nature of any human being. Human are curious by nature and are interested in investigation, examination and questioning. The dictionary defines exploration as investigation and examination of unknown regions. 2.1. Challenges in Implementing Exploratory Testing: Primarily there are 4 typical challenges which make the traditionalists reluctant to adopt Exploratory Testing formally in engagements. 1. Test Design: Usually people think that test designing is poor as it is an exploratory/ad-hoc approach hence may affect the project deliverable. 2. Accountability: The word exploratory gives an impression to layman that accountability cannot be established hence they are reluctant to adopt it. 3. Learning styles: It is a usual notion that heavy documentation of pre-defined test cases will help the team members to learn the application quickly but exploratory approach can come in the way of knowledge transition. 4. Negotiated Contract: Negotiated contract with Client comes with many pages of requirement document for which we need to showcase the coverage. 2.1.1. Challenges addressed: 1. Test Design: Defect leakage metric shows continued bleeding of defects even when test coverage is reportedly 100% of stated requirements. Short-sighted test managers rely excessively only on the stated requirements. This myopic view only adds to the poor quality as requirements are one-dimensional and static whereas user needs are multi-faceted that cannot be represented to meet all those needs. Exploratory Testing gives the tester this degree of freedom to transcend this gap to look at the application in a contextual perspective beyond the stated requirements. Exploratory Testing defines structure to the practice of testing that makes it risk-focused, value-driven and effective. The metrics we have gathered show a reduction in defect escape rate that shows the value-focus of Exploratory Testing. Exploratory Testing can overcome the pitfalls of minefield analogy as articulated by James Bach. In feature driven development methodology for e.g., the risk profile keeps changing and test profiles also have to reflect these changes. Through exploratory testing, we design tests dynamically based on the current context continuously as the tester gains insight and feedback from the system. These result in effective testing of the system compared to those which are designed based on requirements linguistically. Our data demonstrates that the effectiveness of scripted tests decreases dramatically as a function of time (running same tests over and over again) across product releases. And since the adoption of Exploratory Testing in tandem with scripted testing, our data show significant improvements in the number and value of defects reported, which is also appreciated by the stakeholders. 2. Accountability: Highly repeatable testing can actually minimize the chance of discovering all the important problems, for the same reason stepping in someone else s footprints minimizes the chance of being blown up by land mine. James Bach In traditional or scripted testing the accountability is maintained by passing or failing every pre-defined test case. System behavior cannot be just evaluated objectively using pre-defined test cases alone. Copies may not be made or distributed for commercial use Page 5

In contrast, exploratory testing approach is more of a subjective assessment of the system where the tests are designed and executed based on sapience and learning to use the system (Bolton, 2009). One of the best ways to maintain accountability in exploratory testing is to practice session based testing (Bach, 2000). Disciplined exploratory test sessions are far more effective than a simple execution of predefined test case. Nowadays Exploratory sessions are also supported by many tools. In the traditional approach, in a way testers are forced to follow a premise that this is what we are going to do, irrespective of the way the application behaves at this time. In contrast the exploratory approach implies This is what we have done. Now, we leave it on you to decide which is more accountable and effective? 3. Learning styles: Scripted approach relies less on the cognitive skills of the testers in terms of continuous discovery and learning whereas Exploratory Testing relies on heuristics and effective learning techniques. The more we rely on the steps of test cases to learn about the system, the more easily we forget about the system. In contrast if we learn the system by process of exploration and discoveries, less is the chance to forget about it because we discovered about it, steps didn t tell us! 4. Negotiated Contract: It is typical notion in industry that coverage can be shown by number of requirements pass/failed. Well, what about the requirements which are still evolving? What about missed requirements? In Exploratory Testing, we can still show coverage of the documented requirements by means our test execution. This is most favored by agile development teams who adopt just-enough and just-in-time requirements. 3. The Alternative Test Design technique: We like stories, detailed steps and documentation and we like to simplify them, i.e., to reduce the dimension of matters! It is because all of these look very good. There is a flip side of these though. One of the ways in which human beings are blind to the occurrence of unpredictable has to do with something called the narrative fallacy, a problem that illustrates our need to turn abstract concepts into understandable stories. We write detailed test cases from the abstract application i.e., the requirement documents and we expect to find all the vital defects of the application from those test cases though the context during execution may be different. In short, how it is possible to understand the properties of the unknown (the application), based on what is known theoretically (the test cases and the requirements)? After extensive analysis, thought and brainstorming, we realized that test design has to be light weight so as to complement user expectation as well as evolving requirement specifications. We toyed with several ideas, like, Writing high level test cases Not writing test cases at all and just relying on session based exploratory testing Using requirement documents only as our guide while testing Leveraging use cases and user stories to derive ad-hoc test cases while testing Stop toying and get back to the traditional approach Soon we realized that there could not be a single alternative; we have to come up with an approach which leverages best of all approaches and should be in-line with our project which means it should suit the context of our project. Copies may not be made or distributed for commercial use Page 6

We need something in the form of guidance heuristics for our test cases. We knew that some high level test design is required for our needs. But the nature of our project demanded mix of things. We boiled them down to the following set of light weight test design techniques, 1. Scenarios scenario based testing complemented by test execution narration - We used high level test scenarios for designing complex business rule type of tests 2. Flow Diagrams - We used flow charts for designing end-to-end type of tests 3. Mind Maps - Mind Maps were used to jot down spontaneous ideas which flow during JAD (Joint Analysis & Design) sessions and requirement analysis phase. 4. Cheat Sheets - We used cheat sheets for existing/old modules, primarily to regress the system. 5. Checklists - Checklists were extensively used to design nitty-gritty types of test e.g., Date should be in GMT, Text should be Ariel Black, size 14 etc. We have not coined these test techniques but have merely leveraged them in our project. There can be other test design techniques as well, but the above five worked well in the context and nature of our application. The key idea is that test design should be at a High-Level rather than detailed step-by-step so that testers get a freedom to explore and at the same time they are more responsible for testing as opposed to just following the steps. All of the 5 test design techniques which we have used in our project encourages testers to document tests at a high level. They have different purpose in the context to type of test, for example; Flow Diagrams were used for end-to-end type of tests whereas checklists were leveraged to ensure that we are missing nitty-gritty type of requirements. We highly encourage you to choose your high level test design techniques after careful analysis in context to the nature of your project. 3.1. Deep Dive of Test Design Techniques: 1. Scenarios: A scenario is a hypothetical story, used to help a person think through a complex problem or system. "Scenarios" gained popularity in military planning in the United States in the 1950's. Scenario-based planning gained wide commercial popularity after a spectacular success at Royal Dutch/Shell in the early 1970's. A kid explores the world by tasting everything (Putting things in mouth) and learns which is what. But we sometimes instruct them what to do and what not to. We provide some direction to them so that they can be guided toward a better understanding. It seems that Scenario based testing exists in the normal testing life cycle processes and maps Use Case to Scenario and then to Test Cases. In our approach we stop at Use case to Scenario and move towards execution. While we do agree to this it does not adhere to the processes that are required and defined for test case based testing which are very much essential while delivering large complex projects. Here we have taken steps to make sure people endorsing quality believe in our black swan of testing. In this Copies may not be made or distributed for commercial use Page 7

approach we have designed processes and documentation which will support answers to all stakeholders who define and endorse quality. Here are some characteristics of an ideal scenario: 1) The test is based on a story about how the application is used, including information about the motivations of the people involved. 2) The story is motivating. A stakeholder with influence would push to fix a problem that fails this test. 3) The story is credible. It not only could happen in the real world; stakeholders would believe that something like it probably will happen. 4) The story involves complex use of the application or a complex environment or a complex set of data. 5) The test results are easy to evaluate. This is valuable for all tests, but is especially important for scenarios because they are complex. In our case we have customized it to suit our project needs and context. We highly encourage you to customize it to suit your projects. No matter which format you follow the basic idea remains the same to have a short story or objective of the scenario followed by a one line process and an open ended output. In our case we refer to the objective as the story of the scenario. We make the objective motivating and credible based on the knowledge of the application and the business. We document complex situations and state transitions by matrix of combinations and other accelerators which suits the context. Below is a typical test case having detailed steps and is followed by a typical scenario for the same test condition. The below comparison shows how a high level scenario handles the test condition in few lines whereas the test case has more than 8 detailed steps for the same situation. Copies may not be made or distributed for commercial use Page 8

Copies may not be made or distributed for commercial use Page 9

This is a typical test case having detailed steps and expected results. As discussed earlier it may limit a tester s ability to detect bugs. A typical Scenario 3.1.1. Execution Narration for Scenario Based Testing: Execution Narration is a conceptual method to record the contextual test cases designed and executed during the scenario based test execution. In other words scenario based test execution is made accountable by proper Execution Narration. 3.1.2. What to narrate? Copies may not be made or distributed for commercial use Page 10

As our scenarios are high level and have a one line process step, it becomes important for us to know what has been executed. We need to understand the need of our stakeholders and narrate the required tests performed. 3.1.3. A typical Execution Narration of a Scenario based test execution 2. Flow Diagrams: We created flow diagrams using MS Visio to design the end-to-end types of tests. These were the test where we are NOT concerned about a module/functionality working in silo but multiple functionalities/modules should work in conjunction. Copies may not be made or distributed for commercial use Page 11

3. Mind Maps: Mind maps are great aid to spontaneous test idea generation. The open ended nature of Mind Map allows to club ideas in logical manner. The best times to create Mind Maps are during JAD (Joint Analysis & Design) sessions or during team brainstorming sessions. We have gathered some great ideas using Mind Maps and leveraged them during testing. They are unique to each tester as it is for any user of mind maps. It helps to organize the thought process that is proven to be non-linear and therefore not friendly to the way languages are written. Mind maps provide the spatial dimension to facilitate the thought process. Ideas by association and spatial reference are the keys to assimilating thoughts which are otherwise not comprehensible. Mind maps provide just the right framework for exploration. Depending on the nature of your project, you may create Mind Maps functionality/module wise or testing type wise. Here is an example of a mind map that describes a view of the system under test. 4. Cheat Sheets: Cheat sheets are useful to test a known functionality or module. We basically used them to regression test the existing modules. We created separate cheat sheets for each module, mentioning the following, A. Brief summary of that module B. Types of suggested tests for that module e.g., Concurrency Test, Roles & rights Tests etc. C. Must-execute tests e.g., any module specific calculations or validations etc. D. Some history of the module i. Know Open defects (if any) ii. Types of defects found earlier in this module Copies may not be made or distributed for commercial use Page 12

5. Checklists: Different types of checklist can be used depending on the nature of the project. We use a checklist which covers the explicit requirements, and we need to check that they work in every iteration / release. We wanted to check this in every iteration as they were working before and we want to confirm it newer iteration(s). Here is a typical Checklist, Many people say that checklist and scripts are more or less same. But it is not. A checklist is an open ended item, whereas a script is a close ended item. You may validate an item of a checklist in any number of ways. But in scripts, you would follow the specified steps. The details can be referred in value of Checklist by Cem Kaner (Kaner, 2008) in which Cem Kaner describes how checklist differs from scripts. 4. Summary of test Design Techniques: We are not saying that the above five test design techniques are the only alternative for the traditional test design. We are trying to showcase how these 5 techniques helped us to design robust tests in our project. We encourage you to try similar light weight test design techniques which would suit the context of your projects. 4.1. Case Study (Alternative Test Design Approach): Here are some metrics which we gathered post implementation of Exploratory testing with light weight test design, in our project. 4.1.1. Test Design Copies may not be made or distributed for commercial use Page 13

Test Design - Artifacts Number of Test Artifacts Average time spent Creation of each Test Artifact (hours) Total time spent on Test Artifact Creation (hours) Average time spent Review of each test case (hours) Total time spent on Test Case Review (hours) Total Time spent on Test Design (Hours) Scenarios 481 1.5 721.5 1 481 1202.5 Flow 55 Diagrams 1.5 82.5 0.5 27.5 110 Mind Maps 20 2 40 1 20 60 Cheat Sheets 15 1 15 0.5 7.5 22.5 Checklists 27 1 27 0.5 13.5 40.5 Total 598 886 549.5 1435.5 Key Observation: Considerable amount of Test Design time is saved due to light weight test designing. 4.1.2. SIT Defects Defects Detected on Defects Ad-hoc basis (does Total Test Artifacts Test Artifacts Detected by not maps to any of Defects Executed Executed Test Artifacts the test artifact Detected directly) Scenarios 481 289 11 300 Flow Diagrams 55 23 1 24 Mind Maps 20 34 6 40 Cheat Sheets 15 3 8 11 Checklists 27 52 0 52 Total 598 401 26 427 Key Observation: Most of the detected defects were the outcome of the execution of the high level test artifacts. Only 6% of the total defects were detected on Ah-Hoc basis; thus the designed artifacts were leveraged completely and effectively. 4.1.3. SIT v/s UAT Defects Number of SIT Defects 427 Number of UAT Defects 10 Key Observation: Defect leakage was on 2.3% as the high level test artifacts allowed testers to explore like end users. Note: Client used pre-defined test scripts for UAT prior to implementation of our alternative Test Design Techniques as well as after the implementation. Copies may not be made or distributed for commercial use Page 14

4.2. Some Overall Observations: Lightweight test design saves considerable test design time as well as reduces defect leakage. 4.2.1. Some Challenges during implementation of Exploratory testing using Alternative test design techniques Some of the challenges during implementation were related to management, team members and efficiency of execution. We have described below those challenges and their possible solutions. Copies may not be made or distributed for commercial use Page 15

4.3. Do it yourself: We thank you for spending your time in reading the benefits of exploratory testing. We highly encourage you to pilot it in your organization / project and see the benefits for yourself. A few things to keep in mind which will help your organization become more successful. Ensure that the stakeholders are well informed and know the pros and cons of the effort: 1) We suggest you conduct some competency development sessions for your team members to enhance their exploratory testing skills. This can be done by organizing few time bound testing sessions and giving them some open source applications to test and discuss their findings. 2) Proper context based test plan should be prepared and should be updated regularly based on the dynamics of the project 3) While creating / designing scenarios the checklist concept should be used extensively so that you do not miss any requirements of the negotiated contract 4) Ensure to maintain proper execution narration for the test execution accountability and share the narration to the stakeholders on daily basis along with the daily status report 5) Conduct some short sessions within your team to explain effective narration writing technique, prior to the execution. 6) As you understand the benefits of Exploratory Testing, please be aware of some of the cons too: a) Exploratory tests call for testers to be willing and open to learning from the system as opposed to requirements-based expectation from the system. b) There is an expectation that testers are familiar with the business function and what the user wants to achieve with the task being implemented using the system. c) Exploratory testing calls for clear oversight and definition of objectives from the test. The retrospective from the test sessions are very important to ensure these tests are effective. d) The tester is expected to understand the role of each user of the system and the tasks that are needed to be performed by the system under test. 5. Conclusion: Our findings of improved defect detection by as much as 12% on our project compares well with the gains other studies reported (Itkonen, Mantyla & Lassenius, 2007). Some other projects adopting exploratory testing that have reported savings of up to 30% in the testing budget over their scripted counterparts. In lean practice of software development one of the ways of identifying waste is to use a value mapping of all the process activities. If the same is done for testing processes, the scripted testing shows little value being added from the up-front activities of documentation and review whereas exploratory testing shortens the time to adding value to the quality. These findings provide compelling evidence that testing processes can only improve with the adoption of exploratory testing. We urge the skeptics out there to give exploratory testing a second chance! References: 1) The Black Swan by Nassim Nicholas Taleb, Random House, 2007 2) An Introduction to Scenario Testing by Cem Kaner 3) Scenarios: The Art of Strategic Conversation by Kees van der Heijden, Royal Dutch/Shell s former head of scenario planning, Wiley, 1996 4) Value Of Checklists by Cem Kaner, CAST 2008 presentation 5) A tutorial in Exploratory Testing by Cem Kaner 6) The Nature of Exploratory Testing by Cem Kaner Copies may not be made or distributed for commercial use Page 16

7) Rapid software Testing by James Bach 8) Session Based Test Management by James Bach, STAR West 2000 9) Exploratory Testing: Design, Execute, and Learn by Michael Bolton, QUEST 2008 10) Testing vs. Checking by Michael Bolton, Agile 2009 11) www.testertested.blogspot.com by Pradeep Soundararajan 12) Juha Itkonen, Mika V. Mantyla and Casper Lassenius, Defect Detection Efficiency: Test Case Based vs. Exploratory Testing, First Intl. Symposium on Empirical software Eng. and Meas. IEEE Comp. Soc., 2007 13) Lisa Crispin and Janet Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams, Addison-Wesley Professional, 2009 14) James Bach, To repeat tests or not to repeat, http://www.satisfice.com/blog/archives/24 15) Cem Kaner, Exploratory Testing, Keynote address at QAI conference, Nov, 2006 Copies may not be made or distributed for commercial use Page 17