Exploratory Testing: An Overview

Transcription

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015Exploratory Testing: An OverviewRashmi N.Suma V.Dayananda Sagar College of EngineeringS.M. Hills, K.S.LayoutBangalore 560078Dayananda Sagar College of EngineeringS.M. Hills, K.S.LayoutBangalore 560078ABSTRACTThere exist various approaches in software testing to testsoftware under development. Exploratory Testing is one suchimportant approach where no predefined test cases are used totest the software. It is proven by researchers that exploratorytesting is equally effective in detecting defects as thetraditional testing where predefined test cases are used to testthe software. Hence, this paper brings in deeper insight to gainknowledge of exploratory testing approach. Accordingly, thispaper put forth an understanding of the characteristics,benefits, advantages and challenges, techniques, tools andrecent advances in exploratory testing. This awareness acts asa travel light for further areas of research and progress inexploratory testing. Further, thus gained understandingenables the test team to formulate strategies towards bettermodes of developing customer satisfied software products.KeywordsHigh Quality Software, Software Engineering, SoftwareTesting, Exploratory Testing1. INTRODUCTIONHuman life today is highly unimaginable without softwarewhich has found its use in almost all the fields such ications. This dependency of human life onsoftware demands IT organizations to develop high qualitysoftware [1]. High quality software is defect free, producespredictable results and delivered within time and costconstraints. Also, high quality software is manageable,maintainable, dependable, understandable and efficient. Theimportant factors which affect the quality of a product arequality of the process and the quality of the people which canbe represented mathematically as shown below [2].(1)Where, i 1 requirement phase, 2 , 3 .maintenance phase of software development processn Hence, delivering such high quality software that possesses allthe above mentioned characteristics is a challenge in realityfaced by IT companies. As a solution, IT industries useseveral software engineering processes, methods, techniquesand standards. One such process is Software Verification andValidation, which detects defects in non-executable andexecutable software under development and ensures thatsoftware which is delivered to the customer, is almost defectfree. A defect is any inaccuracy, inadequacy, or undesiredbehaviour that occurs either in the deliverable or in theproduct. Software defects have an inherent nature of dwelling,propagating and magnifying with the passage of development.Fixing of these defects at later stages of development becomescostly and time consuming. Thus, it is very much necessary todetect and remove these defects right at the point they areinjected [2]. Software Testing, which is a quality controlactivity, plays a significant role in identifying the presence ofdefects in executable software. There exists various softwaretesting techniques which can be categorized into Scripted andUnscripted Testing [3]. Exploratory Testing is an unscriptedtesting where unlike scripted testing, there are no predefinedtest cases to be executed and is a simultaneous learning,design and execution of test cases. This paper intends toprovide an overview of Exploratory Testing in terms of itscharacteristics, benefits, advantages and drawbacks. The paperalso discusses the techniques, models, metrics and toolssupporting Exploratory Testing.2. EXPLORATORY TESTINGExploratory Testing, introduced by Cem Kaner in 1960’s is arecognized testing approach but has commonly been referredto as ad hoc testing or error guessing [3]. It differs from theconventional test case based testing in that the tests are notbased on the predefined test cases. Instead it is a creative,experience based approach in which test design, executionand learning are simultaneous activities and the results of thetests executed are in turn applied for designing further tests.Therefore, exploratory testing is deemed to be a testingactivity which involves simultaneous learning in associationwith test design generation and conducting test execution [3].There are several scenarios which are considered to be bestsuitable for Exploratory Testing. For an instance, thefollowing scenario explains a situation where the tester isassigned the task of testing a photo editing program in fourhours. The tester's aim here is to assess the program againstthe standards of the Microsoft Windows CompatibilityCertification Program and to report any existing compatibilityviolations. In order to test this, the tester sets the memoryslide bar to 5% and performs memory intensive functions. Thetester sets the image size to 100 inches square which is a bigcanvass, fills the canvass with a color and also tries to add thespecial graphical effect such as ripple effect to the image.When tester was doing this he immediately gets an errormessage informing that there is insufficient memory toperform the operation. So this satisfies the desired stability ofthe program. Next, the tester goes ahead with applying the restof the graphical effects to the image and to his surprise theprogram would crank away for five minutes eventually givingan error message: " Error -32: Sorry, this error is fatal" and theapplication crashed [3].Ad hoc testing, a special case of Exploratory Testing has asufficiently detailed test notes using which the tests can bererun by reading them [4]. Exploratory Testing emphasizeslearning and adaptability which comprises of four importantactivities such as learning, design, execution andinterpretation activities [5].Learning, guides what to test, how to test and how torecognize a problem. A tester learns about competitiveproducts, and the history of the product. Also, the tester21

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015inspects the product under test, questions, reviews writtensources, and experiments with the tools [5].4.Exploratory testing does not require detailedrequirements or specification document.Design is an activity that enables the testers to create, andconstruct tests according to the plan. Examples of designactivities include mapping of test techniques to test ideas,tools to test techniques, staff skills to tools/techniques,development of supporting test data, development ofsupporting oracle and so on [5].5.A rapid flow of feedback from testing to developersand testers without the need to hold toorganizational obstacles [6].Execution, involves test execution and collection of results.Execution is either manual or automated. Configuration ofthe product under test, pair testing, creating and debuggingautomated tests are examples of execution activities [5].Interpretation makes the tester learn from the program interms of the product and the mode of testing the product.Interpretation activities include determining the pass and failcriteria of test [5].Robust Characteristics of Exploratory Testing (ET)Exploratory Testing is popular among testers because of itscapability to perform testing in absence of pre-defined testcases and is lead by the results of previously performed tests.The focus in exploratory testing is on finding defects byexploration, thus, several unexpected defects can be predictedand detected which otherwise escapes conventional testingapproaches.The important characteristics of exploratory testing include1.Test cases are not defined in advance. Instead,exploratory testing is an exploration with auniversal mission without step-by-step instructionson how to accomplish the mission.2. ET is guided by the results of previously performedtests and the gained knowledge from them. Anexploratory tester uses any available informationsuch as requirements documents, a user’s manual,or even a marketing brochure for testing purposes.3.ET is highly focused on detecting defects byexploration as opposed to developing test cases forlater use.4.Exploratory testing is simultaneously learning thesystem under test, designing the test, and executionof the test.5.Effectiveness of exploratory testing depends ontester’s knowledge, skills, and experience [6].Benefits of Exploratory TestingThe vigorous nature of exploratory testing is useful in variousways during software development process. Some of thebenefits of exploratory testing are1.It increases the defect detection efficiency in termsof defect count, defect severity levels and number offalse defect reports.2.Improves the skills of the tester throughsimultaneous learning since the tester can learnabout the behavior and the failure of the systemunder test.3.Pre-defined test cases are not required inexploratory testing which hence leads to reduceddocumentation.Despite of benefits, yet, ET is suitable in few typesof applications which are mentioned below.Areas well suited for Exploratory TestingExploratory Testing is applicable in the following situations. When a rapid feedback is needed on a new featureor a product. When a product needs to be learnt quickly. When the tests on the product needs to be expandedand the product is already tested using pre-definedtest cases. When an important defect needs to be detected inthe shortest period of time. When a particular needs to be investigated andisolated. When the status of a particular risk needs to beinvestigated.In addition to the above situations exploratory testing also fitsin the following situations. To improve scripted tests. To interpret imprecise test instructions. To perform product analysis and test planning. To write new test scripts. To perform regression testing based on old bugreports[7].Exploratory Testing is basically an approach where anytesting technique for e.g. scenario-based testing, model-basedtesting can be performed in an exploratory manner [7].Structure of ETExploratory Testing has a definite structure with external andinternal dimensions. External structure consists of elementssuch as time, tester, product, mission and reporting. A testerover a period of time interacts with a product to satisfy atesting mission and reporting results. During this process thetester aligns towards the testing mission, the tester imagines aseries of questions about the product, designs tests andexecutes the tests to get the answers for those questions. Thetester adjusts the tests and continues exploring if the answersare not satisfactory. The status and the results of the tests arereported by the tester anytime. Internal structure ofexploratory testing exists inside the mind of the tester.Therefore, an exploratory tester possesses the followingcharacteristics.Test Design: Being a test designer an exploratory testerdesigns the test which systematically explores the product.Careful Observation: Being a cautious observer anexploratory tester observes anything unusual or mysteriousand must be able to distinguish between observation andinference.22

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015Critical Thinking: Exploratory testers have the ability toassess and describe their logic that helps in reporting thestatus of the testing.5.Data files6.Test notesDiverse Ideas: Exploratory testers create new by making useof heuristics such as guidelines, generic checklists,mnemonics, or rules of thumb.7.Issues8.BugsRich Resources: A list of tools, information sources and testdata are prepared by exploratory testers so that they can beapplied appropriately during testing [7].Exploratory Testing TechniquesImportant exploratory testing techniques areFreestyle Exploratory TestingThis technique does not include specific charters. The testerfreely explores the product by learning, designing andexecuting the tests. Defect Reports are the only official resultobtained from this technique. Freestyle exploratory testing ismanaged in two ways namely by delegation and byparticipation. In exploratory testing managed by delegation,the test lead specifies the charters and the testers continuedesigning and executing the tests to achieve the charters, andreport back. The test reports in this technique may be writtenor oral. In Exploratory Testing managed by participation thetest lead also performs testing along with other testers. Thisparticipation eliminates potential confusions in the testingteam. Team exploratory testing is a technique where thecollective effort of the people in detecting the defects leads tobetter ideas than if they worked individually [7].Session Based Test ManagementA session being the basic testing work unit, is anuninterrupted block of reviewble, chartered test effort. By"Uninterrupted" indicates no significant interruptions such asno telephone calls, emails, chatting, meetings. "Reviewable"indicates producing a session report that is reviewed by testmanager thus helping the manager in taking decisions. Themeaning of "chartered" is having a mission for testingactivity. A session normally lasts for 90 minutes, but theremight be short and long sessions which lasts for 45 minutes to2 hours.Each session in turn consists of three kinds of tasks namely,test design and execution, bug investigation and reporting andsession setup. These are together called "TBS" metrics. Testdesign and execution deals with scanning the product andlooking for problems. Bug investigation and reporting is theprocess of detecting and the reporting of a bug. Certainactivities such as configuring equipment, studying manuals,locating materials or writing a session report are required forsetting up a session. Session based test management is alsoaccompanied "opportunity" testing. Opportunity testing isany testing which does not match with the charter of testing.In addition to task breakdown metrics a session sheet alsocontains three important parts such as bugs, issues and notes.Bugs determine the quality of the product, issues are thequestions or problems related to the testing process, notesconsists of test case ideas, lists of functions, risks etc. At theend of each session, debriefing of the session takes place.Debriefing gives an idea of the progress done in a test session.A session report consists of the following sections1. Session Charter(areas to be tested)2.Tester name3.Date and time started4.Task breakdown(TBS metrics)These reports after the session are stored with other reports inthe database and are then scanned by a tool, which breaksthem into the basic elements, normalizes them andsummarizes them into tables and metrics. The scanning toolmakes about 80 syntax and consistency checks on each sheet.Output of the scanner is a group of text tables. Each text tableis in a delimited format suitable for importing to MS Excel foranalysis purposes. The text tables are as follows Test Notes (test notes sections by sessionID)Bugs(bug records, by bug ID and session ID) Issues(issue records, by issue ID and session ID) Charters(charter statements and area keywords, bysession ID) Date Files(data file names by session ID) Session Breakdowns(Session metrics, by sessionID) Coverage Breakdowns(session metrics, by areakeywords) Tester Breakdowns(session metrics, by tester name) Day Breakdowns(session metrics, by day) ToDo sessions(Incomplete session sheets) [7]Some of the metrics obtained from session based testmanagement method are Number of sessions completed. Number of problems found Function areas covered Percentage of session time spent setting up fortesting percentage of session time spent on testing percentage of time spent investigating problems velocity of charter average session execution Progress of testing canthen be measured using these metrics which helpsthe management to take decisions.A sample session sheet can be referenced in [8]Thread Based Test ManagementThis method was introduced by James Bach in 2010. A threadis a test idea or a test activity. Thread Based Test Managementis a generalization of Session Based Test Management.Thread Based test Management is an easy and quick methodto start and is not limited by time. The method starts by listingthe test ideas as threads and then arranging these threads usingmind map tool [9].23

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015consists of starting and the shutdown code. Tours associatedwith the district arei) The guidebook Tourii) The Money Touriii) The Landmark touriv) The Intellectual Tourv) The FedEx Tourvi) The After-Hours TourFigure 1: Thread Based Test Management3. xBTMxBTM was first introduced by Michael Albrecht and ChristinWiedemann of AddQ Consulting in 2011. xBTM is thecombination of Session Based Test Management and ThreadBased Test Management where "x" represents number ofsessions or threads. xBTM starts by using session based testmanagement or thread based management. A mind map isdesigned based on the context by listing test ideas for testactivities, estimating the number of charters needed andupdating the mind map as and when the test progresses [9].vii) The Garbage Collector's Tour2. Historical District - The main aim in this district is to testthe functionality of the legacy code and verify the bug fixes.The tours associated with the district arei) The Bad Neighborhood Tourii) The Museum Touriii) The Prior Version Tour3. Tourist District - This is district where new testers arealways attracted than the experienced. The tours associatedwith the district arei) The Collector's Tourii) The Lonely Businessman Touriii) The Supermodel Touriv) The TOGOF Tourv) The Scottish Pub Tour4. Entertainment District - This district involves supportingfeatures such as formatting texts, modifying backgrounds in aword processor than the main features. In a word processor,the supporting features are formatting texts, modifyingbackgrounds and templates etc. The associated tours areFigure 2: xBTMTour Based Exploratory TestingAn exploratory tester justifies for five specific properties suchas user inputs, state, code-paths, user data and executionenvironment while performing exploratory testing. Duringthis process, the tester would be taking decisions regardingsmall things such as choosing among atomic inputs, arrangingatomic inputs in combination or in sequence. The tester doesthis with the use of input filters, use of input checks andexception handlers etc. For taking large decisions concerningfeature interaction, data flows and choosing the path throughUI exploratory testers use tourism metaphor where theexploration of the software is done using the tools such asorganized tours, guidebooks, maps and local information. Thishelps the tester in setting goals during testing."Tourist " metaphor is suitable for exploratory testing where atester tries to explore a new destination. An exploratory testerselects a combination of features while performingexploratory testing similar to a mix of landmarks and sites asselected by tourists on a tour. As tourists partition thedestination into physical boundaries or districts such asbusiness district, entertainment district, theatre district etc anexploratory tester partitions the features of an application.1. Business District - It contains the features and functions onwhich the business of an organization mainly depends. Iti) The Supporting Actor Tourii) The Back Alley Touriii) The All-Nighter Tour5. Hotel District - This district often involves tours where atester tests the secondary and supporting functions. Associatedtours arei) The Rained Out Tourii) The Couch Potato Tour6- Seedy District - In this district the testers test the sectionsof software that are vulnerable. The tours associated arei) The Saboteurii) The Antisocial Touriii) The Obsessive-Compulsive TourHybrid Exploratory Testing TechniquesScripted and Exploratory TestingScripted and Exploratory Testing coexists where the scriptspresent a structure and exploratory testing adds variation toincrease the effectiveness of the combined approach. Thisapproach begins with formal scripted testing, which is latercontinued by exploratory testing.24

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015Scenario Based Exploratory TestingEnd-to-End Scenario Testing is performed by testers whenthey perform manual testing. The popularity of scenariotesting is because of the confidence it gives to the users aboutthe product that it will work as expected. A Scenario performsthe following functions tells a user story describes a requirement demonstrates how a feature works demonstrates an integration scenario describes setup and installation describes cautions and things that could go wrongLearning Styles and their applications to ExploratoryTestingAn important activity of exploratory testing is learning aboutthe software, including its weaknesses, potential failuremodes, potential applications, market, configurationvariability. Several models of learning styles have beenproposed. A learning style is a person’s “characteristicstrengths and preferences in the ways they take in and processinformation In 1988 Felder-Silverman proposed a model oflearning styles that indicates a person's predilections on tive/Deductive, Active/Reflective and Sequential/Global[12].SensoryIntuitiveScenario Based Exploration is performed using existingscenarios and variations are injected as and when required,thus translating a single scenario into many test cases byconsidering choices in input selection, data usage andenvironmental conditions. There are two ways through whichvariations are injected into a scenario testing: by scenariooperators and tours [10].VisualVerbalExploratory TestersInductiveDeductiveExploratory testing is based on the knowledge of the testersthat varies from person to person just as any other kind ofknowledge. The knowledge that the testers possess may beobtained from previous projects, or drawn on the experienceof other people. Exploratory testers may also have on theknowledge from the training they received or from thepublished sources [11].Exploratory testers use heuristics to make decisions.Heuristics is defined as "Of or relating to a usually speculativeformulation serving as the guide in the investigation orsolution of a problem"(American Heritage Dictionary of theEnglish Language 3rd edition). James Bach has developed amodel named Satisfice Heuristic Test Strategy Model thatshows the types of the knowledge used by the explorers. Inthis model, environment of the project, quality criteria definedon the project and elements of the product being testedcombine with test techniques to affect the quality of theproduct. Each of these elements in turn consists of severalcomponents that help the testers to determine the informationthey need for the project [11].ActiveSequentialReflectiveGlobalFigure 4: Felder-Silverman Learning StylesSensory/IntuitiveAccording to this model, a person with a preference tosensory information is one who relies more on the informationhe receives through his external senses, while a person with apreference for intuitive information relies on his internalinformation (generated from memory, conjecture, andinterpretation) and intuition. The sensory-based personfocuses on his actual observations of the software. Theintuitor will focus on the internal model of the software that isunder test.Visual/VerbalVisual learners retain information they get from visual imagessuch as pictures, movies, diagrams or demonstrations. Verballearners retain information they hear (or read) such aslectures, written words, and mathematical formulas.Visual learners will tend to work with an internal model thatis picture-based such as a set of UML diagrams, flowcharts, oreven mental screenshots. Verbal learners would use a textualmodel such as textual description of the system for testing.Figure 3: Satisfice Heuristic Test Strategy ModelInductive/DeductiveAn inductive learner prefers to work from specifics and derivethe generalities, while a deductive learner starts with thegeneralities and applies them to the specific situations.An inductive learner collects as many specifics as possibleand generalizes them to the application. A deductive learner25

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015does testing by keeping a collection of general principles andheuristics and looks for ways to specifically and applies thesegeneralities.Active/ReflectiveActive learners discuss with others or may do experiment withinformation as soon as they get it. Reflective learners thinkabout information before they use it. They prefer to workalone.Tools supporting Exploratory TestingTools are infrequently used in Exploratory Testing. Followingtable gives the list of the tools supporting exploratory testing[14].Table 1: Tools Supporting Exploratory TestingAn active tester often executes many test cases rapidly andviews each test case as an experiment. A reflective tester, onthe other hand, executes few test cases.Sequential/GlobalSequential learners begin learning in small bits incrementallybuilding on the knowledge they have already learned. Globallearners, however, tend to learn in large portions.A sequential learner builds information and knowledge in alogical progression, while a global learner needs criticalpieces of information in order to get the understanding of thesubject [12].Other Styles of ExplorationsThere exist other styles of explorations for real-time andembedded systems to uncover uncertainties [13].Environmental explorationsEnvironmental explorations simulate uncertainty in theenvironment in which the system is operating. Theseuncertainties may arise from operating system anomalies orfrom operational domain disturbances, such as a power surgeor a violent storm.Input explorationsInput explorations simulate uncertainties such as false ormissed interrupts, anomalous data, and deliberately poisoneddata which further leads to series of failures that overload thesystem.Output explorationsOutput explorations simulate gross or subtle defective outputfrom a software control system which further perturbs thesystem response.State explorationsState explorations simulate internal faults, such as jumpedprogram counters, which further can lead to uncertainty ofprogram state that is difficult to diagnose, and nearlyimpossible to recover from.Behavioral explorationsBehavioral explorations simulate a wide class of timing andscheduling problems that are the characteristic of real-timesystems.Language explorationsA set of explorations are needed to test the compiler, andother systems programs involved in the production of theexecutable code (debuggers, linkers, loaders, etc.).COTS explorationsThese explorations uncover problems in software furnished bythird parties such as commercial vendors, or open sourcesoftware.These explorations are extensively used in testing variousreal-time embedded systems for avionics applications,including the Space Shuttle Inertial Measurement Unit,satellite systems, and other navigation systems [13].SoftwareNon-SoftwareTools Supporting Exploratory TestingMind Maps(e.g.XMind)Custom made toolRapid ReporterEvernoteExcelqTraceVim-EditorJira Test SessionsOne NotePerclipIETesterBB FlashbackLiteraturePostItsChecklistsPaper & PenChallenges of Exploratory TestingFollowing challenges faced by conventional test case basedtesting are also applicable for Exploratory Testing. Learning challenge is about knowing the program. Visibility is about determining the progress of thetesting process Control is about setting internal data values Risk/Selection is about determining the best tests torun Execution is about the most efficient way to run thetests Logistics is about determining the environment isneeded to support test execution? The Oracle problem is about determining if the testresult is correct or not. The Reporting is about replicating a defect andeffectively reporting it. Documentation challenge is about determining thetest documentation required. Measurement is about deciding the appropriatemetrics. Stopping challenge is about deciding when to stoptesting?Exploratory testing is an experience based testing and differshighly from the document driven Case Based Testing. Thereare only few research articles and books published onexploratory testing. Practitioner reports on exploratory testingassert ET is both effective in detecting defects and costefficient. More research is required to better understand all theaspects of exploratory testing.In conclusion, exploratory testing is encouraged in thepractitioner literature and scientific studies of exploratorytesting are yet an emerging technique. Effectiveness andefficiency of ET approach are supported by studies comparing26

