Тестер із 10 сертифікатами, який не зміг знайти жодного багу

У вас є всі можливі сертифікати. ISTQB, ScrumMaster, Cloud та Security. Ваше резюме — це стіна з абревіатур.

Але ви не можете написати жодного тесту, який би знайшов реальний баг.

Минулого кварталу я проводив співбесіду з кандидатом. Він говорив лише теоріями. Згадував V-модель та shift-left. Коли я попросив показати хоча б один написаний ним тест, який виявив баг, він промовчав.

Він ніколи не писав тестів, які б щось «ламали». Він писав лише такі тести, що проходять успішно.

Сертифікати перевіряють вашу пам'ять. Баги перевіряють ваше мислення.

Сертифікати дають словниковий запас і структуру. Вони допомагають пройти відбір рекрутерів. Але вони не вчать знаходити дефекти.

Питання в іспитах базуються на навчальній програмі. Реальні додатки — ні. У форми логіну немає навчальної програми. У неї є дивні граничні випадки (edge cases), наприклад, коли годинник сервера збився на чотири хвилини або виникають специфічні проблеми з таймінгом.

Сертифікований тестер діє за чек-листом. Він пише тести на основі вимог і позначає їх як pass або fail.

Мисливець за багами сприймає тестування як розслідування. Він починає з гіпотези. Він намагається довести, що додаток працює неправильно.

Погляньте на різницю в мисленні.

Стандартний тест перевіряє "happy path":

  • Перейти до товарів.
  • Додати в кошик.
  • Ввести коректні дані картки.
  • Очікувати підтвердження замовлення.

Цей тест доводить, що функція працює, коли все ідеально. Він ніколи не знайде баг.

Тест мисливця за багами — підозрілий:

  • Ввести номер картки з помилкою.
  • Очікувати повідомлення про помилку.
  • Перевірити, що підтвердження замовлення все одно не з'явилося.

Другий тест передбачає, що додаток зазнає невдачі. Він запитує: "Де це зламається?"

У багатьох тестерів є прогалина в досвіді, а не в резюме. Ви бачили, як тести провалювалися через некоректні дані або недоступність середовища. Але ви не бачили, щоб тести провалювалися через те, що ви знайшли помилку в логіці.

Припиніть готуватися до нових іспитів. Подолайте цей розрив, пишучи тести, розроблені для того, щоб вони провалювалися.

Спробуйте таку вправу: Оберіть одну функцію. Приділіть одну годину спробам її зламати.

Для функції пошуку:

  • Тестуйте безглузді запити.
  • Тестуйте символи SQL-ін'єкцій.
  • Тестуйте порожні рядки.

Для завантаження файлів:

  • Тестуйте файли без розширень.
  • Тестуйте величезні розміри файлів.
  • Тестуйте шкідливі назви файлів.

Я колись працював над платіжною системою з 95% покриттям. Кожен тест проходив успішно. Потім система втратила гроші в продакшені через помилку округлення. Наші тести покривали позитивний сценарій (happy path), але ніхто не подумав протестувати математичну логіку.

Тепер я починаю кожен тест з одного запитання: «Що має відбутися, щоб ця функція тихо зламалася?»

Не створюйте сайт-портфоліо. Не оновлюйте свій LinkedIn.

Напишіть один тест, розроблений так, щоб він провалився. Якщо він пройде — у вас є гарантія безпеки. Якщо він провалиться — ви знайшли баг.

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

Який один тест ви напишете цього тижня, щоб довести, що вмієте знаходити баги?

Джерело: https://dev.to/qawalah/the-tester-who-had-10-certifications-but-couldnt-write-a-single-test-that-caught-a-bug-1c05

Додаткова спільнота для навчання: https://t.me/GyaanSetuAi