Est-ce que vous refactorisez votre SQL d'abord? Votre architecture? ou votre base de code? Changez-vous de langues? Jetez-vous tout et recommencez à zéro? [Non refactoring]Quelles sont les premières tâches de mise en œuvre des tests unitaires dans les applications de friches industrielles?
Répondre
J'ajoute des tests unitaires à une grande base de code spaghetti héritée.
Mon approche est, lorsqu'on me demande de résoudre un problème, j'essaie de créer une nouvelle enveloppe autour de la partie de la base de code qui est pertinente pour ma tâche actuelle. Ce nouveau wrapper est développé en utilisant TTD (en écrivant le test en premier). Une partie du temps appelant en le code ancien non testé unitaire. À d'autres moments, je fais une nouvelle copie d'un module existant et commence à faire de la violence sérieuse. Parfois, je réécris des fonctionnalités à partir de zéro.
Mais comme je le garde assez bien testé, je me sens assez en contrôle. Ce que je trouve avec cette base de code, qui a été développée avec beaucoup trop de copier et de coller, c'est qu'une fois que je comprends une partie particulière, et en extrait quelques fonctions (qui sont faites en premier) ... ces fonctions s'avèrent souvent utilisables dans beaucoup d'autres endroits et donc le taux de remplacement du code existant par mes propres bibliothèques testées unitairement augmente.
Je n'ai pas (et n'ai aucune autorité pour) essayer de réécrire ou d'ajouter des tests à des parties du code qui ne sont pas touchées par mon problème actuel (généralement un bogue que j'essaie de corriger) mais j'ai un position proactive assez agressive sur tout ce qui est touché et pourrait être pertinent.
Mise à jour: Penguinix a demandé: «Dans quelles langues travaillez-vous? Existe-t-il un harnais de test spécifique que vous recommandez?
En ce moment je travaille dans ... euh ... les oreillons! Mais le même principe fonctionne n'importe où.
Quelque chose qui a transformé ma compréhension de l'UT était MinUnit: http://www.jera.com/techinfo/jtns/jtn002.html
Quand j'ai vu MinUnit, qui était un peu un moment « zen » de l'illumination pour moi. Il a éliminé les malentendus que j'avais sur les tests unitaires étant quelque chose de compliqué nécessitant des frameworks OO sophistiqués, etc. J'ai compris que UT était juste en train d'écrire un tas de tests. Le "harnais" vous pouvez écrire vous-même, dans environ 3 minutes, dans n'importe quelle langue que vous aimez. Allez-y et faites-le.
Cela dépend vraiment de l'état de la base de code ... y a-t-il des classes massives? une classe avec des méga-méthodes? Les classes sont-elles étroitement couplées? la configuration est-elle une charge? Compte tenu de cela, je suggère de lire Working Effectively with Legacy Code, en décrivant vos problèmes, et en appliquant les recommandations.
http://www.manning.com/baley/ Les applications Brownfield dans .NET sont également bonnes. –
Cela semble intéressant. J'utilise actuellement «Travailler efficacement ...» sur ma première application majeure sur les friches industrielles et cela aide beaucoup. Je pense que Refactoring http://www.amazon.com/dp/0201485672 peut également être utile (mon prochain achat). –
Refactorisation par Martin Fowler est une bible de refactor-er. Cela a été très utile dans mon développement. Je recommande également Head First Design Patterns et Code Complete. –
- 1. Quelles sont les considérations importantes lors des tests de backend?
- 2. Mocking and DetachedCriteria dans les tests unitaires
- 3. Quels types de tests unitaires sont les plus rentables?
- 4. Quelles sont les applications économiquement importantes de l'apprentissage automatique?
- 5. Quelles sont les applications réelles du rendement?
- 6. Tests unitaires en flex
- 7. Une meilleure pratique par exemple d'une mise en œuvre MVP de tests unitaires (en VB.Net)
- 8. Quelles sont les meilleures pratiques actuelles pour les tests de charge et le profilage des applications Web ASP.NET?
- 9. Construit dans les tests unitaires dans VS
- 10. Modification des constantes pour les tests unitaires
- 11. Utiliser les déclarations "friend" pour les tests unitaires. Mauvaise idée?
- 12. Comment utiliser les données externes dans les tests unitaires?
- 13. Quelles sont les meilleures pratiques dans vos tests?
- 14. De bonnes ressources sur les tests unitaires?
- 15. Comment construire des tests unitaires dans Guile, quels sont les résultats de la norme TAP?
- 16. Les littéraux ou les expressions dans les tests unitaires s'affirment?
- 17. Remplissage de SQLite en mémoire pour les tests unitaires
- 18. Tests unitaires en PHP?
- 19. Héritage des tests unitaires
- 20. Ecriture de tests unitaires pour les classes liées au réseau
- 21. Quelles sont les applications Web Connaissez-vous l'aide Webhooks
- 22. Afficher les résultats des tests unitaires dans VS 2008
- 23. Quelles sont les alternatives à Spring Batch pour gérer les tâches en file d'attente?
- 24. Comment exécuter les tests unitaires CPPUnit
- 25. Comment effectuer des tests unitaires automatisés dans des packages SSIS?
- 26. Inclure des données dans mes tests unitaires
- 27. Où sont les modèles de tests unitaires dans le VS Unit Testing Framework?
- 28. Tests unitaires en Python
- 29. Tests unitaires avec les états informatiques
- 30. Quelles sont quelques-unes des optimisations de base de données pour les applications multi-locataires
Dans quelles langues travaillez-vous? Existe-t-il un harnais de test spécifique que vous recommandez? –