Loading [MathJax]/extensions/MathZoom.js
Automated Testing of Software that Uses Machine Learning APIs | IEEE Conference Publication | IEEE Xplore

Automated Testing of Software that Uses Machine Learning APIs


Abstract:

An increasing number of software applications incorporate machine learning (ML) solutions for cognitive tasks that statistically mimic human behaviors. To test such softw...Show More

Abstract:

An increasing number of software applications incorporate machine learning (ML) solutions for cognitive tasks that statistically mimic human behaviors. To test such software, tremendous human effort is needed to design image/text/audio inputs that are relevant to the software, and to judge whether the software is processing these inputs as most human beings do. Even when misbehavior is exposed, it is often unclear whether the culprit is inside the cognitive ML API or the code using the API. This paper presents Keeper, a new testing tool for software that uses cognitive ML APIs. Keeper designs a pseudo-inverse function for each ML API that reverses the corresponding cognitive task in an empirical way (e.g., an image search engine pseudo-reverses the image-classification API), and incorporates these pseudo-inverse functions into a symbolic execution engine to automatically gener-ate relevant image/text/audio inputs and judge output correctness. Once misbehavior is exposed, Keeper attempts to change how ML APIs are used in software to alleviate the misbehavior. Our evalu-ation on a variety of open-source applications shows that Keeper greatly improves the branch coverage, while identifying many pre-viously unknown bugs.
Date of Conference: 25-27 May 2022
Date Added to IEEE Xplore: 20 June 2022
ISBN Information:

ISSN Information:

Conference Location: Pittsburgh, PA, USA

Funding Agency:


1 Introduction

Machine learning (ML) offers powerful solutions to cognitive tasks, allowing computers to statistically mimic human behaviors in computer vision, language, and other domains. To facilitate easy use of these ML techniques, many cloud providers offer well-designed, well-trained, and easy-to-use cognitive ML APIs [1]–[5]. Indeed, many software applications in a variety of domains are incorpo-rating ML APIs [6], [7]. Thus, effectively testing these applications-which this paper refers to as ML software-has become urgent.

Contact IEEE to Subscribe

References

References is not available for this document.