Что такое тестовый набор

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

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

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

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

Содержание:

Что такое тестовый набор?

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

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

Например, для сценария покупки продукта хорошо структурированный тестовый набор может включать в себя целый ряд важнейших тест-кейсов, вносящих существенный вклад в общий процесс проверки:

  • Тестовый пример 1: Вход в систему.
  • Тестовый пример 2: Добавление товаров.
  • Тестовый пример 3: Оформление заказа.
  • Тестовый пример 4: Выход из системы.

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

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

Составляющие плана тестирования

Характеристики тестового набора

Он обеспечивает ряд преимуществ для команды тестировщиков и организации. Вот некоторые из основных характеристик:

  • Разрабатывается на основе плана тестирования.
  • В него включается несколько тестов и тестовых примеров.
  • В нем объясняются цели и задачи тестовых примеров.
  • В него включаются такие параметры тестирования, как приложение, среда, версия и другие.
  • Он может быть создан в зависимости от цикла и объема тестирования.
  • Он включает в себя несколько видов тестирования, в том числе функциональное и нефункциональное.
  • Он позволяет быстро тестировать и оценивать приложения.
  • Он может использоваться со многими средствами автоматизации тестирования, включая JUnit и Selenium.

Типы тестовых наборов

Они делятся на две категории с уникальными функциями:

  • Абстрактный тестовый набор: Является компонентом тестирования на основе моделей и представляет собой группу абстрактных тестовых примеров, взятых из высокоуровневой модели тестируемой системы. Команда разработчиков не может использовать их напрямую, поскольку они всегда находятся на высоком уровне и не предоставляют конкретной информации о программном приложении и тестовой среде.
  • Исполняемый тестовый набор: Он разрабатывается на основе абстрактных тестовых примеров и является исполняемым. Он предлагает основные, низкоуровневые детали, необходимые для запуска приложения. Он работает на детальном уровне и эффективно взаимодействует с тестируемым приложением.

Какие типы тестов делают наборы полезными?

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

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

  • Построение верификационных тестов: Набор тестовых примеров, выполняющих базовую проверку большинства функциональных областей программного приложения. Тесты выполняются после сборки каждого приложения и до того, как сборка становится общедоступной.
  • Регрессионные тесты: Набор тестовых примеров, используемых для проведения регрессионного тестирования функциональных областей приложения.
  • Smoke тесты: Группа тестов, обеспечивающих базовую функциональность программного приложения. Smoke тесты – это начальный уровень тестирования, который проводится после внесения изменений в тестируемую систему.
  • Функциональные тесты: Группа тестов, проверяющих конкретную функциональность программного приложения.
  • Сквозные интеграционные тесты: Обеспечивают отработку и проверку точек интеграции между продуктами на всех границах программного приложения.

Требования к хорошему шаблону

Тестовые наборы играют важнейшую роль в жизненном цикле разработки программного обеспечения (SDLC). Поэтому специалисты по тестированию ПО должны использовать стандартный предопределенный шаблон для их создания и уточнения различных аспектов, описанных ниже:

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

Тестовый план Vs Тестовый сценарий Vs Тестовый случай Vs Тестовый набор

Специалисты по тестированию программного обеспечения часто путаются в таких терминах, как тестовый набор, тестовые случаи, тестовый сценарий, тестовый план. Рассмотрим их различия.

Тестовый планТестовый сценарийТестовый примерТестовый набор
Определяет объем, цель и стратегию тестирования.Представляет собой последовательность действий над продуктом, которые связаны единым процессом использования, и сообразных им проверок корректности поведения продукта в ходе этих действий.Тестовый пример – это значимый документ, содержащий необходимые детали, связанные с тестированием.Тестовый набор состоит из тест-кейсов, создается на основе плана тестирования.
Делится на три типа: генеральный план тестирования, план для конкретного типа и план для конкретного уровня.Осуществляется с точки зрения конечного пользователя.Есть два типа тест-кейсов: формальные и неформальные.Бывает абстрактный и исполняемый.
Создается на основе документа по сценарию использования, описания продукта или требований к программному обеспечению. спецификации (SRS).Разрабатывается на основе сценариев использования и обеспечивает исчерпывающее тестовое покрытие.Создается на основе спецификации требований к программному обеспечению и генерируется на основе тестовых сценариев (SRS).Команда может воспользоваться отдельными тестовыми наборами, которые делают тестирование простым и гибким.
В нем соблюдается стандартный шаблон, содержащий информацию о процессе тестирования.В нем описываются различные операции, выполняемые командой над программным приложением.Он определяет набор требований, позволяющих проверить, соответствует ли программное приложение заданной функциональности.Он определяет цель и задачи тестовых примеров, создаваемых для тестирования программного приложения.

