Исследовательское тестирование - это подход к тестированию программного обеспечения, который кратко описывается как одновременное обучение, разработка и выполнение тестов. Джем Канер , который ввел термин в употребление в 1984 году, [1] определяет исследовательское тестирование как «стиль тестирования программного обеспечения, который подчеркивает личную свободу и ответственность отдельного тестировщика за постоянную оптимизацию качества своей работы путем обработки обучения, связанного с тестированием. , разработка тестов, выполнение тестов и интерпретация результатов тестирования как взаимодополняющие действия, которые выполняются параллельно на протяжении всего проекта ». [2]
Пока программное обеспечение тестируется, тестировщик изучает вещи, которые вместе с опытом и творчеством создают новые хорошие тесты для выполнения. Исследовательское тестирование часто рассматривается как метод тестирования черного ящика . Вместо этого те, кто его изучал, считают его подходом к тестированию, который можно применить к любой методике тестирования на любом этапе процесса разработки. Ключ - не в методике тестирования и не в тестируемом или проверяемом элементе; ключом является когнитивное участие тестировщика и ответственность тестировщика за управление своим временем. [3]
История
Исследовательское тестирование всегда проводилось опытными тестировщиками. В начале 1990-х ad hoc слишком часто ассоциировался с небрежной и небрежной работой. В результате группа методологов тестирования (теперь называющих себя Школой, управляемой контекстом ) начала использовать термин «исследовательский», стремясь подчеркнуть доминирующий мыслительный процесс, связанный с незапланированным тестированием, и начать превращать практику в обучаемую дисциплину. Эта новая терминология была впервые опубликована Джемом Канером в его книге « Тестирование компьютерного программного обеспечения» [4] и расширена в « Уроки, извлеченные при тестировании программного обеспечения» . [5] Исследовательское тестирование может быть таким же дисциплинированным, как и любая другая интеллектуальная деятельность.
Описание
Исследовательское тестирование направлено на то, чтобы выяснить, как на самом деле работает программное обеспечение, и задать вопросы о том, как оно справится с трудными и легкими случаями. Качество тестирования зависит от навыков тестировщика придумывать тестовые примеры и находить дефекты . Чем больше тестировщик знает о продукте и различных методах тестирования , тем лучше будет тестирование.
Для дальнейшего объяснения можно провести сравнение исследовательского тестирования вольным стилем с его антитезисным скриптовым тестированием . В последнем случае заранее разработаны тестовые примеры деятельности. Сюда входят как отдельные шаги, так и ожидаемые результаты. Эти тесты позже выполняет тестировщик, который сравнивает фактический результат с ожидаемым. При проведении исследовательского тестирования ожидания открыты. Некоторые результаты можно предвидеть и ожидать; другие не могут. Тестировщик конфигурирует, работает, наблюдает и оценивает продукт и его поведение, критически исследуя результат и сообщая информацию, которая может быть ошибкой (которая угрожает ценности продукта для кого-то) или проблемой (которая угрожает качество тестирования).
На самом деле тестирование почти всегда представляет собой комбинацию исследовательского и скриптового тестирования, но в зависимости от контекста склоняется к любому из них.
Согласно Канеру и Джеймсу Маркусу Баху , исследовательское тестирование - это скорее образ мышления или «... способ размышления о тестировании», чем методология. [6] Они также говорят, что он пересекает континуум от слегка исследовательского (слегка неоднозначное или расплывчатое тестирование) до в высшей степени исследовательского (исследовательское тестирование вольным стилем). [7]
Документация исследовательского тестирования варьируется от документирования всех выполненных тестов до простого документирования ошибок . Во время парного тестирования два человека вместе создают тестовые примеры; один их выполняет, а другой документирует. Сессионное тестирование - это метод, специально разработанный для обеспечения возможности аудита и измерения исследовательского тестирования в более широком масштабе.
Исследовательские тестировщики часто используют инструменты, в том числе средства захвата экрана или видео для записи исследовательского сеанса, или инструменты для быстрого создания интересных ситуаций, например Perlclip Джеймса Баха.
Преимущества и недостатки
Основное преимущество исследовательского тестирования заключается в том, что требуется меньше подготовки, важные ошибки обнаруживаются быстро, а во время выполнения подход имеет тенденцию быть более интеллектуальным, чем выполнение тестов по сценарию.
Еще одно важное преимущество заключается в том, что тестировщики могут использовать дедуктивные рассуждения, основанные на результатах предыдущих результатов, для оперативного руководства своим будущим тестированием. Им не нужно выполнять текущую серию тестов по сценариям, прежде чем сосредоточиться или перейти к исследованию более целевой среды. Это также ускоряет обнаружение ошибок при разумном использовании.
Еще одно преимущество заключается в том, что после первоначального тестирования большинство ошибок обнаруживается с помощью некоторого исследовательского тестирования. Это можно логически продемонстрировать, заявив: «Программы, которые проходят определенные тесты, как правило, продолжают проходить те же тесты и с большей вероятностью не пройдут другие тесты или сценарии, которые еще предстоит изучить».
Недостатки заключаются в том, что тесты, изобретенные и выполняемые на лету, невозможно просмотреть заранее (и тем самым предотвратить ошибки в коде и тестовых примерах), и что может быть сложно точно показать, какие тесты были запущены.
Идеи исследовательских тестов вольным стилем при повторном рассмотрении вряд ли будут реализованы точно таким же образом, что может быть преимуществом, если важно найти новые ошибки; или недостаток, если важнее повторить конкретные детали предыдущих тестов. Это можно контролировать с помощью специальных инструкций для тестировщика или путем подготовки автоматизированных тестов, где это возможно, уместно и необходимо, а в идеале - как можно ближе к единице измерения.
Научные исследования
Повторный эксперимент показал, что хотя сценарии и исследовательское тестирование приводят к аналогичной эффективности обнаружения дефектов (общее количество обнаруженных дефектов), исследовательские результаты дают более высокую эффективность (количество дефектов в единицу времени), поскольку не тратятся усилия на предварительное проектирование тестовых случаев . [8] Наблюдательное исследование исследовательских тестировщиков показало, что использование знаний о предметной области, тестируемой системе и клиентах является важным фактором, объясняющим эффективность исследовательского тестирования. [9] Тематическое исследование трех компаний показало, что способность предоставлять быструю обратную связь была преимуществом исследовательского тестирования, в то время как управление тестовым покрытием было указано как недостаток. [10] Исследование показало, что исследовательское тестирование также используется в критических областях и что подход исследовательского тестирования предъявляет высокие требования к человеку, выполняющему тестирование. [11]
Применение
Исследовательское тестирование особенно подходит, если требования и спецификации неполны или если не хватает времени. [12] [13] Этот подход также можно использовать для проверки того, что предыдущее тестирование выявило наиболее важные дефекты. [12]
Смотрите также
Рекомендации
- ^ Cem Kaner, " Учебное пособие по исследовательскому тестированию ", стр. 2
- ^ Cem Kaner, Учебник по исследовательскому тестированию , стр. 36.
- ^ Cem Kaner, Учебник по исследовательскому тестированию , стр. 37-39, 40-.
- ^ Cem Kaner, Testing Computer Software , TAB Books, Blue Ridge Summit, PA, 1988. p. 6, 7-11.
- ^ Канер, Джем ; Бах, Джеймс; Петтихорд, Брет (2001). Уроки, полученные при тестировании программного обеспечения . Джон Вили и сыновья . ISBN 978-0-471-08112-8.
- ^ Сем Канер, Джеймс Бах, Исследование и тестирование на основе рисков , www.testingeducation.org , 2004, стр. 10
- ^ Сем Канер, Джеймс Бах, Исследование и тестирование на основе рисков , www.testingeducation.org , 2004, стр. 14
- ^ Итконен, Юха; Мянтюля, Мика В. (11.07.2013). «Нужны ли тестовые примеры? Повторяющееся сравнение исследовательского и тестового тестирования программного обеспечения». Эмпирическая программная инженерия . 19 (2): 303–342. CiteSeerX 10.1.1.363.6524 . DOI : 10.1007 / s10664-013-9266-8 . ISSN 1382-3256 .
- ^ Itkonen, J .; Mäntylä, MV; Лассениус, К. (2013-05-01). «Роль знаний тестировщика в исследовательском тестировании программного обеспечения». IEEE Transactions по разработке программного обеспечения . 39 (5): 707–724. DOI : 10.1109 / TSE.2012.55 . ISSN 0098-5589 .
- ^ Itkonen, J .; Раутиайнен, К. (2005-11-01). Исследовательское тестирование: многократное тематическое исследование . 2005 Международный симпозиум по Эмпирическому Software Engineering, 2005 . С. 10 с. DOI : 10.1109 / ISESE.2005.1541817 . ISBN 978-0-7803-9507-7.
- ^ Пфаль, Дитмар; Инь, Хуэйши; Mäntylä, Mika V .; Мюнх, Юрген (01.01.2014). Как используется исследовательское тестирование? Обзор состояния практики . Материалы 8-го Международного симпозиума ACM / IEEE по эмпирической разработке программного обеспечения и измерениям . ESEM '14. Нью-Йорк, Нью-Йорк, США: ACM. С. 5: 1–5: 10. DOI : 10.1145 / 2652524.2652531 . hdl : 10138/153363 . ISBN 9781450327749.
- ^ а б Бах, Джеймс (2003). «Объяснение исследовательского тестирования» (PDF) . Satisfice.com. п. 7 . Проверено 23 октября 2010 года .
- ^ Канер, Джем (2008). «Учебник по исследовательскому тестированию» (PDF) . kaner.com. С. 37, 118 . Проверено 23 октября 2010 года .
Внешние ссылки
- Джеймс Бах, Объяснение исследовательского тестирования
- Джем Канер, Джеймс Бах, Природа исследовательского тестирования , 2004 г.
- Джем Канер, Джеймс Бах, Семь основных принципов контекстно-ориентированной школы
- Джонатан Коль, Исследовательское тестирование: поиск музыки исследования программного обеспечения , Kohl Concepts Inc., 2007