Полное руководство по ad-hoc тестированию

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

Содержание:

Что такое ad-hoc тестирование?

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.

Ad-hoc тестирование – это исследовательский подход к тестированию программного обеспечения, при котором тестировщик не следует заранее составленному плану тестирования.

Само слово ad-hoc переводится с английского как “спонтанный”, “непродуманный”, “произвольный”, “случайный”.

Интуитивное тестирование направлено на выявление дефектов в программном обеспечении, которые более структурированные подходы могут пропустить. Для выявления багов тестировщики могут использовать методы случайного, исследовательского и пограничного тестирования.

Такое тестирование является гибким и может адаптироваться к изменяющимся требованиям или ситуациям. Вместе с тем оно может оказаться менее тщательным и эффективным, чем формальные методы тестирования. Это связано с тем, что из-за отсутствия планирования тестировщик может упустить некоторые важные аспекты ПО.

Преимущества ad-hoc тестирования

Интуитивное тестирование может помочь вам создать надежный продукт и снизить его уязвимость к проблемам в будущем. К его несомненным достоинствам относятся:

  1. Гибкость. Ad-hoc тестирование – это гибкий подход, который позволяет быстро адаптироваться к изменяющимся требованиям или ситуациям. Интуитивное тестирование можно провести в любой момент жизненного цикла разработки ПО, поскольку нет ограничений, связанных с заранее составленным планом тестирования.
  2. Креативность. Этот метод поощряет тестировщиков использовать свои творческие способности и интуицию для выявления дефектов, которые не могут обнаружить более структурированные методы тестирования. Тестировщики могут исследовать приложения более открытым и свободным образом, что может привести к обнаружению неожиданных проблем.
  3. Раннее обнаружение дефектов. Интуитивное тестирование можно проводить на ранних этапах цикла разработки, еще до создания формального плана тестирования. Оно может помочь выявить дефекты и проблемы на ранней стадии, сокращая общие затраты и усилия на их устранение на более поздних этапах. По сравнению с традиционным тестированием, с помощью этой методики можно выявить больше дефектов.
  4. Экономия времени и затрат. Поскольку для ad-hoc тестирования не нужно готовить документацию, тестировщик может сосредоточиться на понимании базовой архитектуры приложения. Интуитивное тестирование может быть более быстрым и экономически эффективным, особенно если время или ресурсы для более формального тестирования ограничены. Оно может помочь быстро выявить проблемы и избавиться от них до того, как они станут более сложными и дорогостоящими.
  5. Улучшенное тестовое покрытие. Интуитивное тестирование может дополнить более структурированные методы и помочь улучшить охват тестами путем выявления дефектов, которые другие подходы могут пропустить. Тестировщики могут исследовать программу в соответствии со своим пониманием и интуицией, после чего заняться выполнением более специфических тестов.

Однако важно отметить, что ad-hoc тестирование не должно быть единственным используемым подходом. Его непременно нужно дополнять более формальными методами тестирования, такими как регрессионное и модульное.

Юзкейсы для ad-hoc тестирования

Командам тестировщиков нужно проверять множество вещей в ограниченные сроки. Поскольку тестировщики сосредоточены на выполнении формальных процессов и многочисленных задач тестирования, шансы ad-hoc тестирования попасть в цикл невелики.

Поэтому интуитивное тестирование проводится, когда нет времени для завершения обширного тестирования, предполагающего создание тест-кейсов и прочей документации.

Вот примеры ситуаций, в которых можно прибегнуть к ad-hoc тестированию:

  1. Интуитивное тестирование может применяться как часть приемочного, когда конечным пользователям предлагается протестировать программное обеспечение в своей среде и предоставить отзывы.
  2. Оно также может быть частью исследовательского тестирования, когда тестировщики исследуют ПО неструктурированным образом, чтобы выявить дефекты и проблемы.
  3. Ad-hoc тестирование позволяет быстро проверить функциональность и выявить любые проблемы при внедрении новой или незнакомой функции.
  4. Хотя ad-hoc тестирование лучше всего проводить после формального, вы можете использовать его на ранней стадии цикла разработки, еще до создания формального плана тестирования, для быстрого выявления дефектов и проблем.
  5. Ad-hoc тестирование может быть жизненно важным подходом для быстрого выявления дефектов в условиях дефицита времени.
  6. Вы также можете использовать этот подход для проверки отдельных частей ПО, относительно которых известно, что они подвержены ошибкам или имеют историю дефектов.

