Au cours de la dernière année, j'ai orienté mon équipe vers le mode de développement à libération anticipée (AKA: Rapid Application Development, not Agile). Pour plus d'informations sur la manière dont nous fermons la génération, voir ma réponse ici: Un moyen simple d'améliorer la qualité de la version dans l'environnement RAD
Lorsque nous avons adopté RAD, les gens étaient assez indépendants et faisaient d'abord des tests unitaires; les tests intégrés ont eu lieu beaucoup plus tard dans le processus. C'était un processus naturel pour eux sans beaucoup d'application formelle. Maintenant, la situation est assez différente:
La plate-forme entière est bien intégrée avec les versions / versions établies fonctionnant côté client sans aucun point chaud.
De nouvelles exigences en matière de fonctionnalités continuent d'arriver et nous les construisons progressivement au fur et à mesure.
La dynamique globale du système est très importante car si des groupes de développement indépendants peuvent suivre correctement les processus, des échecs majeurs sont survenus en raison de circonstances compliquées et non évidentes.
De nombreuses parties du système impliquent de nouveaux algorithmes et des entrées de recherche, de sorte que les défis (et donc le mécanisme de test) ne sont pas toujours prévus correctement, comme les tests de fonctionnalités dans un logiciel bien défini.
Récemment, j'essayais d'avoir une meilleure image globale pour voir si nous avions besoin d'une amélioration des processus. Quand je me suis assis avec mon équipe, beaucoup d'entre eux ont rechigné: "Nous ne faisons plus de tests unitaires!" tandis que d'autres pensaient que nous ne devrions pas commencer maintenant car cela ne sera jamais efficace.
Les tests unitaires sont-ils utiles dans un système relativement mature? Faut-il au moins peser la portée du test en fonction de la maturité des unités? Les tests unitaires ralentiront-ils le rythme de développement? Est-il nécessaire d'évaluer les tests unitaires d'une manière différente?
Quelles sont les meilleures pratiques de test pour une plate-forme mature dans un environnement de mise à jour anticipée?