ABSTRACT
Test smells are fragments of code that can affect the comprehensibility and the maintainability of the test code. Preventing, detecting, and correcting test smells are tasks that may require a lot of effort, and might not scale to large-sized projects when carried out manually. Currently, there are many tools available to support test smells detection. However, they usually do not provide neither a user-friendly interface nor automated support for refactoring the test code to remove test smells. In this work, we propose RAIDE, an open-source and IDE-integrated tool. RAIDE assists testers with an environment for automated detection of lines of code affected by test smells, as well as a semi-automated refactoring for Java projects using the JUnit framework.
- Manuel Breugelmans and Bart Van Rompaey. 2008. Testq: Exploring structural and maintenance characteristics of unit test suites. In WASDeTT-1: 1st International Workshop on Advanced Software Development Tools and Techniques. IEEE International Conference on Software Maintenance, Beijing, China, 4--15.Google Scholar
- Zheng Fang. 2014. Test clone detection via assertion fingerprints. Master's thesis. University of Waterloo.Google Scholar
- Marios Fokaefs, Nikolaos Tsantalis, and Alexander Chatzigeorgiou. 2007. Jdeodorant: Identification and removal of feature envy bad smells. In 2007 IEEE International Conference on Software Maintenance. IEEE, Paris, France, 519--520.Google ScholarCross Ref
- Vahid Garousi and Barış Küçük. 2018. Smells in software test code: A survey of knowledge in industry and academia. Journal of systems and software 138 (2018), 52--81.Google ScholarCross Ref
- Vahid Garousi, Baris Kucuk, and Michael Felderer. 2018. What we know about smells in software test code. IEEE Software 36, 3 (2018), 61--73.Google ScholarCross Ref
- M. Greiler, A. van Deursen, and M. Storey. 2013. Automated Detection of Test Fixture Strategies and Smells. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation. IEEE, Luxembourg, Luxembourg, 322--331. https://doi.org/10.1109/ICST.2013.45Google ScholarDigital Library
- Chen Huo and James Clause. 2014. Improving oracle quality by detecting brittle assertions and unused inputs in tests. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, Hong Kong, China, 621--631.Google ScholarDigital Library
- Negar Koochakzadeh and Vahid Garousi. 2010. TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization. In Testing - Practice and Research Techniques, Leonardo Bottaci and Gordon Fraser (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 129--136.Google Scholar
- Negar Koochakzadeh and Vahid Garousi. 2010. A tester-assisted methodology for test redundancy detection. Advances in Software Engineering 2010 (2010).Google Scholar
- Fabio Palomba, Dario Di Nucci, Annibale Panichella, Rocco Oliveto, and Andrea De Lucia. 2016. On the diffusion of test smells in automatically generated test code: An empirical study. In Proceedings of the 9th international workshop on search-based software testing. ACM, IEEE, Austin, TX, USA, 5--14.Google ScholarDigital Library
- Anthony Peruma, Khalid Almalki, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni, and Fabio Palomba. 2019. On the Distribution of Test Smells in Open Source Android Applications: An Exploratory Study. In Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering (CASCON '19). IBM Corp., USA, 193--202.Google ScholarDigital Library
- Anthony Shehan Ayam Peruma. 2018. What the Smell? An Empirical Investigation on the Distribution and Severity of Test Smells in Open Source Android Applications. Ph.D. Thesis. Rochester Institute of Technology, Rochester, New York.Google Scholar
- Stefan Reichhart, Tudor Gîrba, and Stéphane Ducasse. 2007. Rule-based Assessment of Test Quality. J. Object Technol. 6, 9 (2007), 231--251.Google ScholarCross Ref
- Nikolaos Tsantalis and Alexander Chatzigeorgiou. 2009. Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering 35, 3 (2009), 347--367.Google ScholarDigital Library
- Arie Van Deursen, Leon Moonen, Alex Van Den Bergh, and Gerard Kok. 2001. Refactoring test code. In Proceedings of the 2nd international conference on extreme programming and flexible processes in software engineering (XP2001). CWI (Centre for Mathematics and Computer Science), NLD, 92--95.Google Scholar
- Tássio Virgínio, Railana Santana, Luana Almeida Martins, Larissa Rocha Soares, Heitor Costa, and Ivan Machado. 2019. On the Influence of Test Smells on Test Coverage. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering (SBES 2019). Association for Computing Machinery, New York, NY, USA, 467--471.Google ScholarDigital Library
- Tássio Virgínio, Luana Martins, Larissa Rocha Soares, Santana Railana, Heitor Costa, and Ivan Machado. 2020. An empirical study of automatically-generated tests from the perspective of test smells. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering (SBES 2020). ACM, New York, NY, USA, 5.Google ScholarDigital Library
- Benjamin Zeiß. 2006. A refactoring tool for TTCN-3. Master's thesis, Institute for Informatics, ZFI-BM-2006-05, ISSN (2006), 1612--6793.Google Scholar
Index Terms
- RAIDE: a tool for Assertion Roulette and Duplicate Assert identification and refactoring
Recommendations
JNose: Java Test Smell Detector
SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software EngineeringSeveral strategies have been proposed for test quality measurement and analysis. Code coverage is likely the most widely used one. It enables to verify the ability of a test case to cover as many source code branches as possible. Although code coverage ...
An empirical study on the influence of developers’ experience on software test code quality
SBQS '22: Proceedings of the XXI Brazilian Symposium on Software QualitySoftware developers’ engagement in open-source software projects lies in different levels of participation, e.g., core or peripheral developers. Recent studies have investigated the role of developers’ contributions and their influence on software ...
An empirical evaluation of RAIDE: A semi-automated approach for test smells detection and refactoring
AbstractEffective test code refactoring is essential for maintaining the quality and efficiency of software development. Automated support for test code refactoring can significantly enhance its cost-effectiveness. However, there is limited evidence on ...
Highlights- Reaching effective test smell refactoring demands automated support.
- The RAIDE tool allows users to detect and refactor two test smells: Assertion Roulette and Duplicate Assert.
- The study provides an empirical comparison of the ...
Comments