Типы ad-hoc тестов

Чаще всего интуитивное тестирование принимает следующие формы.

Исследовательское тестирование

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

Исследовательское тестирование полезно, когда у вас мало времени, когда требования неясны или быстро меняются или когда требуется быстрая оценка ПО. Оно может проводиться опытными тестировщиками или разработчиками и дополнять более структурированные подходы к тестированию.

Интуитивное функциональное тестирование

Это тестирование фокусируется на функциональных требованиях к программному обеспечению. Тестировщики могут выполнять конкретные тесты, связанные с функциональными требованиями к ПО, но также могут свободно исследовать другие области приложения.

Такой подход позволяет QA-специалистам обнаружить проблемы, которые не были выявлены с помощью более структурированных методов тестирования.

Примечание редакции: также рекомендуем почитать статью “Что такое функциональное тестирование?”.

Ad-hoc тестирование производительности

Это тестирование фокусируется на производительности системы. Целью является выявление потенциальных проблем производительности или узких мест в системе путем имитации реального использования и нагрузки.

Интуитивное тестирование безопасности

В ходе такого тестирования вы моделируете конкретные сценарии атак или исследуете области ПО, которые могут быть уязвимы для атак. Чтобы убедиться, что все аспекты безопасности ПО были тщательно проверены, ad-hoc тестирование следует дополнить более формальными методами.

Ad-hoc тестирование юзабилити

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

Сочетая эти методы тестирования с другими, более традиционными подходами, вы можете добиться всестороннего охвата.

Подготовка к ad-hoc тестированию

Подготовка к интуитивному тестированию включает в себя несколько этапов.

1. Определение целей тестирования

Перед началом ad-hoc тестирования необходимо четко определить его цели. В том числе следует решить, на каких аспектах ПО и типах дефектов будет сосредоточено тестирование и каковы ожидаемые результаты.

Чтобы определить цели тестирования, нужно ответить на следующие вопросы:

  • Какова цель тестирования?
  • Какие ключевые области программного обеспечения необходимо протестировать?
  • Каковы ключевые риски, связанные с этим ПО?
  • Каковы конкретные цели и результаты, которых должно достичь тестирование?

Цели тестирования должны быть конкретными, измеримыми, достижимыми и задокументированными в плане тестирования или в другой документации.

2. Подбор членов команды

Подбор тестировщиков является важным шагом в подготовке к ad-hoc тестированию. Он может помочь обеспечить эффективность тестирования и его соответствие общим целям проекта.

Команда тестировщиков должна быть подобрана с учетом их навыков, опыта и знакомства с тестируемым программным обеспечением. Важно, чтобы команда была разнообразной и включала тестировщиков с разным опытом и взглядами: это поможет выявить широкий спектр дефектов и проблем.

Для подбора команды тестировщиков можно предпринять следующие шаги:

  • Определите ключевые навыки и опыт, необходимые для проведения тестирования. Это могут быть навыки в области тестирования ПО, программирования, UX-проектирования или тестирования безопасности.
  • Найдите людей с необходимыми навыками и опытом для участия в тестировании.
  • Определите размер и состав группы тестирования. Размер команды зависит от таких факторов, как сложность тестируемого ПО, время, отведенное на тестирование, и объем работ по тестированию.
  • Подумайте о разнообразии состава. “Разношерстная” команда может обеспечить более широкий спектр точек зрения и подходов к тестированию, что поможет выявить больше проблем и найти больше возможностей для улучшения.

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

3. Определение требований к тестовой среде и данным

