Рівень 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 (англійською)

Проєктування тестування

Проєктування складається з чотирьох основних етапів. Коли ви пройдете їх, основна частина тест-плану буде готова.

  1. Визначити й описати тестові сценарії

На першому етапі ви продумуєте й намічаєте, які тест-кейси вам потрібно написати. Потім за цією структурою писатимете чек-листи або тест-кейси залежно від вимог до деталізації документів.

2. Підготувати аналіз очікуваного робочого навантаження (для навантажувального тестування)

У цьому випадку з керівництвом погоджується очікуване навантаження проєкту:

кількість користувачів, кількість кроків у user story для середнього користувача. Час сесії, пікове навантаження тощо...

3. Визначити й структурувати тестові процедури

Тут потрібно вирішити, які тести спочатку проєктуватимуться ручними, а які автоматизованими. Розбити їх за розділами. Визначити підхід до тестування. Розподілити функціонал між колегами.

4. Переглянути й оцінити тестове покриття

Після того як у вас будуть готові тестові скрипти, ви зможете оцінити тестове покриття функціоналу проєкту. Зрозуміти, чи досягли ви потрібного мінімуму, чи треба ще щось покрити тестами. Час оглянути проєкт і вдоволено усміхнутися після виконаної роботи.

Моя місія — допомагати. Я даватиму тобі коментарі до кожного пункту тест-плану

Реалізація тестування
  • Записати або запрограмувати тестові скрипти
  • Визначити спеціальну тестову функціональність у дизайн-моделі та моделі реалізації

Іноді в компаніях існує тестова функціональність, яка спрощує рутинні операції. Наприклад, скрипт, що додасть n сторінок на сайт, щоб не робити це вручну.

  • Встановити зовнішні набори даних для тестування

Зібрати потрібний набір даних для тестування, якщо це потрібно. Наприклад, дані карток для проведення тестових платежів.

Виконання тестування
  • Виконати тестові процедури
  • Оцінити виконання тестування (завершено, не завершено)
  • Виправити «провалені» тести
  • Виправити, якщо потрібно, тестові процедури
  • Перевірити результати
  • Проаналізувати неочікувані результати
  • Запротоколювати дефекти
Оцінка тестування
  • Оцінити покриття функціональності тестовими сценаріями

Переконатися, що кожен важливий вузол функціоналу перевіряється в якомусь тесті. Важливо не забувати про негативні тестові сценарії.

  • Оцінити покриття коду тестовими сценаріями

Оцінюється % коду, що покритий тестами.

  • Проаналізувати дефекти

Зрозуміти локалізацію та причини дефектів. Якщо багато багів у якомусь конкретному місці, йому потрібно приділити особливу увагу, підвищивши деталізацію покриття, а також урахувати це під час регресійного тестування. Можливо, порушити питання про проблемну якість коду в деяких програмістів.

  • Визначити, чи було досягнуто критеріїв завершеності та успішності тестування

Насамперед проаналізувати, чи досягнуто метрик тестування (покриття тестами, перевірка всього функціоналу тощо). А також чи відчуваєте ви, що перевірили все повністю, чи не трапляються ще критичні баги.

Практичні поради:
  • Тестовий скрипт має працювати в кожному тестовому прогоні або бути повністю виключеним із тестового набору
  • Тестові скрипти мають відтворюватися з моменту розробки
  • Покривайте автоматизованими скриптами виявлені помилки критичного пріоритету
  • Зафіксуйте основні положення роботи з автоматизованим тестуванням у Плані якості продукту
  • Установіть у метриці автоматизованого покриття пріоритет «заборони випуску версії»
  • Не намагайтеся створити тест-план точнісінько таким, як було запропоновано. Кожен проєкт унікальний
  • Спробуйте застосувати концепцію «живих документів» Користуйтеся здоровим глуздом… і ще раз здоровим глуздом! і ставте правильні запитання :)

Корисні статті для прочитання:

Метрики тестування

Відчуваю я, що матеріал ти засвоїв. Поміркуй над цими запитаннями, учню мій. Відповідь ти знайдеш у розумінні цього рівня.

Цей рівень дуже важливий на шляху тестувальника. Чубакка каже, що цей і наступний рівні були найважчими в його житті!

Ще б пак, адже тобі доведеться досліджувати Зорю смерті наприкінці наступного рівня. Зроби вирішальний крок у цьому курсі — пройди тест і виконай завдання. Тоді ти напевно вже наполовину станеш тестувальником.

Тест

R2D2, не чіпляйся до юного тестувальника зі своїми тестами!

Нехай на практиці себе спробує.

Практика

Рівень 8