Тестирование приложений - PullRequest
       7

Тестирование приложений

3 голосов
/ 09 сентября 2008

Является ли реальная выгода в TDD фактическим тестированием приложения или выгодами, которые дает написание тестируемого приложения? Я спрашиваю, потому что чувствую, что разговор слишком часто вращается вокруг тестирования, а не всего пакета преимуществ.

Ответы [ 6 ]

7 голосов
/ 09 сентября 2008

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

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

Так что я думаю, что большая часть разговоров о TDD связана с тестированием, но за этим следуют и другие большие преимущества, такие как качество (охват), гибкость (развязка), лучший дизайн (как потребитель API). 1005 *

4 голосов
/ 09 сентября 2008

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

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

1 голос
/ 09 сентября 2008

Реальное преимущество TDD в том, что предполагается в том, что оно позволяет вам изменять / реорганизовывать / улучшать ваше приложение, не беспокоясь о том, что вы нарушили существующую функциональность. Тот факт, что написание модульных тестов имеет тенденцию приводить к слабосвязанному коду и лучшей архитектуре, не обязательно является «1003» точкой TDD, но я думаю, что трудно иметь одно без другого.

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

0 голосов
/ 12 сентября 2008

У Майкла Фезерса есть проницательная запись в блоге об этом под названием Недостаток теории, стоящей за юнит-тестированием . Серьезно, иди почитай. Изюминка

Все эти методы, как было показано, повышают качество. И, если мы посмотрим внимательнее, то увидим, почему: все они заставляют нас задуматься над нашим кодом.

но вы должны прочитать полный пост для контекста.

0 голосов
/ 09 сентября 2008

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

С TDD вы получаете хороший набор тестов по мере разработки. Без TDD писать эти тесты гораздо сложнее.

0 голосов
/ 09 сентября 2008

Автоматизированное тестирование не позволяет людям выполнять работу машины.

Разработка через тестирование максимизирует объем автоматизированного тестирования.

За определенной точкой, конечно, человек все еще необходим. Вы достигаете убывающей отдачи, когда пытаетесь применить TDD после этой точки.

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