International Journal of Computer Applications (0975 – 8887)Volume 131 – No.10, December2015ET with other testing approaches. This research paperattempts to help interested testing and research community togain more knowledge about exploratory testing, its varioustechniques, metrics, tools and challenges.4. REFERENCES[1] Humphrey, Watts S. “The Software Quality Challenge.”CROSSTALK:The journal of Defense SoftwareEngineering (June 2008).[2] V. Suma, T. R. Gopalakrishnan Nair, “DefectManagement Strategies in Software Development”, Bookon Recent Advances in Technologies", ISBN 978-953307-017-9, pp 379-404, Intec web Publishers, Vienna,Austria, November 2009.[3] Juha Itkonen, Mika V. Mantyla and Casper Lassenius, "The Role of Knowledge in Failure Detection DuringExploratory Software Testing", IEEE Transactions onSoftware Engineering, May 2011,[4] Chris Agruss & Bob Johnson, " Ad Hoc isation", 2000.[5] Cem Kaner, "A Tutorial in Exploratory Testing", April2008.[6] Itkonen, J. and K. Rautiainen, “Exploratory testing:amultiplecasestudy,”Proceedingso

Exploratory Testing is popular among testers because of its capability to perform testing in absence of pre-defined test cases and is lead by the results of previously performed tests. The focus in exploratory testing is on finding defects by exploration, thus, several unexpected defects can be predicted .