Я уже научена горьким опытом возвращения к старым задачам. Знаю, что, когда пишешь в задаче "проверила, загрузив дубли" — это ни о чем не говорит. И если понадобится снова проверить тот же кейс, придется тратить время и вспоминать — «А как оно работает-то? А что грузить? А данные где бы найти? А...». Поэтому, если я пишу в задаче, как получила ситуацию вручную, то прикладываю все вспомогательные запросы.
Перед новым годом проверяла большую задачу. Потом резюмировала:
6. Выполнила задачу test_name — получила ,..
7. Еще раз проверила вьюшку. Теперь у объектов 1 и 2 изменился close_reason = 0
Описываем все подробненько
Перед новым годом проверяла большую задачу. Потом резюмировала:
- Тут плохо, вот тест.
- И тут плохо, вот еще тест.
- И тут...
Тестировала вьюшки, писала автотесты под них. Но автотесты могут врать — ведь я сама создаю исходное состояние базы данных. А потом уже смотрю, что приехало во view. И если что-то не приехало, варианта два:
- Баг в коде вьюшки.
- Баг в моем тесте, неправильно состряпала исходное состояние.
Упал довольно сложный автотест, где мудреное исходное состояние. Вполне могла и я неправильно что-то сделать. Поэтому проверила вручную — повторяется!
Так и записала в комменте к задаче, указала на автотест + подробное описание, как воспроизвести вручную:
******************************************************
VIEW_1 плохо работает с тем и тем. Если на входе А и Б, должно быть close_reason = 1, а я вижу close_reason = 0.
Проверила вручную (а то вдруг просто dbStart кривой?):
- Создала 4 объекта, полностью идентичные, кроме ХХХ. Запросы есть в save (4 запроса).txt
- Загрузила к ним АП — см source_2.csv, там уже и хеш посчитан. Запрос для заливки данных в базу есть на \\public\test_data.
- Выполнила задачу test_name — получила то и то
- Проверила вьюшку
select * from view_1;
У всех четырех АП close_reason = 1, все ок.
5. Сменила параметр А на Б
7. Еще раз проверила вьюшку. Теперь у объектов 1 и 2 изменился close_reason = 0
******************************************************
Вот вроде все подробно и понятно, бери да выполняй. Все файлики в аттаче к задаче → воспроизвести не проблема! Дело было 23 декабря.
...
Сегодня задача приехала ко мне, где разработчик сказал "все исправил". Пошла проверять вручную, ведь для этого так подробно и описывала — чтобы потом, при перепроверке, воспроизвести без проблем.
Ага, без проблем. Щазззз.
Пункт 1. Почему в аттаче 4 разных запроса? У нас же есть батчевый SOAP-метод... Надо его и юзать! И чего поленилась в первый раз?
Потом дошло, что не поленилась. Так надо для моего сценария и это важно. Но об этом стоило написать тогда, чтобы не тупить сейчас. Добавила в пункт "не использовала метод А, потому что..."
Пункт 2. Аттач есть, запрос для заливки в базу есть. А в систему то как грузить? Одной задачи хватит? Фишка в том, что у нас не все задачи тривиальные. Иногда надо выполнить одну, потом вторую.
Опять тупняк на 1 минуту — мне же хватит задачи test_name_2? Я за новогодние праздники уже жеж все забыла! Проверила, хватило. Но в список пунктов между 2 и 3 внесла еще один:
Выполнила задачу test_name_2
Так в следующий раз и вопросов не возникнет.
Пункт 4. Выполняю селект — вьюшка пустая. Почему? Потому что она работает по интервалу и надо указать параметр to_date, чтобы хоть что-то увидеть. Перепишем пример:
exec export_pkg.set_from_date(to_date('2011-05-23', 'YYYY-MM-DD'));
select * from view_1;
Вот теперь это "бери да выполняй"!
Ведь пример зачем нужен? Чтобы не вспоминать, откуда данные забираем, что для этого надо еще выполнить итд. А просто копипастим в sql developer — и оно работает.
См также:
Не пишите в баге «Ввести 6,9»! — как правильно добавлять примеры в баги
Если вы описываете шаги, пишите как для идиотов. Это пригодится. И ведь я даже знаю это. Учу этому. Применяю сама — вон как подробно расписала каждый шаг (почти, как оказалось), приложила все файлики, ай молодца! А вот вернулась к задаче спустя 3 недели — и уже ничего не помню. И на плохом описании туплю или трачу время на то, чтобы вспомнить, как это делается.
Поэтому я и не стесняюсь говорить "как для идиотов". Потому что себя идиоткой не считаю, но сама же потом мысленно говорю себе "спасибо" за разжеванное описание воспроизведения. Или туплю и ворчу "ну что ты сапожник без сапог, не могла запрос приложить? делай новый теперь..."
Как-то так =)
Комментариев нет:
Отправить комментарий