Как организовать тестовые случаи в наборе?

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

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

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

Использование правильного набора тестов

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

  • Тестирование корпоративных и веб-приложений: Веб-сервисы, как правило, динамичны, их объем и требования постоянно меняются. В зависимости от производственных показателей и отзывов клиентов добавляются и удаляются многие функции. Веб-архитектура должна быть гибкой, и для достижения максимальной гибкости можно использовать сквозное тестирование. Однако оно будет надежным и последовательным только в том случае, если ориентировано на неизменяемые элементы модуля, а не на ссылки на элементы объектной модели документа (DOM).
    Как правило, водопадные модели используются в корпоративном и десктопном программном обеспечении, где предпочтительны большие объемы разработки, меньшее количество частых изменений, более стабильные и надежные архитектуры.
    Масштабное предварительное проектирование может быть эффективным лишь в том случае, если требования ясны. Например, при значительном редизайне без новых функций. В этой ситуации удобнее использовать модульные тесты.
  • Преимущество быстрых тестов: Производительность приложения может напрямую влиять на продуктивность разработчиков. Вот почему она так важна при тестировании. Наличие короткого цикла обратной связи очень важно и облегчает жизнь. Это позволяет быстрее тестировать и вносить коррективы, снижая расходы на возможные исправления.
  • Преимущество обширных тестов: Обширные тесты, например, сквозные, очень полезны, поскольку они повышают уверенность в вашем тестовом коде. Уверенность в тестировании означает, что результаты очень похожи на то, что произойдет в реальном пользовательском сценарии после создания программного приложения.

Лучшие практики для создания хорошего тестового набора

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

  • Скорость: если набор включает в себя обширную коллекцию интеграционных тестов и несколько модульных, то его выполнение может занять гораздо больше времени. В то же время более короткий тестовый набор быстрее даст обратную связь и сделает процесс разработки еще более эффективным.
  • Полнота: Если набор охватывает 100% покрытия кода, то он позволяет выявить любые ошибки, возникающие при внесении изменений в код приложения. Поэтому полный тестовый набор дает уверенность в том, что ваши программные приложения работают так, как задумано.
  • Надежность: Обеспечение постоянной обратной связи, независимо от изменений, которые могут происходить за пределами области тестирования. Ненадежный набор может периодически давать сбои, не передавая ценной информации об изменениях, внесенных в приложение.
  • Изолированность: Запуск тестовых случаев, не мешая другим тестам в наборе. Однако после выполнения какого-либо теста в наборе может потребоваться очистка существующих тестовых данных.
  • Сопровождение: Упорядоченный тестовый набор удобен для работы. Вы легко добавляете, изменяете или удаляете тест-кейсы. Для сопровождения набора можно следовать лучшим практикам кодирования и разработать единый процесс, который подходит именно вам и вашей команде.
  • Выразительность: Если тестовые наборы легко читаются, они могут быть использованы в качестве документации. Всегда пишите тестовые сценарии, которые описывают тестируемые функции. Кроме того, старайтесь создавать описательные и понятные для разработчика тексты.

Рекомендации по созданию хорошего тестового набора:

  • Выбор правильного языка программирования и фреймворков: Для создания программного приложения используются различные языки программирования и инструменты, каждый из которых имеет свои преимущества и недостатки. При выборе языка для создания автоматизированного тестового пакета следует учитывать опыт разработчика. Если ваша команда предпочитает использовать Python, возможно, и вам придется изучить его. Выбрав язык, с которым комфортно работать команде разработчиков, вы сразу же получите доступ к менторам, которые могут помочь вам с некоторыми сложными проблемами приложения.
    При выборе фреймворка для тестирования также учитывайте язык, который используется в программном обеспечении вашей организации.
    Даже если это может показаться не совсем удобным, вы всегда можете воспользоваться знаниями и опытом программирования своих коллег. При выборе языка программирования следует помнить о том, какие операции должен выполнять ваш набор тестов, а также о предлагаемой документации и поддержке.
  • Необходимые навыки: К созданию тестового набора следует приступать, как только вы получите достаточные знания о языках программирования и инструментах, чтобы выбрать тот, который наиболее полно соответствует вашим требованиям.
  • Инструменты разработчика: Они по-прежнему важны при создании и работе с кодом. При использовании инструментов разработчика можно задать следующие вопросы:
    • Какие IDEs (Integrated Development Environment) лучше всего использовать?
    • Какую систему контроля версий (SVN или Git) следует использовать?
    • Какой инструмент CI/CD хочет использовать ваша организация?
  • Масштабируемость: Тестовый набор должен быть разработан с учетом требований масштабируемости. Вам могут быть незнакомы такие понятия, как страничные объекты, регулярные выражения и техника кодирования DRY (Don’t Repeat Yourself). Однако их знание полезно, особенно при создании автоматизированного набора тестов.

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

