Конспект «Тестування ПЗ та забезпечення якості»
Модуль «Моделі, методології та фреймворки в розрізі управління якістю програмного продукту»
Загальна ціль модулю
- Ми знайомимося з процесами розробки ПЗ з «вертолітного погляду» — від загальних моделей до конкретних методологій та фреймворків.
- Важливо розуміти: кожна модель впливає на якість продукту, бо визначає, коли і як тестувальник підключається до процесу. Чим раніше він включений — тим більше впливу має на якість кінцевого продукту.
Життєвий цикл розробки ПЗ
SDLC (Software Development Life Cycle) — концепція, яка описує етапи створення ПЗ від ідеї до підтримки.
Основні моделі розробки
- Waterfall (каскадна модель)
Лінійна послідовність етапів, майже без повернення назад. Мінус — складно виправляти помилки після запуску.
- Prototyping model Створюється швидкий прототип (чернетка продукту), щоб замовник і команда могли перевірити функціонал і внести зміни до повноцінної розробки.
- Iterative & Incremental
Продукт створюється частинами (ітераціями). Дає більше гнучкості. Раніше знаходжуються баги та недоліки.
- Спіральна модель поєднує ітеративний підхід з аналізом ризиків: кожен цикл включає планування, розробку, тестування та оцінку ризиків перед наступним кроком. Цикли закінчуються релізами нової версії, чи оновленнями поточної.
- V-model
Тестування планується паралельно з розробкою. Кожному етапу відповідає рівень тестування.
- Agile (гнучкий підхід, своєрідна «філософія» розробки)
Маленькі ітерації, швидкі результати, постійний зворотний зв’язок. Основний стандарт сьогодні.
Популярні Agile методології та фреймворки
Scrum — фреймворк, де важливі
- ролі (Product Owner, Scrum Master, Dev Team)
- події (Sprint, Daily Scrum, Planning, Sprint Review, Sprint Retrospective)
- артефакти (Product Backlog, Sprint Backlog, Increment)
- Тестувальник є частиною команди розробки, тестує інкременти у спринтах, тісно співпрацює з розробниками й Product Owner.
Kanban — метод управління роботою, де важлива візуалізація та потік завдань.
- Принципи: візуалізація завдань на дошці, обмеження Work in Progress (WIP), безперервність процесу.
- Інструмент: Kanban board (колонки які відображають етапи процесу створення продукту в команді).
- Фокус: баланс між завантаженням команди та швидкістю виконання, зменшення затримок.
- Тестувальник контролює якість на своєму етапі у потоці завдань, забезпечує швидкий зворотний зв’язок.
Lean — підхід до організації процесів, орієнтований на створення максимальної цінності з мінімальними втратами.
- Принципи: цінність для клієнта, усунення втрат, оптимізація потоку створення цінності, безперервне вдосконалення.
- Інструменти: Value Stream Mapping, Kaizen, Just-in-Time.
- Фокус: мінімізувати «зайве» (час, ресурси, помилки), покращувати якість і ефективність.
- Тестувальник допомагає виявляти «втрати» у процесах, підкреслює помилки та їх причини, знижує дефекти, забезпечує якість продукту мінімальними зусиллями.
Моделі та роль тестувальника
Розуміння моделі = розуміння, де і як тестування вбудовується у процес.
- Waterfall - тестувальник підключається наприкінці, перевіряє готовий продукт; обмежений вплив на якість.
- Prototyping model – тестувальник перевіряє прототип, збирає відгуки користувачів, фіксує невідповідності та допомагає уточнити вимоги, щоб уникнути помилок у майбутньому продукті.
- Спіральна модель – тестувальник бере участь у кожному витку спіралі: оцінює ризики, тестує прототипи, дає зворотний зв’язок перед переходом до наступного циклу.
- Iterative – тестувальник перевіряє кожну нову частину продукту; поступово накопичує сценарії тестування.
- V-model – тестувальник бере участь із самого початку, планує тести паралельно з розробкою; кожен етап має свій рівень тестування.
- У Agile — тестування інтегроване в команду, постійне, тестувальник бере участь у всьому процесі.