SDLC: моделі розробки ПЗ
Зміст
Модель розробки — це відповідь на запитання «у якому порядку команда проходить шлях від ідеї до релізу». Для тестувальника це не абстракція з підручника: саме модель визначає, коли ти вперше побачиш вимоги, скільки часу матимеш на перевірки, як часто доведеться ганяти регресію і чи будеш ти «останнім рубежем» перед релізом, чи рівноправним учасником команди з першого дня фічі.
На співбесідах тема стабільно в топі для trainee і junior: «чим V-модель відрізняється від waterfall», «як змінюється робота QA в Agile». Інтерв'юер перевіряє не завчені назви, а розуміння наслідків: що модель робить із вартістю дефекту і з місцем тестування в процесі. Саме це розуміння й будуємо в цій главі.
Фази SDLC і місце тестування
SDLC (software development lifecycle, життєвий цикл розробки ПЗ) — це набір фаз, через які проходить будь-який продукт, незалежно від процесу в конкретній команді:
- Збір і аналіз вимог — з'ясовуємо, що саме треба побудувати і навіщо.
- Проєктування (дизайн) — вирішуємо, як це буде влаштовано: архітектура, інтерфейси, дані.
- Реалізація (кодування) — пишемо код.
- Тестування — перевіряємо, що побудоване відповідає вимогам і придатне до використання.
- Впровадження (деплой) — віддаємо продукт користувачам.
- Підтримка (супровід) — виправляємо знайдене в експлуатації, розвиваємо далі.
Ключова думка: фази є в кожній моделі, а моделі відрізняються тим, у якому порядку і скільки разів ці фази проходяться. Один прохід від початку до кінця — послідовні моделі (waterfall, V-модель). Багато коротких проходів — ітеративні й інкрементні, включно з Agile.
Друга ключова думка — про місце тестування. У главі про базові поняття ми бачили, що вартість виправлення дефекту зростає з кожною фазою: помилка у вимогах, знайдена на проді, коштує на порядки дорожче, ніж знайдена на рев'ю документа. Тому силабус ISTQB формулює хороші практики, які працюють у будь-якій моделі:
- для кожної активності розробки існує відповідна тестова активність;
- кожен рівень тестування має власні цілі (докладно — у главі «Рівні тестування»);
- аналіз і проєктування тестів для рівня починаються під час відповідної фази розробки, а не після неї.
Третій пункт — це принцип раннього тестування з семи принципів у дії: тести можна проєктувати задовго до того, як з'явиться код, який можна виконувати. Далі побачимо, що різні моделі дають цьому принципу дуже різний простір.
Waterfall: послідовна класика
Каскадна модель (waterfall) — найстаріша й найпростіша з формалізованих: фази йдуть строго одна за одною, наступна починається після повного завершення попередньої, а результат кожної фази — затверджений документ. Назад «проти течії» повертатися не передбачено, звідси й метафора водоспаду. Показово, що вже Вінстон Ройс, який описав цю схему у статті 1970 року, вважав її в чистому вигляді ризикованою — але індустрія на десятиліття взяла на озброєння саме її.
Сильні сторони в моделі є, і вони пояснюють, чому вона досі жива:
- Передбачуваність. Обсяг, бюджет і терміни зафіксовані на старті — зручно для контрактів із фіксованою ціною.
- Документація. Кожна фаза лишає по собі артефакт, за яким можна відновити будь-яке рішення.
- Простота управління. Зрозуміло, на якій фазі проєкт і що далі.
Плата за це — пізній зворотний зв'язок. Працюючий продукт з'являється наприкінці, і якщо у вимогах була помилка (а вимоги — одне з найчастіших джерел дефектів), знайдеться вона тоді, коли все вже спроєктовано, написано й «протестовано». Зміни на цьому етапі максимально дорогі.
Для QA waterfall означає:
- тестувальник підключається пізно — коли код уже готовий;
- тестування — окрема фаза в кінці, і саме її стискають першою, коли розробка з'їла терміни (класичний біль: «реліз через тиждень, тестуй що встигнеш»);
- зате є час і підстави писати докладні тест-плани й тест-кейси за затвердженими вимогами ще до отримання білда.
V-модель: тести проєктуються разом із системою
V-модель — розвиток каскадної ідеї, який виправляє її головну ваду щодо тестування. Ліва гілка «V» — ті самі послідовні фази розробки, від вимог до коду. Права гілка — рівні тестування, і кожен із них парний до конкретної фази розробки:
Пунктирні зв'язки — суть моделі: приймальні тести проєктуються на фазі вимог, системні — на фазі системного дизайну, і так далі. Поки розробка спускається лівою гілкою, тестувальники вже працюють: аналізують вимоги на тестопридатність, пишуть тест-кейси, готують дані. Виконання тестів усе ще пізнє, але проєктування — раннє, і воно саме по собі знаходить дефекти у вимогах і дизайні, коли їх виправлення майже безкоштовне.
V-модель також зручно ілюструє пару верифікація/валідація: ліва гілка й нижні рівні правої відповідають на питання «чи будуємо ми продукт правильно» (верифікація, відповідність специфікаціям), а приймальне тестування нагорі — «чи правильний продукт ми будуємо» (валідація, відповідність потребам користувача).
Де це застосовують сьогодні: проєкти з жорсткою регуляторикою і високою ціною помилки — медичне ПЗ, авіоніка, автомобільні системи, банківський core. Там, де регулятор вимагає простежуваності «вимога → тест → результат», послідовна модель із документацією — не архаїзм, а типова відповідь на вимоги середовища.
Ітеративні й інкрементні моделі
Послідовні моделі ламаються там, де вимоги нестабільні. Відповідь індустрії — різати роботу на цикли. Тут важливо розрізняти дві осі, які часто плутають:
- Інкрементна розробка — продукт нарощується частинами: кожен інкремент додає нову працюючу функціональність до вже готової. Метафора: будуємо будинок кімната за кімнатою, кожна одразу житлова.
- Ітеративна розробка — продукт уточнюється повторними проходами: перша версія груба, кожна наступна ітерація її переробляє і покращує. Метафора: спершу ескіз олівцем, потім кольори, потім деталі.
На практиці підходи майже завжди поєднуються: команда і додає нове, і переробляє старе за фідбеком. Класичні представники родини — прототипування (швидка чорнова версія заради уточнення вимог), RUP (Rational Unified Process) і спіральна модель Баррі Боема, де кожен виток спіралі включає аналіз ризиків: спершу будуємо те, що найризикованіше, щоб дорогі сюрпризи спливли якомога раніше.
Для QA цикл на діаграмі означає фундаментальну зміну: тестування перестає бути фазою і стає повторюваною активністю. І головний наслідок — регресія: кожна ітерація може зламати те, що працювало в попередній, тож перевіряти доводиться не лише нове, а й старе — щоциклу. Обсяг регресійних перевірок зростає з кожним інкрементом, і саме тому в ітеративних моделях автоматизація з «приємного бонуса» перетворюється на умову виживання (що і в якому обсязі ганяти — у главі «Смоук, саніті, регресія і ретест»).
Agile оглядово
Agile — не окрема модель, а сімейство ітеративно-інкрементних підходів, об'єднаних цінностями Agile-маніфесту (2001): люди і взаємодія важливіші за процеси й інструменти; працюючий продукт — за вичерпну документацію; співпраця із замовником — за узгодження контракту; реакція на зміни — за дотримання плану. Важливо читати це як пріоритети, а не заперечення: праві частини теж мають цінність, просто ліві — більшу.
Практично це виглядає як робота короткими циклами (у Scrum — спринти, зазвичай 1–4 тижні) з працюючим інкрементом продукту наприкінці кожного. Для тестувальника Agile змінює майже все:
- QA всередині команди. Немає «відділу тестування», якому передають білд: тестувальник сидить у тій самій команді, що й розробники, і залучений від обговорення вимог до релізу.
- Тестування безперервне. Перевірки йдуть паралельно з розробкою в межах одного циклу: аналіз user story, тестування фічі щойно вона готова, регресія перед закриттям спринту.
- Легша документація. Замість багатосторінкових специфікацій — user story з acceptance criteria (розбір — у главі «Вимоги, user story та acceptance criteria»); тест-дизайн частіше спирається на чеклисти, ніж на детальні кейси.
- Регресія щоспринту. Той самий наслідок ітеративності, тільки в найгострішій формі: без автоматизованого регресійного набору команда або сповільнюється, або релізить наосліп.
Механіка Scrum і Kanban — ролі, події, артефакти, WIP-ліміти — розібрана окремо в главі «Agile для QA: Scrum і Kanban». А зв'язка коротких циклів із безперервною інтеграцією і деплоєм (CI/CD) чекає на тебе в розділі про Git і CI/CD.
Критерії вибору моделі
«Яка модель найкраща?» — некоректне питання; коректне — «найкраща для яких умов?». Основні критерії:
| Критерій | Тягне до послідовних моделей | Тягне до ітеративних / Agile |
|---|---|---|
| Стабільність вимог | Вимоги зрозумілі й зафіксовані | Вимоги розмиті, будуть змінюватися |
| Ціна помилки | Критична (медицина, авіація) — потрібні формальність і простежуваність | Помилку можна швидко виправити наступним релізом |
| Регуляторика | Аудит вимагає документованих фаз і підписів | Зовнішніх вимог до процесу немає |
| Замовник | Недоступний після підписання контракту | Готовий дивитися демо і давати фідбек щоциклу |
| Терміни виходу | Дата фіксована, обсяг зафіксований | Важливо випустити щось цінне якнайшвидше |
| Контракт | Фіксована ціна і обсяг | Оплата за часом/ітераціями |
Два чесні застереження. По-перше, критерії часто суперечать один одному (регульований домен і мінливі вимоги одночасно — буденність), тож рішення — завжди компроміс. По-друге, чисті моделі в природі майже не трапляються: реальні процеси — гібриди на кшталт «Scrum усередині, але релізи раз на квартал із формальною регресією» або «waterfall по фазах, але з проміжними демо». На співбесіді фраза «у нас був гібрид: ось що з чого» звучить достовірніше, ніж «у нас був канонічний Scrum».
Як модель змінює роботу QA
Зведемо головне — саме цю таблицю варто вміти відтворити словами на співбесіді:
| Аспект | Waterfall / V-модель | Ітеративні / Agile |
|---|---|---|
| Коли QA підключається | Пізно (waterfall) або рано на рівні аналізу (V-модель) | З першого дня, до появи коду |
| Тестування — це... | Окрема фаза наприкінці | Безперервна активність у кожному циклі |
| Документація тестів | Формальні тест-плани і докладні кейси | Чеклисти, AC, легкі кейси |
| Регресія | Один великий цикл перед релізом | Щоітерації, обсяг постійно росте |
| Автоматизація | Бажана | Критична: без неї цикл не замикається |
| Роль тестувальника | Незалежний контролер якості | Учасник команди, що вбудовує якість у процес |
Незмінним лишається ядро професії: аналізувати, проєктувати перевірки, виконувати їх і звітувати. Модель змінює коли, як формально і як часто це відбувається — але не що саме робить тестувальник. До речі, ця внутрішня логіка роботи тестування — окремий цикл STLC, і він живе всередині будь-якої моделі SDLC; це тема наступної глави: «STLC: життєвий цикл тестування».
Типові помилки
- Виглядає як «waterfall мертвий, його ніхто не використовує», а насправді в регульованих доменах із фіксованим обсягом послідовні моделі — досі поширена практика, і питання «коли waterfall доречний» на співбесіді перевіряє саме це.
- Виглядає як «V-модель — це waterfall, тільки з тестуванням», а насправді її суть — у парності: тести для кожного рівня проєктуються під час відповідної фази розробки, і це раннє проєктування само собою ловить дефекти вимог і дизайну.
- Виглядає як «Agile — це коли без документації», а насправді маніфест каже «працюючий продукт важливіший за вичерпну документацію», а не «замість неї»: user story, AC і чеклисти — теж документація, просто легша.
- Виглядає як «ітеративний та інкрементний — синоніми», а насправді це різні осі: інкрементність — про нарощування продукту частинами, ітеративність — про повторні проходи з уточненням; Agile поєднує обидві.
- Виглядає як «в Agile тестувальники не потрібні, бо всі тестують», а насправді зникає окрема фаза тестування, а не роль: експертиза тест-дизайну й нюх на ризики нікуди не діваються — вони просто працюють усередині команди з першого дня.
Підсумок
- Фази SDLC однакові всюди; моделі відрізняються порядком і кількістю проходів — один довгий (послідовні) чи багато коротких (ітеративні).
- У будь-якій моделі діє правило: кожній активності розробки відповідає тестова активність, і аналіз тестів починається разом із відповідною фазою розробки, а не після неї.
- Що пізніше модель дає зворотний зв'язок, то дорожчий дефект: пізнє тестування — головна ціна waterfall, раннє проєктування тестів — головна ідея V-моделі.
- Що коротші цикли, то більша вага регресії — і тим швидше автоматизація перетворюється з бонуса на необхідність.
- Чистих моделей майже не буває: описуй на співбесіді реальний процес свого проєкту і його наслідки для тестування, а не назву з підручника.
Що питають на співбесіді
Типові формулювання:
- «Назви фази SDLC. Де в них місце тестування?» — перевіряють, чи розумієш ти, що тестування не зводиться до фази після кодування.
- «Чим V-модель відрізняється від waterfall?» — чекають слова про парність рівнів тестування і фаз розробки та про раннє проєктування тестів; відповідь «там тестування є, а там немає» — червоний прапорець.
- «Чим ітеративна модель відрізняється від інкрементної?» — класична перевірка точності означень.
- «Як змінюється робота тестувальника в Agile порівняно з waterfall?» — найчастіше питання блоку; сильна відповідь іде через наслідки: безперервність, регресія щоспринту, автоматизація, робота без детальних вимог.
- «Коли waterfall кращий за Agile?» — перевіряють зрілість мислення: чи вмієш ти міркувати критеріями (регуляторика, стабільність вимог, ціна помилки), чи просто повторюєш «Agile — це добре».
- «Яка модель була на твоєму проєкті і як вона впливала на твою роботу?» — інтерв'юер дивиться, чи бачив ти процес зсередини: конкретика («регресію ганяли останні два дні спринту, тому ми автоматизували смоук») цінується вище за теорію.
Інтерв'юер на цьому блоці майже ніколи не хоче означень напам'ять — він хоче почути причинно-наслідкові зв'язки: модель → момент початку тестування → вартість дефекту → роль автоматизації. Будуй відповідь цим ланцюжком, і навіть просте питання прозвучить на рівень вище.
Джерела
- ISTQB CTFL Syllabus v4.0 — глава покриває розділ 2.1 «Testing in the Context of a Software Development Lifecycle» (рівні тестування з 2.2 — в окремій главі).
- ISTQB Glossary — канонічні означення термінів: SDLC, incremental/iterative development, verification, validation.
- Agile Manifesto — чотири цінності й дванадцять принципів; є українська версія.
- Scrum Guide — первинне джерело зі Scrum, знадобиться в главі про Agile для QA.
Що таке SDLC і які фази він включає?
SDLC (software development lifecycle, життєвий цикл розробки ПЗ) — набір фаз, через які проходить будь-який продукт: збір і аналіз вимог, проєктування, реалізація, тестування, впровадження, підтримка. Ключовий момент, який вирізняє сильну відповідь: фази є в кожній моделі, а моделі відрізняються тим, у якому порядку і скільки разів ці фази проходяться. Один довгий прохід — послідовні моделі (waterfall, V-модель), багато коротких — ітеративні й інкрементні, включно з Agile. Тому питання «назви фази» майже завжди продовжується питанням «а де в них тестування» — і на нього треба мати відповідь глибшу, ніж «четверта фаза».
Тестування — це окрема фаза SDLC чи щось більше?
Формально фаза така є, але зводити тестування до неї — помилка, яку інтерв'юер саме й перевіряє. Силабус ISTQB формулює практики, що працюють у будь-якій моделі: для кожної активності розробки існує відповідна тестова активність, кожен рівень тестування має власні цілі, а аналіз і проєктування тестів починаються під час відповідної фази розробки, а не після неї. Це принцип раннього тестування в дії: тести можна проєктувати задовго до появи коду, який можна виконувати. Практичний наслідок — тестувальник, що аналізує вимоги на тестопридатність, знаходить дефекти тоді, коли їх виправлення майже безкоштовне.
Що таке каскадна модель (waterfall) і які її сильні та слабкі сторони?
Waterfall — послідовна модель: фази йдуть строго одна за одною, наступна починається після повного завершення попередньої, результат кожної фази — затверджений документ, а повернення «проти течії» не передбачено. Сильні сторони: передбачуваність (обсяг, бюджет і терміни зафіксовані на старті — зручно для контрактів із фіксованою ціною), документація і простота управління. Головна плата — пізній зворотний зв'язок: працюючий продукт з'являється наприкінці, і помилка у вимогах знайдеться тоді, коли все вже спроєктовано й написано, тобто коштуватиме максимально дорого. Цікава деталь для сеньйорної відповіді: уже Вінстон Ройс, який описав схему 1970 року, вважав її в чистому вигляді ризикованою.
Що waterfall означає для роботи тестувальника на практиці?
Тестувальник підключається пізно — коли код уже готовий, а тестування є окремою фазою в кінці. Наслідок, знайомий кожному, хто в такому працював: саме цю фазу стискають першою, коли розробка з'їла терміни, — «реліз через тиждень, тестуй що встигнеш». З плюсів: є час і підстави писати докладні тест-плани й тест-кейси за затвердженими вимогами ще до отримання білда. Тобто робота формальніша й документованіша, але тестування опиняється в ролі «останнього рубежу» з найкоротшим запасом часу.
Чим V-модель відрізняється від waterfall?
Відповідь «там тестування є, а там немає» — червоний прапорець; суть V-моделі — у парності. Ліва гілка «V» — ті самі послідовні фази розробки, права — рівні тестування, і кожен рівень парний конкретній фазі: приймальні тести проєктуються на фазі вимог, системні — на фазі системного дизайну, інтеграційні — на архітектурному, модульні — на детальному. Поки розробка спускається лівою гілкою, тестувальники вже працюють: аналізують вимоги на тестопридатність, пишуть кейси, готують дані. Виконання тестів усе ще пізнє, але проєктування — раннє, і воно саме по собі знаходить дефекти вимог і дизайну, коли їх виправлення майже безкоштовне. Це і є головна відмінність: V-модель виправляє основну ваду waterfall щодо тестування, лишаючись послідовною моделлю.
Як V-модель ілюструє різницю між верифікацією і валідацією?
Верифікація відповідає на питання «чи будуємо ми продукт правильно» — тобто чи відповідає результат специфікаціям; валідація — «чи правильний продукт ми будуємо», тобто чи відповідає він потребам користувача. У V-моделі це видно геометрично: ліва гілка й нижні рівні правої (модульне, інтеграційне, системне тестування) — переважно верифікація, перевірка проти специфікацій, а приймальне тестування нагорі — валідація, перевірка проти реальних потреб. Практичний сенс розрізнення: продукт може ідеально відповідати специфікації і бути непотрібним користувачу — верифікація пройдена, валідація провалена.
Де сьогодні реально застосовують waterfall і V-модель — вони не застаріли?
Ні, і питання «коли waterfall доречний» на співбесіді перевіряє саме розуміння цього. Послідовні моделі — стандарт у доменах із жорсткою регуляторикою і високою ціною помилки: медичне ПЗ, авіоніка, автомобільні системи, банківський core. Там регулятор вимагає простежуваності «вимога → тест → результат», тож послідовна модель із повною документацією — не архаїзм, а вимога середовища. Додатковий аргумент — контракти з фіксованою ціною і обсягом: коли все зафіксовано на старті, передбачуваність waterfall стає перевагою.
Чим ітеративна розробка відрізняється від інкрементної?
Це різні осі, і їх плутання — класична перевірка точності означень. Інкрементна розробка — продукт нарощується частинами: кожен інкремент додає нову працюючу функціональність до вже готової (метафора: будуємо будинок кімната за кімнатою, кожна одразу житлова). Ітеративна — продукт уточнюється повторними проходами: перша версія груба, кожна наступна ітерація її переробляє і покращує (метафора: спершу ескіз олівцем, потім кольори, потім деталі). На практиці підходи майже завжди поєднуються — команда і додає нове, і переробляє старе за фідбеком; Agile поєднує обидві осі.
Що таке спіральна модель і в чому її ключова ідея?
Спіральна модель Баррі Боема — представник ітеративної родини, де кожен виток спіралі включає аналіз ризиків. Ключова ідея: спершу будуємо те, що найризикованіше, щоб дорогі сюрпризи спливли якомога раніше, а не наприкінці проєкту. Поруч у цій родині — прототипування (швидка чорнова версія заради уточнення вимог) і RUP (Rational Unified Process). Спільне в них одне: замість одного довгого проходу фаз — цикли, кожен із яких дає зворотний зв'язок.
Що фундаментально змінюється для тестування, коли команда переходить на цикли?
Тестування перестає бути фазою і стає повторюваною активністю: у кожному циклі є свій аналіз, свої перевірки нового і — головне — регресія. Кожна ітерація може зламати те, що працювало в попередній, тож перевіряти доводиться не лише нове, а й старе, щоциклу. Обсяг регресійних перевірок зростає з кожним інкрементом, і саме тому в ітеративних моделях автоматизація перетворюється з «приємного бонуса» на умову виживання: без автоматизованого регресійного набору команда або сповільнюється, або релізить наосліп.
Agile — це модель розробки?
Строго кажучи, ні: Agile — не окрема модель, а сімейство ітеративно-інкрементних підходів, об'єднаних цінностями Agile-маніфесту 2001 року. Цінностей чотири: люди і взаємодія важливіші за процеси й інструменти; працюючий продукт — за вичерпну документацію; співпраця із замовником — за узгодження контракту; реакція на зміни — за дотримання плану. Важливий нюанс, який вирізняє сильну відповідь: це пріоритети, а не заперечення — праві частини теж мають цінність, просто ліві більшу. Практично Agile виглядає як робота короткими циклами (у Scrum — спринти, зазвичай 1–4 тижні) з працюючим інкрементом наприкінці кожного.
Як змінюється робота тестувальника в Agile порівняно з waterfall?
Сильна відповідь іде через наслідки, а не означення. Перше: QA всередині команди — немає окремого «відділу тестування», якому передають білд; тестувальник залучений від обговорення вимог до релізу. Друге: тестування безперервне — аналіз user story, перевірка фічі щойно вона готова, регресія перед закриттям спринту, усе в межах одного циклу. Третє: легша документація — замість багатосторінкових специфікацій user story з acceptance criteria, тест-дизайн частіше на чеклистах, ніж на детальних кейсах. Четверте: регресія щоспринту, обсяг постійно росте, тому автоматизація критична. При цьому ядро професії незмінне: аналізувати, проєктувати перевірки, виконувати і звітувати — модель змінює коли, як формально і як часто, але не що саме робить тестувальник.
«Agile — це коли без документації». Що не так із цим твердженням?
Маніфест каже «працюючий продукт важливіший за вичерпну документацію», а не «замість неї» — це пріоритет, а не заборона. Документація в Agile нікуди не зникає, вона стає легшою: user story з acceptance criteria замість багатосторінкових специфікацій, чеклисти замість детальних тест-кейсів. Для регульованих доменів або складних інтеграцій команда цілком може тримати й формальнішу документацію — Agile це не забороняє. На співбесіді відповідь «в Agile документи не пишуть» звучить як ознака, що кандидат читав заголовки, а не маніфест.
«В Agile тестувальники не потрібні, бо тестують усі». Як відповісти?
У Agile зникає окрема фаза тестування, а не роль тестувальника. Так, якість — відповідальність усієї команди, і розробники теж тестують (юніт-тести, рев'ю), але експертиза тест-дизайну і нюх на ризики нікуди не діваються — вони просто працюють усередині команди з першого дня фічі, а не в кінці. Тестувальник в Agile — учасник команди, що вбудовує якість у процес: аналізує user story до початку розробки, проєктує перевірки паралельно з кодом, тримає регресійну стратегію. Роль не зникає — змінюється її позиція в процесі: з незалежного контролера наприкінці на рівноправного учасника з першого дня.
Коли waterfall кращий за Agile?
Питання «яка модель найкраща» — некоректне; коректне — «найкраща для яких умов», і саме вміння міркувати критеріями тут перевіряють. До послідовних моделей тягнуть: стабільні й зафіксовані вимоги, критична ціна помилки (медицина, авіація), регуляторика з вимогою документованих фаз і простежуваності, недоступний після підписання контракту замовник, контракт із фіксованою ціною і обсягом. До ітеративних і Agile — розмиті мінливі вимоги, можливість швидко виправити помилку наступним релізом, замовник, готовий дивитися демо щоциклу. Чесне застереження для сеньйорної відповіді: критерії часто суперечать один одному (регульований домен із мінливими вимогами — буденність), тож рішення — завжди компроміс, а не вибір із каталогу.
Яка модель була на твоєму проєкті і як вона впливала на твою роботу?
Це питання перевіряє, чи бачив кандидат процес зсередини, тому теорія тут програє конкретиці. Пастка — назвати «канонічний Scrum»: чисті моделі в природі майже не трапляються, реальні процеси — гібриди на кшталт «Scrum усередині, але релізи раз на квартал із формальною регресією». Фраза «у нас був гібрид: ось що з чого» звучить достовірніше і показує розуміння, чому процес склався саме так. Далі — наслідки для власної роботи: коли підключався до фічі, як виглядала регресія, що автоматизували й чому («регресію ганяли останні два дні спринту, тому ми автоматизували смоук»). Ланцюжок «модель → момент початку тестування → вартість дефекту → роль автоматизації» — каркас, на якому будь-яка відповідь цього блоку звучить на рівень вище.
Три розбори, які перетворюють теорію моделей на робочі рішення: шлях одного дефекту вимог крізь waterfall, V-модель і Agile (і його ціна в кожній), таблиця вибору моделі для трьох реальних проєктів і арифметика регресії, яка пояснює, чому в спринтах автоматизація стає питанням виживання.
Кейс 1. Один дефект вимог — три моделі
Вимога в специфікації інтернет-магазину: «Знижка за промокодом застосовується до суми замовлення». Замовник мав на увазі суму товарів без доставки; аналітик записав як записав; розробник чесно реалізував знижку на все, включно з доставкою. Дефект народився на фазі вимог — подивимось, коли він знайдеться в різних моделях.
Waterfall. Вимоги затверджено, дизайн затверджено, код написано. Тестувальник вперше бачить систему на фазі тестування, читає вимогу — «до суми замовлення» — і перевіряє рівно це: знижка на все, тест зелений. Дефект пливе на прод, де його знаходить фінансовий відділ замовника наприкінці кварталу. Виправлення тягне за собою зміну вимоги, перерахунок дизайну знижок, код, повторне тестування і незручну розмову про бюджет.
V-модель. Приймальні тести проєктуються на фазі вимог — тестувальник аналізує вимогу на тестопридатність ще до першого рядка коду. Пишучи кейс «замовлення 1000 грн + доставка 100 грн, промокод −10%», він упирається в питання: очікуваний результат 990 чи 1000 зі знижкою на доставку? Формулювання неоднозначне — питання летить аналітику, вимогу уточнюють. Код іще не написано: виправлення коштує один коментар у документі.
Agile. Story «як покупець, я хочу застосувати промокод» потрапляє у спринт. Навіть якщо неоднозначність не зловили на обговоренні, наприкінці спринту — демо працюючого інкремента: замовник бачить знижку на доставку і каже «не так». Виправлення потрапляє в наступний спринт. Дорожче, ніж у V-моделі на фазі вимог, але незрівнянно дешевше, ніж на проді після повного проходу waterfall.
Що з цього взяти:
- Дефект один і той самий — різниться момент виявлення. Модель не змінює природу помилок, вона змінює довжину петлі зворотного зв'язку, а разом із нею — вартість виправлення.
- Раннє проєктування тестів — це і є тестування вимог. У V-моделі дефект зловив не прогін, а спроба написати тест-кейс: неоднозначна вимога не дає однозначного очікуваного результату. Цей ефект працює в будь-якій моделі, де тестувальника пускають до вимог.
- Демо — теж перевірка. В Agile валідація («чи правильний продукт будуємо») вбудована в кожен цикл: замовник дивиться на працюючий інкремент, а не на документ.
Кейс 2. Таблиця рішень: три проєкти — три моделі
Три вакансії — три проєкти. Прикладемо до кожного критерії вибору з глави.
| Критерій | ПЗ інсулінової помпи | Стартап-маркетплейс | Міграція банківського core |
|---|---|---|---|
| Стабільність вимог | Зафіксовані стандартом | Гіпотези, змінюються щотижня | Зафіксовані контрактом, але замовник хоче бачити прогрес |
| Ціна помилки | Життя пацієнта | Помилку виправить наступний реліз | Висока: гроші й регулятор |
| Регуляторика | Жорстка, аудит простежуваності | Немає | Аудит фаз і підписів |
| Замовник | Регулятор + стандарти, демо не потрібні | Фаундер поруч, дивиться щотижня | Доступний, готовий до проміжних демо |
| Контракт | Фіксований обсяг | Оплата за часом | Фіксована ціна |
Помпа → V-модель. Усі критерії тягнуть в один бік: стабільні вимоги, критична ціна помилки, регулятор вимагає простежуваності «вимога → тест → результат». Для QA це формальні тест-плани, докладні кейси за затвердженими вимогами і раннє проєктування тестів на кожному рівні.
Маркетплейс → Agile (Scrum). Вимоги — гіпотези, фідбек потрібен щоциклу, помилка недорога. Для QA: робота від user story з acceptance criteria, тестування фіч у міру готовності, автоматизований смоук із перших спринтів — бо регресія почне рости одразу.
Банківський core → гібрид. Критерії суперечать один одному: регуляторика й фіксована ціна тягнуть до послідовної моделі, бажання замовника бачити прогрес — до ітерацій. Реалістичне рішення — «waterfall по фазах, але з проміжними демо» або «Scrum усередині, релізи раз на квартал із формальною регресією». Для QA це означає подвійне навантаження: легкі перевірки щоітерації плюс формальний регресійний цикл із документованими результатами перед кожним релізом.
Що з цього взяти:
- Рішення приймається критеріями, а не модою. «Agile — це добре» — не аргумент; аргумент — стабільність вимог, ціна помилки, регуляторика, доступність замовника, контракт.
- Конфлікт критеріїв — норма, а не виняток. Третій проєкт — найтиповіший: саме тому в природі живуть гібриди, і на співбесіді опис гібрида звучить достовірніше за «канонічний Scrum».
Кейс 3. Арифметика регресії: чому спринти без автоматизації не замикаються
Команда працює двотижневими спринтами. Ручна перевірка функціональності одного спринта — умовно 2 дні. Регресія — це перевірка всього, що вже накопичилось, тож обсяг росте з кожним інкрементом:
Спринт 1: нове 2 дні + регресія 0 днів = 2 дні тестування
Спринт 3: нове 2 дні + регресія ~4 дні = 6 днів
Спринт 5: нове 2 дні + регресія ~8 днів = 10 днів ← спринт має 10 робочих днів
До п'ятого спринта ручна регресія з'їдає весь спринт цілком — тестувати нове ніколи. У команди три виходи: сповільнитися (довші спринти — зникає сенс коротких циклів), різати регресію на око (релізити наосліп) або автоматизувати. Саме це глава називає «автоматизація — умова виживання»: це не ідеологія, а арифметика.
Типовий перший крок — автоматизований смоук, який ганяється на кожен білд, поки повна регресія лишається рідшою і глибшою. У Playwright мінімальна механіка — теги і фільтр:
// критичний шлях позначаємо тегом — це і є смоук-набір
test('промокод застосовується до суми без доставки', { tag: '@smoke' }, async ({ page }) => {
// ...
});
# на кожен білд — тільки смоук; повна регресія — перед закриттям спринту
npx playwright test --grep @smoke
Що з цього взяти:
- Регресія росте лінійно, а спринт — ні. Кожен інкремент додає що перевіряти, а часу в циклі стільки ж; момент, коли ручна регресія перестане влазити, — питання кількох спринтів, і його видно заздалегідь простою арифметикою.
- Автоматизація починається з пріоритетів, а не з «автоматизувати все». Смоук на критичний шлях щобілда + повна регресія рідше — типова перша конфігурація, яка знімає найгостріший біль.
- Це аргумент для співбесіди. «Регресію ганяли останні два дні спринту, тому автоматизували смоук» — конкретика, яка показує, що ти бачив наслідки моделі на власному розкладі, а не в підручнику.
Фази SDLC і місце тестування
- Можу назвати шість фаз SDLC: вимоги, проєктування, реалізація, тестування, впровадження, підтримка.
- Розумію, що фази однакові в усіх моделях, а моделі відрізняються порядком і кількістю проходів: один довгий (послідовні) чи багато коротких (ітеративні).
- Знаю три хороші практики ISTQB для будь-якої моделі: кожній активності розробки — тестова активність; у кожного рівня тестування власні цілі; аналіз і проєктування тестів починаються під час відповідної фази розробки, а не після.
- Можу пояснити зв'язок моделі з вартістю дефекту: що пізніше модель дає зворотний зв'язок, то дорожча помилка.
Послідовні моделі: waterfall і V-модель
- Знаю сильні сторони waterfall (передбачуваність, документація, простота управління) і головну плату — пізній зворотний зв'язок.
- Розумію, чому у waterfall тестування — окрема фаза в кінці, і чому саме її стискають першою, коли розробка з'їла терміни.
- Можу пояснити суть V-моделі через парність: кожен рівень тестування парний конкретній фазі розробки, і тести для нього проєктуються під час цієї фази.
- Знаю різницю «виконання тестів» vs «проєктування тестів» і чому раннє проєктування само по собі ловить дефекти вимог і дизайну.
- Розрізняю верифікацію («чи будуємо продукт правильно», відповідність специфікаціям) і валідацію («чи правильний продукт будуємо», відповідність потребам) на прикладі гілок V-моделі.
- Знаю, де послідовні моделі досі стандарт: медицина, авіоніка, автомобільні системи, банківський core — регуляторика вимагає простежуваності «вимога → тест → результат».
Ітеративність, інкрементність, Agile
- Знаю різницю ітеративної (повторні проходи з уточненням) та інкрементної (нарощування продукту частинами) розробки і що це різні осі, які Agile поєднує.
- Можу назвати класику ітеративної родини: прототипування, RUP, спіральна модель Боема з аналізом ризиків на кожному витку.
- Розумію головний наслідок циклів для QA: тестування перестає бути фазою і стає повторюваною активністю, обсяг регресії росте щоітерації — тому автоматизація перетворюється з бонуса на умову виживання (без неї команда сповільнюється або релізить наосліп).
- Знаю чотири цінності Agile-маніфесту і можу пояснити, що це пріоритети, а не заперечення правих частин.
- Можу перелічити, як Agile змінює роботу QA: тестувальник усередині команди, тестування безперервне, документація легша (user story + acceptance criteria), регресія щоспринту.
Вибір моделі і співбесіда
- Можу назвати критерії вибору моделі: стабільність вимог, ціна помилки, регуляторика, доступність замовника, терміни, тип контракту.
- Розумію, чому «яка модель найкраща» — некоректне питання, і що чисті моделі майже не трапляються: реальні процеси — гібриди.
- Можу відтворити словами порівняння «waterfall/V-модель vs Agile» для QA: коли підключається, фаза vs активність, формальність документації, регресія, автоматизація, роль у команді.
- Знаю, що незмінне в будь-якій моделі: аналізувати, проєктувати перевірки, виконувати і звітувати — модель змінює лише «коли, як формально і як часто».
- Готовий описати модель свого проєкту як гібрид із конкретними наслідками для тестування, а не назвою з підручника.
Чим моделі розробки принципово відрізняються одна від одної?
Питання
Назви шість фаз SDLC.