Тестування як гра в шахи: кілька ходів наперед

Тестування як гра в шахи: кілька ходів наперед

  • 18 квітня
  • читати 7 хв
Артем Койков
Артем Койков QA Manual/Automation у Auditdata, Викладач Комп'ютерної школи Hillel.

Чому хороший тестувальник — це не той, хто знаходить баги, а той, хто передбачає їх ще до того, як вони з'явились.

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

ДОШКА — ЦЕ НЕ БАГ-ТРЕКЕР

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

Кожен хід у шахах — це не просто переміщення фігури. Це зміна всієї системи відносин на дошці.
Гаррі Каспаров про стратегічне мислення

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

ХІД ПЕРШИЙ: ДУМАЙ ЗА РОЗРОБНИКА

♟ Шахова паралель
Гросмейстер перед ходом моделює не лише свої дії, але й усі можливі відповіді суперника. Він грає «за двох». У тестуванні, перш ніж писати тест-кейс, запитай себе: «Як би я реалізував цю фічу? Де б я міг зробити помилку?» Розуміння коду зсередини — не привілей розробника, це зброя тестувальника.

ХІД ДРУГИЙ: АНАЛІЗУЙ ЗВ'ЯЗКИ, А НЕ ЛИШЕ КОМПОНЕНТИ

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


Інтеграційні точки
Де два модулі взаємодіють — там найбільше ризиків. API, черги повідомлень, бази даних.


Стан системи
Тест при порожній БД і тест після 10 000 записів — це різні позиції на дошці.


Залежності
Зовнішній сервіс ліг? Кеш застарів? Думай про те, що поза прямим контролем.


Часовий фактор
Таймаути, поведінка під навантаженням — баги, що живуть у часі.

ХІД ТРЕТІЙ: ПРАЦЮЙ ЗІ СТРАТЕГІЄЮ РИЗИКУ

Шахіст не може охопити всі можливі варіанти партії — їх астрономічно багато. Тому він розставляє пріоритети: захищає короля, контролює центр, не розпорошується. У тестуванні так само — ресурсів завжди менше, ніж тест-кейсів.

Ось як мислить стратег-QA:

  • Де найбільший бізнес-ризик? (платежі, авторизація, core flow) — тестуємо найретельніше
  • Що змінилось в останньому релізі? — регресія навколо змін, а не усього
  • Де найчастіше знаходились  баги в минулому? — це «слабкі клітини» вашої дошки
  • Що буде найдорожчим, якщо це зламається на продакшні? — фінансові й репутаційні ризики

ХІД ЧЕТВЕРТИЙ: ПЕРЕДБАЧАЙ «ЕНДШПІЛЬ»

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

У контексті тестування «ендшпіль» — це продакшн. І найгірші баги ті, що доходять до реального користувача. Тому справжній QA-спеціаліст вибудовує не лише перевірку поточного функціоналу, але й думає про те, як система поводитиметься, коли щось піде не так уже після релізу.

Питання, яке варто задавати собі регулярно: «Якщо цей баг пройде в продакшн — як швидко ми про це дізнаємось?» Якщо відповідь «не знаємо» це вже баг у процесі.

ПІДСУМОК: П'ЯТЬ ПРИНЦИПІВ QA-ГРОСМЕЙСТЕРА

  1. Думай за розробника — моделюй помилки зсередини.
  2. Вивчай зв'язки — не лише компоненти окремо.
  3. Розставляй пріоритети — ризик важливіший за охоплення.
  4. Дивись в «ендшпіль» — що буде на продакшні?
  5. І головне: постійно запитуй «а що, якщо...» — це і є мислення на кілька ходів наперед.

Рекомендуємо публікації по темі