Що таке тестування на основі даних?
⚡ Розумний підсумок
Тестування на основі даних (Data Driven Testing) – це метод тестування програмного забезпечення, який зберігає тестові дані в таблицях або електронних таблицях, щоб один скрипт міг перевірити багато комбінацій вхідних даних. Він відокремлює тестову логіку від даних, зменшуючи дублювання скриптів та зусилля на обслуговування.

Тестування на основі даних
Тестування на основі даних це метод тестування програмного забезпечення, у якому тестові дані зберігаються у форматі таблиці або електронної таблиці. Тестування на основі даних дозволяє тестувальникам вводити єдиний тестовий сценарій, який може виконувати тести для всіх тестових даних із таблиці та очікувати результат тесту в тій самій таблиці. Його також називають тестуванням, керованим таблицею, або параметризованим тестуванням.
Фреймворк, керований даними
Фреймворк, керований даними — це фреймворк для автоматизованого тестування, в якому вхідні значення зчитуються з файлів даних і зберігаються у змінних у тестових скриптах. Він дозволяє тестувальникам створювати як позитивні, так і негативні тестові випадки в одному тесті. Вхідні дані у фреймворку, керованому даними, можуть зберігатися в одному або кількох джерелах даних, таких як .xls, .xml, .csv та бази даних. На діаграмі нижче показано, як вхідні значення надходять з файлу даних у тестовий скрипт.
Чому саме тестування на основі даних?
Тестування на основі даних це важливо, оскільки тестувальники часто мають кілька наборів даних для одного тесту, і створення окремих тестів для кожного набору даних може зайняти багато часу. Тестування на основі даних допомагає відокремити дані від тестових скриптів, а ті самі тестові скрипти можна виконувати для різних комбінацій вхідних тестових даних, водночас ефективно генеруючи результати тестування.
приклад:
Припустимо, що ми хочемо протестувати систему входу з кількома полями введення на 1000 різних наборах даних.
Щоб перевірити це, ви можете скористатися такими різними підходами:
Підхід 1) Створіть 1000 скриптів, по одному для кожного набору даних, і запускайте кожен тест окремо один за одним.
Підхід 2) Вручну змініть значення в тестовому сценарії та запустіть його кілька разів.
Підхід 3) Імпортуйте дані з аркуша Excel. Отримайте тестові дані з рядків Excel по одному та виконайте скрипт.
Серед трьох наведених сценаріїв перші два є трудомісткими та тривалими. Тому ідеально дотримуватися третього підходу.
Таким чином, третій підхід є не що інше, як структура, керована даними.
Типи тестових даних у тестуванні на основі даних
Цінність тестування на основі даних безпосередньо залежить від якості наборів даних, які ви передаєте у свої тестові скрипти. Добре розроблений файл даних поєднує кілька категорій тестових даних, щоб один скрипт міг перевірити нормальну поведінку, обробку помилок та обмеження за один прогін:
- Позитивні (дійсні) дані: Правильні дані, такі як дійсне ім’я користувача та пароль, що використовуються для підтвердження того, що програма приймає те, що вона повинна приймати.
- Негативні (недійсні) дані: Неправильні або деформовані дані, які слід відхилити, такі як неправильний пароль або спеціальні символи в числовому полі.
- Дані про межі: Значення на межах дозволених діапазонів, такі як ім'я користувача з 1 або 255 символів, які часто виявляють приховані дефекти.
- Пусті або нульові дані: Пусті поля, що перевіряють перевірку обов'язкових полів та повідомлення про помилки.
- Великі обсяги даних: Масово або випадково згенеровані записи, що використовуються для перевірки продуктивності та стабільності під реальним навантаженням.
Після підготовки правильних даних наступним кроком є створення самої структури.
Як створити фреймворк автоматизації на основі даних
Уявіть, що ви хочете протестувати функцію входу в програму. Наведена вище блок-схема показує повний цикл: визначення тестових випадків, написання загального тестового сценарію, переміщення даних до зовнішнього файлу та виконання сценарію для кожного рядка даних.
Крок 1) Визначте тестові приклади
- Введіть правильні ім’я користувача та пароль – вхід успішний
- Введіть неправильне ім’я користувача та правильний пароль – Помилка входу
- Введіть правильне ім’я користувача та неправильний пароль – Помилка входу
Крок 2) Створіть докладні кроки тестування для вищезазначених 3 тестових випадків
| Тестовий приклад № | Опис | Етапи тестування | Дані тесту | очікувані результати |
|---|---|---|---|---|
| 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 тести. Тестовий сценарій можна використовувати для циклічного перегляду наступних тестових випадків, просто додавши значення тестових даних перевершувати
- Введіть неправильне ім’я користувача та пароль – помилка входу
- Введіть правильне ім’я користувача та пароль – Помилка входу
- Введіть порожнє ім’я користувача та порожній пароль – Помилка входу
І так далі
💡 Порада: Зберігайте очікуваний результат для кожного рядка в тому ж файлі даних, що й вхідні дані. Ваш скрипт потім може автоматично порівнювати фактичні та очікувані результати, перетворюючи файл даних на повноцінний самоперевіряючийся набір тестів.
Щойно ваша структура готова, правильний інструмент спрощує керування даними, виконання та звітність.
Найкращий інструмент для тестування на основі даних
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, тому невдалі комбінації даних посилаються на проблему. tracавтоматично.
Особливості гри:
- Редагування масового тестового випадку: Testiny дозволяє редагувати, дублювати та параметризувати багато тестових випадків одночасно, що пришвидшує створення варіацій на основі даних. Ви можете застосовувати зміни до різних папок за лічені секунди, не торкаючись кожного випадку окремо. Я покладаюся на це, розширюючи охоплення на нові набори даних без переписування скриптів.
- Налаштовувані поля для введення даних: Це дозволяє визначати власні поля для кожного проєкту, щоб атрибути набору даних можна було змінювати tracзберігається разом із кожним тестовим запуском. Ви можете чітко записувати вхідні значення, очікувані результати та умови в одному місці. Я використовую ці поля, щоб складні параметризовані сценарії було легко перевіряти пізніше.
- Тестовий запуск у реальному часі Tracking: Платформа відображає статус виконання в реальному часі всіма членами команди, тому тестування на основі даних залишаються прозорими. Ви можете призначати випадки, відстежувати відсотки успішних/неуспішних тестів та виявляти заблоковані комбінації даних у міру їх виникнення. Я вважаю це корисним для keeping Керівники з контролю якості інформовані без постійних зустрічей щодо статусу.
- PDF-файли та звіти для спільного використання: Testiny генерує чіткі PDF-звіти з діаграмами та зведеннями виконання, якими можна поділитися з нетехнічними зацікавленими сторонами. Ви можете фільтрувати за набором даних, етапом або релізом. Я надсилаю їх в кінці кожного спринту, щоб повідомити про стан якості.
- Рідний випуск TracІнтеграції ker: Він підключається до Jira, GitHub, GitLab, Azure DevOps, лінійний, Asana, Confluence, Trello та monday.com, щоб рядки даних, що не вдалися, швидко перетворювалися на заявки. Ви можете узгодити робочі процеси виконання тестів та інженерії. Я помітив, що це значно зменшує тертя у передачі обов'язків між командами контролю якості та розробки.
Плюси
мінуси
ціни:
- Ціна: Безкоштовний план для максимум 3 користувачів; платні плани масштабуються за кількістю місць та додають преміум-підтримку
- Безкоштовний пробний період: 21-денна безкоштовна пробна версія
21-денна безкоштовна пробна версія
3) Testpad
Testpad – це легкий інструмент для керування тестуванням на основі контрольних списків, на який я спираюся, коли сценарії, керовані даними, потребують швидкого збору даних без зайвих церемоній. Він побудований на основі ієрархічних контрольних списків, щоб тестувальники могли групувати варіанти даних за батьківськими випадками та швидко їх виконувати.
Під час моїх сесій, заснованих на даних, з Testpad, я використав його інтерфейс, що працює в першу чергу з клавіатурою, щоб за один раз розкрутити десятки варіантів введення. Підтримка гостьових тестувальників дозволила мені залучати експертів у предметній області для перевірки комбінацій даних на межі випадку, не платячи за додаткові місця.
Особливості гри:
- Ієрархічні контрольні списки тестів: Testpad організовує параметризовані тести у вкладені контрольні списки, щоб ви могли групувати пов'язані варіанти даних під одним батьківським випадком. Ви можете розгортати та згортати гілки, щоб зосередитися на певних наборах даних. Я використовую це для візуального оформлення складних матриць даних.
- Редагування за допомогою клавіатури: Він дозволяє створювати, робити відступи та змінювати порядок тестових елементів за допомогою комбінацій клавіш, що дозволяє швидко створювати великі плани на основі даних. Ви можете залишатися в процесі, не тягнучись за мишею. Я вважаю, що це значно скорочує час отримання нових рядків набору даних.
- Доступ для гостьових тестувальників: Testpad підтримує необмежену кількість гостьових тестувальників без плати за кожне робоче місце, що дозволяє залучати експертів у певній предметній області для певних комбінацій даних. Ви можете запросити зацікавлених сторін для перевірки граничних випадків без додаткових витрат на ліцензування. Я покладаюся на це під час прийняття користувачем параметризованих сценаріїв.
- Звіти, якими можна миттєво поділитися: Платформа генерує легкі звіти, якими можна поділитися за посиланням, тож прогрес видно без відкриття інструменту. Ви можете фільтрувати за тестером, статусом або гілкою тестування. Я надсилаю їх менеджерам продуктів після кожного тестування на основі даних.
- Питання TracПосилання ker: Він пов'язує невдалі тести із заявками Jira або GitHub за допомогою простих посилань, тому помилки рядків даних швидко спрямовуються до розробників. Ви можете додавати контекст безпосередньо з елемента контрольного списку, що не вдався. Я дозволяю тестувальнику зосередитися на виконанні, дозволяючи інструментам керувати маршрутизацією.
Плюси
мінуси
ціни:
- Ціна: Вартість планів починається від 59 доларів США на місяць, а для більших команд доступні індивідуальні корпоративні плани.
- Безкоштовний пробний період: 30-денна безкоштовна пробна версія
30-денна безкоштовна пробна версія
Найкращі практики тестування на основі даних
Нижче наведено найкращі практики тестування на основі даних:
- Ідеально використовувати реалістичну інформацію під час процесу тестування на основі даних
- Навігацію тестового потоку слід закодувати в тестовому сценарії
- Керуйте віртуальними API значущими даними
- Використовуйте дані для керування динамічними твердженнями
- Тест як позитивний, так і негативний
- Перепрофілюйте функціональні тести на основі даних для безпеки та продуктивності
Переваги тестування на основі даних
Тестування на основі даних пропонує багато переваг. Деякі з них:
- Дозволяє тестувати програму з кількома наборами значень даних під час Регресійне тестування
- Тестові дані та дані перевірки можуть бути організовані лише в одному файлі, і він відокремлений від логіки тестового випадку.
- Завдяки цьому інструменту можна зберігати тестові скрипти в одному репозиторії. Це спрощує розуміння, підтримку та управління тестами.
- Дії та функції можна повторно використовувати в різних тестах.
- Деякі інструменти генерують тестові дані автоматично. Це корисно, коли потрібні великі обсяги випадкових тестових даних, що допомагає заощадити час.
- Тестування на основі даних можна виконувати на будь-якому етапі розробки. Тестові випадки на основі даних зазвичай об'єднуються в один процес. Однак їх можна використовувати в кількох тестових випадках.
- Дозволяє розробникам і тестувальникам чітко відокремлювати логіку своїх тестових випадків/сценаріїв від тестових даних.
- Одні й ті ж тестові випадки можна виконувати кілька разів, що допомагає зменшити кількість тестових випадків та скриптів.
- Будь-які зміни в тестовому скрипті не впливають на тестові дані
Недоліки тестування на основі даних
Деякі недоліки методу автоматизованого тестування на основі даних:
- Якість тестування залежить від навичок автоматизації команди впроваджувачів
- Валідація даних – це трудомістке завдання під час тестування великої кількості даних.
- Підтримка є великою проблемою, оскільки для тестування на основі даних потрібен великий обсяг коду.
- Потрібні технічні навики високого рівня. Тестеру, можливо, доведеться вивчити абсолютно нову мову сценаріїв.
- Буде більше документації, здебільшого пов'язаної з управлінням скриптами, тестовою інфраструктурою та результатами тестування.
- Для створення та підтримки файлів даних потрібен текстовий редактор, наприклад Блокнот.
Тестування на основі даних проти тестування на основі ключових слів
Початківці часто плутають тестування на основі даних з тестуванням на основі ключових слів, оскільки обидва підходи відрізняють розробку тестів від тестових скриптів. Різниця полягає в тому, що екстерналізується: тестування на основі даних екстерналізує вхідні значення, тоді як тестування на основі ключових слів екстерналізує самі дії як ключові слова повторного використання. У таблиці нижче порівнюються ці два підходи:
| Параметр | Тестування на основі даних | Тестування на основі ключових слів |
|---|---|---|
| Що екстерналізовано | Тестові дані (вхідні дані та очікувані результати) | Тестові дії (ключові слова, такі як Вхід, Клік, Перевірка) |
| Джерело даних | Таблиці Excel, CSV, XML або бази даних | Таблиці ключових слів плюс додаткові таблиці даних |
| Необхідні навички | Помірні знання скриптів | Більше початкових зусиль для проектування; менше коду для створення нових тестів |
| Найкраще підходить для | Повторення одного сценарію з багатьма комбінаціями вхідних даних | Створення багатьох сценаріїв з блоків дій, що повторно використовуються |
| технічне обслуговування | Оновлення файлів даних без дотику до скриптів | Оновлювати бібліотеку ключових слів, коли змінюється поведінка програми |
Багато команд поєднують обидва підходи в гібридну структуру, де ключові слова визначають дії повторного використання, а зовнішні файли даних надають значення для кожного тестового запуску.