Как поддерживать автоматизированный тестовый набор?

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

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

  • Разработка плана тестового набора: Без правильной стратегии автоматизации тестирования вероятность того, что оно окажется непродуктивным, возрастает. Определение стратегии является важнейшим компонентом любого плана тестирования. Объясните команде разработчиков, как вы хотите поддерживать тестовые ресурсы в рамках вашей стратегии. Нелишним будет донести до остальных членов команды, что эта поддержка может занять значительную часть усилий по разработке.
  • Поддержание чистоты тестовых наборов: Ваши тестовые ресурсы будут развиваться параллельно с тестируемым приложением. Поэтому требования к ним также будут меняться в зависимости от требований к системе. Поддержание автоматизированных тестовых наборов в актуальном состоянии также является жизненно важным и требует регулярного перепроверки всех тестовых материалов. Каждый раз, когда выходит новое обновление программного приложения, проверка валидности должна выполняться как можно быстрее. По этой причине необходимо поддерживать актуальность тестовых наборов. Представьте, что некоторые тесты в тестовых наборах станут недействительными из-за изменений в программном обеспечении. Избавьтесь от них, когда они будут выявлены. Это позволит значительно снизить нагрузку. Некоторые средства автоматизированного тестирования упрощают эту задачу, включая методы упаковки устаревших или недействительных тестов.
  • Обращайтесь с тестовыми ресурсами, как и с другими программными приложениями: Не только программные приложения требуют обслуживания. Это относится и к тестовому набору. Независимо от того, записаны ли они или закодированы, тестовые примеры и сопровождающие их тестовые сценарии должны постоянно обновляться. Ресурсы в ваших наборах автоматизированных тестов также нуждаются в различных типах обслуживания, таких как корректирующее, превентивное или адаптивное.
    Определите свои планы тестирования для корректирующего обслуживания (например, устранения синтаксических проблем в сценариях), профилактического обслуживания (например, написания универсальных сценариев тестирования, где это возможно) и адаптивного обслуживания по мере обновления наборов автоматизированных тестов. Не забудьте включить это в ваш план тестирования.
  • Централизация тестовых ресурсов: Разместите свои тестовые ресурсы в репозитории, к которому сможет получить доступ команда разработчиков, чтобы упростить поддержку ваших наборов автоматизированных тестов. Вы можете использовать различные инструменты управления тестированием для организации своих тестовых ресурсов (тестовых наборов, тестовых сценариев и наборов тестов) в одном репозитории.
  • Улучшение тестирования с помощью совместной работы: Чтобы улучшить тестируемость автоматизированных тестовых наборов, передайте их разработчикам. Для постоянного совершенствования тестовых наборов обращайтесь с ними как с ресурсами, принадлежащими в том числе и команде разработчиков, а не только команде тестирования.

Заключение

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

Часто задаваемые вопросы (FAQ)

Что такое тестовый набор в agile?

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

Что такое тестовый набор и тестовый план?

Тестовые наборы состоят из нескольких тестовых примеров, а план тестирования – это документ, описывающий объем, подход, активы и график проведения тестовых мероприятий для тестируемой системы.

Что такое тестовый набор в тестировании программного обеспечения?

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

Что такое автоматизированный набор тестов?

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

Что является примером тестового набора?

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

Что такое тестовый набор в selenium?

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

Какие есть типы тестовых наборов?

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

Перевод статьи «Test Suite Tutorial: Comprehensive Guide With Best Practices».

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

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