Comment pensez-vous de l'unité de tester votre T-SQL? Qui bibliothèques/outils utilisez-vous?
Jetez un oeil à cette TSQLUnit et ce tSQLt.
J'ai expérimenté avec l'aide de quelques-uns des différents cadres dans de nombreuses langues à test de T-SQL, tel un junit ou nunit. La raison pour laquelle je suis allé cette voie était de prendre le parti de la richesse des environnements de tests dans ces autres langues. Si par exemple vous utilisez nunit il a une belle ligne de commande et l'interface graphique spectateur à regarder l'état de vos tests et parce que votre aide .net pour écrire vos tests, il se raccorde dans sql server très facilement. JUnit a quelques belles intégration avec beaucoup de commerciaux et open source IDE environnements tels que NetBeans et l'IDÉE de faire des T-SQL test plus comme le code Java de test, qui est très riche. Le point négatif est que vous ne sont pas seulement écrire des T-SQL, vous êtes également à l'écriture de java ou .net pour tester votre T-SQL.
J'ai également utilisé Ruby avec le Râteau(c'est comme faire ou ant) et le système des appels à sqlcmd pour exécuter des scripts sql qui à tourné le contenu des tests. Les scripts valeurs de retour et les chaînes de caractères de retour à ruby pour la réussite ou l'échec d'un essai. J'ai aimé cette approche le mieux qu'il était très maigre et facile pour les autres de ramasser sur. Les autres itinéraires mentionnés ci-dessus nécessaires aux développeurs de l'utiliser .net ou java qui, si vous avez tous les DBA types peuvent être difficiles à surmonter où le rubis avec des scripts sql approche est plus facile à vendre à partir de mon expérience. DBA types ont tendance à être ouvert et capable de ramasser comme les langages de script facile et Ruby a une faible courbe d'apprentissage et les scripts sont faciles à exécuter par rapport à un .net ou java de la classe.
Quel est le pourcentage de votre code est couvert par les tests unitaires et comment le mesurer?
Probablement que 20% seulement parce que la plupart des bases de données systèmes ont toujours pas eu de tests créés pour eux, puisqu'ils ont été créés, de sorte que je suis dans le processus de rétro activement ajoutant les tests et l'ajout de tests de nouveaux défauts et les améliorations à venir.
Pensez-vous que le temps et les efforts que vous avez investi dans votre unité d'exploitation du test a payé ou pas?
La base de données est le pain et le beurre de la plupart des entreprises. Il est toujours profitable à mon avis. Si votre entreprise tolère l'ordure et le taux d'échec élevé pour le client, aucun test n'est probablement pas la peine car elle n'est pas libre de le faire.
Si vous n'utilisez pas l'unité de test, pouvez-vous expliquer pourquoi?
J'aimerai voir si quelqu'un arrive avec une réponse pour ce qui n'est pas absurde. Un peu comme pourquoi ne pas vous mettre votre enfant dans un siège de voiture lors de la conduite sur la route..."Ils coûtent trop cher"..."Prend trop de temps pour mettre l'enfant en elle".."Il est en sécurité sans lui".."Ce qui pourrait aller mal à le justifier".."Il n'y a tout simplement pas assez de temps" Tous ces éléments sont des bs.
Oui, je sais, un peu extrême peut-être, mais vraiment si vous avez un système et il apporte de la valeur de l'entreprise, il devrait être unis testés pour aider à attraper quelques problèmes avant qu'ils ne deviennent des problèmes de production. Les tests unitaires n'est pas une panacée, mais c'est un outil que nous avons à faire le mieux que nous pouvons.
Je dirais globalement en quelque sorte, la plupart des gens donnent la base de données d'un laissez-passer gratuit quand il s'agit de test structuré. Je n'ai aucune idée pourquoi, mais je l'ai vu à la société après société. J'aimerais voir le changement.