1000 помилок, одна Google Таблиця та п'ять годин, які я ніколи не поверну
Кожен баг має свою історію. Ця почалася з брехні: «На моїй машині все працює».
Ми тестували функцію імпорту даних для компанії з генерації лідів. Це здавалося простим. Натискаєте кнопку, завантажуєте файл — і дані завантажуються.
Більшість людей припускає, що такі функції працюють. Тестувальники існують для того, щоб спростувати це припущення.
Happy path — це пастка.
Якщо ви завантажуєте чистий Excel-файл, система проходить перевірку. Ви йдете на обід. Ви думаєте, що роботу виконано. Якщо ви зупинитеся на цьому, ви випустите зламаний код. Клієнт знайде помилку в понеділок вранці вже в продакшені.
Проблема була в Google Таблиці.
Реальні користувачі не використовують чисті Excel-файли. Вони використовують захаращені Google Таблиці. Вони створюють хаос у таблицях і очікують, що системи з цим впораються.
Коли ми завантажили Google Таблицю, система дала збій. Вона видала понад 1000 помилок. Ті самі дані та та сама кнопка спричинили повний крах, тому що формат змінився.
Потім ми перевірили якість даних.
- Кілька невалідних рядків? Система пропустила їх і пішла далі.
- Сотні захаращених рядків? Система зламалася.
Логіка валідації працювала для дрібних помилок. Вона підвела, коли зіткнулася з горою сміттєвих даних.
Ми витратили п'ять годин на налагодження цього. Ми звинувачували файл, браузер і дані. Ми навіть звинувачували каву.
Ці п'ять годин були дешевими. Альтернатива коштувала б набагато дорожче. Якщо клієнт знайде цей баг, він втратить довіру до вашого продукту. За баги під час тестування ви платите часом. За баги в продакшені ви платите клієнтами.
Я волію платити часом.
Щоб знаходити справжні баги, потрібно змінити мислення. Не питайте, чи працює програмне забезпечення. Питайте, як його зламати.
Перестаньте думати як розробник. Почніть думати як:
- Лінивий користувач, який завантажує файл неправильного формату.
- Хаотичний користувач із об'єднаними комірками та порожніми рядками.
- Користувач, що працює з великими обсягами даних, маючи 4000 «брудних» записів замість 10 чистих.
- Смутьян, який робить саме те, чого не варто робити.
Програмне забезпечення ламається на вхідних даних, яких ви не очікуєте.
«Прості» функції — найнебезпечніші. Кнопка імпорту та поле пошуку виглядають нешкідливими. Але це не так.
Наступного разу, коли функція пройде happy path, будьте тією людиною, яка запитає: «А що, як я завантажу найгірший файл, який тільки можна уявити?»
А потім ідіть і зробіть це.
