TDDD04 Software Testing
Lab 3: Exploratory testing
Purpose
In this assignment, you will get to practice exploratory testing, as in, learning about and documenting functionality of a program while you test it. You will read an introductory paper on Exploratory testing by Jonathan Bach, to understand what exploratory testing means. Exploratory testing is intended to be used when we need to test software where the documentation and specifications are not the only things of interest, but we are rather interested in details about what the software actually does. Writing test cases by translating a specification to test cases verbatim, or following a script to perform "testing" is not generally what humans excel at, or like to do: we can even write automated approaches for test case generation and execution that you encounter in the other labs in this course. However, humans are very well suited for the creative, intellectually rigorous exploration of software. When exploring, we may want to figure out how it should work, or figure out ways in which it may not work. In that sense, testing is an integral part of achieving a better understanding of the product, and indeed the problem the product itself is supposed to solve.Part 1
In this assignment, you shall produce test cases based on your exploration of a product. The products themselves are small web applications, and you shall describe their behaviour by creating a set of test cases of expected behaviour. Group your test cases logically, according to functionality that you believe is related.
Preparations
Read the paper on Exploratory testing by Jonathan Bach that explains the basics of exploratory testing, as well as how to use sessions when exploring software. Create a session report structure to record the information on the tests executed: inputs, expected outputs, actual output, observations, and any additional information you might find useful. Choose four of the Black box machines created by James Lyndsay that you would like to explore. The older puzzles might require Flash, but the newer ones (22 and up) work without needing any plugins. For each machine, create an exploratory testing charter similar to the examples. It should be detailed enough that it gives you some guidance in testing. There should be a clear relationship between the charter and your test activities.Session-based exploratory testing
Given the charter, you are to engage in session-based testing of the product to find out how it works. Make sure that you switch places and take turns exploring the software artifacts, and talk aloud to help each other take notes on how you interpret the functionality of each machine. Continue until you have a description of how the machine works (no more than one or a few sentences), that may be used as a basis for further regression testing. You may need to revise your initial assumptions and iteratively refine your work, but that is part of the process and expected. As you move from one blackbox machine to the next, try to find faster exploration heuristics and detecting how the machines work and note how you plan to explore them faster than the previous iteration. Develop new charters as you go along, if needed.Part 2
Choose a web-based application, for example a Google service, like Google Maps or Google Translate or an online store. Based on the functionality you expect, create a test charter. You cannot test all the application in a single session, so you need to decide what functionality to focus. Include the link to the application you are testing in your test charter.Reporting your results
See the instructions on the course page general submission instructions. For part 1, upload your test session transcripts, along with your modifications to your charter between test sessions. For each black-box machine, conclude with your description of the behavior. Finally, include a short reflection on whether you believe your changes helped you test faster or more productively. For part 2, upload the test charter with the test session transcript.
Page responsible: Lena Buffoni
Last updated: 2020-07-29