Litcius/Paper detail

<scp>StubCoder</scp> : Automated Generation and Repair of Stub Code for Mock Objects

Hengcheng Zhu, Lili Wei, Valerio Terragni, Yepang Liu, Shing-Chi Cheung, Jiarong Wu, Qin Sheng, Bing Zhang, Lihong Song

2023ACM Transactions on Software Engineering and Methodology10 citationsDOI

Abstract

Mocking is an essential unit testing technique for isolating the class under test from its dependencies. Developers often leverage mocking frameworks to develop stub code that specifies the behaviors of mock objects. However, developing and maintaining stub code is labor-intensive and error-prone. In this article, we present StubCoder to automatically generate and repair stub code for regression testing. StubCoder implements a novel evolutionary algorithm that synthesizes test-passing stub code guided by the runtime behavior of test cases. We evaluated our proposed approach on 59 test cases from 13 open source projects. Our evaluation results show that StubCoder can effectively generate stub code for incomplete test cases without stub code and repair obsolete test cases with broken stub code.

Topics & Concepts

Stub (electronics)Computer scienceUnit testingRegression testingLeverage (statistics)Test caseProgramming languageSoftwareSoftware developmentArtificial intelligenceEngineeringStructural engineeringMachine learningSoftware constructionRegression analysisSoftware Testing and Debugging TechniquesSoftware Reliability and Analysis ResearchAdvanced Malware Detection Techniques
<scp>StubCoder</scp> : Automated Generation and Repair of Stub Code for Mock Objects | Litcius