Методы оптимизации и теория управления
Обзорная статья
Систематический обзор методов составления тестовых инвариантов
Софья Федоровна Якушева1, Антон Сергеевич Хританков2
1,2 | Московский физико-технический институт, Москва, Россия |
2 | Высшая школа экономики, Москва, Россия |
1 | yakusheva.sf@phystech.edu |
Аннотация. Тестирование инвариантами (metamorphic testing) — один из наиболее эффективных методов тестирования программ, для которых сложно подбирать тестовые примеры и формулировать тестовые оракулы. При тестировании инвариантами вместо проверки правильности вывода программы на отдельных наборах входных данных проверяется выполнение тестового инварианта (metamorphic relation) — функции от нескольких наборов исходных данных и соответствующих им ответов программы. Составление тестовых инвариантов требует понимания решаемой программой задачи и творческого подхода.
Предлагаемый систематический обзор посвящён выявлению широкоприменимых методик получения инвариантов и повторяющихся приёмов составления инвариантов в разных научных областях. На основе проведенного анализа предложена классификация инвариантов на шесть основных типов, выявлены типовые преобразования исходных данных, используемые при составлении инвариантов в нескольких областях знаний. Результаты обзора будут полезны исследователям в примененении тестирования инвариантами на практике к верификации наукоемких программ и алгоритмов машинного обучения. (Связанные тексты статьи на русском и на английском языках).
Ключевые слова: тестирование инвариантами, тестовый инвариант, тестирование программного обеспечения, проблема формулирования тестового оракула
Для цитирования: Якушева С. Ф., Хританков А. С. Систематический обзор методов составления тестовых инвариантов // Программные системы: теория и приложения. 2024. Т. 15. № 2. С. 37–86. (Рус., англ.). https://psta.psiras.ru/2024/2_37-86.
Полный текст двуязычной статьи (PDF): https://psta.psiras.ru/read/psta2024_2_37-86.pdf (клик по флажку в верхнем колонитуле переключает язык страницы).
Статья поступила в редакцию 22.11.2023; одобрена после рецензирования 30.03.2024; принята к публикации 31.03.2024; опубликована онлайн 14.05.2024.