DOI: 10.5281/zenodo.8043897
title: Data and Code for the paper "GUI Testing of Android Applications: Investigating the Impact of the Number of Testers on Different Exploratory Testing Strategies"

description: This package contains data and code to replicate the findings presented in our paper titled "<em>GUI Testing of Android Applications: Investigating the Impact of the Number of Testers on Different Exploratory Testing Strategies</em>". <strong>Abstract</strong> Graphical User Interface (GUI) testing plays a pivotal role in ensuring the quality and functionality of mobile apps. In this context, Exploratory Testing (ET), a distinctive methodology in which individual testers pursue a creative, and experience-based approach to test design, is often used as an alternative or in addition to traditional scripted testing. Managing the exploratory testing process is a challenging task, that can easily result either in wasteful spending or in inadequate software quality, due to the relative unpredictability of exploratory testing activities, which depend on the skills and abilities of individual testers. A number of works have investigated the<br> diversity of testers’ performance when using ET strategies, often in a crowdtesting setting. These works, however, investigated ET effectiveness in detecting bugs, and not in scenarios in which the goal is to generate a re-executable test suite, as well. Moreover, less work has been conducted on evaluating the impact of adopting different exploratory testing strategies. As a first step towards filling this gap in the literature, in this work we conduct an empirical evaluation involving four open-source Android apps and twenty masters students, that we believe can be representative of practitioners partaking in exploratory testing activities. The students were asked to generate test suites for the apps using a Capture and Replay tool and different exploratory testing strategies. We then compare the effectiveness, in terms of aggregate code coverage, that different-sized groups of students using different exploratory testing strategies may achieve. Results provide deeper insights into code coverage dynamics to project managers interested in using exploratory approaches to test simple Android apps, on which they can make more informed decisions. <strong>Contents and Instructions</strong> This package contains: <strong>apps-under-test.zip</strong> A zip archive containing the source code of the four Android applications we considered in our study, namely MunchLife, TippyTipper, Trolly, and SimplyDo. <strong>apps-under-test-instrumented.zip</strong> A zip archive containing the instrumented source code of the four Android applications we used to compute branch coverage. <strong>students-test-suites.zip</strong> A zip archive containing the test suites developed by the students using Uninformed Exploratory Testing (referred to as "Black Box" in the subdirectories) and Informed Exploratory Testing (referred to as "White Box" in the subdirectories). This also includes coverage reports. <strong>compute-coverage-unions.zip </strong>A zip archive containing Python scripts we developed to compute the aggregate LOC coverage of all possible subsets of students. The scripts have been tested on MS Windows. To compute the LOC coverage achieved by any possible subsets of testers using IET and UET strategies, run the <em>analysisAndReport.py</em> script. To compute the LOC coverage achieved by mixed crowds in which some testers use a U+IET approach and others use a UET approach, run the <em>analysisAndReport_UET_IET_combinations_emma.py</em> script. <strong>branch-coverage-computation.zip </strong>A zip archive containing Python scripts we developed to compute the aggregate branch coverage of all considered subsets of students. The scripts have been tested on MS Windows. To compute the branch coverage achieved by any possible subsets of testers using UET and I+UET strategies, run the <em>branch_coverage_analysis.py</em> script. To compute the code coverage achieved by mixed crowds in which some testers use a U+IET approach and others use a UET approach, run the <em>mixed_branch_coverage_analysis.py</em> script. <strong>data-analysis-scripts.zip</strong> A zip archive containing R scripts to merge and manipulate coverage data, to carry out statistical analysis and draw plots. All data concerning RQ1 and RQ2 is available as a ready-to-use R data frame in the <em>./data/all_coverage_data.rds</em> file. All data concerning RQ3 is available in the <em>./data/all_mixed_coverage_data.rds </em>file.