Preview

Труды Института системного программирования РАН

Расширенный поиск

Оптимизация читаемости тестов порождаемых при символьных вычислениях

https://doi.org/10.15514/ISPRAS-2016-28(5)-14

Аннотация

Занимая около половины времени разработки, тестирование остается наиболее распространенным методом контроля качества ПО, и его недостаток может приводить к финансовым потерям. При систематическом подходе тестовый набор считается полным, если он обеспечивает определенное покрытие кода. На данный момент существует большое количество систематических генераторов тестов, направленных на поиск стандартных ошибок. Подобные инструменты порождают огромное количество трудночитаемых тестов, обладающих высокой ценой проверки человеком. Представленный в данной работе метод позволяет улучшить читаемость тестов, автоматически сгенерированных при помощи символьных вычислений, обеспечивая качественное снижение данной цены. Экспериментальные исследования генератора тестов, включающего данный метод в качестве заключительной фазы работы, были проведены на 12-ти строковых функциях из репозитория Linux. Оценка степени читаемости строк, содержащихся в оптимизированных тестах, сопоставима со случаем использования слов натурального языка, что положительно сказывается на процессе верификации результатов тестирования человеком.

Об авторах

И. А. Якимов
Институт Космических и Информационных Технологий, Сибирский Федеральный Университет
Россия


А. С. Кузнецов
Институт Космических и Информационных Технологий, Сибирский Федеральный Университет
Россия


Список литературы

1. Hambling B. Realistic and Cost-effective Software Testing. Kelly, Management and Measurement of Software Quality, UNICOM SEMINARS, Middlesex, UK, 1993, pp. 95-112.

2. Tassey G. The economic impacts of inadequate infrastructure for software testing. National Institute of Standards and Technology, Final Report, May 2002.

3. Saswat A., Burke E.K., Chen T.Y., Clark J., Cohen M.B., Griskamp W., Harman M., Harrold M.J., McMinn P. An orchestrated survey of methodologies for automated software test case generation. Journal of Systems and Software, 2013, vol. 86, issue 8, pp. 1978-2001.

4. Cadar C., Godefroid P., Khundish S., Păsăreanu C.S., Sen Koushik, Tillman N., Visser W. Symbolic Execution for Software Testing in Practice - Preliminary Assessment. ICSE'11 Proceedings of the 33rd International Conference on Software Engineering, 2011, pp. 1066-1071.

5. Barr E.T., Harman M., Shahbaz M., Yoo S. The Oracle Problem in Software Testing: A Survey. IEEE Transactions on Software Engineering, 2015, vol. 41, issue 5, pp. 507-525.

6. Afshan S., McMinn P., Stevenson M. Evolving readable string test inputs using a natural language model to reduce human oracle cost. International Conference on Software Testing, Verification and Validation, 2013.

7. Tracey N., Clark J., Mander K., McDermid J. An automated framework for structural test-data generation. Proceedings of the International Conference on Automated Software Engineering, 1998, pp. 285-288.

8. King J.C. Symbolic execution and program testing. Communication of The ACM, 1976, vol. 19, issue 17, pp. 385-394.

9. Cadar C., Ganesh V., Pawlowski P.M., Dill D.L., Engler D.R. EXE: automatically generating inputs of death. Proceedings of the 13th ACM conference on Computer and Communication security, 2006, pp 322-335.

10. Sen K., Marinov D., Agha G. CUTE: a concolic unit testing engine for C. ESEC/FSE-13 Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundationsof software engineering, 2006, vol. 30, issue 5, pp. 263-272

11. J. H. Holland. Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, 1975.

12. Компиляторная инфраструктура LLVM. Режим доступа: http://llvm.org/

13. SMT-решатель CVC4. Режим доступа: http://cvc4.cs.nyu.edu/web/

14. Jones M. N., Mewhort D.J.K. Case-sensitive letter and bigram frequency counts from large-scale English corpora, 2004, vol. 36, issue 3, pp. 388

15. Исходный код ядра Linux. Режим доступа: https://github.com/torvalds/linux/tree/master/kernel

16. наиболее частотных английских слов. Режим доступа: https://en.oxforddictionaries.com/explore/what-can-corpus-tell-us-about-language


Рецензия

Для цитирования:


Якимов И.А., Кузнецов А.С. Оптимизация читаемости тестов порождаемых при символьных вычислениях. Труды Института системного программирования РАН. 2016;28(5):227-238. https://doi.org/10.15514/ISPRAS-2016-28(5)-14

For citation:


Yakimov I.A., Kuznetsov A.S. Test Readability Optimization in Context of Symbolic Execution. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(5):227-238. (In Russ.) https://doi.org/10.15514/ISPRAS-2016-28(5)-14



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)