пятница, 4 мая 2012 г.

Lesson 112

Лейтмотив недели: люди бьются за promoted build.

Слово Канеру:

Проблема плохой автоматизации в том, что ее сложно заметить

Продукты которые существуют некоторое время, часто имеют наборы автоматизированных тестов. Созданные давно, они продолжают по прежнему использоваться для тестирования.

Тестировщикам нравится иметь такие тестовые наборы. Мы хотели бы высказать несколько предупреждений.

Тесты могут делать не то, что вы думаете Откуда вы знаете, что тесты делают то, что вы предполагаете? Автоматизаторы иногда пишут не те тестовые процедуры, что им было указано. Много лет назад, возможно, для этого были веские причины. Что вы о них знаете? Насколько легко прочитать тесты и просмотреть их код?

Тесты могут стать неинтересны обозреватель Douglas Hoffman сообщает, «Недавно я обнаружил автоматизированный тест памяти, используемый производителем компьютера, который они называли ‘lonely bit test’». Это был тест, используемый для того, чтоб найти ошибки записи в памяти до 1970х годов. Самое большой размер памяти тогда был 16кб и тест занимал несколько минут. Теперь он может занять несколько часов, на новых объемах памяти, а ошибка невозможна в современных системах. Другой автоматизированный тест, который я просматривал, был разработан для проверки состояния встроенного процессора. Я увидел, что документация написана в 1986 году, семь поколений продукта назад. И никто не думал обновить тесты для каждого нового поколения».

Покрытие может быть небольшим Люди часто сосредоточены на количестве тестов в наборе. Легко раздуть количество тестов, запуская множество вариаций одного и того же теста. Проверьте текущее покрытие тестового набора. Вы можете быть удивлены тем, что не проверяется.

Ложные срабатывания могут стать массовыми Со временем, небрежное программирование и обслуживание автоматизации может привести к большому количеству тестов, срабатывающих из за бага в автоматизации. Конечно, вы не будете точно знать, что послужило причиной срабатывания, ошибка в продукте или в тесте, так что вам придется изучить все тесты. Многие из них являются сломанными тестами — тестами, которые когда-то работали, но затем у вас не хватило времени, чтоб починить их. Удалите сломавшиеся тесты из набора. Какая от них польза? Они мертвы. Примите это и похороните их, или почините — прямо сейчас. Но не оставляйте их вонючие трупы в активном наборе тестов.

Результаты тестов могут лгать Некоторые тесты не проверяют результаты. Они проходят пока продукт не упадет. Другие тесты имеют ошибку, такую, что они могут пропустить ошибку или препятствовать ее выявлению. Третьи содержат некорректные «золотые» файлы: когда тест срабатывает, золотой файл обновляется, но не происходит сообщения об ошибке. Мы так не делаем. Такие проблемы, по нашему опыту, можно ожидать от сравнительно сложных наборов тестов. Чтоб их избежать, автоматизаторы должны сохранять простоту системы или использовать методы защищенного программирования. Проблемы такого рода — плохой признак, но мы видели, когда тесты были жестко запрограммированы на то, чтоб пройти. Они просто говорили «Результат — тест прошел».

У автоматизаторов не было и мысли о том, что продукт может не работать. Мы размышляли о том, почему это происходит, но так и не нашли убедительных причин. Все что мы можем сказать — это случается в разное время в разных местах. Мы постоянно слышим новые истории от людей, видевших подобное. Что вы думаете о тестах, которые проходят, даже если продукт, который они тестируют, не существует?

Mary Sweeney считают, что это происходит из-за того, что автоматизаторы начинают создание тестов с создания шаблона, который выполняется успешно, затем забывают про него.

Хороший тестовый набор — живое существо. Новые тесты добавляются. Старые тесты чинятся или удаляются. Если этого не происходит, тестовый набор начинает костенеть. Создатели тестов будут двигаться дальше и тестовый набор достигнет состояния великого старого мифического дуба, к которому персонажи сказок ходят за советом. Репутация дерева растет по мере того, как оно становится старше, но идея о том, что дуб работает правильней с течением времени хороша для мультфильмов, к тестам стоит относиться более скептически. Мы называем это «синдромом веры в мудрость предков-тестировщиков», которые создали большой тестовый набор.

Комментариев нет:

Отправить комментарий