ABCA: Android Black-box Coverage Analyzer - Code Shoppy
Project Center Kumbakonam - Code Shoppy
ABCA: Android Black-box Coverage Analyzer
To manage test projects of application under
test (AUT) on Android devices, coverage analysis tools for
test ade-quacy are still urgently needed. As in other
platforms, code coverage is a relatively convincing criterion
for confidence that no obvious component part is left
untested. With the help of Soot library, we developed a tool,
called Android Black-box Coverage Analyzer (ABCA) that
can produce source code coverage report on AUT execution
while the source code of the AUT is actually not available. https://codeshoppy.com/project-center-kumbakonam.html Given an Android application package (APK) file (in
bytecode), ABCA inserts commands into the APK file to
dump cover-age data on executed classes, method names,
and source code statements. After exerting a test case on the
instru-mented AUT on an Android device, we can then run
ABCA in a PC to collect code coverage data of the AUT
execution via a USB line connecting the PC and the Android
device. After the test session completes, ABCA then
generates a re-port on class coverage, method coverage,
and line coverage of the original Java source code.
Coverage criteria [5, 4] are indispensable in evaluating
the adequacy of testing effort and progress of real-world
software projects. On one hand, there are many traditional
coverage criteria, including line coverage, branch coverage,
data-flow coverage, method coverage, for white-box testing
when the source code are available. On the other hand, there
are also coverage criteria, defined on the system or module interfaces, for black-box testing. An empirical study [3] observed that coverage-based techniques are also effective in
detecting software faults.
Recently, the booming of Android app market in the
cloud has prompted many small teams and individuals to
adventure in this market. We present a coverage analysis
tool, called Android Black-box Coverage Analyzer (ABCA),
that does not need the source code of the apps under test
(AUT) but can still provide source code level coverage data.
ABCA can thus be beneficial in the following two aspects.
• Clients need protect their intellectual properties (IP)
and would be reluctant to release the source code of
their applications to the test service providers. In this
aspect, ABCA could be a useful bridge between the
clients and the test service providers and could eventually promote the test service industry to the mobile
application developers.
• ABCA makes it possible for the test service providers
to gain business without leaving concerns of IP infringement to their potential clients. As a research
project, ABCA also shows the solution techniques for
collecting source code coverage data without access to
the program source code.
With the detailed coverage data, ABCA can also help diagnosing why some parts of the code cannot be reached
or identifying those code segments related to certain bug
traces. Academia can also use ABCA in researching
coverage-based techniques for Android apps.
To the best of our knowledge, the only coverage tool similar to ABCA and available to the public for Android apps
is by Horváthy, Bognáry, Gergely, et al [1]. However their
tool can only report coverage on the methods. In contrast,
ABCA can report detailed coverage reports on lines, methods, and classes of the source code of the execution of Android APKs.
ABCA runs on Microsoft Windows on PC and connects
to Android devices via a USB line. It consists of two parts.
• ABCA-instrumentor (ABCAI), that instruments the byte-code of an Android Application Package (APK)
so that coverage data can be collected out of the execution of the APK.
• ABCA-reporter (ABCAR), that monitors the execution
of the instrumented APK and collects the coverage
data from the APK to compile the final coverage report
Comments
Post a Comment