Разделы портала

Онлайн-тренинги

.
Как тестировать ваши тесты
16.07.2018 13:27

Автор: Дейв Вестервельд (Dave Westerveld)

Оригинал статьи: http://blog.testproject.io/2017/11/21/how-to-test-tests/

Перевод: Ольга Алифанова

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

То же самое происходит и с тестировщиками. Мы классно находим баги, и все равно жалуемся. Мы жалуемся, что в нашей автоматизацией куча проблем. Мы отлично находим проблемы для других людей, но забываем применять этот навык, чтобы найти проблемы в своих собственных тестах. Наши тесты сломаны, и с этим надо что-то делать. Их надо тестировать!

Вот несколько идей, с которых можно начать:

Ненадежные тесты

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

Зеленые тесты

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

Красные тесты

Не будем забывать о тестах, которые падают при малейшей возможности. Вы чуть-чуть изменили продукт, и тест сразу рухнул. С ними легко попасть в беговое колесо поддержки высокого процента проходимости, но начните мыслить как тестировщик. Взгляните на вещи шире и посмотрите на общую картину! Не происходит ли там что-нибудь, на что нужно обратить внимание? Нет ли особых типов тестов, которые необходимо почистить, чтобы они стали устойчивей? Нет ли областей в продукте, которые не требуют такого количества тестов для покрытия (или, наоборот, требуют добавления автотестов)? Ищите паттерны. Тестируйте ваши тесты!

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

Обсудить в форуме