Метаморфические испытания
Метаморфическое тестирование , основанный на свойствах (MT) — это метод тестирования программного обеспечения , который может быть эффективным подходом для решения проблемы тестового оракула и проблемы создания тестовых примеров. Проблема тестового оракула заключается в сложности определения ожидаемых результатов выбранных тестовых случаев или определения того, согласуются ли фактические результаты с ожидаемыми результатами.
Метаморфические отношения (MR) являются необходимыми свойствами предполагаемой функциональности программного обеспечения и должны включать многократное выполнение программного обеспечения. Рассмотрим, например, программу, которая реализует sin x с точностью до 100 значащих цифр ; метаморфическое соотношение для синусоидальных функций: « sin ( π − x ) = sin x ». Таким образом, даже несмотря на то, что ожидаемое значение sin x 1 для исходного тестового примера x 1 последующий тестовый пример x 2 = π = 1,234, скорректированное с требуемой точностью, неизвестно, можно построить - 1,234.Мы можем проверить, соответствуют ли фактические выходные данные тестируемой программы из исходного тестового примера и последующего тестового примера рассматриваемому MR. Любое несоответствие (с учетом ошибок округления) указывает на сбой. [1] : 31 программы, вызванной ошибкой [1] : 31 в реализации.
MR не ограничиваются программами с числовыми входными данными или отношениями равенства . Например, при тестировании веб-сайта бронирования поиск жилья в Сиднее, Австралия, возвращает 1671 результат; являются ли результаты этого поиска правильными и полными? Это тестовая проблема оракула. На основе метаморфического отношения мы можем отфильтровать диапазон цен или звездный рейтинг и снова применить поиск; он должен вернуть подмножество предыдущих результатов. Нарушение этого ожидания аналогичным образом выявило бы провал системы.
Метаморфические испытания были изобретены Тай Ченом в техническом отчете. [2] в 1998 году.С тех пор более 150 исследователей и практиков со всего мира применили эту технику в реальных условиях.Некоторые примеры включают в себя веб-сервисы , [3] компьютерная графика , [4] встроенные системы , [5] симуляция и моделирование , [6] машинное обучение , [7] поддержка принятия решений , [8] биоинформатика , [9] компоненты , [10] численный анализ , [11] и компиляторы . [12] Первое крупное исследование в области МТ было проведено в 2016 году. [13] За ним последовало еще одно крупное исследование в 2018 году. [14] который подчеркивает проблемы и возможности и проясняет распространенные недопонимания.
Хотя MT изначально был предложен как метод проверки программного обеспечения , позже он был развит в парадигму , охватывающую верификацию, валидацию и другие виды оценки качества программного обеспечения . [15] MT может применяться независимо, а также сочетаться с другими методами статического и динамического анализа программного обеспечения, такими как проверка и отладка . [16]
В августе 2018 года Google приобрела GraphicsFuzz, стартап Имперского колледжа Лондона , чтобы подать заявкуметаморфическое тестирование драйверов графических устройств для Android смартфонов . [17] [18]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б 610.12-1990 — Стандартный глоссарий терминологии разработки программного обеспечения IEEE, IEEE, 1990, doi : 10.1109/IEESTD.1990.101064 , ISBN 9781559370677
- ^ Тай Чен; СК Ченг; С.М. Ю (1998), «Метаморфическое тестирование: новый подход к созданию следующих тестовых примеров», Технический отчет HKUST-CS98-01 (PDF) , факультет компьютерных наук, Гонконгский университет науки и технологий , Гонконг, arXiv : 2002.12543 .
- ^ К. Кастро-Кабрера и И. Медина-Було, «Подход к метаморфическому тестированию композиций WS-BPEL», в материалах Международной конференции по электронному бизнесу , IEEE (2011).
- ^ Р. Гудерлей и Дж. Майер, «На пути к автоматическому тестированию программного обеспечения для обработки изображений посредством случайного и метаморфического тестирования», Международный журнал программной инженерии и инженерии знаний 17 (6): 757–781 (2007).
- ^ TH Tse , SS Yau, WK Chan, H. Lu и TY Chen, «Тестирование контекстно-зависимых программных приложений на основе промежуточного программного обеспечения», в Proceedings of the 28th Annual International Computer Software and Applications Conference ( COMPSAC '04 ), vol. 1, Компьютерное общество IEEE , стр. 458–465 (2004).
- ^ С. Сегура, Р. М. Хиеронс, Д. Бенавидес и А. Руис-Кортес, «Автоматическое создание тестовых данных при анализе моделей функций: метаморфический подход к тестированию», в материалах 3-й Международной конференции по тестированию и проверке программного обеспечения, и валидация ( ICST '10 ), IEEE Computer Society , стр. 35–44 (2010).
- ^ Дж. Дин, X.-H. Ху и В. Гудивада, «Среда, основанная на машинном обучении, для проверки и проверки крупномасштабных данных изображений», IEEE Transactions on Big Data (2017). doi: 10.1109/TBDATA.2017.2680460.
- ^ Ф.-К. Куо, ZQ Чжоу, Дж. Ма и Г. Чжан, «Метаморфическое тестирование систем поддержки принятия решений: практический пример», IET Software 4 (4): 294–301 (2010).
- ^ Л. Л. Пуллум и О. Озмен, «Ранние результаты метаморфического тестирования эпидемиологических моделей», в материалах Международной конференции ASE/IEEE 2012 г. по биомедицинским вычислениям ( BioMedCom '12 ), IEEE Computer Society , стр. 62–67 (2012). .
- ^ С. Бейдеда, «Компоненты самометаморфического тестирования», в материалах 30-й ежегодной международной конференции по компьютерному программному обеспечению и приложениям ( COMPSAC '06 ), том. 1, Компьютерное общество IEEE , стр. 265–272 (2006).
- ^ К. Аруна и РСР Прасад, «Метаморфические отношения для повышения точности тестирования программных приложений для многоточечной арифметики», в материалах Международной конференции 2014 года по достижениям в области вычислений, коммуникаций и информатики ( ICACCI '14 ), IEEE (2014).
- ^ К. Лидбери, А. Ласку, Н. Чонг и А. Ф. Дональдсон, «Многоядерный фаззинг компилятора», в материалах 36-й конференции ACM SIGPLAN по проектированию и реализации языков программирования ( PLDI '15 ), ACM , стр. 65 −76 (2015).
- ^ С. Сегура, Г. Фрейзер, А. Б. Санчес и А. Руис-Кортес, «Обзор метаморфического тестирования», IEEE Transactions on Software Engineering 42 (9}: 805-824 (2016).
- ^ TY Чен, Ф.-К. Куо, Х. Лю, П.-Л. Пун, Д. Тауи, Т.Х. Цзе и З.К. Чжоу, «Метаморфические испытания: обзор проблем и возможностей», ACM Computing Surveys 51 (1): 4:1-4:27 (2018).
- ^ ZQ Чжоу, С. Сян и Тай Чен, «Метаморфическое тестирование для оценки качества программного обеспечения: исследование поисковых систем», Транзакции IEEE по разработке программного обеспечения 42 (3): 264-28s4 (2016).
- ^ TY Chen, TH Tse и ZQ Zhou, «Полудоказательство: интегрированный метод проверки, тестирования и отладки программ», IEEE Transactions on Software Engineering 37 (1): 109-125 (2011).
- ^ «GraphicsFuzz приобретена Google» . ГрафикаФузз . 6 августа 2018 года . Проверено 23 декабря 2020 г.
- ^ «Google покупает GraphicsFuzz, обеспечивая нечеткую логику и метаморфическое тестирование графических драйверов Android» . Пакет . 8 августа 2018 года . Проверено 27 декабря 2020 г.
Внешние ссылки
[ редактировать ]- «Метаморфические испытания: Введение и применение» . ACM SIGSOFT Вебинар .
- Серхио Сегура; Чжи Цюань Чжоу (2018). Технический брифинг ICSE 2018 по метаморфическим испытаниям . Международная конференция по программной инженерии (ICSE 2018). дои : 10.5281/zenodo.1256230 .
- Чжи Цюань (Джордж) Чжоу (9 апреля 2019 г.). Автоматизированное тестирование реальных систем беспилотного вождения и не только: Основной доклад . Международная конференция IEEE по тестированию искусственного интеллекта (AI Test 2019). Сан-Франциско Ист-Бэй, Калифорния, США. дои : 10.5281/zenodo.2636979 .