четверг, 20 июля 2017 г.

PyTest: красивые имена тестов в репортиках

Последнее время довольно много приходится работать с PyTest, и несколько месяцев назад я написал небольшой кусочек кода, который позволяет переопределять имена тест кейсов через doc strings к ним.

Зачем это нужно?

Когда показываешь отчет о проделанном тестировании человеку, который не занимается запуском и написанием тестов, то имена тестовых сценариев им не говорят ни о чем, и выглядит такой отчет очень неаккуратно (он же автосгенерирован на основе кода).

Еще одним минусом является то, что очень сложно определить по такому отчету то, какие кейсы уже покрыты, а какие еще нет - так и хочется залезть в код функции теста, чтобы в этом разобраться.
Когда же у нас есть возможность описать тестовый сценарий в подробном doc string применяя обычные предложения на английском - у нас есть полная свобода в описании тестового сценария, и это описание можно импортировать в чек листы, в отчеты, в баг репорты и куда угодно еще.

Как было - список тестовых сценариев (пример запуска pytest --collect-only):

Как стало - список тестовых сценариев (пример запуска pytest --collect-only):

вторник, 18 июля 2017 г.

Дополнительные проверки не помешают

Сегодня мне довелось пользоваться супер продвинутым сканером безопасности (название и создатели которого останутся за NDA). Сканер реально крут.

Разобрался с параметрами, создал тестовый стенд, запустил сканер - задача на сканирование ушла в in progress и можно идти пить кофе - красота!

Вот кофе закончился - проверяем результаты сканирования.

Сканер радостно сообщает мне, что "все проверено, ни одной уязвимости не найдено!". На страничке с репортом даже вставлена прикольная смешная картинка чтобы порадовать пользователя:



Что еще нужно, да? :)

Написал разработчикам сканера - спросил как бы мне посмотреть детальный репорт - что проверялось, что отвечал сервер...

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

Так что проверяйте и перепроверяйте. Даже если кажется что все "проверено" и "работает"... ;)

Интересное наблюдение - в данном случае у меня стригерилась в голове моя любовь к циферкам - захотелось посмотреть сколько же тестов пройдено и что они там писали в логах.

И да, я оказался первым, кто вообще захотел это проверить... и вот это уже наводит на мысли о том как устроено человеческое сознание - "нет проблем" и веселая картинка, которая выключает системное мышление - и человек не копает глубже, интересно, да? :)