Метаморфические испытания - Metamorphic testing

Метаморфические испытания (MT) является имущественным тестирование программного обеспечения метод, который может быть эффективным подходом для решения тестовый оракул проблема и проблема генерации тестового примера. Проблема тестового оракула - это сложность определения ожидаемых результатов выбранных контрольные примеры или чтобы определить, соответствуют ли фактические результаты ожидаемым результатам.

Метаморфические отношения (MR) являются необходимо свойства предполагаемой функциональности программного обеспечения и должны включать несколько исполнения программного обеспечения. Рассмотрим, например, программу, реализующую грех Икс исправить до 100 значимые фигуры; метаморфическое соотношение для синусоидальных функций: "грех (π - х) = грех Икс ". Таким образом, даже если ожидаемое значение греха Икс1 для исходного тестового примера Икс1 = 1,234 правильное с требуемой точностью неизвестно, контрольный пример Икс2 = π - 1.234 можно построить. Мы можем проверить, соответствуют ли фактические выходные данные, производимые тестируемой программой из исходного тестового примера и последующего тестового примера, рассматриваемому MR. Любое несоответствие (после учета ошибок округления) указывает на отказ реализации.

MR не ограничиваются программами с числовым вводом или равенство связи. Например, при тестировании сайта бронирования веб-поиск для жилья в Сиднее, Австралия, возвращает 1 671 результат; являются ли результаты этого поиска правильными и полными? Это тестовая проблема оракула. На основе метаморфического отношения мы можем отфильтровать ценовой диапазон или звездный рейтинг и снова применить поиск; он должен вернуть подмножество предыдущих результатов. Нарушение этого ожидания было бы подозрительным и выявило бы возможную ошибку в системе.

Метаморфические испытания были изобретены Т.Ю. Чен в техническом отчете [1] в 1998 г. С тех пор более 150 международных исследователей и практиков применили эту технику в реальных приложениях.веб-сервисы [2],компьютерная графика [3],встроенные системы [4],симуляция и моделирование [5],машинное обучение [6],поддержка при принятии решения [7],биоинформатика [8],составные части [9],числовой анализ [10]компиляторы [11].Первое крупное исследование в области МП было проведено в 2016 году. [12]За ним последовал еще один крупный опрос в 2018 году. [13], который подчеркивает проблемы и возможности и разъясняет распространенные недопонимания.

Хотя изначально МТ предлагалась как проверка программного обеспечения техника, позже она была развита в парадигма который охватывает проверку, Проверка, и другие виды качество программного обеспечения оценка [14]. МП можно применять самостоятельно, а также можно комбинировать с другими статический и динамический анализ программного обеспечения методы, такие как доказывая и отладка [15].

В августе 2018 г. Google приобрел GraphicsFuzz, стартап от Имперский колледж Лондон, чтобы применить метаморфическое тестирование к графике драйверы устройств за Android смартфоны [16].


