Как вы решаете, что тестировать в ваших тестах? - PullRequest
0 голосов
/ 05 апреля 2011

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

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

Ответы [ 3 ]

3 голосов
/ 05 апреля 2011

Ответьте на большинство ваших вопросов http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

1 голос
/ 05 апреля 2011

Боюсь, у вас нет простых ответов. Это просто трудное место, чтобы быть там.

Применяемый метод:

  • определить регионы, которые обеспечивают наибольшую отдачу от испытаний. (Это то, что вы должны придумать - уникальное для вашей ситуации).
  • Потратьте время на знакомство с регионом. Определите взаимодействия этого региона с остальной частью кода.
  • Документируйте то же самое, используя тесты - они действуют как «порок» регрессии, который будет удерживать ваше программное обеспечение на месте, пока вы будете вносить последующие изменения
  • Теперь у вас есть защитная сетка для работы выше. Теперь вы можете начать вносить улучшения / исправления / изменения, используя подход TDD.

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

0 голосов
/ 06 апреля 2011

Аналогичный вопрос был задан и получен ответ здесь

Несколько быстрых мыслей от меня:

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

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

У них также есть длинный список полезных ресурсов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...