CIDER : ІНСТРУМЕНТ АВТОМАТИЗАЦІЇ ТЕСТУВАННЯ C++ БІБЛІОТЕК
DOI:
https://doi.org/10.26906/SUNZ.2024.2.074Ключові слова:
автоматизація тестування, генерація скриптів, регресивне тестування, C , оптимізація, гармонічний пошук, покриття кодуАнотація
Програмне тестування є однією з найважливіших частин життєвого циклу розробки продукту. Компанії стикаються з значними ризиками, пов'язаними з відмовами програм, включаючи фінансові та репутаційні, тому цікавляться вкладенням часу та грошей у нові методи тестування та забезпечення якості. Програми, написані на C++, відомі своєю високою продуктивністю, але складні у зв'язку зі специфікою мови. У той же час автоматизовані інструменти, які доступні переважно для програм з графічним інтерфейсом користувача не є ефективними для тестуванням регресії вбудованих модулів. Таким чином, навіть часткова автоматизація таких процесів може мати позитивний вплив у відношенні оптимізації часу тестування регресії. У статті розглянута техніка тестування запису та відтворення виконання програми на рівні компонентів. Запропонований інструмент генерує сценарії тестування під час виконання програми, надаючи змогу виконувати ручне тестування та одночасно розширювати базу даних автоматизованого виконання компонентних тестів. Експерименти показали, що результати покриття коду таких сценаріїв є на високому рівні і мають тенденцію до покращення через алгоритмічну оптимізацію.Завантаження
Посилання
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