Тестовая среда должна быть настроена таким образом, чтобы максимально точно имитировать среду конечного пользователя. Это включает в себя настройки оборудования, программного обеспечения и сети. Кроме того, следует определить и подготовить необходимые тестовые данные.

Также важно, чтобы группа тестирования имела доступ к тестовой среде и данным и могла работать с ними контролируемым и безопасным образом.

Определить нужно следующие вещи:

  • Требования к аппаратному и программному обеспечению, необходимому для тестирования. Сюда могут входить конкретные операционные системы, базы данных, веб-серверы и другие компоненты, необходимые для работы тестируемого ПО.
  • Инструменты и механизмы тестирования, необходимые для поддержки тестирования. Это могут быть средства автоматизированного тестирования, средства тестирования производительности, средства тестирования безопасности или другие средства, специфичные для типа проводимого тестирования.
  • Типы данных, необходимых для тестирования. Это могут быть тестовые данные, пользовательские данные или производственные данные.
  • Требования к конфиденциальности и безопасности данных, которые должны соблюдаться при работе с данными.

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

4. Создание плана ad-hoc тестирования

Создание плана может помочь обеспечить эффективность ad-hoc тестирования и его соответствие общим целям проекта.

Хотя интуитивное тестирование часто бывает неструктурированным и гибким, создание плана тестирования, в котором описываются цели, методы и ожидаемые результаты, все равно важно. План также должен определять роли и обязанности каждого члена команды и включать график тестирования.

Для создания плана ad-hoc тестирования стоит определить следующие вещи:

  • Задачи и цели тестирования. При этом нужно указать ключевые функции или функциональные возможности, которые необходимо протестировать, или конкретные атрибуты качества, которые необходимо оценить.
  • Объем тестирования. Подразумевается определение областей, подлежащих тестированию, и областей, которые будут исключены из тестирования.
  • Подход к тестированию. Это окончательное определение методов тестирования (например, исследовательское или сценарное), а также любых используемых инструментов или фреймворков.
  • Ресурсы для тестирования. Т.е. состав команды тестировщиков, тестовая среда и требования к данным.
  • Этапы тестирования, сроки и зависимости от других задач проекта.

Проведение ad-hoc тестирования

А теперь давайте рассмотрим основные этапы проведения ad-hoc тестирования.

1. Выполнение ad-hoc тестов

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

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

После определения подхода к тестированию команда должна приступить к тестам, выполняя различные действия и наблюдая за реакцией приложения.

2. Отчетность

По мере выполнения тестов команда тестировщиков должна записывать результаты и сообщать о своих выводах. Это включает в себя документирование любых дефектов и обнаруженных проблем, а также любых положительных отзывов или предложений по улучшению.

Важно документировать шаги, предпринятые во время тестирования. Это обеспечит возможность воспроизведения результатов и повторного тестирования дефектов.

После документирования дефектов и проблем команда должна определить их приоритетность в зависимости от их серьезности и влияния на приложение.

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

3. Идентификация и отслеживание дефектов

Каждому багу следует присвоить уникальный идентификатор и отслеживать его до момента устранения. Тестировщики должны сотрудничать с разработчиками для предоставления обновлений по дефектам и обеспечения их своевременного устранения.

4. Анализ результатов и выработка рекомендаций

После завершения тестирования необходимо проанализировать результаты, чтобы выявить тенденции и закономерности в обнаруженных дефектах и проблемах. Команда тестировщиков должна дать рекомендации по улучшению ПО и предоставить обратную связь команде разработчиков, чтобы помочь улучшить качество приложения.

Повышение эффективности ad-hoc тестирования

А теперь давайте посмотрим, что можно сделать, чтобы интуитивное тестирование дало максимум результатов.

1. Внедрение лучших практик

Интуитивное тестирование может выиграть от внедрения best practices. Благодаря им ad-hoc тестирование может стать более структурированным и эффективным.

