Что такое тестирование, управляемое данными? Научитесь создавать Framework
Тестирование на основе данных
Тестирование на основе данных — это метод тестирования программного обеспечения, при котором тестовые данные сохраняются в формате таблицы или электронной таблицы. Тестирование на основе данных позволяет тестировщикам вводить один тестовый сценарий, который может выполнять тесты для всех тестовых данных из таблицы и ожидать результатов теста в той же таблице. Его также называют табличным тестированием или параметризованным тестированием.
Платформа, управляемая данными
Платформа, управляемая данными — это среда автоматизации тестирования, в которой входные значения считываются из файлов данных и сохраняются в переменных в тестовых сценариях. Это позволяет тестировщикам объединять как положительные, так и отрицательные тестовые примеры в один тест. Входные данные в платформе, управляемой данными, могут храниться в одном или нескольких источниках данных, таких как .xls, .xml, .csv и базы данных.
Почему тестирование на основе данных?
Тестирование на основе данных Это важно, поскольку тестировщики часто имеют несколько наборов данных для одного теста, и создание отдельных тестов для каждого набора данных может занять много времени. Тестирование, управляемое данными, помогает хранить данные отдельно от тестовых сценариев, и одни и те же тестовые сценарии могут выполняться для различных комбинаций входных тестовых данных, а результаты тестирования могут быть эффективно сгенерированы.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Например, мы хотим протестировать систему входа в систему с несколькими полями ввода и 1000 различными наборами данных.
Чтобы проверить это, вы можете использовать следующие различные подходы:
Подход 1) Создайте 1000 сценариев по одному для каждого набора данных и запускайте каждый тест отдельно один за другим.
Подход 2) Вручную измените значение в тестовом скрипте и запустите его несколько раз.
Подход 3) Импортируйте данные из листа Excel. Получите тестовые данные из строк Excel одну за другой и выполните скрипт.
В приведенных трех сценариях первые два являются трудоемкими и трудоемкими. Поэтому идеально следовать третьему подходу.
Таким образом, третий подход — это не что иное, как Data-Driven Framework.
Как создать платформу автоматизации, управляемой данными
Предположим, вы хотите проверить функциональность входа в приложение.
Шаг 1) Определите тестовые примеры
- Введите правильное имя пользователя и пароль – вход успешный.
- Введите неправильное имя пользователя и правильный пароль – Ошибка входа в систему.
- Введите правильное имя пользователя и неправильный пароль – Ошибка входа в систему.
Шаг 2) Создайте подробные шаги тестирования для трех вышеперечисленных тестовых случаев.
| Прецедент# | Описание | Шаги тестирования | Тестовые данные | Ожидаемые результаты |
|---|---|---|---|---|
| 1 | Проверьте вход в систему на наличие действительных учетных данных |
|
Имя пользователя: действительный пароль: действительный | Войти успешно |
| 2 | Проверьте вход в систему на предмет неверных учетных данных |
|
Имя пользователя: неверный пароль: действительный | Неверный логин |
| 3 | Проверьте вход в систему на предмет неверных учетных данных |
|
Имя пользователя: действительный пароль: неверный | Неверный логин |
Шаг 3) Создать тестовый сценарий
Если вы заметили, что этапы тестирования остаются общими на протяжении 3 этапов тестирования. Вам необходимо создать тестовый сценарий для выполнения этих шагов.
// This is Pseudo Code
// Test Step 1: Launch Application
driver.get("URL of the Application");
// Test Step 2: Enter Username
txtbox_username.sendKeys("valid");
// Test Step 3: Enter Password
txtbox_password.sendKeys("invalid");
// Test Step 4: Check Results
If (Next Screen) print success else Fail
Шаг 4) Создайте Excel/CSV с входными тестовыми данными.
Шаг 5) Шаг Измените сценарий для циклического перебора входных тестовых данных. Входные команды также должны быть параметризованы.
// This is Pseudo Code
// Loop 3 Times
for (i = 0; i & lt; = 3; i++) {
// Read data from Excel and store into variables
int input_1 = ReadExcel(i, 0);
int input_2 = ReadExcel(i, 1);
// Test Step 1: Launch Application
driver.get("URL of the Application");
// Test Step 2: Enter Username
txtbox_username.sendKeys(input_1);
// Test Step 3: Enter Password
txtbox_password.sendKeys(input_2);
// Test Step 4: Check Results
If(Next Screen) print success
else Fail
}
Выше приведены только 3 тестовых случая. Тестовый скрипт может быть использован для циклического прохождения следующих тестовых случаев, просто добавляя значения тестовых данных к Excel
- Введите неправильное имя пользователя и неправильный пароль – Ошибка входа.
- Введите правильное имя пользователя и пустой пароль – Ошибка входа.
- Введите пустое имя пользователя и пустой пароль – Ошибка входа.
И так далее
лучший инструмент тестирования на основе данных
1) Testsigma
Testsigma Это облачная платформа для тестирования на основе данных, которая, как я обнаружил, бесценна для максимизации тестового покрытия за счет отделения тестовой логики от тестовых данных. Она специально разработана для команд, которым необходимо проверять приложения на различных наборах данных, в граничных случаях и бизнес-сценариях без создания избыточных тестовых сценариев, что оптимизирует весь рабочий процесс тестирования на основе данных.
В ходе моих проектов по тестированию на основе данных я использовал возможности параметризации Testsigma для выполнения идентичных тестовых сценариев с использованием различных комбинаций данных из внешних источников, таких как файлы Excel и CSV. Возможность платформы автоматически перебирать строки данных значительно расширила охват тестирования, а детальная отчетность по результатам на уровне данных помогла мне быстро определить, какие именно комбинации входных данных вызывали сбои на веб-, мобильном и API-уровнях.
Требования:
- Интеграция с внешними источниками данных: Эта функция обеспечивает прямое подключение к электронным таблицам Excel, CSV-файлам и таблицам баз данных для централизованного управления тестовыми данными. Она исключает жестко закодированные значения и позволяет поддерживать тестовые данные независимо от тестовой логики. Вы можете обновлять наборы данных без изменения тестовых сценариев, обеспечивая гибкость и удобство сопровождения. Я использую это для эффективного управления сотнями вариантов данных, сохраняя при этом чистоту и возможность повторного использования тестовых сценариев.
- Автоматизированная итерация по нескольким строкам данных: Testsigma автоматически выполняет тестовые сценарии для нескольких строк данных за один запуск теста, значительно расширяя охват тестирования. Вы можете проверять множество комбинаций входных данных, граничных условий и вариантов бизнес-правил без дублирования тестовых случаев. Эта функция прозрачно обрабатывает логику последовательности данных и итерации. Я обнаружил, что это особенно эффективно для комплексного регрессионного тестирования с минимальными затратами на обслуживание скриптов.
- Динамическая параметризация шагов тестирования: Это позволяет заменять статические значения динамическими параметрами, которые получают данные из внешних источников во время выполнения. Вы можете настроить шаги тестирования таким образом, чтобы они адаптировались к различным входным данным, условиям и ожидаемым результатам в зависимости от значений набора данных. Эта функция поддерживает сложные преобразования данных и условную логику. Я использую её для создания гибких тестовых сценариев, которые учитывают разнообразные бизнес-требования и рабочие процессы пользователей.
- Отчеты об исполнении на уровне данных: Платформа генерирует подробные отчеты, которые анализируют результаты тестирования по отдельным комбинациям данных, точно показывая, какие входные данные прошли проверку, а какие нет. Вы можете анализировать закономерности, выявлять проблемные диапазоны данных и отслеживать сбои в конкретных строках набора данных. Эта функция предоставляет визуальные панели мониторинга и экспортируемые аналитические данные для обмена информацией с заинтересованными сторонами. Я рекомендую использовать эти данные для определения приоритетов в улучшении качества данных и совершенствования стратегий тестирования.
- Поддержка обработки данных на разных платформах: Testsigma расширяет возможности тестирования на основе данных для веб-приложений, мобильных приложений и API в рамках единых рабочих процессов. Вы можете использовать одни и те же наборы данных для проверки согласованности между различными уровнями приложения и технологиями. Эта функция обеспечивает всестороннюю сквозную проверку с параметризованными потоками данных. Я использовал её для проверки того, что обработка данных на бэкэнде корректно отражается во фронтенд-интерфейсах на нескольких платформах одновременно.
Плюсы
Минусы
Цены:
- Цена: Индивидуальная ценовая политика с возможностями тестирования на основе данных, включенными в комплексный тарифный план подписки.
- Бесплатная пробная версия: 14-дневная бесплатная пробная версия
14-дневная бесплатная пробная версия
лучшие практики тестирования, управляемого данными
Ниже приведены лучшие практики тестирования на основе данных:
- Идеально использовать реалистичную информацию в процессе тестирования на основе данных.
- Навигация по ходу тестирования должна быть закодирована внутри тестового сценария.
- Используйте виртуальные API с значимыми данными
- Используйте данные для управления динамическими утверждениями
- Тестируйте как положительные, так и отрицательные результаты
- Перепрофилирование функциональных тестов на основе данных для обеспечения безопасности и производительности
Преимущества тестирования, управляемого данными
Data-Driven предлагает множество преимуществ, вот некоторые из них:
- Позволяет тестировать приложение с несколькими наборами значений данных во время регрессионного тестирования.
- Данные тестирования и данные проверки могут быть организованы в одном файле, отдельно от логики тестового примера.
- Благодаря этому инструменту тестовые сценарии можно хранить в одном репозитории. Это упрощает понимание, поддержку и управление текстами.
- Действия и функции можно повторно использовать в разных тестах.
- Некоторые инструменты автоматически генерируют тестовые данные. Это полезно, когда необходимы большие объемы случайных тестовых данных, что помогает сэкономить время.
- Тестирование на основе данных может выполнять любой этап разработки. Тестирование на основе данных обычно объединяется в один процесс. Однако его можно использовать в нескольких тестовых случаях.
- Позволяет разработчикам и тестировщикам четко отделять логику своих тестовых случаев/скриптов от тестовых данных.
- Одни и те же тестовые примеры могут выполняться несколько раз, что помогает сократить количество тестовых примеров и сценариев.
- Любые изменения в тестовом сценарии не влияют на тестовые данные.
Недостатки тестирования, управляемого данными
Некоторые недостатки метода автоматизированного тестирования на основе данных:
- Качество теста зависит от навыков автоматизации команды внедрения.
- Проверка данных — трудоемкая задача при тестировании большого объема данных.
- Обслуживание является большой проблемой, поскольку для тестирования, управляемого данными, требуется большой объем кода.
- Требуются технические навыки высокого уровня. Тестировщику, возможно, придется изучить совершенно новый язык сценариев.
- Будет больше документации. В основном это связано с инфраструктурой тестов управления скриптами и результатами тестирования.
- Для создания и обслуживания файлов данных необходим текстовый редактор, например «Блокнот».
Заключение
- Data-driven — это среда автоматизации тестирования, которая хранит тестовые данные в формате таблицы или электронной таблицы.
- В среде автоматизации тестирования на основе данных входные данные могут храниться в одном или нескольких источниках данных, таких как xls, XML, CSV и базы данных.
- Создание индивидуального теста для каждого набора данных — длительный и трудоемкий процесс. Платформа тестирования, управляемого данными, решает эту проблему, сохраняя данные отдельно от функциональных тестов.
- В тестировании на основе данных это идеальный вариант использования реалистичной информации.
- Это позволяет тестировать приложение с несколькими наборами значений данных во время Регрессионное тестирование
- Недостатком этого метода является то, что он зависит от навыков автоматизации команды внедрения.




