Рівень 7. Етапи тестування
І ось настав час вирішального етапу в битві зі злом. Ми готуємося підірвати Зорю смерті! Щоб уразити ворога, нам потрібно скласти грамотний план, вибудувати тактику та послідовність дій у чіткому порядку.
Як ти здогадався, ми готуватимемо план тестування. Вершина мистецтва тестувальника, кульмінація теоретичної частини, фанфари, барабанний дріб! Найскладніша технічна документація в тестуванні скоритиметься тобі сьогодні!
Етапи тестування
Перш ніж почати планувати процес тестування, потрібно розбити весь процес на етапи:
- Етапами процесу тестування ПЗ є групи робіт, що визначають основний напрям активностей для досягнення заданого й визначеного для всього етапу результату
- Виокремлення основних активностей і групування їх в етапи робіт дає змогу проводити планування всіх активностей та оцінку трудовитрат на певний етап робіт із тестування ПЗ
З яких етапів складається процес тестування:
Це важливо знати кожному тестувальнику!
Тестування складається з таких етапів:
- Планування тестування
- Проєктування тестів
- Реалізація/запис тестових процедур
- Виконання тестів
- Налагодження тестів
- Аналіз отриманих результатів
- Документування отриманих результатів
Тут, наче, все просто і зрозуміло. Усі ці етапи ми вже обговорювали і проходили. Усе це окремо ти вмієш робити, і все, що тепер треба скласти, — це план виконання цих дій.
Планування тестування
У цьому випадному списку ти зможеш дізнатися, що включає в себе перший етап тестування (планування). Власне, заради цього й затівався цей рівень

"Навіщо взагалі потрібен план тестування? — запитаєте ви. — Адже в мене є тест-кейси, технічне завдання, зрештою, я й так знаю, що робити, можу все розповісти на пальцях!"
І це правильно. Моя особиста думка (і вона збігається з думкою багатьох роботодавців) полягає в тому, що витрати часу на документацію мають бути неспівмірними з часом на безпосереднє тестування, тобто не перевищувати приблизно 10% від усього витраченого часу.
Наприклад, якщо вам належить протестувати лише форму надсилання даних, як на 4 рівні, тест-план вам для цього не потрібен — ви витратите на нього більше часу, ніж на саме тестування.
Тест-план необхідний тоді, коли фіча велика і втримати весь обсяг роботи з неї в голові просто неможливо. Жодним чином не можна пропустити якийсь з аспектів тестування. І для цього треба занести все в документ, розсортувати порядок дій, обміркувати все заздалегідь. Особливо важливо мати тест-план, якщо в тестуванні беруть участь кілька людей. Тоді ви вже економите час на нарадах і багаторазових поясненнях плану дій іншим людям.
Важливі факти про план тестування:
- План тестування містить: обсяг робіт, терміни виконання робіт, шляхи розв'язання завдань із виконання робіт, ресурси, календарний план виконання робіт
- Це основний артефакт, що узгоджує плани груп розробки та тестування
- Необхідний артефакт для виконання робіт із планування проєкту розробки та здачі ПЗ
Основні розділи плану тестування

- Назва, Проєкт
- Журнал змін
- Вступ Ідентифікація проєкту Область застосування Вихідні дані Призначення
- Тестові вимоги Стратегія тестування (далі) Ресурси Розклад
- Матеріали, що підлягають здачі
Поки ти все ще вчишся, C3PO дійшов до 23 рівня, став тестувальником і тепер кайфує
Стратегія тестування

Стратегія пишеться на самому початку. У ній прописується черговість виконання робіт, включно навіть із наповненням вашого тест-плану. Наприклад, черговість розробки документації та фактичного проходження тестів.
- Робота з вхідною технічною документацією (як-от ТЗ)
- Генерація тестової документації
- Вибір типів тестування, створення тестового скрипта: Інсталяційне тестування Конфігураційне тестування Тестування безпеки та керування доступом Навантажувальне тестування Тестування даних і цілісності бази даних Тестування інтерфейсу користувача Тестування бізнес-циклів Функціональне тестування Інструментальні засоби тестування
Ресурси
У тест-плані описуються ресурси, необхідні для проведення тестування у вказані вами терміни. Запит на ресурси для вашого конкретного проєкту формується виходячи з пріоритету завдання, дедлайну та реальних ресурсів вашої компанії.
Ресурси в тестуванні бувають двох видів: людські — це ролі, які вам знадобляться для роботи над проєктом, і технічні — уся техніка, необхідна для тестування.

