Bien que je sois programmeur professionnel, je n'ai jamais été officiellement formé en génie logiciel. Comme je visite souvent ici et SO, j'ai remarqué une tendance à écrire des tests unitaires chaque fois que possible et, comme mon logiciel devient plus complexe et sophistiqué, je considère les tests automatisés comme une bonne idée pour faciliter le débogage.
Cependant, la plupart de mon travail consiste à écrire du SQL complexe puis à traiter la sortie d'une manière ou d'une autre. Comment écririez-vous un test pour vous assurer que votre SQL renvoie les données correctes, par exemple? Ensuite, si les données n'étaient pas sous votre contrôle (par exemple, celles d'un système tiers), comment pouvez-vous tester efficacement vos routines de traitement sans avoir à écrire à la main des rames de données factices?
La meilleure solution à laquelle je peux penser est de faire des vues des données qui, ensemble, couvrent la plupart des cas. Je peux ensuite joindre ces vues à mon SQL pour voir s'il renvoie les enregistrements corrects et traiter manuellement les vues pour voir si mes fonctions, etc. font ce qu'elles sont censées faire. Pourtant, cela semble excessif et floconneux; en particulier trouver des données pour tester contre ...