Тестер із 10 сертифікатами, який не зміг знайти жодного багу
У вас є всі можливі сертифікати. ISTQB, ScrumMaster, Cloud та Security. Ваше резюме — це стіна з абревіатур.
Але ви не можете написати жодного тесту, який би знайшов реальний баг.
Минулого кварталу я проводив співбесіду з кандидатом. Він говорив лише теоріями. Згадував V-модель та shift-left. Коли я попросив показати хоча б один написаний ним тест, який виявив баг, він промовчав.
Він ніколи не писав тестів, які б щось «ламали». Він писав лише такі тести, що проходять успішно.
Сертифікати перевіряють вашу пам'ять. Баги перевіряють ваше мислення.
Сертифікати дають словниковий запас і структуру. Вони допомагають пройти відбір рекрутерів. Але вони не вчать знаходити дефекти.
Питання в іспитах базуються на навчальній програмі. Реальні додатки — ні. У форми логіну немає навчальної програми. У неї є дивні граничні випадки (edge cases), наприклад, коли годинник сервера збився на чотири хвилини або виникають специфічні проблеми з таймінгом.
Сертифікований тестер діє за чек-листом. Він пише тести на основі вимог і позначає їх як pass або fail.
Мисливець за багами сприймає тестування як розслідування. Він починає з гіпотези. Він намагається довести, що додаток працює неправильно.
Погляньте на різницю в мисленні.
Стандартний тест перевіряє "happy path":
- Перейти до товарів.
- Додати в кошик.
- Ввести коректні дані картки.
- Очікувати підтвердження замовлення.
Цей тест доводить, що функція працює, коли все ідеально. Він ніколи не знайде баг.
Тест мисливця за багами — підозрілий:
- Ввести номер картки з помилкою.
- Очікувати повідомлення про помилку.
- Перевірити, що підтвердження замовлення все одно не з'явилося.
Другий тест передбачає, що додаток зазнає невдачі. Він запитує: "Де це зламається?"
У багатьох тестерів є прогалина в досвіді, а не в резюме. Ви бачили, як тести провалювалися через некоректні дані або недоступність середовища. Але ви не бачили, щоб тести провалювалися через те, що ви знайшли помилку в логіці.
Припиніть готуватися до нових іспитів. Подолайте цей розрив, пишучи тести, розроблені для того, щоб вони провалювалися.
Спробуйте таку вправу: Оберіть одну функцію. Приділіть одну годину спробам її зламати.
Для функції пошуку:
- Тестуйте безглузді запити.
- Тестуйте символи SQL-ін'єкцій.
- Тестуйте порожні рядки.
Для завантаження файлів:
- Тестуйте файли без розширень.
- Тестуйте величезні розміри файлів.
- Тестуйте шкідливі назви файлів.
Я колись працював над платіжною системою з 95% покриттям. Кожен тест проходив успішно. Потім система втратила гроші в продакшені через помилку округлення. Наші тести покривали позитивний сценарій (happy path), але ніхто не подумав протестувати математичну логіку.
Тепер я починаю кожен тест з одного запитання: «Що має відбутися, щоб ця функція тихо зламалася?»
Не створюйте сайт-портфоліо. Не оновлюйте свій LinkedIn.
Напишіть один тест, розроблений так, щоб він провалився. Якщо він пройде — у вас є гарантія безпеки. Якщо він провалиться — ви знайшли баг.
Запишіть, що ви протестували, як ви це зробили та що ви знайшли. Це і є справжній доказ того, що ви вмієте думати.
Який один тест ви напишете цього тижня, щоб довести, що вмієте знаходити баги?
Додаткова спільнота для навчання: https://t.me/GyaanSetuAi