Лабораторна робота №12 (2 години)
Тема: Управління якістю (QA) та технічний борг
Практика забезпечення якості програмного продукту. Розробка базового Плану тестування (Test Plan), написання Тест-кейсів (Test Cases) та розуміння концепції Технічного боргу (Technical Debt), як найбільшого невидимого ризику IT-проєкту.
Мета: Навчитися мислити як QA Engineer: розробляти тестові сценарії для перевірки вимог (які ми писали у Лаб №5), вміти відрізняти QA від QC, та планувати час на рефакторинг коду.
Технологічний стек: Google Sheets / MS Excel / Будь-яка система управління тестами (TestRail, Zephyr - за бажанням).
Завдання
Якість — це не лише відсутність багів (це QC - Quality Control), це процес розробки надійного ПЗ від самого початку (це QA - Quality Assurance).
У цій роботі ви повернетеся до User Stories з Лабораторної №5 і напишете для них документацію, за якою тестувальники будуть перевіряти роботу програмістів.
Перелік завдань:
- Скласти мінімальний Test Plan (План тестування) для вашого проєкту.
- Написати 3 детальні Test Cases (Тест-кейси) на основі ваших вимог.
- Описати стратегію управління Технічним боргом у вашому проєкті.
Хід виконання роботи
Крок 1. Розробка міні-стратегії тестування (Test Plan)
Test Plan — це документ керівника (QA Lead або PM), який описує, ЩО ми будемо тестувати, ЯК, і ХТО це буде робити.
Напишіть у звіті 3 ключові розділи вашого особистого Плану тестування:
- Об’єкт тестування: (Що ми тестуємо? Наприклад: iOS додаток та відповідний йому API).
- Види тестування, які будуть застосовані: Оберіть 3 види з теорії (наприклад, Інтеграційне, Регресійне, Навантажувальне, Smoke_test) і поясніть в одному реченні, ЩО САМЕ ви будете перевіряти цим видом тестування на вашому проєкті.
- Критерії зупинки (Suspension / Exit Criteria): За яких умов реліз переноситься? (Наприклад: Знайдено хоча б один баг рівня Critical).
Крок 2. Написання Тест-кейсів (Test Cases)
Тест-кейс — це детальна покрокова інструкція для QA, як перевірити конкретну кнопку чи функцію.
Візьміть 1 вашу User Story з Лабораторної №5. На її основі створіть 3 Тест-кейси у вигляді таблиці:
- 1 позитивний тест-кейс (Happy Path — користувач все робить правильно).
- 2 негативних тест-кейси (Користувач робить помилки або ламає систему).
Шаблон таблиці для 1 Тест-кейсу (відтворіть його тричі):
| Поле |
Опис |
| ID та Назва: |
TC-01: Перевірка успішної авторизації |
| Передумова (Preconditions): |
Користувач знаходиться на екрані “Login”. Валідна пошта: test@mail.com, пароль 12345 існують в БД. |
| Кроки (Steps): |
1. Ввести test@mail.com у поле Email. 2. Ввести 12345 у поле Password. 3. Натиснути кнопку “Увійти”. |
| Очікуваний результат (Expected Result): |
Користувач перенаправлений на екран “Головна”, у правому куті відображається його ім’я. |
| Фактичний результат (Actual Result): |
(Тестувальник заповнює це після проходження тесту. Напишіть “Pass”, якщо тест пройдено) |
Крок 3. Стратегія роботи з Технічним боргом (Technical Debt)
Більшість ризиків в IT пов’язані з поганим кодом. Технічний борг — це коли ми пишемо “костурбак” (швидкий, нестабільний код), щоб встигнути до дедлайну, розуміючи, що потім його доведеться переписувати.
Напишіть у звіті коротке есе (3-4 абзаци) як PM цього проєкту:
- Уявіть ситуацію: інвестор вимагає випустити додаток на місяць швидше. Ваші програмісти кажуть: “Ми встигнемо, тільки якщо відмовимося від написання Unit-тестів і скопіюємо частину коду з іншого проєкту”.
- Опишіть: чи підете ви на цей крок свідомого створення технічного боргу?
- Якщо так, ЯК САМЕ ви плануєте “виплачувати” цей борг у наступних Спринтах (щоб проєкт не перетворився через півроку на систему, яку неможливо підтримувати)?
Контрольні запитання
- У чому фундаментальна різниця між Quality Assurance (QA) та Quality Control (QC)? Який з цих підходів є превентивним (до появи багів)?
- Чому вважається, що вартість виправлення бага (Cost of Defect) на етапі збору вимог (Лаб №5) у 10-100 разів менша, ніж на етапі тестування або в Production?
- Що таке “Smoke Test” (Димове тестування) і коли воно зазвичай виконується?
- Для чого тестувальникам потрібно писати негативні тест-кейси, якщо їхня головна задача — переконатися, що програма робить те, що вказано у вимогах замовника?
- Наведіть 2 приклади факторів, які найчастіше призводять до неконтрольованого накопичення Технічного боргу (Technical Debt) на реальних проєктах.
Вимоги до звіту
- У репозиторії курсу на GitHub додати файл
lab_12.md.
- В цей файл перенести результати виконання Кроків 1, 2 і 3 (Опис Test Plan, 3 розписаних Тест-кейси у таблицях, та короткий роздум щодо роботи з технічним боргом).
- У файлі
lab_12.md дати письмові відповіді на всі 5 контрольних запитань.
- Завантажити зміни на GitHub та надіслати посилання викладачу.