3 votes

Est-ce qu'une application de démonstration devrait avoir des tests automatisés?

Si je développe une application de preuve de concept, est-ce logique d'investir du temps dans l'écriture de tests automatiques? Il s'agit d'un projet personnel où je suis le seul développeur.

Je vois le seul avantage des tests automatisés à ce stade comme:

  • Si le concept prend, les tests existent déjà.

Certains des inconvénients liés à l'écriture de tests automatisés pour ce type de projet pourraient être:

  • Il faut du temps précieux pour écrire des tests pour une idée qui pourrait ne pas être utile aux gens.
  • À ce niveau, le temps est mieux utilisé pour construire une démonstration de votre idée.

Quelqu'un peut-il fournir les avantages et les inconvénients d'investir du temps dans l'écriture de tests automatisés pour une application à ses débuts?

5voto

chisophugis Points 436

Ce discours complet de la Conférence sur l'automatisation des tests de Google concerne votre question : http://www.youtube.com/watch?v=X1jWe5rOu3g

En gros, la conclusion est qu'il est plus important de savoir que vous construisez la bonne chose que de construire quelque chose correctement (construire la bonne "chose", plutôt que construire "la" chose correctement). La chose la plus importante est de réussir un concept de preuve et de s'assurer qu'il fonctionne et qu'il est apprécié. Si les gens aiment votre produit, ils toléreront les bogues ; mais s'ils n'aiment pas votre produit, il peut ne pas avoir de bogues et ils ne l'aimeront toujours pas.

2voto

systho Points 776

Le TDD ne concerne pas vraiment les tests, mais la conception. Faire du TDD pour votre application lui donnera une meilleure conception (probablement) que de le faire simplement en se basant sur son ressenti.

Votre problème est : avez-vous besoin d'une bonne conception ? La conception est utile pour la maintenance et la plupart des développeurs pratiquant le TDD se considèrent en mode maintenance juste après avoir ajouté leur première fonctionnalité.

D'un point de vue plus pragmatique : si vous êtes le seul développeur, avez des spécifications très précises et travaillez sur ce code pour le faire une seule fois et ne jamais y retourner (ni demander à quelqu'un d'autre d'y retourner), je dirais que le faire fonctionner suffit.

Mais alors ne cherchez pas à en retirer quelque chose si votre POC fonctionne, et refaites-le simplement.

  • Vous pouvez gagner du temps en faisant un POC moche et en arrivant à la conclusion que votre idée n'est pas réalisable.
  • Vous pouvez gagner du temps en faisant un POC moche et en comprenant beaucoup mieux le domaine que vous essayez de modéliser
  • Vous ne pouvez pas gagner du temps en essayant d'obtenir quelques lignes de code à partir d'une base de code horrible.

Mon meilleur conseil pour estimer combien d'efforts vous devriez investir dans la conception (car une surconception peut également être un gros problème) est : essayez d'estimer combien de temps ce code vivra

Référence : Je vous suggère de faire des recherches sur la devise "Make it work, make it right, make it fast". La question que vous vous posez concerne les 2 premiers points mais vous vous poserez tôt ou tard la même question concernant l'optimisation (le troisième point)

1voto

Dave Newton Points 93112

Il n'y a pas de réponse "juste". Le TDD peut renforcer votre concept, le rendre plus résistant, plus facile à tester et aider le développement de l'API. Cela prend aussi du temps, et des changements radicaux signifient des changements dans les tests.

Il est rare de pouvoir jeter complètement le code "prototype" dans la vraie vie, cependant.

1voto

Ross Patterson Points 6512

La réponse dépend entièrement de ce qui se passe si vous prouvez votre concept. Vrai Les applications de preuve de concept sont jetées, quelle que soit la conclusion, et la vraie application est écrite par la suite si la preuve de concept a été concluante. Ces preuves de concept n'ont évidemment pas besoin de tests. Mais il y a beaucoup trop de "PoCs transformées en produits" là-bas. Ces applications auraient probablement dû avoir des tests écrits dès le départ. Les autres réponses que vous avez reçues vous apportent un soutien solide pour les deux positions, vous devez juste décider quel type de PoC vous construisez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X