вторник, 21 июня 2016 г.

Не пишите в баге «Ввести 6,9»!

Есть у нас калькуляторы — http://bugred.ru/calc/.

Тестируем первый, вводим «6,9», получаем NaN.

Ну явно баг!

Ооооо, мандраж, «я нашел баг», скорее оформлять!
Но подождите. Упадет только на "6,9"? А на "1,1"? Или "2,0"? Как насчет дробной части через точку? Выясняем, что на любом дробном. Так и пишем.

Ввести дробное число, например: 6,9

Если написать просто

Ввести 6,9

То это читается как «воспроизведется только на этом числе», что неверно. Возможно, постановщик задачи даже проверял другие дробные и знает, что на них тоже не работает. Но как это понять читающему баг?



Зачем писать конкретику


Для примера. Что проще — взять готовое или сидеть, чесать голову и думать, на чем бы отладиться? «Так, дробное число, дробное число... Какое, например?». А вот он, пример, готовенький.

Кажется смешным. Все же знают, как написать дробное число! Но реальные случаи сложнее:

— Улица, которая есть в нескольких городах.
— Улица, на которой ровно один дом.
— Самарский телефон.
— Файл с разными форматами дат рождения.
— SOAP-запрос на создание 100 записей.

В итоге на воспроизведение тратится много времени, подготовить тестовые данные, проверить. Потом задачу отложат на следующий релиз и снова данных нет, снова готовить. Но зачем? Приложите пример. И через месяц сами скажите себе за это спасибо Smile :)


Зачем писать абстракцию


Ссылки, которые вы даете, могут измениться. Файл приложенный может устареть или вообще пропасть. Если без этого не воспроизводится — фигово описали.

См также:
Так ли уж сложно описывать баги - понятно? — немного подробнее о том, как конкретный пример может устареть.


В каком порядке писать

Сначала идет описание (абстракция), потом пример (конкретика).

Смотрите, зачем это надо: баги правятся не всегда сразу. А изменения в продукте происходят. Тестировшики об этих изменениях знают. Если калькулятор переедет на страницу "Примеры",
то:

— по шагу "Открыть калькулятор (ссылка)", я все равно открою правильную форму, потому что буду знать, что она переехала.
— по шагу "Открыть страницу calc" или "Открыть ссылку" я открою страницу, на которой калькулятора уже нет, или попаду в никуда.


Еще один пример


На форме есть второй калькулятор! На первый взгляд, он такой же кривой

На 6,9 оба валятся

Но что, если ввести дробную часть через точку?

А вот 6.9 — другой разговор


Ага, через точку не падает! Поэтому так и пишем в шагах

Ввести дробное число через запятую, например: 6,9

Если мы напишем

Ввести дробное число, например: 6,9

То разработчик введет «6.9» и закроет баг как «не воспроизводится». Ну а что, дробное же? Дробное!

Поэтому сначала локализовать, потом описать. Описать так, чтобы не читалось двояко. Всего ничего Smile :)

См также:
Как заводить задачи в баг-трекер — подробнее обо всех пунктах, не только шагах

PS — калькуляторы созданы и статья написана в помощь студентам моих курсов:

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

  1. спасибо, всё так! все типичные ошибки новичков отметила!

    ОтветитьУдалить
  2. Для 2-го калькулятора у которого формат числа имеет между цифрами пробел также приводит к ошибке. Например, 8 9

    ОтветитьУдалить