Рекомендации

  1. ^ T.Y. Чен, С.С.Чунг, С.М. Ю, «Метаморфическое тестирование: новый подход для создания следующих тестовых примеров», Технический отчет HKUST-CS98-01, Департамент компьютерных наук, Гонконгский университет науки и технологий, Гонконг (1998).
  2. ^ К. Кастро-Кабрера и И. Медина-Було, "Подход к метаморфическому тестированию для композиций WS-BPEL", в Материалы Международной конференции по электронному бизнесу, IEEE (2011).
  3. ^ Р. Гудерлей и Дж. Майер, «К автоматическому тестированию программного обеспечения для обработки изображений с помощью случайного и метаморфического тестирования», Международный журнал программной инженерии и инженерии знаний 17 (6): 757−781 (2007).
  4. ^ T.H. Це, С.С. Яу, В.К. Чан, Х. Лу и Т.Ю. Чен, «Тестирование контекстно-зависимых программных приложений на основе промежуточного программного обеспечения», в Материалы 28-й ежегодной Международной конференции по компьютерному программному обеспечению и приложениям (COMPSAC '04), т. 1, IEEE Computer Society С. 458−465 (2004).
  5. ^ С. Сегура, Р.М. Хиеронс, Д. Бенавидес и А. Руис-Кортес, «Автоматизированная генерация тестовых данных для анализа функциональных моделей: метод метаморфического тестирования», в Труды 3-й Международной конференции по тестированию, верификации и валидации программного обеспечения (ICST '10), IEEE Computer Society 2010. С. 35-44.
  6. ^ Дж. Дин, X.-H. Ху и В. Гудивада, «Фреймворк на основе машинного обучения для проверки и подтверждения данных изображений большого размера», IEEE Сделки на Большое количество данных (2017). DOI: 10.1109 / TBDATA.2017.2680460.
  7. ^ F.-C. Куо, Z.Q. Чжоу, Дж. Ма, и Г. Чжан, "Метаморфическое тестирование систем поддержки принятия решений: тематическое исследование", Программное обеспечение IET 4 (4): 294−301 (2010).
  8. ^ Л.Л. Пуллум и О. Озмен, «Ранние результаты метаморфического тестирования эпидемиологических моделей», в Материалы Международной конференции ASE / IEEE 2012 по биомедицинским вычислениям (БиоМедКом '12), IEEE Computer Society 2012. С. 62-67.
  9. ^ С. Бейдеда, «Самометаморфотестирующие компоненты», в Материалы 30-й ежегодной международной конференции по компьютерному программному обеспечению и приложениям (COMPSAC '06), т. 1, IEEE Computer Society С. 265−272 (2006).
  10. ^ К. Аруна и Р.С.Р. Прасад, «Метаморфические отношения для повышения точности тестирования программных приложений для арифметики с высокой точностью», в Материалы Международной конференции по достижениям в области вычислительной техники, связи и информатики 2014 г. (ICACCI '14), IEEE (2014).
  11. ^ К. Лидбери, А. Ласку, Н. Чонг и А.Ф. Дональдсон, "Фаззинг многоядерных компиляторов", в Материалы 36-го Конференция ACM SIGPLAN по проектированию и реализации языков программирования (PLDI '15), ACM 2015. С. 65−76.
  12. ^ С. Сегура, Г. Фрейзер, А.Б. Санчес и А. Руис-Кортес, «Обзор метаморфических испытаний», IEEE Transactions по разработке программного обеспечения 42 (9}: 805-824 (2016).
  13. ^ T.Y. Чен, Ф.-К. Куо, Х. Лю, П.-Л. Пун, Д. Тоуи, T.H. Це, и Z.Q. Чжоу, "Метаморфические испытания: обзор проблем и возможностей", Опросы ACM Computing 51 (1): 4:1-4:27 (2018).
  14. ^ Z.Q. Чжоу, С. Сян и Т.Ю. Чен, "Метаморфическое тестирование для оценки качества программного обеспечения: исследование поисковых систем",IEEE Transactions по разработке программного обеспечения 42 (3): 264-28s4 (2016).
  15. ^ T.Y. Чен, T.H. Це, и Z.Q. Чжоу, «Полупроверка: интегрированный метод проверки, тестирования и отладки программ», IEEE Transactions по разработке программного обеспечения 37 (1): 109-125 (2011).
  16. ^ «GraphicsFuzz приобретена Google». имперские инновации. 6 августа 2018 г.. Получено 15 апреля 2019.

внешняя ссылка

  • Сегура, Серджио; Чжоу, Чжи Цюань (2018). «Технический брифинг ICSE 2018 по метаморфическим испытаниям». Дои:10.5281 / zenodo.1256230. Цитировать журнал требует | журнал = (помощь)
  • Чжоу, Чжи Цюань (2019). «Автоматизированное тестирование реальных систем автономного вождения и не только: основной доклад З. К. (Джорджа) Чжоу на IEEE AITest, Сан-Франциско, Ист-Бэй, 2019». Дои:10.5281 / zenodo.2636979. Цитировать журнал требует | журнал = (помощь)