vyvchy
    Теми розділу

    01 · Основи тестування

    Agile для QA: Scrum і Kanban

    Зміст

    Переважна більшість команд, куди ти потрапиш як QA, працюють за Scrum або Kanban. І одне з перших питань на співбесіді — «розкажіть, як був побудований процес на вашому попередньому проєкті». Відповідь «ну, ми тестували таски в Jira» одразу видає, що кандидат бачив ритуали, але не розумів механізму. А без розуміння механізму в Agile тестувальнику фізично незрозуміло, коли працювати: окремої фази тестування тут немає, вимоги змінюються щоітерації, а «здати білд тестувальникам у пʼятницю» — антипатерн, а не процес.

    У главі про моделі розробки ми розглянули Agile оглядово — як сімейство ітеративно-інкрементних підходів. Тут розберемо два конкретні фреймворки, у яких реально живуть команди, і головне — де в кожному з них місце тестування.

    Цінності Agile-маніфесту на практиці

    Agile-маніфест — короткий документ 2001 року (agilemanifesto.org): чотири цінності та дванадцять принципів. Кожна цінність має форму «X важливіше за Y», і найпоширеніша помилка читання — вважати, що «Y не потрібне». Насправді автори прямо пишуть: цінність правої частини визнається, просто ліва цінується більше.

    Що це означає для тестувальника на практиці:

    • Люди і взаємодія важливіші за процеси та інструменти. Побачив дивну поведінку — підійди до розробника чи спитай у чаті, а не заводь пінг-понг із коментарів у баг-трекері на три дні. Інструменти обслуговують розмову, а не замінюють її.
    • Працюючий продукт важливіший за вичерпну документацію. Тест-документація не зникає — вона худне до корисного мінімуму: чеклист замість покрокового тест-кейсу там, де кроки очевидні, acceptance criteria замість багатосторінкового ТЗ. Але «в нас Agile, тому нічого не документуємо» — карго-культ, а не цінність.
    • Співпраця із замовником важливіша за узгодження контракту. Незрозуміла вимога — це не «тестуємо як написано», а питання до product owner. QA тут часто перший, хто помічає дірку у вимозі.
    • Готовність до змін важливіша за дотримання плану. Вимоги змінюватимуться щоітерації — і це нормально. Наслідок для QA прямий: кожна зміна ризикує зламати старе, тому регресійне тестування з разової події стає постійною потребою — саме звідси росте автоматизація (детально — у розділі про стратегію автоматизації).

    Із принципів маніфесту для QA найважливіший наслідок — так званий whole-team approach (підхід «якість — справа всієї команди»): за якість відповідає не тестувальник-«воротар» наприкінці конвеєра, а вся команда. Тестувальник не «пропускає» реліз — він дає команді інформацію для рішення.

    Scrum: ролі, події, артефакти

    Scrum — це легкий фреймворк (Scrum Guide визначає його саме як lightweight framework, а не методологію), побудований довкола спринтів — ітерацій фіксованої довжини, не довших за календарний місяць, на практиці найчастіше 1–2 тижні. Кожен спринт закінчується інкрементом — придатним до використання шматком продукту.

    Ролі (у Scrum Guide 2020 їх називають accountabilities — зонами відповідальності):

    • Product Owner — відповідає за цінність продукту і за Product Backlog: що робимо і в якому порядку.
    • Scrum Master — відповідає за те, щоб Scrum працював: допомагає команді прибирати перешкоди, фасилітує події. Це не менеджер і не той, хто роздає задачі.
    • Developers — усі, хто створює інкремент. Зверни увагу: окремої ролі «тестувальник» у Scrum немає. QA-інженер у термінах гайду — один із Developers, і це не бюрократична дрібниця, а пряме втілення whole-team approach: тестування — частина розробки, а не окремий цех.

    Scrum-команда зазвичай невелика — до 10 людей, без підкоманд і ієрархії.

    Події — кожна існує не як ритуал, а як петля зворотного звʼязку:

    ПодіяТаймбокс (для місячного спринту)Що там робить QA
    Sprint Planningдо 8 годинОзвучує обсяг тестування: складні перевірки, потреба в тестових даних і середовищах
    Daily Scrum15 хвилинСинхронізується з командою: що заблоковане, які сторі готові до перевірки
    Sprint Reviewдо 4 годинПоказує знайдені обмеження, бере участь у демо інкремента стейкхолдерам
    Sprint Retrospectiveдо 3 годинПіднімає процесні проблеми: «тестування отримує все в останній день» — це сюди

    Для коротших спринтів події зазвичай коротші; 15 хвилин Daily — константа.

    Артефакти — і в кожного з них у Scrum Guide 2020 є своє «зобовʼязання» (commitment):

    • Product Backlog — упорядкований список усього, що потрібно продукту; зобовʼязання — Product Goal.
    • Sprint Backlog — що команда взяла в поточний спринт і план, як це зробити; зобовʼязання — Sprint Goal.
    • Increment — готовий шматок продукту; зобовʼязання — Definition of Done (про нього нижче).

    Product Backlog

    Sprint Planning

    Sprint Backlog

    Робота спринту:
    розробка + тестування щодня

    Daily Scrum
    15 хв

    Інкремент,
    що відповідає DoD

    Sprint Review

    Retrospective

    Product Backlog

    Sprint Planning

    Sprint Backlog

    Робота спринту:
    розробка + тестування щодня

    Daily Scrum
    15 хв

    Інкремент,
    що відповідає DoD

    Sprint Review

    Retrospective

    Ключова думка діаграми: тестування живе всередині блоку «робота спринту», щодня, паралельно з розробкою — а не окремим кроком між інкрементом і Review.

    Kanban: потік і WIP-ліміти

    Kanban влаштований інакше: тут немає ітерацій узагалі. Це метод керування безперервним потоком задач: роботу візуалізують на дошці, де колонки — стани процесу, і обмежують кількість задач у роботі одночасно.

    To DoIn Progress (ліміт 3)Testing (ліміт 2)Done
    задача Fзадача Cзадача Aзадача…
    задача Gзадача Dзадача B

    WIP-ліміт (work in progress limit) — максимум задач, які можуть одночасно перебувати в колонці. Це серцевина методу. Логіка проста: чим більше задач у роботі паралельно, тим довше їде кожна з них — команда перемикається між усім одразу і не завершує нічого. Обмеживши WIP, команду змушують «перестати починати і почати завершувати».

    Kanban — це pull-система: задачу не «кидають» на наступний етап, її тягнуть із попередньої колонки, коли звільнилося місце. І тут найцікавіше для QA: якщо колонка Testing уперлася в ліміт, розробники не можуть тягнути нові задачі в In Progress. Правильна реакція команди — не «QA гальмує», а «йдемо допомагати тестувати»: вузьке місце видно на дошці всім, і воно стає проблемою команди, а не тестувальника. Без WIP-лімітів та сама дошка перетворюється на звалище, де перед Testing висить двадцять задач і QA хронічно «не встигає».

    Основні метрики потоку:

    • Lead time — час від появи задачі до її доставки (те, що відчуває замовник);
    • Cycle time — час від початку роботи над задачею до завершення;
    • Throughput (пропускна здатність) — скільки задач команда завершує за період.

    Коротке порівняння:

    АспектScrumKanban
    КаденціяСпринти фіксованої довжиниБезперервний потік
    Зміни в роботіНебажані всередині спринтуБудь-коли, через беклог
    Головне обмеженняОбсяг спринтуWIP-ліміти
    МетрикиVelocity, виконання Sprint GoalLead/cycle time, throughput
    РоліPO, Scrum Master, DevelopersНе приписує власних ролей

    На практиці Scrum частіше беруть продуктові команди з плановими релізами, Kanban — команди підтримки, супроводу і всі, у кого потік задач непередбачуваний (баги з проду не чекатимуть початку спринту). Поширені й гібриди — коли команда працює спринтами, але з дошкою, WIP-лімітами і метриками потоку.

    DoR і DoD

    Definition of Done (DoD) — спільний для команди чеклист, що означає «задача справді готова». Типовий склад: код написаний і пройшов рев'ю, юніт-тести зелені, acceptance criteria перевірені, автотести написані чи оновлені, білд розгорнутий на тестовому середовищі, критичних багів немає. DoD — офіційна частина Scrum: у Scrum Guide 2020 це зобовʼязання артефакту Increment. Якщо задача не відповідає DoD — вона не «майже готова», вона не готова і в інкремент не входить.

    Definition of Ready (DoR) — дзеркальний чеклист на вході: коли user story достатньо готова, щоб брати її в спринт. Типово: зрозуміла цінність, є acceptance criteria, сторі тестопридатна, залежності розвʼязані, оцінка проставлена. Важлива деталь, яку люблять перевіряти на співбесідах: DoR у Scrum Guide немає — це поширена практика спільноти, а не частина фреймворку. Силабус ISTQB CTFL 4.0 акуратно ставить обидва поняття на знайомі нам місця: DoR — це критерії входу, DoD — критерії виходу (ті самі entry/exit criteria з глави про STLC).

    Чому QA має вболівати за обидва списки: слабкий DoR означає, що в спринт залітають сторі без acceptance criteria — і тестувати доводиться «на око» (як мають виглядати хороші AC — у главі про вимоги та user story). Слабкий DoD — що «готово» означає «розробник закомітив», і баги ловляться вже після релізу. Пункт «тестування пройдене» в DoD — це формальна гарантія, що тестування не можна «зрізати» під тиском дедлайну.

    QA у спринті

    Найчастіший біль джуна у Scrum: «розробка закінчує задачі в четвер, спринт завершується в пʼятницю — коли мені тестувати?» Якщо в команді так відбувається щоспринту — це антипатерн mini-waterfall: зовні все схоже на Scrum (є Daily, є Review), а насправді всередині двотижневої ітерації живе маленький водоспад із фазою тестування в кінці, куди все й упирається.

    Здорова модель інша — тестування розмазане по всьому спринту:

    • До розробки: QA бере участь у рефайнменті, ставить питання до вимог, продумує перевірки для сторі ще до того, як написаний код. Це найдешевший спосіб знайти дефект — прямий наслідок принципу раннього тестування з семи принципів.
    • Під час розробки: перевірки готуються заздалегідь, тестові дані й середовища — теж (що це і навіщо — у главі про тестові середовища). Сторі тестуються одна за одною, щойно готові, а не пачкою в останній день.
    • Наприкінці спринту: коротка регресія і смоук перед релізом (обсяг і різниця — у главі про смоук і регресію). Коли часу бракує на все, обсяг перевірок пріоритизують за ризиком — це окрема глава про ризик-орієнтоване тестування.

    Баги, знайдені по сторі поточного спринту, зазвичай лагодяться одразу — сторі просто не відповідає DoD, поки баг живий. Баги, що стосуються старої функціональності, їдуть у беклог і пріоритизуються разом з усім.

    І ще раз whole-team: якщо тестування стало вузьким місцем — це проблема команди. Розробник може прогнати чеклист по чужій сторі, написати відсутній автотест, підняти тестовий стенд. «Я розробник, я не тестую» — не Agile-аргумент.

    Story points і planning poker очима QA

    Story points — відносна оцінка обсягу роботи над сторі з урахуванням складності та невизначеності. Ключове слово — відносна: 5 поінтів означає «приблизно як та сторі на 5, яку ми вже робили», а не «пʼять годин». Для оцінки зазвичай беруть ряд, схожий на Фібоначчі (1, 2, 3, 5, 8, 13): що більша задача, то грубіша оцінка — і це чесно відображає невизначеність.

    Velocity — скільки поінтів команда в середньому закриває за спринт. Це інструмент прогнозування місткості спринту для конкретної команди, а не метрика продуктивності: порівнювати velocity двох команд безглуздо, бо їхні «поінти» — різні лінійки.

    Чому це все — справа QA, а не тільки розробників: оцінка сторі має включати тестування. Якщо команда оцінює лише «скільки писати коду», тестування стає невидимою роботою — спринт набирають під velocity, а перевіряти набране фізично нема коли. Класичний приклад: сторі «додати поле знижки в замовлення» — розробки на день, а перевірок на три: комбінації з іншими знижками, валюти, від'ємні значення, перерахунок наявних замовлень. Якщо QA мовчить на оцінці, ця сторі отримає 2 поінти і зламає спринт.

    Planning poker — техніка групової оцінки, яка змушує цю розмову відбутися. Кожен учасник обирає карту з оцінкою мовчки, і всі відкривають карти одночасно — це прибирає ефект якоря, коли перший голос (зазвичай найгучніший сеньйор) тягне за собою решту. Якщо оцінки розійшлися — скажімо, розробник показав 2, а QA показав 8 — крайні голоси пояснюють свою логіку, і саме ця дискусія є головною цінністю техніки: часто «2» просто не бачить половини сценаріїв перевірки. Потім раунд повторюють до збіжності. Силабус ISTQB CTFL 4.0 описує planning poker як варіант техніки Wideband Delphi — командної оцінки, заснованої на досвіді (розділ 5.1.4).

    Рефайнмент беклогу

    Рефайнмент (backlog refinement) — регулярна робота з майбутніми сторі: великі розбивають на менші, уточнюють деталі й acceptance criteria, оцінюють, перевіряють на відповідність DoR. У Scrum Guide це не окрема подія з таймбоксом, а постійна діяльність — команди зазвичай ставлять під неї одну-дві зустрічі на тиждень.

    Для тестувальника рефайнмент — найважливіша зустріч тижня, важливіша за Daily. Саме тут QA впливає на якість найдешевшим способом: питаннями до сторі, якої ще не існує в коді. Типовий арсенал питань:

    • Що станеться в негативному сценарії? Користувач ввів нуль, порожньо, тисячу символів, кирилицю?
    • Як фіча взаємодіє з наявними? Що буде зі старими даними після зміни?
    • Де межі: ролі, права, ліміти, конкурентні дії двох користувачів?
    • Як ми це перевіримо? Чи є тестові дані, чи потрібен доступ до стороннього сервісу, чи можна це відтворити на тестовому середовищі?

    Питання «як ми це перевіримо?» — індикатор тестопридатності: якщо команда не може відповісти, сторі не готова до спринту, і це дешевше зʼясувати на рефайнменті, ніж у передостанній день спринту. Побічний ефект регулярних QA-питань на рефайнменті — вимоги в команді загалом стають точнішими: розробники звикають, що «happy path описаний, решта якось буде» не проходить.

    Типові помилки

    • Виглядає як «Agile — це коли без документації», а насправді цінність каже «працюючий продукт важливіший», а не «документація не потрібна». Тест-документація в Agile легшає (чеклисти, AC), але не зникає — інакше через пів року ніхто не знає, як має працювати продукт.
    • Виглядає як Scrum з усіма подіями, а насправді mini-waterfall: якщо тестування завжди починається після «завершення розробки» в останні дні спринту — це водоспад у двотижневій обгортці, і жодна кількість Daily цього не лікує.
    • Виглядає як «story points — це така собі година», а насправді конвертація поінтів у години вбиває сенс відносної оцінки і повертає команду до торгів за естімейти. І навпаки: якщо в оцінці немає тестування, спринт стабільно перевантажений.
    • Виглядає як «Daily — звіт менеджеру», а насправді це синхронізація команди довкола Sprint Goal. Якщо всі по черзі звітують Scrum Master-у і розходяться — подія втратила зміст.
    • Виглядає як «DoR — частина Scrum», а насправді у Scrum Guide визначено лише DoD; DoR — корисна практика спільноти. Плутанина тут — типовий спосіб інтервʼюера перевірити, чи читав кандидат першоджерело.
    • Виглядає як «velocity росте — команда молодець», а насправді velocity легко надути, роздуваючи оцінки. Щойно метрика стає ціллю — вона перестає вимірювати (докладніше про це — у главі про метрики і звітність далі в розділі).

    Підсумок

    • В Agile немає окремої фази тестування: QA працює впродовж усього спринту — від питань на рефайнменті до регресії перед релізом, а тестування наприкінці — антипатерн mini-waterfall.
    • Scrum — це три зони відповідальності (PO, Scrum Master, Developers), пʼять подій (спринт + планування, Daily, Review, ретро) і три артефакти зі зобовʼязаннями (Product Backlog + Product Goal, Sprint Backlog + Sprint Goal, Increment + DoD). Окремої ролі QA у Scrum немає — якість належить усій команді.
    • Kanban — безперервний потік із pull-механікою: WIP-ліміти роблять вузьке місце (часто це тестування) видимим і перетворюють його на проблему команди, а не тестувальника.
    • DoR — критерії входу сторі в спринт, DoD — критерії виходу; DoD визначений у Scrum Guide, DoR — практика спільноти. Пункт про тестування в DoD — гарантія, що його не зріжуть під дедлайн.
    • Оцінка в story points має включати тестування, а planning poker цінний не картами, а дискусією, яку викликає розбіжність оцінок.

    Що питають на співбесіді

    Тема має високу вагу: процесні питання ставлять майже кожному junior QA, бо вони показують, чи працювала людина в реальній команді.

    • «Розкажіть про Scrum: ролі, події, артефакти» — базове перелічувальне питання. Інтервʼюер дивиться, чи кандидат розуміє призначення кожної події, а не завчив назви: «Daily — щоб синхронізуватися і підсвітити блокери» звучить сильніше за «Daily — це коли всі розповідають, що робили».
    • «Чим Scrum відрізняється від Kanban? Коли б ви обрали кожен?» — перевірка розуміння механізмів: спринти проти потоку, обсяг спринту проти WIP-лімітів, velocity проти cycle time.
    • «Що таке DoD і чим він відрізняється від acceptance criteria?» — класична пастка: AC — свої в кожної сторі і кажуть, що має робити фіча; DoD — один на команду і каже, коли будь-яка задача вважається готовою.
    • «Розробка віддає задачі в останній день спринту. Ваші дії?» — питання на зрілість: сильна відповідь — про рефайнмент, підготовку перевірок заздалегідь, тестування сторі в міру готовності і винесення проблеми на ретро, а не «сидів до ночі тестував».
    • «Що таке story points і навіщо planning poker?» — інтервʼюер слухає, чи скаже кандидат про відносність оцінки і про те, що оцінка включає тестування.
    • «Яка роль QA на рефайнменті?» — тут чекають конкретних питань, які QA ставить до сторі: негативні сценарії, межі, тестопридатність.

    Загальний фільтр інтервʼюера: чи бачить кандидат себе частиною команди, яка відповідає за якість разом, чи «приймальником» наприкінці конвеєра. Друге — червоний прапорець незалежно від решти відповідей.

    Джерела

    • Agile Manifesto — чотири цінності і дванадцять принципів, є український переклад на офіційному сайті.
    • Scrum Guide 2020 — першоджерело про ролі, події, артефакти та їхні зобовʼязання; читається за пів години.
    • Kanban Guide — компактний опис методу: визначення потоку, WIP-лімітів і метрик.
    • Силабус ISTQB CTFL 4.0 — глава дотична до розділів 1.5 (whole-team approach), 2 (тестування в контексті життєвого циклу) і 5.1 (DoR/DoD як критерії входу/виходу — 5.1.3, planning poker і Wideband Delphi — 5.1.4).