Вот лучшие практики, которые можно внедрить:

  • Постановка четких целей тестирования. Они должны согласовываться с требованиями к ПО и бизнес-целями.
  • Правильное документирование. Это поможет отслеживать прогресс и анализировать результаты. Документация также послужит справочником на будущее.
  • Опытные тестировщики лучше подготовлены к выявлению проблем и более эффективному выполнению тестов. Если доверить им проведение ad-hoc тестирования, оно будет более результативным.
  • Определение критических областей приложения и расстановка приоритетов в процессе тестирования.
  • Постоянный контроль и улучшение процедур тестирования на основе обратной связи от тестировщиков и заинтересованных сторон.

2. Автоматизация

Автоматизация повторяющихся задач может помочь повысить эффективность и точность ad-hoc тестирования.

Используйте инструменты управления тест-кейсами для их создания, организации и управления ими. Это поможет обеспечить выполнение всех необходимых тестов и упростит отслеживание результатов тестирования.

Работать с тестовыми данными также лучше при помощи мощных инструментов. Это поможет обеспечить согласованность и точность тестовых данных и сэкономит время.

Тестировщики также могут интегрировать инструменты автоматизации для автоматического выполнения тестов. Это поможет сэкономить время и обеспечить последовательность и надежность выполнения.

3. Управление тестовыми данными

Управление тестовыми данными является важным компонентом интуитивного тестирования. Тестовые данные должны быть тщательно отобраны и подготовлены, чтобы обеспечить эффективное выполнение тестов.

Вот несколько советов по управлению тестовыми данными:

  • Определите данные, необходимые для ad-hoc тестов, например, для создания тестовых сценариев, тест-кейсов и наборов тестовых данных.
  • Создавайте тестовые данные, представляющие фактические данные, используемые в производстве. Это поможет обеспечить реалистичность тестов и получение точных результатов. Используйте инструменты или скрипты для управления тестовыми данными, например, для генерации тестовых данных или сброса тестовой среды после каждого запуска теста.
  • Убедитесь, что любые конфиденциальные данные должным образом защищены и не используются в тестовой среде.
  • Документируйте тестовые данные, используемые для каждого тест-кейса, включая способ их создания, источник и любые изменения, внесенные в ходе тестирования.
  • Контролируйте использование тестовых данных и убедитесь, что они используются только в целях тестирования. Это поможет предотвратить утечку данных или несанкционированный доступ к конфиденциальным данным.

Эффективное управление тестовыми данными позволяет обеспечить надлежащую защиту конфиденциальных данных и исключить их использование в среде тестирования.

4. Постоянное совершенствование процесса тестирования

Интуитивное тестирование должно быть итеративным процессом, который совершенствуется с течением времени. Тестировщики должны оценивать эффективность своих методов, выявлять области для улучшения и внедрять изменения для повышения общего качества процесса тестирования. Вот некоторые способы постоянного улучшения процесса тестирования:

  • Собирайте отзывы от команды тестировщиков, команды разработчиков и других заинтересованных сторон, чтобы определить области для улучшения.
  • Анализируйте результаты тестирования для выявления закономерностей и тенденций, которые могут дать представление об областях, требующих улучшения.
  • Следите за появлением новых инструментов и технологий, которые могут помочь улучшить процесс тестирования.
  • Регулярно анализируйте планы и стратегии тестирования для выявления областей, требующих улучшения, таких как объем, охват и методология тестирования.
  • Учитывайте уроки, извлеченные из предыдущих циклов тестирования, чтобы избежать повторения ошибок в будущем.
  • Поощряйте сотрудничество между командами тестирования и разработки для быстрого выявления и решения проблем.

Благодаря всей этой подробной информации об ad-hoc тестировании вы сможете минимизировать свои проблемы при выполнении тестов и достичь желаемых результатов.

Перевод статьи «The Complete Guide to Ad hoc Testing».

2 комментария к “Полное руководство по ad-hoc тестированию”

  1. Пингбэк: 35 вопросов на собеседовании QA

  2. Пингбэк: Исследовательское тестирование

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *