Während ich ein professioneller Programmierer bin, wurde ich noch nie in Software-Engineering ausgebildet. Da ich häufig hier bin und SO, habe ich einen Trend festgestellt, wann immer möglich Unit-Tests zu schreiben, und da meine Software komplexer und ausgefeilter wird, sehe ich automatisierte Tests als eine gute Idee, um das Debuggen zu unterstützen.
Der Großteil meiner Arbeit besteht jedoch darin, komplexes SQL zu schreiben und die Ausgabe dann auf irgendeine Weise zu verarbeiten. Wie würden Sie beispielsweise einen Test schreiben, um sicherzustellen, dass Ihre SQL die richtigen Daten zurückgibt? Sagen Sie dann, wenn die Daten nicht unter Ihrer Kontrolle standen (z. B. die eines Drittanbieter-Systems), wie können Sie Ihre Verarbeitungsroutinen effizient testen, ohne Unmengen von Dummy-Daten schreiben zu müssen?
Die beste Lösung, die ich mir vorstellen kann, besteht darin, Ansichten der Daten zu erstellen, die zusammen die meisten Fälle abdecken. Ich kann dann diese Ansichten mit meinem SQL verknüpfen, um festzustellen, ob die richtigen Datensätze zurückgegeben werden, und die Ansichten manuell verarbeiten, um festzustellen, ob meine Funktionen usw. das tun, was sie sollen. Trotzdem wirkt es übertrieben und flockig; insbesondere Daten zu finden, gegen die getestet werden soll ...