Управляемое данными тестирование
Управляемое данными тестирование (DDT – Data Driven Testing) – это метод тестирования программного обеспечения, при котором тестовые данные хранятся в виде таблицы условий. В DDT есть тест, который умеет принимать набор входных параметров из таблицы. Этот тест должен сравнить результат, полученный в ходе прогонки входных параметров с заранее установленным эталонным результатом. DDT также называют тестированием на основе таблиц или параметризованным тестированием.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Data Driven Framework
Data Driven Framework – это среда автоматизированного тестирования. Она позволяет тестировщикам объединять как положительные, так и отрицательные тест-кейсы в один тест. Входные значения могут храниться в одном или нескольких источниках данных, таких как .xls, .xml, .csv и базы данных.
Содержание:
- Управляемое данными тестирование
- Для чего используют DDT?
- Как создать Data-Driven Framework
- Лучшие практики DDT
- Преимущества DDT
- Недостатки DDT
Для чего используют DDT?
Важность параметризованного тестирования связана с возможностью использовать несколько наборов данных для одного теста вместо написания множества отдельных, что занимает много времени. Этот подход позволяет хранить данные отдельно от тестовых сценариев, и одни и те же тестовые сценарии могут выполняться для различных комбинаций входных тестовых данных, при этом результаты тестов генерируются достаточно эффективно.
Пример:
Мы хотим протестировать авторизацию с несколькими полями ввода с 1000 различными наборами входных данных.
Для тестирования могут быть применены следующие подходы:
Подход 1. Создать 1000 отдельных тестов для каждого набора данных и запустить их по очереди.
Подход 2. Вручную изменить значение в тестовом скрипте и запустить его несколько раз
Подход 3. Импортировать данные из таблиц. Извлечь тестовые данные из строк Excel и выполнить скрипт.
В приведенных выше подходах первые два являются трудоемкими и отнимают много времени. Поэтому идеальным выбором станет третий подход.
Ведь он – это не что иное, как Data-Driven Framework.
Как создать фреймворк
Предположим, вы хотите протестировать авторизацию в приложении.
Шаг 1. Определить тест-кейсы:
- Ввод существующего имени пользователя(Username) и пароля(Password) – Успешный вход.
- Ввод неправильного Username и существующего Password – Сбой входа в систему.
- Ввод существующего Username и неправильного Password – Сбой входа в систему.
Шаг 2. Подробно расписать шаги тестирования для вышеуказанных 3 тестовых случаев.
Тест-кейс | Описание | Шаги | Тестовые данные | Ожидаемые результаты |
1 | Авторизация по существующим данным | 1. Запустите приложение 2. Введите имя пользователя пароль 3. Нажмите Ок 4. Проверьте результаты | Имя пользователя: действительное Пароль: действительный | Успешный вход |
2 | Авторизация с ошибочными данными | 1. Запустите приложение 2. Введите имя пользователя пароль 3. Нажмите Ок 4. Проверить результаты | Имя пользователя: не существующее Пароль: действительный | Вход в систему невозможен |
3 | Авторизация с ошибочными данными | 1. Запустите приложение 2. Введите имя пользователя пароль 3. Нажмите Ок 4. Проверьте результаты | Имя пользователя: действительное пароль: недействительный | Вход в систему невозможен |
Шаг 3. Создать тестовый скрипт
Вы можете заметить, что шаги всех 3-х тестов остаются одинаковыми. Далее необходимо создать скрипт для их выполнения.
// Псевдокод
// Шаг 1: Запуск приложения
driver.get("URL of the Application");
// Шаг 2: Ввод Username
txtbox_username.sendKeys("valid");
// Шаг 3: Ввод Password
txtbox_password.sendKeys("invalid");
// Шаг 4: Проверка результатов
If (Next Screen) print success else Fail
Шаг 4. Создать файл в формате Excel/csv с входными тестовыми данными
Шаг 5. Изменить тестовый сценарий, чтобы зациклить входные тестовые данные. Входные команды также должны быть параметризованы.
// Псевдокод
// Цикл выполняется трижды
for (i = 0; i & lt; = 3; i++) {
// Считывание данных из таблицы и сохранение в переменные
int input_1 = ReadExcel(i, 0);
int input_2 = ReadExcel(i, 1);
// Шаг 1: Запуск приложения
driver.get("URL of the Application");
// Шаг 2: Ввод Username
txtbox_username.sendKeys(input_1);
// Шаг 3: Ввод Password
txtbox_password.sendKeys(input_2);
// Шаг 4: Проверка результатов
If(Next Screen) print success
else Fail
}
Выше приведены примеры только 3-х тест-кейсов. Тест может быть также использован для других проверок простым добавлением входных данных в Excel
- Ввод неправильного имени пользователя и неправильного пароля – Ошибка входа в систему
- Ввод правильного имени пользователя и пустого пароля – Ошибка входа в систему
- Ввод пустого имени пользователя и пустого пароля – Ошибка входа в систему
И так далее.
Лучшие практики DDT
Ниже приведены лучшие практики, используемые в тестировании, управляемым данными:
- В параметризованном тестировании в идеале используют реальные данные.
- Управление потоками тестовых сценариев должно быть реализовано внутри тестовых скриптов.
- Используйте виртуальные API для значимых данных.
- Используйте данные для создания динамических проверок.
- Тестируйте как положительные, так и негативные сценарии.
- Адаптируйте параметризованные тесты для проверки безопасности, нагрузки и отказоустойчивости.
Преимущества DDT
У параметризованного тестирования есть множество преимуществ, рассмотрим некоторые из них:
- Позволяет проводить регрессионное тестирование приложения, используя несколько наборов данных.
- Тестовые данные и результаты тестов могут быть собраны в одном файле, и отделены от логики тест-кейса.
- Имеется возможность хранения тестов в едином репозитории, в зависимости от инструмента. Это упрощает понимание тестов, а также их поддержание и управление.
- Шаги и функции можно повторно использовать в разных тестах.
- Некоторые инструменты генерируют тестовые данные автоматически. Это удобно в ситуациях, когда необходимо использовать большие объемы случайных тестовых данных, что помогает существенно сэкономить время.
- Тестирование, управляемое данными, может выполняться на любом этапе разработки. Параметризованные тесты обычно представляют собой единый процесс. Однако его можно использовать в нескольких тест-кейсах
- Позволяет разработчикам и тестировщикам четко отделить логику тестовых сценарием/скриптов от тестовых данных.
- Одни и те же тестовые случаи могут быть выполнены несколько раз, что помогает сократить количество отдельных тестов.
- Внесение изменений в тестовом сценарии не влияет на тестовые данные.
Недостатки DDT
К недостаткам параметризованного тестирования относятся следующие моменты:
- Качество теста зависит от навыков команды автоматизации.
- Проверка данных — трудоемкая задача при тестировании большого объема данных.
- Его обслуживание — серьезная проблема, так как для тестирования, управляемого данными, требуется большой объем кода.
- QA инженерам требуются технические навыки высокого уровня. Возможно, придется изучить новый язык программирования.
- Избыток документации. В основном это касается управления скриптами, инфраструктуры тестов и результатов тестирования.
- Для создания и поддержания файлов данных требуется текстовый редактор, например Notepad.
Вывод
- Data Driven Framework – это система автоматизации тестирования, которая хранит тестовые данные в виде таблиц и файлов.
- В параметризованных тестах входные данные могут храниться в одном или нескольких источниках данных, таких как xls, XML, csv и базы данных.
- Создание отдельного теста для каждого набора данных – длительный и трудоемкий процесс. Data Driven Framework решает эту проблему, сохраняя данные отдельно от функциональных тестов.
- Для параметризованного тестирования идеальным вариантом является использование реальной информации.
- DDT предоставляет возможность тестировать приложение с несколькими наборами данных во время регрессионного тестирования.
- Недостатком этого метода является то, что он зависит от навыков команды автоматизации.
Перевод статьи «What is Data Driven Testing? Learn to create Framework».
Пингбэк: Основы Selenium