CIDER : ASSISTED AUTOMATION TOOL FOR C++ LIBRARIES TESTING

Authors

  • Mykhailo Hulevych

DOI:

https://doi.org/10.26906/SUNZ.2024.2.074

Keywords:

test automation, script generation, regression testing, C , optimization, harmony search, code coverage

Abstract

Software testing is one of the most important parts of a product development lifecycle (PDL). Companies face significant risks associated with program failures, including financial and reputational ones, having an interest in investing time and money in new testing and quality assurance practices. The programs written in C++ are known as high performant, but complex due to the language specifics. At the same time automated tools that are available mostly for GUI programs can't help with native modules regression testing. Thus, even partial automation of such processes can have a positive effect on PDL in terms of regression testing effectiveness. The article considers a testing technique of recording and playback of program execution on the component level. The proposed tool generates testing scenarios during the execution of a program, giving the ability to perform manual testing and extend the automated component tests execution database. The experiments showed that such scenarios' code coverage results are at a high level and tend to improve when applying optimization algorithms.

Downloads

References

Yunho, K., Kim, M. and Kim, Y. (2022), “CITRUS: Automated Unit Testing Tool for Real-world C++ Programs”, 2022 IEEE Conference on Software Testing, Verification and Validation (ICST), Valencia, Spain, pp. 400–410, doi: https://doi.org/10.1109/ICST53961.2022.00046

Li, G., Ghosh, I. and Rajan, S. P. (2011), “KLOVER: A Symbolic Execution and Automatic Test Generation Tool for C++ Programs”, Computer Aided Verification 23rd International Conference, Springer, Berlin, Heidelberg, doi: https://doi.org/10.1007/978-3-642-22110-1_49

(2024), The LLVM compiler infrastructure, available at: http://www.llvm.org/

Zhang, S., Saff, D., Bu, Y. and Ernst, M.D. (2011), “Combined Static and Dynamic Automated Test Generation”, ISSTA '11: Proc. of the 2011 Int. Symp. on Software Testing and Analysis, N-Y, pp. 353–363, doi: https://doi.org/10.1145/2001420.2001463

(2024), Hjson, a user interface for JSON, available at: https://hjson.github.io

(2024), Light-weight, simple and fast XML parser for C++ with XPath support, available at: https://pugixml.org/

(2024), Simplified Wrapper and Interface Generator, available at: https://www.swig.org

(2024), The Programming Language Lua, available at: https://www.lua.org

Geem, Z., Kim, J. and Loganathan, G. (2001), “A new heuristic optimization algorithm: Harmony search”, Simulation, vol. 76, no. 2, pp. 60–68, doi: https://doi.org/10.1177/0037549701076002

Yang, X.-S. (2009), “Harmony Search as a Metaheuristic Algorithm”, Music-Inspired Harmony Search Algorithm: Theory and Applications, Studies in Computational Intelligence, vol. 191, Springer Berlin, Editor Z. W. Geem, 2009, pp. 1–14, doi: https://doi.org/10.1007/978-3-642-00185-7_1

Zalewski, M. (2024), American fuzzy lop (2.52b), available at: https://lcamtuf.coredump.cx/afl

Downloads

Published

2024-04-30