Розгляд інструментів тестування (версія 3.1)
Інструменти тестування можна використовувати для підтримки однієї або кількох дій тестування. До таких засобів відносяться:
- Інструменти, які безпосередньо використовуються під час тестування, наприклад інструменти виконання тестів і інструменти підготовки тестових даних
- Інструменти, які допомагають керувати вимогами, тестовими випадками, процедурами тестування, сценаріями автоматизованого тестування, результатами тестування, тестовими даними та дефектами, а також для звітування та моніторингу виконання тесту
- Інструменти, які використовуються для аналізу та оцінки
- Будь-який інструмент, який допомагає у тестуванні (електронна таблиця також є інструментом тестування в цьому значенні)
Класифікація інструментів тестування (версія 3.1)
Залежно від контексту інструменти тестування можуть мати одну або декілька з наступних цілей:
- Підвищення ефективності тестування шляхом автоматизації повторюваних завдань або завдань, які потребують значних ресурсів, коли виконуються вручну (наприклад, виконання тесту, регресійне тестування)
- Підвищення ефективності тестування шляхом підтримки ручного тестування протягом усього процесу тестування
- Поліпшення якості тестової діяльності, дозволяючи більш послідовне тестування та вищий рівень відтворюваності дефектів
- Автоматизація дій, які неможливо виконати вручну (наприклад, широкомасштабне тестування продуктивності)
- Підвищення надійності тестування (наприклад, шляхом автоматизації порівняння великих даних або моделювання поведінки)
Інструменти можна класифікувати за кількома критеріями, такими як призначення, ціна, модель ліцензування (наприклад, комерційна чи з відкритим кодом) і використовувана технологія. Інструменти класифіковані в цій навчальній програмі відповідно до тестових дій, які вони підтримують.
Деякі інструменти чітко підтримують лише або переважно одну дію; інші можуть підтримувати більше однієї діяльності, але класифікуються за діяльністю, з якою вони найбільш тісно пов’язані. Інструменти від одного постачальника, особливо ті, які були розроблені для спільної роботи, можуть надаватися як інтегрований пакет.
Деякі типи інструментів тестування можуть бути нав’язливими, що означає, що вони можуть вплинути на фактичний результат тесту. Наприклад, фактичний час відповіді для програми може відрізнятися через додаткові інструкції, які виконує інструмент тестування продуктивності, або обсяг досягнутого покриття коду може бути спотворений через використання інструменту покриття. Наслідки використання інтрузивних інструментів називають ефектом зонда.
Деякі інструменти пропонують підтримку, яка зазвичай більше підходить для розробників (наприклад, інструменти, які використовуються під час тестування компонентів та інтеграції). Такі інструменти позначені «(D)».
Підтримка інструментів для керування тестуванням і тестовим програмним забезпеченням
Інструменти керування можуть застосовуватися до будь-яких тестових дій протягом усього життєвого циклу розробки програмного забезпечення. Приклади інструментів, які підтримують керування тестуванням і тестовим програмним забезпеченням, включають:
- Інструменти керування тестами та інструменти керування життєвим циклом додатків (ALM)
- Інструменти керування вимогами (наприклад, відстеження до об’єктів тестування)
- Інструменти управління дефектами
- Інструменти керування конфігурацією
- Інструменти безперервної інтеграції (D)
Підтримка інструментів для статичного тестування
- Інструменти статичного аналізу (D)
Підтримка інструментів для проєктування та впровадження тестів
Інструменти розробки тестів допомагають у створенні придатних для обслуговування робочих продуктів у проєктуванні та реалізації тестів, включаючи тестові випадки, тестові процедури та тестові дані. Приклади таких інструментів:
- Інструменти тестування на основі моделі
- Засоби підготовки тестових даних
У деяких випадках інструменти, які підтримують розробку та впровадження тестів, також можуть підтримувати виконання тестів і журналювання або надавати свої результати безпосередньо іншим інструментам, які підтримують виконання тестів і журналювання.
Підтримка інструментів для виконання тестів і журналювання
Існує багато інструментів для підтримки та вдосконалення виконання тестів і ведення журналів. Приклади цих інструментів:
- Інструменти виконання тестів (наприклад, для запуску регресійних тестів)
- Інструменти покриття (наприклад, покриття вимог, покриття коду (D))
- Перевірка джгутів (D)
Підтримка інструментів для вимірювання продуктивності та динамічного аналізу
Інструменти вимірювання продуктивності та динамічного аналізу є важливими для підтримки діяльності з тестування продуктивності та навантаження, оскільки ці дії неможливо ефективно виконати вручну. Приклади цих інструментів:
- Інструменти тестування продуктивності
- Інструменти динамічного аналізу (D)
Підтримка інструментів для потреб спеціалізованого тестування
На додаток до інструментів, які підтримують загальний процес тестування, існує багато інших інструментів, які підтримують більш специфічне тестування нефункціональних характеристик.
Інструментальна підтримка тестування (версія 4.0)
Інструменти тестування підтримують і полегшують багато видів тестування. Приклади включають, але не обмежуються:
- Інструменти управління – підвищення ефективності процесу тестування шляхом полегшення керування SDLC, вимогами, тестами, дефектами, конфігурацією
- Інструменти статичного тестування – підтримують тестувальника у виконанні оглядів і статичного аналізу
- Інструменти розробки та реалізації тестів – полегшують створення тестових випадків, тестових даних і тестових процедур
- Інструменти виконання тестів і охоплення – полегшують автоматизоване виконання тестів і вимірювання охоплення
- Нефункціональні інструменти тестування – дозволяють тестувальнику виконувати нефункціональне тестування, яке важко або неможливо виконати вручну
- Інструменти DevOps – підтримка конвеєра доставки DevOps, відстеження робочого процесу, автоматизованого збирання, CI/CD
- Інструменти співпраці – полегшують спілкування
- Інструменти, що підтримують масштабованість і стандартизацію розгортання (наприклад, віртуальні машини, інструменти контейнеризації)
- Будь-який інший інструмент, який допомагає у тестуванні (наприклад, електронна таблиця є інструментом тестування в контексті тестування)
Переваги та ризики автоматизації тестування (версія 3.1)
Просто придбання інструменту не гарантує успіху. Кожен новий інструмент, запроваджений в організації, вимагатиме зусиль для досягнення реальних і тривалих переваг. Існують потенційні переваги та можливості використання інструментів у тестуванні, але є й ризики. Особливо це стосується інструментів виконання тестів (які часто називають автоматизацією тестування).
Потенційні переваги використання інструментів для підтримки виконання тесту включають:
- Зменшення повторюваної ручної роботи (наприклад, запуск регресійних тестів, завдання налаштування/видалення середовища, повторне введення тих самих тестових даних і перевірка на відповідність стандартам кодування), що економить час
- Більша узгодженість і повторюваність (наприклад, тестові дані створюються узгодженим чином, тести виконуються інструментом у тому самому порядку з тією ж частотою, а тести послідовно виводяться на основі вимог)
- Більш об’єктивне оцінювання (наприклад, статичні вимірювання, охоплення)
- Спрощений доступ до інформації про тестування (наприклад, статистичні дані та графіки про хід тестування, рівень дефектів і продуктивність)
Потенційні ризики використання інструментів для підтримки тестування включають:
- Очікування щодо інструменту можуть бути нереалістичними (включно з функціональністю та простотою використання)
- Час, вартість і зусилля для початкового впровадження інструменту можуть бути недооцінені (включаючи навчання та зовнішню експертизу)
- Час і зусилля, необхідні для досягнення значних і постійних переваг від інструменту, можуть бути недооцінені (включаючи необхідність змін у процесі тестування та постійного вдосконалення способу використання інструменту)
- Зусилля, необхідні для підтримки тестових робочих продуктів, створених інструментом, можуть бути недооцінені
- На інструмент можна покладатися занадто багато (розглядається як заміна дизайну або виконання тесту або використання автоматизованого тестування, де ручне тестування було б кращим)
- Контроль версій тестових робочих продуктів можна знехтувати
- Проблеми взаємозв’язку та сумісності між критично важливими інструментами, такими як інструменти керування вимогами, інструменти керування конфігурацією, інструменти керування дефектами та інструменти від багатьох постачальників, можуть бути знехтувані
- Постачальник інструменту може припинити діяльність, вилучити інструмент з експлуатації або продати інструмент іншому постачальнику
- Постачальник може надати погану відповідь щодо підтримки, оновлень і виправлення дефектів
- Проєкт з відкритим кодом може бути призупинено
- Інструмент може не підтримувати нову платформу чи технологію
- Може не бути чіткого права власності на інструмент (наприклад, для наставництва, оновлень тощо)
Переваги та ризики автоматизації тестування (версія 4.0)
Просто придбання інструменту не гарантує успіху. Кожен новий інструмент вимагатиме зусиль для досягнення реальних і тривалих переваг (наприклад, для впровадження інструменту, обслуговування та навчання). Існують також деякі ризики, які потребують аналізу та пом’якшення.
Потенційні переваги використання автоматизації тестування включають:
- Економія часу завдяки зменшенню повторюваної ручної роботи (наприклад, виконання регресійних тестів, повторне введення тих самих даних тесту, порівняння очікуваних результатів із фактичними результатами та перевірка на відповідність стандартам кодування)
- Запобігання простим людським помилкам завдяки більшій послідовності та повторюваності (наприклад, тести послідовно виводяться з вимог, дані тестів створюються систематично, а тести виконуються інструментом у тому самому порядку з тією ж частотою)
- Більш об’єктивна оцінка (наприклад, охоплення) і надання показників, які є надто складними для визначення людьми
- Спрощений доступ до інформації про тестування для підтримки управління тестуванням і звітності про тестування (наприклад, статистичні дані, графіки та зведені дані про хід тестування, рівень дефектів і тривалість виконання тесту)
- Скорочений час виконання тесту для забезпечення раннього виявлення дефектів, швидшого зворотного зв’язку та швидшого часу виходу на ринок
- Більше часу для тестувальників для розробки нових, глибших і ефективніших тестів
Потенційні ризики використання автоматизації тестування включають:
- Нереалістичні очікування щодо переваг інструменту (включно з функціональністю та простотою використання).
- Неточні оцінки часу, витрат, зусиль, необхідних для впровадження інструменту, підтримки сценаріїв тестування та зміни існуючого ручного процесу тестування.
- Використання тестового інструменту, коли ручне тестування більш доречне.
- Занадто покладатися на інструмент, наприклад, ігнорувати потребу критичного мислення людини.
- Залежність від постачальника інструменту, який може припинити роботу, припинити використання інструменту, продати інструмент іншому постачальнику або надати погану підтримку (наприклад, відповіді на запити, оновлення та виправлення дефектів).
- Використання програмного забезпечення з відкритим вихідним кодом, яке може бути залишено, що означає відсутність доступності подальших оновлень, або його внутрішні компоненти можуть потребувати досить частих оновлень як подальший розвиток.
- Інструмент автоматизації не сумісний із платформою розробки.
- Вибір невідповідного інструменту, який не відповідає нормативним вимогам або стандартам безпеки.
Особливі міркування щодо виконання тестів та інструментів керування тестами (версія 3.1)
Зазначені вище підходи вимагають досвіду роботи з мовою сценаріїв (тестувальників, розробників або спеціалістів з автоматизації тестування). При використанні підходів до тестування на основі даних або ключових слів тестувальники, які не знайомі з мовою сценаріїв, також можуть зробити свій внесок, створивши тестові дані або ключові слова для цих попередньо визначених сценаріїв. Незалежно від використовуваної методики створення сценаріїв, очікувані результати для кожного тесту потрібно порівнювати з фактичними результатами тесту або динамічно (під час виконання тесту), або зберігати для подальшого порівняння (після виконання).
Інструменти тестування на основі моделі (MBT) дозволяють зафіксувати функціональну специфікацію у формі моделі, наприклад діаграми діяльності. Зазвичай це завдання виконує системний розробник. Інструмент MBT інтерпретує модель, щоб створити специфікації тестового випадку, які потім можна зберегти в інструменті керування тестами або виконати інструментом виконання тестів.
Інструменти керування тестами часто потребують взаємодії з іншими інструментами чи електронними таблицями з різних причин, зокрема:
- Виробляти корисну інформацію у форматі, який відповідає потребам організації
- Підтримувати постійну відстежуваність вимог у інструменті керування вимогами
- Для зв’язку з інформацією про версію тестового об’єкта в інструменті керування конфігурацією
Це особливо важливо враховувати під час використання інтегрованого інструменту (наприклад, керування життєвим циклом програми), який включає модуль керування тестуванням, а також інші модулі (наприклад, графік проєкту та інформацію про бюджет), які використовуються різними групами в організації.
В цьому відео починаємо працювати з секцію 6.1.
00:02:17 Test Tool Considerations (v 3.1)
00:04:53 Test Tool Classification (v 3.1)
00:22:36 Tool Support for Testing (v 4.0)
00:27:21 Benefits and Risks of Test Automation
00:48:58 Special Considerations for Test Execution and Test Management Tools (V 3.1)