Что такое тестирование, управляемое данными?
⚡ Умное резюме
Тестирование, основанное на данных (Data Driven Testing), — это метод тестирования программного обеспечения, при котором тестовые данные хранятся в таблицах или электронных таблицах, так что один скрипт может проверять множество комбинаций входных данных. Он отделяет логику тестирования от данных, сокращая дублирование скриптов и трудозатраты на их сопровождение.

Тестирование на основе данных
Тестирование на основе данных — это метод тестирования программного обеспечения, при котором тестовые данные сохраняются в формате таблицы или электронной таблицы. Тестирование на основе данных позволяет тестировщикам вводить один тестовый сценарий, который может выполнять тесты для всех тестовых данных из таблицы и ожидать результатов теста в той же таблице. Его также называют табличным тестированием или параметризованным тестированием.
Платформа, управляемая данными
Платформа, управляемая данными Это фреймворк для автоматизированного тестирования, в котором входные значения считываются из файлов данных и сохраняются в переменных тестовых сценариев. Он позволяет тестировщикам создавать как положительные, так и отрицательные тестовые случаи в рамках одного теста. Входные данные в фреймворке, управляемом данными, могут храниться в одном или нескольких источниках данных, таких как файлы .xls, .xml, .csv и базы данных. На диаграмме ниже показано, как входные значения передаются из файла данных в тестовый сценарий.
Почему тестирование на основе данных?
Тестирование на основе данных Это важно, потому что тестировщики часто имеют несколько наборов данных для одного теста, и создание отдельных тестов для каждого набора данных может быть трудоемким процессом. Тестирование, основанное на данных, помогает отделить данные от тестовых сценариев, и одни и те же тестовые сценарии могут выполняться для различных комбинаций входных тестовых данных, при этом результаты тестов генерируются эффективно.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Предположим, мы хотим протестировать систему авторизации с несколькими полями ввода на 1000 различных наборах данных.
Для проверки этого можно использовать следующие различные подходы:
Подход 1) Создайте 1000 скриптов, по одному для каждого набора данных, и запускайте каждый тест отдельно, по одному.
Подход 2) Вручную измените значение в тестовом скрипте и запустите его несколько раз.
Подход 3) Импортируйте данные из электронной таблицы Excel. Поочередно извлекайте тестовые данные из строк Excel и выполняйте скрипт.
Из предложенных трех сценариев первые два являются трудоемкими и занимают много времени. Поэтому оптимальным вариантом будет третий подход.
Таким образом, третий подход — это не что иное, как Data-Driven Framework.
Типы тестовых данных в тестировании, управляемом данными (Data Driven Testing).
Ценность тестирования, основанного на данных, напрямую зависит от качества наборов данных, которые вы передаете в тестовые скрипты. Хорошо разработанный файл данных сочетает в себе несколько категорий тестовых данных, так что один скрипт может проверить нормальное поведение, обработку ошибок и ограничения за один запуск:
- Положительные (достоверные) данные: Корректные входные данные, такие как действительное имя пользователя и пароль, используются для подтверждения того, что приложение принимает то, что должно принимать.
- Отрицательные (недействительные) данные: Неправильные или искаженные данные, которые следует отклонить, например, неверный пароль или специальные символы в числовом поле.
- Данные о границах: Значения, выходящие за пределы допустимых диапазонов, например, имя пользователя из 1 или 255 символов, часто выявляют скрытые уязвимости.
- Пустые или нулевые данные: Пустые поля, проверяющие обязательность полей и содержащие сообщения об ошибках.
- Большие объемы данных: Для проверки производительности и стабильности при реальной нагрузке используются массивы или случайно сгенерированные записи.
После подготовки необходимых данных следующим шагом является создание самой структуры.
Как создать платформу автоматизации, управляемой данными
Представьте, что вы хотите протестировать функциональность авторизации в приложении. Приведенная выше блок-схема показывает полный цикл: определение тестовых случаев, написание общего тестового скрипта, перемещение данных во внешний файл и циклическая обработка скрипта по каждой строке данных.
Шаг 1) Определите тестовые примеры
- Введите правильное имя пользователя и пароль – вход успешный.
- Введите неправильное имя пользователя и правильный пароль – Ошибка входа в систему.
- Введите правильное имя пользователя и неправильный пароль – Ошибка входа в систему.
Шаг 2) Создайте подробные шаги тестирования для трех вышеперечисленных тестовых случаев.
| Прецедент# | Описание | Шаги тестирования | Тестовые данные | Ожидаемые результаты |
|---|---|---|---|---|
| 1 | Проверьте вход в систему на наличие действительных учетных данных |
|
Имя пользователя: действительный пароль: действительный | Войти успешно |
| 2 | Проверьте вход в систему на предмет неверных учетных данных |
|
Имя пользователя: неверный пароль: действительный | Неверный логин |
| 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-файлам и таблицам баз данных для централизованного управления тестовыми данными. Она исключает жестко закодированные значения и позволяет поддерживать тестовые данные независимо от тестовой логики. Вы можете обновлять наборы данных без изменения тестовых сценариев, обеспечивая гибкость и удобство сопровождения. Я использую это для эффективного управления сотнями вариантов данных, сохраняя при этомping Тестовые сценарии чистые и пригодны для повторного использования.
- Автоматизированная итерация по нескольким строкам данных: Testsigma автоматически выполняет тестовые сценарии для нескольких строк данных за один запуск теста, значительно расширяя охват тестирования. Вы можете проверять множество комбинаций входных данных, граничных условий и вариантов бизнес-правил без дублирования тестовых случаев. Эта функция прозрачно обрабатывает логику последовательности данных и итерации. Я обнаружил, что это особенно эффективно для комплексного регрессионного тестирования с минимальными затратами на обслуживание скриптов.
- Динамическая параметризация шагов тестирования: Это позволяет заменять статические значения динамическими параметрами, которые получают данные из внешних источников во время выполнения. Вы можете настроить шаги тестирования таким образом, чтобы они адаптировались к различным входным данным, условиям и ожидаемым результатам в зависимости от значений набора данных. Эта функция поддерживает сложные преобразования данных и условную логику. Я использую её для создания гибких тестовых сценариев, которые учитывают разнообразные бизнес-требования и рабочие процессы пользователей.
- Отчеты об исполнении на уровне данных: Платформа генерирует подробные отчеты, которые разбивают результаты тестирования по отдельным комбинациям данных, точно показывая, какие входные данные прошли проверку, а какие нет. Вы можете анализировать закономерности, выявлять проблемные диапазоны данных и tracсбои в определенных строках набора данных. Эта функция предоставляет визуальные панели мониторинга и экспортируемые аналитические данные для обмена информацией с заинтересованными сторонами. Я рекомендую использовать эти данные для определения приоритетов в улучшении качества данных и совершенствования стратегий тестирования данных.
- Поддержка обработки данных на разных платформах: Testsigma расширяет возможности тестирования на основе данных для веб-приложений, мобильных приложений и API в рамках единых рабочих процессов. Вы можете использовать одни и те же наборы данных для проверки согласованности между различными уровнями приложения и технологиями. Эта функция обеспечивает всестороннюю сквозную проверку с параметризованными потоками данных. Я использовал её для проверки того, что обработка данных на бэкэнде корректно отражается во фронтенд-интерфейсах на нескольких платформах одновременно.
Плюсы
Минусы
Цены:
- Цена: Индивидуальная ценовая политика с возможностями тестирования на основе данных, включенными в комплексный тарифный план подписки.
- Бесплатная пробная версия: 14-дневная бесплатная пробная версия
14-дневная бесплатная пробная версия
2) Testiny
Testiny Это современная облачная платформа для управления тестовыми сценариями, которую я использую для эффективной организации тестовых сценариев, основанных на данных, и при этом для поддержания...ping Четкое разделение между логикой тестирования и параметризованными наборами данных. Он создан для команд, которым необходимо управлять разнообразными комбинациями данных в ходе множества тестовых запусков без потери данных. tracУмение.
При реализации проектов, основанных на данных, с использованием TestinyМне понравилось, как функции массового редактирования и шаблонов упростили масштабирование вариантов тестирования на сотнях строк данных. Платформа интегрируется с Jira, GitHub и GitLab, поэтому неудачные комбинации данных приводят к созданию соответствующей задачи. trackers автоматически.
Требования:
- Массовое редактирование тестовых случаев: Testiny Позволяет редактировать, дублировать и параметризовать множество тестовых случаев одновременно, что ускоряет создание вариантов, основанных на данных. Вы можете применять изменения в разных папках за считанные секунды, не затрагивая каждый случай по отдельности. Я использую это при расширении охвата на новые наборы данных без переписывания скриптов.
- Настраиваемые поля для ввода данных: Это позволяет определять пользовательские поля для каждого проекта, чтобы можно было использовать атрибуты набора данных. tracЭти поля записываются вместе с каждым запуском теста. Вы можете четко записывать входные значения, ожидаемые результаты и условия в одном месте. Я использую эти поля, чтобы упростить последующую проверку сложных параметризованных сценариев.
- Тестирование в реальном времени Tracking: Платформа отображает статус выполнения тестов в режиме реального времени для всех членов команды, что обеспечивает прозрачность тестовых запусков, основанных на данных. Вы можете назначать тестовые случаи, отслеживать процент успешных/неуспешных запусков и выявлять заблокированные комбинации данных по мере их возникновения. Я считаю это полезным для обеспечения...ping Управление качеством обеспечивает информированный подход без постоянных совещаний по текущему состоянию дел.
- Отчеты в формате PDF и отчеты, которыми можно делиться: Testiny Создает понятные PDF-отчеты с диаграммами и сводками выполнения, которыми можно поделиться с нетехническими заинтересованными сторонами. Можно фильтровать по набору данных, этапу или релизу. Я рассылаю их в конце каждого спринта, чтобы продемонстрировать уровень качества.
- Проблема коренных народов TracИнтеграции Ker: Он подключается к Jira, GitHub, GitLab. Azure DevOps, линейный, AsanaConfluence, Trello и monday.com позволяют быстро превращать строки с ошибками в заявки. Это помогает согласовать выполнение тестов и рабочие процессы разработки. Я заметил, что это значительно снижает трение при передаче информации между командами контроля качества и разработки.
Плюсы
Минусы
Цены:
- Цена: Бесплатный тарифный план рассчитан на 3 пользователей; платные планы предусматривают увеличение количества рабочих мест и включают премиум-поддержку.
- Бесплатная пробная версия: 21-дневная бесплатная пробная версия
21-дневная бесплатная пробная версия
3) Testpad
Testpad Это легковесный инструмент управления тестированием, основанный на контрольных списках, на который я полагаюсь, когда необходимо быстро и без лишних формальностей зафиксировать сценарии, основанные на данных. Он построен на иерархических контрольных списках, позволяющих тестировщикам группировать варианты данных в рамках родительских случаев и быстро их выполнять.
В ходе моих сессий, основанных на анализе данных, с TestpadЯ использовал его интерфейс, ориентированный на клавиатуру, чтобы за один раз создать десятки вариантов ввода. Поддержка приглашенных тестировщиков позволила мне привлечь экспертов в предметной области для проверки нестандартных комбинаций данных без оплаты дополнительных лицензий.
Требования:
- Иерархические контрольные списки тестирования: Testpad Эта функция организует параметризованные тесты во вложенные контрольные списки, позволяя группировать связанные варианты данных под одним родительским случаем. Вы можете разворачивать и сворачивать ветви, чтобы сосредоточиться на конкретных наборах данных. Я использую это для визуального упорядочивания сложных матриц данных.
- Редактирование с помощью клавиатуры: Это позволяет создавать, изменять отступы и порядок тестовых элементов с помощью сочетаний клавиш, что ускоряет построение планов обработки больших объемов данных. Вы можете оставаться в рабочем процессе, не прибегая к мыши. Я обнаружил, что это значительно сокращает время, необходимое для ввода новых строк в набор данных.
- Доступ для гостевого тестирования: Testpad Поддерживается неограниченное количество гостевых тестировщиков без платы за каждое рабочее место, что позволяет привлекать экспертов в предметной области для проверки конкретных комбинаций данных. Вы можете приглашать заинтересованных лиц для проверки граничных случаев без дополнительных затрат на лицензирование. Я использую это во время пользовательского приемочного тестирования с параметризованными сценариями.
- Отчеты, которыми можно мгновенно поделиться: Платформа генерирует простые отчеты, которыми можно поделиться по ссылке, чтобы отслеживать прогресс, не открывая сам инструмент. Можно фильтровать отчеты по тестировщику, статусу или тестовой ветке. Я отправляю их менеджерам по продукту в конце каждого запуска тестирования, основанного на данных.
- Вопрос Tracker Linking: Он связывает неудачные тесты с задачами в Jira или GitHub с помощью простых ссылок, поэтому ошибки в строках данных быстро перенаправляются в отдел разработки. Вы можете прикрепить контекст непосредственно из пункта контрольного списка, в котором произошла ошибка. Я позволяю тестировщикам сосредоточиться на выполнении теста, а инструментам — на маршрутизации.
Плюсы
Минусы
Цены:
- Цена: Стоимость тарифных планов начинается от 59 долларов в месяц, для больших команд доступны индивидуальные корпоративные планы.
- Бесплатная пробная версия: Бесплатная пробная версия 30 дней
30-дневная бесплатная пробная версия
лучшие практики тестирования, управляемого данными
Ниже приведены лучшие практики тестирования, основанного на данных:
- Идеально использовать реалистичную информацию в процессе тестирования на основе данных.
- Навигация по ходу тестирования должна быть закодирована внутри тестового сценария.
- Используйте виртуальные API с значимыми данными
- Используйте данные для управления динамическими утверждениями
- Тестируйте как положительные, так и отрицательные результаты
- Перепрофилирование функциональных тестов на основе данных для обеспечения безопасности и производительности
Преимущества тестирования, управляемого данными
Тестирование, основанное на данных, предлагает множество преимуществ. Некоторые из них:
- Позволяет тестировать приложение с использованием нескольких наборов значений данных во время тестирования. Регрессионное тестирование
- Данные тестирования и данные проверки могут быть организованы в одном файле, отдельно от логики тестового примера.
- С помощью этого инструмента можно разместить тестовые скрипты в одном репозитории. Это упрощает понимание, поддержку и управление тестами.
- Действия и функции можно повторно использовать в разных тестах.
- Некоторые инструменты автоматически генерируют тестовые данные. Это полезно, когда необходимы большие объемы случайных тестовых данных, что помогает сэкономить время.
- Тестирование, основанное на данных, может проводиться на любом этапе разработки. Тестовые сценарии, основанные на данных, обычно объединяются в единый процесс. Однако их можно использовать в нескольких тестовых сценариях.
- Позволяет разработчикам и тестировщикам четко отделять логику своих тестовых случаев/скриптов от тестовых данных.
- Одни и те же тестовые случаи можно выполнять несколько раз, что помогает сократить количество тестовых случаев и скриптов.
- Любые изменения в тестовом скрипте не влияют на тестовые данные.
Недостатки тестирования, управляемого данными
Некоторые недостатки метода автоматизированного тестирования на основе данных:
- Качество тестирования зависит от навыков автоматизации, которыми обладает команда разработчиков.
- Проверка достоверности данных — трудоемкая задача при тестировании больших объемов данных.
- Поддержка системы представляет собой серьезную проблему, поскольку для тестирования, основанного на данных, требуется большой объем кода.
- Требуются технические навыки высокого уровня. Тестировщику, возможно, придется изучить совершенно новый язык сценариев.
- Будет добавлено больше документации, в основном касающейся управления скриптами, тестовой инфраструктуры и результатов тестирования.
- Для создания и обслуживания файлов данных необходим текстовый редактор, например «Блокнот».
Тестирование на основе данных против тестирования на основе ключевых слов
Начинающие часто путают тестирование, управляемое данными, с тестированием, управляемым ключевыми словами, поскольку в обоих случаях проектирование тестов отделяется от тестовых сценариев. Разница заключается в том, что именно выносится за пределы тестируемых данных: тестирование, управляемое данными, выносит за пределы тестируемых данных входные значения, в то время как тестирование, управляемое ключевыми словами, выносит за пределы тестируемых данных сами действия в виде многократно используемых ключевых слов. В таблице ниже сравниваются два подхода:
| Параметр | Тестирование на основе данных | Тестирование по ключевым словам |
|---|---|---|
| Что является внешним? | Тестовые данные (входные данные и ожидаемые результаты) | Тестовые действия (ключевые слова, такие как «Вход», «Клик», «Проверка») |
| Источник данных | Excel, CSV, XML или таблицы баз данных | Таблицы ключевых слов плюс дополнительные таблицы данных |
| Требуются навыки | Умеренные знания в области написания скриптов. | Более высокие первоначальные затраты на проектирование; меньше кода для создания новых тестов. |
| лучше всего подходит для | Повторение одного сценария с множеством комбинаций входных данных. | Создание множества сценариев на основе многократно используемых блоков действий. |
| Обслуживание | Обновление файлов данных без изменения скриптов. | Обновляйте библиотеку ключевых слов при изменении поведения приложения. |
Многие команды объединяют оба подхода в гибридную структуру, где ключевые слова определяют многократно используемые действия, а внешние файлы данных предоставляют значения для каждого запуска теста.






