Hallo,
ähm, nein. Nicht, wenn die Anforderung klar definiert ist.
Was sie in 75% der fälle nicht ist, da kein Kunde in die Zukunft sehen kann.
Das bedeutet einen Riesenaufwand, den ich aber für unumgänglich halte. Okay, bei umfangreichen Projekten mag es sinnvoll sein, die Tests auf eine Menge von Stichproben zu beschränken, die man vorher sorgfältig auswählt. Aber das bringt natürlich eine gewisse Unsicherheit ins Spiel.
Wie kommst du darauf dass Unit-Tests "Stichprobentests" sind? Einen Unit-Test musst du dir vorstellen dass du jeden manuellen Test den du sonst auch schreibst innerhalb des Testframeworks schreibst und wenn der code funktioniert _nicht_ löschst sondern beibehälst. Das nächste mal wenn du oder ein Kolege an diesem Code arbeitest und sehen willst ob es denn irgendwelche unerwünschten Nebenwirkungen gibt die nicht offensichtlich sind dann rufst du alle Tests die du vorher geschrieben hast noch mal auf und guckst ob immer noch alle bestanden werden.
Du siehst also, es ist die manuelle Methode, die sich auf stichpunktartige tests verläs und mehr Unsicherheit ins Spiel bringt da man bei einer Änderung nie die Lust hat alle alten Tests noch mal zu schreiben und manuell das ganze Modul durchzutesten.
Das kann passieren, wenn man die Tests auf Stichproben reduzieren muss.
Deshalb benutzt man ein Testframework wie Unit-Test oder noch besser QuickCheck (Was übrigens auch vom in meinem andern Post verlinkten John Hughes an meiner Uni entwickelt wurde). Mit Hilfe dessen kann man zu jedem Zeitpunkt alle alten und neuen Tests automatisch durchlaufen lassen und findet Fehler, die sich im Nachhinein eingeschlichen haben viel einfacher und systematischer.
Jeena