95 – Пишите тесты для людей

2 comments

in Переводы

95-ая статья из книги 97 Things Every Programmer Should Know
by Gerard Meszaros

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

Но постойте, вы пишите хорошие тесты? Задайте себе вопрос — “Для кого я пишу тесты?”.

Писать тесты для себя или для компилятора не самая лучшая идея. Так для чего же на самом деле стоит писать тесты?

Тесты стоит писать для людей, которые в дальнейшем будут изучать ваш код. Хорошие тесты являются документацией к тестируемым программам. Они отлично описывают как и для чего работает код.

Можно выделить три основных сценария тестирования:

  • Описание контекста тестируемой части программы, точку входа и данные, которые должны быть определены, перед выполнением теста
  • Демонстрация того, как программа должна быть вызвана
  • Описание ожидаемых результатов или условий, которые будут проверены

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

Каждый из тестов должен кристально ясно демонстрировать один из трёх сценариев тестирования.

Это означает, что тесты должны демонстрировать не только то, что явно, но и то, что скрыто.

Слишком большие тесты могут быть тяжелы для понимания, так как читатель может отвлечься на незначительные вещи. Старайтесь убрать на второй план не особо значимые вещи. Рефакторинг — ваш лучший друг в данном вопросе, извлекайте методы из большого кода, сосредотачивайте внимание ваших читателей на самом важном. И конечно же не забывайте давать вашим тестам понятные названия, которые не будут запутывать, но и смогут раскрыть суть этого теста.

Тестируйте свои тесты. Звучит странно? Но это тоже хорошая идея.

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

Попросите своего партнера просмотреть ваши тесты. Непредвзятый взгляд сможет выявить сложные и непонятные места, над которыми вам стоит поработать. Если этот человек чего-то не понял, то скорее всего это не из-за того, что он глуп, а из-за того, что вы не смогли доходчиво передать суть теста. (А теперь вперед меняться ролями — почитайте тесты ваших коллег!)

{ 2 comments… read them below or add one }

1 Grammar nazi Июль 6, 2010 в 08:05

пишИте – повелительное наклонение, вы пишЕте – повествовательное.

Ответить

2 pechorin-andrey Август 27, 2010 в 16:15

thanks for fix, nazi

Ответить

Leave a Comment

Previous post:

Next post: