понедельник, 22 октября 2018 г.

Принцип лопаты (для локализации багов)


Когда вы находите баг, нужно покопаться рядышком. Вдруг вы нашли всего одно проявление, а их сильно больше? Посмотрим на примере. Кто у нас не умеет локализовывать баги? Правильно, Кевин!

И вот он тестирует форму ввода. В поле «Доход» по ТЗ можно вводить только числа. Он вводит символ «А» и... Символ вводится!


Кевин рад, он нашел баг! Для него баг — это орешек. (вспомнили же «Ледниковый период» сейчас, да?)

Кевин не любитель локализовывать, копать рядом. Ему пофигу, что рядом с одним орешком еще десяток, вон там, под листвой лежит. Он ведь нашел баг!!! Надо срочно всем рассказать!

Что он и делает — бежит к команде и хвастается багом:
— Смотрите, что я нашел! У нас баг в системе!!


Некоторые коллеги думают:

— Ух ты, как круто! И правда, баг, а я его и не замечал...

Но опытный разработчик знает, что нельзя сразу ставить баг, надо покопать рядом.
Он отводит юного Кевина к месту нахождения орешка и показывает ему, что орешков то больше! Стоит лишь чуть-чуть копнуть!



Так что копайте! Нашли орешек, поисследуйте область рядом.

Это Кевин, как белка-истеричка, ввел букву «А» в поле для чисел и тут же разводит панику — «У НАС В СИСТЕМЕ БАГ!!!»



Но ведь завтра он попробует ввести букву «Б», потом «В»... И так в системе появится 33 одинаковых бага только на русский алфавит! А потом пойдет английский...



А если сразу поисследовать проблему, то поймем, что вводить можно вообще все, что угодно. Никаких ограничений нет. И все, один баг вместо 50 дубликатов!

Это и называется локализацией. Не сразу бежать сообщать о баге, а сперва поисследовать.
Я называю это «Принцип лопаты»: нашел баг? Покопай рядышком!


Можно ввести букву в числовое поле? Исследуем:

  • Любые символы можно ввести?
  • Или только e? 
  • Или только русский алфавит?
  • Или только английский?
Система падает на загрузке doc-файла:
  • На любом файле?
  • Или только doc? 
  • С любыми данными?
  • С любым названием?
Статистика по оплате выводит NaN:
  • На любом пользователе?
  • Только на новом/старом?
  • Только, кто не вводил данные по доходам?
Учитесь задавать себе дополнительные вопросы, которые помогут точнее локализовать проблему. Ведь именно это отличает начинающего тестировщика от более опытного. Не сможешь локализовать — не сможешь воспроизвести, снесут базу тестовую, а оно воспроизводиться перестанет, так как корень зла ты не нашел. И все, се ля ви ¯\_(ツ)_/¯

Конечно, не стоит совсем закапывать и тратить на раскопки непомерное количество времени, но об этом мы поговорим в следующей статье...

PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков

4 комментария: