Ad-hoc тестирование (также – интуитивное или свободное тестирование) – это метод тестирования программного обеспечения, проводимый без какого-либо конкретного плана или заранее определенного набора шагов. Вместо этого тестировщики используют свою интуицию, опыт и творческий подход для выявления дефектов и проблем, которые не могут обнаружить более формальные методы тестирования.
Содержание:
- Что такое ad-hoc тестирование?
- Преимущества ad-hoc тестирования
- Юзкейсы для ad-hoc тестирования
- Типы ad-hoc тестов
- Подготовка к ad-hoc тестированию
- Проведение ad-hoc тестирования
- Повышение эффективности ad-hoc тестирования
Что такое ad-hoc тестирование?
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.
Ad-hoc тестирование – это исследовательский подход к тестированию программного обеспечения, при котором тестировщик не следует заранее составленному плану тестирования.
Само слово ad-hoc переводится с английского как “спонтанный”, “непродуманный”, “произвольный”, “случайный”.
Интуитивное тестирование направлено на выявление дефектов в программном обеспечении, которые более структурированные подходы могут пропустить. Для выявления багов тестировщики могут использовать методы случайного, исследовательского и пограничного тестирования.
Такое тестирование является гибким и может адаптироваться к изменяющимся требованиям или ситуациям. Вместе с тем оно может оказаться менее тщательным и эффективным, чем формальные методы тестирования. Это связано с тем, что из-за отсутствия планирования тестировщик может упустить некоторые важные аспекты ПО.
Преимущества ad-hoc тестирования
Интуитивное тестирование может помочь вам создать надежный продукт и снизить его уязвимость к проблемам в будущем. К его несомненным достоинствам относятся:
- Гибкость. Ad-hoc тестирование – это гибкий подход, который позволяет быстро адаптироваться к изменяющимся требованиям или ситуациям. Интуитивное тестирование можно провести в любой момент жизненного цикла разработки ПО, поскольку нет ограничений, связанных с заранее составленным планом тестирования.
- Креативность. Этот метод поощряет тестировщиков использовать свои творческие способности и интуицию для выявления дефектов, которые не могут обнаружить более структурированные методы тестирования. Тестировщики могут исследовать приложения более открытым и свободным образом, что может привести к обнаружению неожиданных проблем.
- Раннее обнаружение дефектов. Интуитивное тестирование можно проводить на ранних этапах цикла разработки, еще до создания формального плана тестирования. Оно может помочь выявить дефекты и проблемы на ранней стадии, сокращая общие затраты и усилия на их устранение на более поздних этапах. По сравнению с традиционным тестированием, с помощью этой методики можно выявить больше дефектов.
- Экономия времени и затрат. Поскольку для ad-hoc тестирования не нужно готовить документацию, тестировщик может сосредоточиться на понимании базовой архитектуры приложения. Интуитивное тестирование может быть более быстрым и экономически эффективным, особенно если время или ресурсы для более формального тестирования ограничены. Оно может помочь быстро выявить проблемы и избавиться от них до того, как они станут более сложными и дорогостоящими.
- Улучшенное тестовое покрытие. Интуитивное тестирование может дополнить более структурированные методы и помочь улучшить охват тестами путем выявления дефектов, которые другие подходы могут пропустить. Тестировщики могут исследовать программу в соответствии со своим пониманием и интуицией, после чего заняться выполнением более специфических тестов.
Однако важно отметить, что ad-hoc тестирование не должно быть единственным используемым подходом. Его непременно нужно дополнять более формальными методами тестирования, такими как регрессионное и модульное.
Юзкейсы для ad-hoc тестирования
Командам тестировщиков нужно проверять множество вещей в ограниченные сроки. Поскольку тестировщики сосредоточены на выполнении формальных процессов и многочисленных задач тестирования, шансы ad-hoc тестирования попасть в цикл невелики.
Поэтому интуитивное тестирование проводится, когда нет времени для завершения обширного тестирования, предполагающего создание тест-кейсов и прочей документации.
Вот примеры ситуаций, в которых можно прибегнуть к ad-hoc тестированию:
- Интуитивное тестирование может применяться как часть приемочного, когда конечным пользователям предлагается протестировать программное обеспечение в своей среде и предоставить отзывы.
- Оно также может быть частью исследовательского тестирования, когда тестировщики исследуют ПО неструктурированным образом, чтобы выявить дефекты и проблемы.
- Ad-hoc тестирование позволяет быстро проверить функциональность и выявить любые проблемы при внедрении новой или незнакомой функции.
- Хотя ad-hoc тестирование лучше всего проводить после формального, вы можете использовать его на ранней стадии цикла разработки, еще до создания формального плана тестирования, для быстрого выявления дефектов и проблем.
- Ad-hoc тестирование может быть жизненно важным подходом для быстрого выявления дефектов в условиях дефицита времени.
- Вы также можете использовать этот подход для проверки отдельных частей ПО, относительно которых известно, что они подвержены ошибкам или имеют историю дефектов.
Типы 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».
Пингбэк: 35 вопросов на собеседовании QA
Пингбэк: Исследовательское тестирование