Jump to content

Тестовый оракул

При тестировании программного обеспечения тестовый оракул (или просто оракул ) является поставщиком информации, описывающей правильный вывод на основе входных данных тестового примера . Тестирование с помощью оракула включает сравнение фактических результатов тестируемой системы (SUT) с ожидаемыми результатами, предоставленными оракулом. [1]

Термин «тестовый оракул» был впервые введен в работу Уильяма Э. Хаудена. [2] Дополнительные работы над различными видами оракулов исследовала Элейн Вейкер . [3]

Оракул может работать отдельно от SUT; теста доступ к нему осуществляется во время выполнения , или его можно использовать перед запуском теста с ожидаемыми результатами, закодированными в логике теста. [4]

Однако постусловия метода являются частью SUT в качестве автоматизированных оракулов при проектировании с помощью контрактных моделей. [5]

Определение правильного вывода для данного ввода (и набора состояний программы или системы) известно как проблема оракула или проблема тестового оракула . [6] : 507  которую некоторые считают относительно сложной проблемой и предполагает работу с проблемами, связанными с управляемостью и наблюдаемостью. [7]

Категории

[ редактировать ]

Обзор исследовательской литературы, охватывающий период с 1978 по 2012 год. [6] нашел несколько потенциальных категорий тестовых оракулов.

Указанный оракул обычно ассоциируется с формализованными подходами к моделированию программного обеспечения и построению кода программного обеспечения. Это связано с формальной спецификацией , [8] проектирование на основе моделей , которое можно использовать для создания тестовых оракулов, [9] спецификация перехода состояний, для которой могут быть получены оракулы для облегчения тестирования на основе моделей [10] и тестирование на соответствие протоколу , [11] и проектирование по контракту , для которого эквивалентным тестовым оракулом является утверждение .

Указанные тестовые оракулы сталкиваются с рядом проблем. Формальная спецификация опирается на абстракцию, которая, в свою очередь, может иметь элемент неточности, поскольку все модели не могут охватить все поведение. [6] : 514 

Полученный

[ редактировать ]

Производный тестовый оракул различает правильное и неправильное поведение, используя информацию, полученную из артефактов системы. Сюда может входить документация, результаты работы системы и характеристики версий ТУС. [6] : 514  Наборы регрессионных тестов (или отчеты) являются примером производного тестового оракула — они построены на предположении, что результат предыдущей версии системы может быть использован в качестве вспомогательного средства (оракула) для будущей версии системы. Ранее измеренные характеристики производительности можно использовать в качестве оракула для будущих версий системы, например, чтобы вызвать вопрос о наблюдаемом потенциальном ухудшении производительности. Текстовая документация предыдущих версий системы может использоваться в качестве основы для определения ожиданий от будущих версий системы.

Псевдо-оракул [6] : 515  попадает в категорию производных тестовых оракулов. Псевдооракул, по определению Вейкера, [12] — это отдельно написанная программа, которая может принимать те же входные данные, что и программа или SUT, чтобы их выходные данные можно было сравнить, чтобы понять, может ли возникнуть проблема, требующая исследования.

Частичный оракул [6] : 515  представляет собой гибрид указанного тестового оракула и производного тестового оракула. Он определяет важные (но не полные) свойства SUT. Например, метаморфическое тестирование использует такие свойства, называемые метаморфическими отношениями, при нескольких запусках системы.

Неявный тестовый оракул опирается на подразумеваемую информацию и предположения. [6] : 518  Например, из сбоя программы может быть некий подразумеваемый вывод, т.е. нежелательное поведение - оракул, позволяющий определить, что может возникнуть проблема. Существует множество способов поиска и проверки нежелательного поведения, некоторые называют это отрицательным тестированием, в котором есть специализированные подмножества, такие как фаззинг .

У неявных тестовых оракулов есть ограничения, поскольку они полагаются на подразумеваемые выводы и предположения. Например, сбой программы или процесса может не быть приоритетной проблемой, если система является отказоустойчивой и поэтому работает в форме самовосстановления/ самоуправления . Неявные тестовые оракулы могут быть подвержены ложным срабатываниям из-за зависимостей от среды. Тестирование на основе свойств опирается на неявные оракулы.

