| 

.NET C# Java Javascript Exception

4
Ich stolpere in letzterer Zeit häufig darüber, dass der Begriff "Unit Test" als Synonym für alle Arten von automatisierten Tests genutzt wird und das selbst von Leuten die sich auskennen sollten (Tester und Entwickler).

Nun unterscheiden aber Autoren wie Roy Osherove und Kent Beck explizit zwischen automatisierten Tests insgesamt, also auch Integrations und Akzeptanz tests, und Unit Tests, die immer nur eine Funktionalität testen. Auf der anderen Seite wird aber im Visual Studio alles als Unit Test bezeichnet.

Nun meine Frage: Kann mir jemand diese synonyme Verwendung theoretisch begründen? Also gibt es irgendwo ein Buch von einem ernstzunehmenden Autor der beides auf eine Ebene hebt oder ist es nur so, dass sich die Verwendung einfach so eingebürgert hat weil die Leute den Unterschied nicht kennen? Bisher glaube ich letzteres.

Nachtrag:
Ich will an der Stelle keine Erbsen zählen und mich über Beschriftungen etwaiger Tools aufregen. Laut den mir bekannten Autoren ist ein Unit Test ein sehr kleinteiliger Test der nach Möglichkeit nur eine Funktionalität testet. Ein Integrationstest, testet hingegen den Verbund mehrer Klassen und deren Zusammenarbeit. Ein Systemtest hingegen geht alle Schichten eines Moduls oder einer Applikation durch und testet dann das "große Ganze". Ein Akzeptanztest prüft dann das Verhalten der Software gegen die Anforderungen die vom Endkunden definiert wurden. Dies kann alles automatisch, aber auch manuell geschehen.

Sagt man also, dass Unit Tests alle Tests umfassen die automatisiert geschehen, wiederspricht das der mir bekannten Theorie. Es ist als würde man von Autos sprechen aber immer Audi sagen. Deshalb wüsste ich gern ob dies einen theoretischen Hintergrund hat oder ob es sich einfach nur eingebürgert hat. Genauer frage ich, weil diese Definition zum Beispiel für wissenschaftliche Arbeiten durchaus von Bedeutung ist. Welche Begriffe die Leute in ihrem Alltag verwenden, sei ihnen selbst überlassen.
07.12.2011
Hendrik Lösch 1,5k 1 9
1
"Auf der anderen Seite wird aber im Visual Studio alles als Unit Test bezeichnet." - wie kommst Du darauf? Wenn ich mir
http://msdn.microsoft.com/en-us/library/dd286729.aspx ansehe, finde ich da schon eine ganz ordentliche Differenzierung.
Wo bist Du sonst noch über die synonyme Verwendung gestolpert? Ich hab das bislang nicht als großes Problem wahrgenommen.
Matthias Hlawatsch 07.12.2011
Lässt man sich im VS (nicht Test Profesional) einen Test erstellen legt man einen "Unit Test" oder "Komponenten Test" (Beschriftung der Dialoge oder Kontextmenüs) an. MS Test wird selbst auch immer als Unit Test Framework bezeichnet.
Hendrik Lösch 07.12.2011
1 Antwort
0
Hallo,

mit der Unterteilung der Tests hast du recht. Test Types gibt auch ein Übersicht und über die Unterschiede.

Dass bei VS alles Unit-Test heißt, kann ich nicht ganz bestätigen. Gut ich verwende es ja auch nicht (NUnit), aber sollte es so sein wie du schreibst, dann hat sich das einfach (fälschlicherweise) eingebürgert. Eine aufgeweichte Definition eines Unit-Tests kann sicher nicht der Grund sein - zumindest wäre dies schon ein grobes Vorgehen.

MsTest wird mMn eher als Integrations-Test-Framework bezeichnet. Quellen hab ich jetzt keine parat, aber ich habe schon öfters von MS gelesen, dass MsTest für Integration-Tests sind bzw. dafür konzipiert war. Vllt. ist die generelle Bezeichnung Unit-Test-Fx auch nur ein Marketing-Versuch um das Augenmerk weg von NUnit & Co. auf MsTest zu lenken.

mfG Gü
07.12.2011
gfoidl 9,4k 3 5

Stelle deine Test-Frage jetzt!