Підвищення ефективності символьного виконання шляхом кластеризації вхідних даних на основі складності генерування тестів
DOI:
https://doi.org/10.15587/1729-4061.2023.286160Ключові слова:
модульне тестування, ефективність обчислень, статичний аналіз коду, динамічний аналіз кодуАнотація
Об’єктом дослідження є методи підвищення ефективності обчислень для автоматизованого модульного тестування. Обґрунтовано необхідність їх подальшого розвитку для ширшого застосування символьного виконання у комерційній розробці програмних продуктів. Для досягнення цієї мети запропоновано створити новий метод кластеризації вхідних даних, що дозволить ефективніше виконувати обчислення за рахунок адаптивності до особливостей апаратного забезпечення та вхідних даних у вигляді програмного коду. Це досягається за рахунок оцінювання складності генерування тестів для функцій, як структурних одиниць програмного коду. Запропоновано метод кластеризації, що поділяє вхідні дані символьного виконання на кластери та балансує їх для забезпечення граничного значення складності генерування тестів. Продемонстровано підвищення ефективності обчислень на 30 % для обраних прикладів завдяки використанню розроблених методів у порівнянні з кластеризацією лише за структурними характеристиками програмного коду та до 250 % у окремих випадках. Це досягається за рахунок розподілу структурних елементів програмного коду між кластерами таким чином, щоб складність генерування тестів для них відповідала можливостям обчислювальної системи. Визначено, що оцінка складності дає змогу вчасно зупинити обчислення, коли затрачений час є граничним по відношенню до оціненої складності генерування тестів, що запобігає виконанню зайвих операцій. У комерційній розробці програмного забезпечення запропоновані методи забезпечать адаптивність засобів символьного виконання до наявних вхідних даних та обчислювальних ресурсів, що підвищить ефективність тестування
Посилання
- Le, W. (2013). Segmented symbolic analysis. 2013 35th International Conference on Software Engineering (ICSE). doi: https://doi.org/10.1109/icse.2013.6606567
- Shen, S., Shinde, S., Ramesh, S., Roychoudhury, A., Saxena, P. (2019). Neuro-Symbolic Execution: Augmenting Symbolic Execution with Neural Constraints. Proceedings 2019 Network and Distributed System Security Symposium. doi: https://doi.org/10.14722/ndss.2019.23530
- Yi, Q., Yang, G. (2022). Feedback-Driven Incremental Symbolic Execution. 2022 IEEE 33rd International Symposium on Software Reliability Engineering (ISSRE). doi: https://doi.org/10.1109/issre55969.2022.00055
- Cadar, C., Nowack, M. (2020). KLEE symbolic execution engine in 2019. International Journal on Software Tools for Technology Transfer, 23 (6), 867–870. doi: https://doi.org/10.1007/s10009-020-00570-3
- Vishnyakov, A., Fedotov, A., Kuts, D., Novikov, A., Parygina, D., Kobrin, E. et al. (2020). Sydr: Cutting Edge Dynamic Symbolic Execution. 2020 Ivannikov Ispras Open Conference (ISPRAS). doi: https://doi.org/10.1109/ispras51486.2020.00014
- Singh, S., Khurshid, S. (2020). Parallel Chopped Symbolic Execution. Lecture Notes in Computer Science, 107–125. doi: https://doi.org/10.1007/978-3-030-63406-3_7
- Păsăreanu, C. S., Kersten, R., Luckow, K., Phan, Q.-S. (2019). Symbolic Execution and Recent Applications to Worst-Case Execution, Load Testing, and Security Analysis. Advances in Computers, 289–314. doi: https://doi.org/10.1016/bs.adcom.2018.10.004
- Bazylevych, R. P., FrankoА. V. (2022). Hierarchical model of automated test generation system. Scientific Bulletin of UNFU, 32 (4), 77–83. doi: https://doi.org/10.36930/40320412
- Bazylevych, R., Franko, A. (2022). Input decomposition by clusterization for symbolic execution. 2022 IEEE 17th International Conference on Computer Sciences and Information Technologies (CSIT). doi: https://doi.org/10.1109/csit56902.2022.10000433
- Poeplau, S., Francillon, A. (2019). Systematic comparison of symbolic execution systems. Proceedings of the 35th Annual Computer Security Applications Conference. doi: https://doi.org/10.1145/3359789.3359796
- Mues, M., Howar, F. (2022). GDart: An Ensemble of Tools for Dynamic Symbolic Execution on the Java Virtual Machine (Competition Contribution). Lecture Notes in Computer Science, 435–439. doi: https://doi.org/10.1007/978-3-030-99527-0_27
- Peitek, N., Apel, S., Parnin, C., Brechmann, A., Siegmund, J. (2021). Program Comprehension and Code Complexity Metrics: A Replication Package of an fMRI Study. 2021 IEEE/ACM 43rd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). doi: https://doi.org/10.1109/icse-companion52605.2021.00071
- Bazylevych, R., Palasinski, M., Bazylevych, L., Yanush, D. (2013). Partitioning optimization by iterative reassignment of the hierarchically built clusters with border elements. 2013 2nd Mediterranean Conference on Embedded Computing (MECO). doi: https://doi.org/10.1109/meco.2013.6601362
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2023 Roman Bazylevych, Andrii Franko
Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Закріплення та умови передачі авторських прав (ідентифікація авторства) здійснюється у Ліцензійному договорі. Зокрема, автори залишають за собою право на авторство свого рукопису та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons CC BY. При цьому вони мають право укладати самостійно додаткові угоди, що стосуються неексклюзивного поширення роботи у тому вигляді, в якому вона була опублікована цим журналом, але за умови збереження посилання на першу публікацію статті в цьому журналі.
Ліцензійний договір – це документ, в якому автор гарантує, що володіє усіма авторськими правами на твір (рукопис, статтю, тощо).
Автори, підписуючи Ліцензійний договір з ПП «ТЕХНОЛОГІЧНИЙ ЦЕНТР», мають усі права на подальше використання свого твору за умови посилання на наше видання, в якому твір опублікований. Відповідно до умов Ліцензійного договору, Видавець ПП «ТЕХНОЛОГІЧНИЙ ЦЕНТР» не забирає ваші авторські права та отримує від авторів дозвіл на використання та розповсюдження публікації через світові наукові ресурси (власні електронні ресурси, наукометричні бази даних, репозитарії, бібліотеки тощо).
За відсутності підписаного Ліцензійного договору або за відсутністю вказаних в цьому договорі ідентифікаторів, що дають змогу ідентифікувати особу автора, редакція не має права працювати з рукописом.
Важливо пам’ятати, що існує і інший тип угоди між авторами та видавцями – коли авторські права передаються від авторів до видавця. В такому разі автори втрачають права власності на свій твір та не можуть його використовувати в будь-який спосіб.