В качестве тестового оракула может выступать человек. [7] Этот подход можно разделить на количественный и качественный. [6] : 519–520  Количественный подход направлен на поиск нужного количества информации, которую нужно собрать по SUT (например, результаты испытаний), чтобы заинтересованная сторона могла принять решения о соответствии цели или выпуске программного обеспечения. Качественный подход направлен на определение репрезентативности и пригодности входных тестовых данных и контекста выходных данных ТРИ. Примером может служить использование реалистичных и репрезентативных данных испытаний и понимание результатов (если они реалистичны). Они могут руководствоваться эвристическими подходами, такими как интуиция, практические правила, контрольные списки и опыт, которые помогут адаптировать конкретную комбинацию, выбранную для SUT.

Тестовые оракулы чаще всего основаны на спецификациях и документации . [13] [14] Формальная спецификация, используемая в качестве входных данных для проектирования на основе модели и тестирования на основе модели, может быть примером указанного тестового оракула . Оракул на основе модели использует ту же модель для генерации и проверки поведения системы. [15] Документация, которая не является полной спецификацией продукта, например, руководство по использованию или установке, или запись характеристик производительности или минимальных требований к компьютеру для программного обеспечения, обычно представляет собой производный тестовый оракул.

Оракул согласованности сравнивает результаты выполнения одного теста с другими на предмет сходства. [16] Это еще один пример производного тестового оракула.

Оракулом для программы может быть вторая программа, использующая другой алгоритм для вычисления того же математического выражения, что и тестируемый продукт. Это пример псевдо-оракула, который является производным тестовым оракулом. [12] : 466 

Во время поиска Google у нас нет полноценного оракула, который мог бы проверить правильность количества возвращаемых результатов. Мы можем определить метаморфическое отношение [17] так что последующий суженный поиск даст меньше результатов. Это пример частичного оракула, который представляет собой гибрид указанного тестового оракула и производного тестового оракула.

Статистический оракул использует вероятностные характеристики, [18] например, при анализе изображений, где определяется диапазон достоверности и неопределенности, позволяющий тестовому оракулу объявить совпадение или иным образом. Это может быть примером количественного подхода в тестировании оракула на людях.