- Ролі Інженер-розробник Проєктувальник Адміністратор бази даних Адміністратор тестованої системи Тестувальник Проєктувальник тестування Менеджер із тестування
- Технічні ресурси Тестова БД Тестовий сервер Тестові середовища Тестовий репозиторій
Розклад тестування
- Визначення обсягів тестування
- Визначення порядку проведення тестування
- Визначення порядку вимірювання результатів тестування
- Календарний план
Хоча час — один з наших найцінніших ресурсів, зазвичай ми недостатньо його цінуємо. Щоб грамотно розподілити час і витрати, у тест-плані міститься календарний план робіт.
Особливістю планування для Agile є те, що оцінка виконується послідовно на кожній ітерації. Ніхто не очікує, що попередні оцінки будуть такими ж точними, як подальші. Покращення відбувається з часом, у міру того як команда підвищує впевненість у своїх здібностях і можливостях.
На додачу до основного підходу в оцінюванні, що базується на історичних знаннях, члени команди в Agile часто застосовують відносні моделі оцінювання, за яких команди розвивають оповіді (історії), що визначають потреби користувачів. Ці історії аналізуються командами, і кожній історії зіставляються числові значення (Story Points). Story Points (SP) можуть бути виражені в абстрактних одиницях виміру, наприклад у вигляді числових значень або у формі ідеальних днів розробника (Ideal Developer Days, IDDs).
У тестуванні, як і в усіх бізнес-процесах, час, витрачений на проєкт, дорівнюватиме обсягу проєкту (кількість story points), поділеному на кількість тестувальників, що беруть участь у проєкті.
При цьому спочатку визначається обсяг тестування, потім зі стратегії береться порядок етапів тестування, відводиться час на підсумкові роботи, тобто звітність — і все це заноситься в календарний план
Матеріали, що підлягають здачі
- Модель тестування
- Протоколи тестування
- Звіти про виявлені дефекти системи
Гадаю, тут і так усе зрозуміло. На початку роботи здається тест-план, а вже в процесі самого тестування — баг-репорти. Під протоколами мають на увазі тест-кейси й чек-листи з відмітками про проходження.
Ми наближаємося до мети
Шаблони тест-планів
Я давати тобі шаблони, ознайомся. Це цікаво.
За версією Rational Unified Process
За версією IEEE (ANSI/IEEE Standard 829-1983)
За моєю особистою версією WIX.com (англійською)
Проєктування тестування
Проєктування складається з чотирьох основних етапів. Коли ви пройдете їх, основна частина тест-плану буде готова.
- Визначити й описати тестові сценарії
На першому етапі ви продумуєте й намічаєте, які тест-кейси вам потрібно написати. Потім за цією структурою писатимете чек-листи або тест-кейси залежно від вимог до деталізації документів.
2. Підготувати аналіз очікуваного робочого навантаження (для навантажувального тестування)
У цьому випадку з керівництвом погоджується очікуване навантаження проєкту:
кількість користувачів, кількість кроків у user story для середнього користувача. Час сесії, пікове навантаження тощо...
3. Визначити й структурувати тестові процедури
Тут потрібно вирішити, які тести спочатку проєктуватимуться ручними, а які автоматизованими. Розбити їх за розділами. Визначити підхід до тестування. Розподілити функціонал між колегами.
4. Переглянути й оцінити тестове покриття
Після того як у вас будуть готові тестові скрипти, ви зможете оцінити тестове покриття функціоналу проєкту. Зрозуміти, чи досягли ви потрібного мінімуму, чи треба ще щось покрити тестами. Час оглянути проєкт і вдоволено усміхнутися після виконаної роботи.

Моя місія — допомагати. Я даватиму тобі коментарі до кожного пункту тест-плану
Реалізація тестування
- Записати або запрограмувати тестові скрипти
- Визначити спеціальну тестову функціональність у дизайн-моделі та моделі реалізації
Іноді в компаніях існує тестова функціональність, яка спрощує рутинні операції. Наприклад, скрипт, що додасть n сторінок на сайт, щоб не робити це вручну.
- Встановити зовнішні набори даних для тестування
Зібрати потрібний набір даних для тестування, якщо це потрібно. Наприклад, дані карток для проведення тестових платежів.
Виконання тестування
- Виконати тестові процедури
- Оцінити виконання тестування (завершено, не завершено)
- Виправити «провалені» тести
- Виправити, якщо потрібно, тестові процедури
- Перевірити результати
- Проаналізувати неочікувані результати
- Запротоколювати дефекти
Оцінка тестування
- Оцінити покриття функціональності тестовими сценаріями
Переконатися, що кожен важливий вузол функціоналу перевіряється в якомусь тесті. Важливо не забувати про негативні тестові сценарії.
- Оцінити покриття коду тестовими сценаріями
Оцінюється % коду, що покритий тестами.
- Проаналізувати дефекти
Зрозуміти локалізацію та причини дефектів. Якщо багато багів у якомусь конкретному місці, йому потрібно приділити особливу увагу, підвищивши деталізацію покриття, а також урахувати це під час регресійного тестування. Можливо, порушити питання про проблемну якість коду в деяких програмістів.
- Визначити, чи було досягнуто критеріїв завершеності та успішності тестування
Насамперед проаналізувати, чи досягнуто метрик тестування (покриття тестами, перевірка всього функціоналу тощо). А також чи відчуваєте ви, що перевірили все повністю, чи не трапляються ще критичні баги.
Практичні поради:
- Тестовий скрипт має працювати в кожному тестовому прогоні або бути повністю виключеним із тестового набору
- Тестові скрипти мають відтворюватися з моменту розробки
- Покривайте автоматизованими скриптами виявлені помилки критичного пріоритету
- Зафіксуйте основні положення роботи з автоматизованим тестуванням у Плані якості продукту
- Установіть у метриці автоматизованого покриття пріоритет «заборони випуску версії»
- Не намагайтеся створити тест-план точнісінько таким, як було запропоновано. Кожен проєкт унікальний
- Спробуйте застосувати концепцію «живих документів» Користуйтеся здоровим глуздом… і ще раз здоровим глуздом! і ставте правильні запитання :)

Корисні статті для прочитання:
Відчуваю я, що матеріал ти засвоїв. Поміркуй над цими запитаннями, учню мій. Відповідь ти знайдеш у розумінні цього рівня.
1. З яких етапів складається процес тестування?
2. Які матеріали підлягають здаванню?

Цей рівень дуже важливий на шляху тестувальника. Чубакка каже, що цей і наступний рівні були найважчими в його житті!
Ще б пак, адже тобі доведеться досліджувати Зорю смерті наприкінці наступного рівня. Зроби вирішальний крок у цьому курсі — пройди тест і виконай завдання. Тоді ти напевно вже наполовину станеш тестувальником.
R2D2, не чіпляйся до юного тестувальника зі своїми тестами!
Нехай на практиці себе спробує.



