Должны ли приложения для проверки концепции иметь автоматические тесты? - PullRequest
3 голосов
/ 20 февраля 2012

Если я занимаюсь разработкой приложения для проверки концепции, имеет ли смысл тратить время на написание автоматических тестов? Это для личного проекта, где я являюсь единственным разработчиком.

В этом пункте я вижу единственное преимущество автоматизированного тестирования:

  • Если концепция улавливается, тесты уже существуют.

Некоторые из недостатков, связанных с написанием автоматизированных тестов для этого типа проекта, могут быть:

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

Может ли кто-нибудь предоставить плюсы и минусы вложения времени в написание автоматизированных тестов для приложения на ранних стадиях?

Ответы [ 4 ]

4 голосов
/ 20 февраля 2012

Весь этот доклад на конференции по автоматизации тестирования Google касается вашего вопроса: http://www.youtube.com/watch?v=X1jWe5rOu3g

По сути, вывод состоит в том, что гораздо важнее знать, что вы создаете правильную вещь, чем строить что-то правильноепостроить правильное «это», а не построить «это» правильно).Самое главное, чтобы получить подтверждение концепции и убедиться, что он работает и нравится.Если людям нравится ваша вещь, то они будут терпеть ошибки;но если им не нравится ваша вещь, в ней не может быть ошибок, и им все равно она не понравится.

2 голосов
/ 20 февраля 2012

TDD на самом деле не о тестировании, а о проектировании. Использование TDD для вашего приложения сделает его лучше (вероятно), чем просто делает его по вашему вкусу.

Ваша проблема: вам нужен хороший дизайн? Проектирование полезно для сопровождения, и большинство разработчиков, использующих TDD, считают себя в режиме сопровождения сразу после добавления их первой функции.

С более прагматичной точки зрения: если вы единственный разработчик, имеете очень точные спецификации и работаете над этим кодом, чтобы делать это и никогда не возвращаться к нему (и не отправлять кому-то еще возвращаться к нему), я бы сказал, что создание этого работы достаточно.

Но тогда не пытайтесь получить от него что-либо, если ваш POC работает, и просто переделайте это.

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

Мой лучший совет для оценки того, сколько усилий вы должны приложить к дизайну (потому что чрезмерный дизайн тоже может быть большой проблемой): попытайтесь оценить, как долго будет жить этот код

Справка: Я бы посоветовал вам провести исследование под девизом «Сделайте так, чтобы это работало, сделайте это правильно, сделайте это быстро» . Вопрос, который вы задаете, касается двух первых пунктов, но вы рано или поздно зададите себе тот же вопрос об оптимизации (третий пункт)

1 голос
/ 20 февраля 2012

Ответ полностью зависит от того, что произойдет, если вы докажете свою концепцию. True Приложения для проверки концепции выбрасываются вне зависимости от результата, а реальное приложение пишется позже, если PoC подтвердил свою эффективность. Эти PoC, очевидно, не нуждаются в тестах. Но существует способ слишком большого количества "производимых PoC". Эти приложения, вероятно, должны иметь тесты, написанные сразу. Другие ответы, которые вы получили, дают вам твердую поддержку для обеих позиций, вам просто нужно решить, какой тип PoC вы создаете.

1 голос
/ 20 февраля 2012

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

В реальной жизни редко можно полностью выбросить «прототип» кода.

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