Эвристический оракул предоставляет репрезентативные или приблизительные результаты для класса тестовых входных данных. [19] Это был бы пример качественного подхода в тестировании оракула на людях.

  1. ^ Эрл Т. Барр и др.; Проблема Oracle в тестировании программного обеспечения: опрос , 2015 г.
  2. ^ Хауден, МЫ (июль 1978 г.). «Теоретические и эмпирические исследования тестирования программ». Транзакции IEEE по разработке программного обеспечения . 4 (4): 293–298. дои : 10.1109/TSE.1978.231514 .
  3. ^ Вейкер, Элейн Дж.; «Предположение Oracle о тестировании программ», в материалах 13-й Международной конференции по системным наукам (ICSS), Гонолулу, Гавайи, январь 1980 г. , стр. 44-49.
  4. ^ Джалоте, Панкадж; Интегрированный подход к разработке программного обеспечения , Springer/Birkhäuser, 2005, ISBN   0-387-20881-X
  5. ^ Мейер, Бертран; Фива, Арно; Чупа, Илинка; Лейтнер, Андреас; Вэй, И; Стапф, Эммануэль (сентябрь 2009 г.). «Программы, которые проверяют себя». Компьютер . 42 (9): 46–55. дои : 10.1109/MC.2009.296 .
  6. ^ Перейти обратно: а б с д и ж г час Барр, Эрл Т.; Харман, Марк; Макминн, Фил; Шахбаз, Музаммил; Ю, Шин (ноябрь 2014 г.). «Проблема Oracle в тестировании программного обеспечения: опрос» (PDF) . Транзакции IEEE по разработке программного обеспечения . 41 (5): 507–525. дои : 10.1109/TSE.2014.2372785 .
  7. ^ Перейти обратно: а б Амманн, Пол; и Оффатт, Джефф; «Введение в тестирование программного обеспечения, 2-е издание», Cambridge University Press , 2016 г., ISBN   978-1107172012
  8. ^ Бёргер, Э (1999). «Проектирование и анализ систем высокого уровня с использованием абстрактных конечных автоматов». В Хаттере, Д.; Стефан, В; Траверсо, П; Ульман, М. (ред.). Прикладные формальные методы — FM-Trends 98 . Конспекты лекций по информатике. Том. 1641. стр. 1–43. CiteSeerX   10.1.1.470.3653 . дои : 10.1007/3-540-48257-1_1 . ISBN  978-3-540-66462-8 .
  9. ^ Петерс, ДК (март 1998 г.). «Использование тестовых оракулов, созданных на основе программной документации». Транзакции IEEE по разработке программного обеспечения . 24 (3): 161–173. CiteSeerX   10.1.1.39.2890 . дои : 10.1109/32.667877 .
  10. ^ Уттинг, Марк; Пречнер, Александр; Легард, Бруно (2012). «Таксономия подходов к тестированию на основе моделей» (PDF) . Тестирование, проверка и надежность программного обеспечения . 22 (5): 297–312. дои : 10.1002/stvr.456 . ISSN   1099-1689 .
  11. ^ Годель, Мари-Клод (2001). «Тестирование на основе формальных спецификаций, общий подход». Ин Крейнест, Д.; Штромайер, А. (ред.). Надежные программные технологии — Ада-Европа 2001 . Конспекты лекций по информатике. Том. 2043. стр. 35–48. дои : 10.1007/3-540-45136-6_3 . ISBN  978-3-540-42123-8 .
  12. ^ Перейти обратно: а б Вейкер, Э.Дж. (ноябрь 1982 г.). «О тестировании нетестируемых программ» . Компьютерный журнал . 25 (4): 465–470. дои : 10.1093/comjnl/25.4.465 .
  13. ^ Питерс, Деннис К. (1995). Генерация тестового оракула на основе программной документации (дипломная работа на степень магистра английского языка). Университет Макмастера. CiteSeerX   10.1.1.69.4331 .
  14. ^ Питерс, Деннис К.; Парнас, Дэвид Л. «Создание тестового оракула на основе программной документации» (PDF) . Материалы Международного симпозиума по тестированию и анализу программного обеспечения 1994 года . ИССТА. АКМ Пресс. стр. 58–65.
  15. ^ Робинсон, Гарри; Модельно-ориентированное тестирование с конечным числом состояний при небольших затратах , STAR West, 1999 г.
  16. ^ Хоффман, Дуглас; Анализ таксономии тестовых оракулов , Неделя качества, 1998 г.
  17. ^ Чжоу, ZQ; Чжан, С.; Хагенбухнер, М.; Це, ТД; Куо, Ф.-К.; Чен, Тайвань (2012). «Автоматическое функциональное тестирование сервисов онлайн-поиска». Тестирование, проверка и надежность программного обеспечения . 22 (4): 221–243. дои : 10.1002/stvr.437 . hdl : 10722/123864 .
  18. ^ Майер, Йоханнес; Гудерлей, Ральф (2004). «Тестирование оракулов с использованием статистических методов» (PDF) . Материалы Первого международного семинара по качеству программного обеспечения. Конспект лекций по информатике . Первый международный семинар по качеству программного обеспечения. Спрингер. стр. 179–189.
  19. ^ Хоффман, Дуглас; Оракулы эвристического тестирования , журнал по тестированию программного обеспечения и обеспечению качества, 1999 г.

Библиография

[ редактировать ]
  • Биндер, Роберт В. (1999). «Глава 18. Оракулы» в тестировании объектно-ориентированных систем: модели, шаблоны и инструменты , Addison-Wesley Professional, 7 ноября 1999 г., ISBN   978-0-201-80938-1
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 62d47018dbe5a18cc3e04d928cd3b518__1716507180
URL1:https://arc.ask3.ru/arc/aa/62/18/62d47018dbe5a18cc3e04d928cd3b518.html
Заголовок, (Title) документа по адресу, URL1:
Test oracle - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)