20 февр. 2009 г.

Тестирование и баги

Основной профессиональный миф: тестер везде видит баги. Развитие сюжета: хороший, годный тестер находит баги в любом предмете или явлении, с которым сталкивается на своем жизненном пути. По интернету гуляет вот такой баян об идеальном тестере.
Восьмой час колупаясь с воспроизведением бага на performance тесте, хочу сказать, что я против.
Первое время я искренне наслаждалась тем, что могу разными способами уронить систему. Особым шиком считается, если после этого для корректного запуска нужно редеплоить приложение. А если сумеешь ещё и базу корраптнуть, вообще придётся писать скрипт, чтобы данные исправить.
Всё это фигня.

Искусство тестера состоит в том, чтобы проверить, как работает конкретное место. Тестировать систему целиком — это тоже очень нужно и важно, но, как всегда, весь дьявол в деталях. Если система не работает -- приходится искать конкретное место, раскапывать подробности, выявлять необходимые и достаточные условия для возникновения проблемы.
Бывает и так, что багрепорт содержит только скриншотик окошка с надписью "server error". С багами, пришедшими от кастомера, так случается очень часто. Без дополнительной информации воспроизвести проблему невозможно, но искусство в том и состоит, чтобы использовать минимум информации. Тут-то и начинаются соревнования между тестерами "кто быстрее воспроизведёт".

А вот когда ты уже понял, в чём дело, и локализовал место, где кроется проблема, начинается самое геморройное.
Нужно сделать так, чтобы неправильно отработало именно это место. Именно этот кусок кода, именно этот запрос, именно этот ресурсный файлик неправильно подсосался. И вот тестер сидит и молится, чтобы всё остальное сработало идеально. Человек, обладающий хорошей памятью, наизусть знает, где можно вляпаться и как такие моменты обойти. Я, естественно, вляпываюсь во всё по очереди и по нескольку раз, прежде чем дойти до нужного. Слава Богу, девелоперы постепенно фиксают самые неудобные дефекты. Но сажают при этом кучу новых :)

Много ли толку в умении уронить приложение при запросе, если тебе нужно получить некорректно сформированный ответ? Много ли смысла в людях, знающих как, но не знающих зачем?
Умный тестер должен всегда знать, зачем он тестирует. Профессиональный тестер должен уметь просчитать и построить модель, как именно тестировать. Талантливый тестер должен чувствовать, что нужно тестировать.

Картинка для привлечения внимания:

1 комментарий:

im комментирует...

Средняя часть картинки ДПВ очень верна: действительно, толщина интерфейса неровная, то больше, то меньше.