Fireplace

Tests im Software-Engineering

Fou-Lu

Lt. Junior Grade
Registriert
Aug. 2006
Beiträge
290
Hallo CBler,
nun den. Schon etwas länger, dass ich mich hier mal gemeldet habe :D

Aber naja... folgendes... mich würde es brennend interessieren welche Tools, Schritte, Taktiken, etc. es zum Testen von Software gibt??!

Ich habe zwar schon einiges über Software-Tests gelesen (vor allem auf Wikipedia), aber alles was in solchen Artikeln steht, sind nur Zweck und Name der Tests (Unittest, Integrationstest, etc.).

Was mich aber interessiert ist wie solche Tests im Detail durchgeführt werden. Welche Tools werden dabei verwendet, wie wird das geplant, was und wie wird es getestet, und und und...


Wenn ich jetzt ne Software schreibe, dann will ich sie auch auf Herz und Nieren prüfen können, aber stumpfes Durchklicken durchs Programm und sehen obs abstürzt sind in meinen Augen keine richtigen Tests?!!

Hoffe ihr könnt mir da einige Sachen dazu erzählen, Links zu Artikeln geben und/oder einige gute Bücher dazu empfehlen.

Ich bedanke mich schon mal vielmals :)
 
Oh man am besten suchste dir wen der dir das zeigt, das zu erklaeren ist nicht einfach xD

Aber meistens laeuft es auf in etwas darauf hinaus:

Der Programmierer schreibt fuer sein Program eine einfache Funktion zum testen. Er ruft eine Funktion die er testen will auf und prueft ob das Ergebnis der Funktion das ist, was dieser erwartet.

Beim Integrationstest wird so getestet ob auch alles so aufgerufen wird wie man es sich vorstellt etc..

Ach so, das wird natuerlich alles genauestens Dokumentiert, was echt nervig ist :D
 
Gut aber ich bezweifel, dass der Programmierer z.B. für nen Systemtest zig-Funktionen schreibt um den Systemtest durchzuführen :D
 
In der Regel ist es aber so das man eigene Testlogic schreibt.
Gibt dann zwar schon einige Guidelines fürs testen, aber am Code führt kein Weg vorbei.
 
Ein Systemtest ist eigentlich nur der komplette Test der einzelnen Funktionen. Und doch genau das macht er, er schreibt eigentlich fuer jede Funktion eine Funktion um diese zu testen..

Beim Systemtest wird halt das komplette Programm so einmal durchgearbeitet mit festem Wert rein und definiertem Ausgang. Wenn der Ausgang stimmt ist alles richtig.

Dazu kommen dann natuerlich noch Sachen wie Fehler abfangen etc. Das will natuerlich auch alles Programmiert und getestet werden. Also das testen ist im normalfall in etwa dieselbe Arbeit wie das Programm selber zu schreiben, manchmal sogar mehr als das.
 
Hmm... aber es wäre trotzdem super da mal was selber gesehen zu haben xD
 
Ja, such dir nen ordentlichen Programmierer der sowas auch Gewissenhaft macht und lass dir das zeigen ;)
 
Könnt ihr mir wenigstens einige Tools für z.B. Performance-Tests oder so empfehlen? Sowas sollte es denke ich mal ja auch geben (ohne gleich was eigenes aufzusetzen) :D :D
 
Visual Studio da hat vieles mit drin ^^ Ich programmier schon lange nicht mehr aktiv, und damals auch nur Dinge wo die Performance kein Problem bei der heutigen Hardware ist, kenne mich in der Hinsicht also auch nicht weiter aus. Aber viel Erfolg ;)
 
Du solltest dir erst mal im Klaren darüber sein, was du überhaupt testen möchtest. Bei einem klassischen bottom-up Ansatz macht man zunächst mal Komponenten/Unittests. Die schreibt man für gewöhnlich mittels Tools wie xUnit (JUnit, NUnit etc.). Als Anfänger ist es wohl am besten, ebenfalls hier anzusetzen.

Alles andere kommt danach.
 
Vielen Dank schon mal für die zahlreichen Antworten.

Würde mich freuen, wenn euch noch etwas einfallen würde.
 
Such dir doch bei Sourceforge einfach mal ein gut dokumentiertes Open Source Projekt in einer Programmiersprache, welcher du mächtig bist. Dann schaust du ob sie UnitTests benutzen. Die gut dokumentierten Projekte tun dies in der Regel. Dann etwas durch den aktuellen Sourcecode wühlen (via SVN, Git, Hg, oder was auch immer genutzt wird ziehen) und Fragen einfach im IRC Channel des Projektes stellen. So würde ich vorgehen.
 
Mit welcher Sprache/IDE arbeitest Du denn? Und welcher Art sind die erstellten Programme? GUI, Web-App Client/Server, etc.?

Für praktisch jeden Aspekt einer Applikation gibt es entsprechende Tools. Das fängt bei der Architektur an, geht über UnitTesting hin zu Integrations und Performance-Testing (Profiling/Monitoring). Es gibt spezielle Tools, die Tests oder Testdaten erstellen, die Test-Abdeckung überprüfen (Code Coverage), oder Metriken erstellen, die zur Qualitätssicherung dienen können.

Je nachdem welche Sprache/Plattform verwendet wird, wirst Du mehr oder weniger Programme von unterschiedlicher Qualität finden.
 
Ich programmiere hauptsächlich in C# und als IDE nutze ich Visual Studio Express. Die Programme sind hauptsächlich für lokale Ausführung mit Gui programmiert.

Hin und wieder kommt es vor, dass ich mal was in PHP und HTML mache oder aber auch ne Client-Server-Anwendung mit Gui (z.B. ala ICQ) in C#.
Ergänzung ()

@mvBarracuda: vielen Dank für den Ratschlag. Werd ich mal ausprobieren.
 
Genau :D
die Kosten kommen mit der Zeit, wenn mir Freeware und OpenSource nicht mehr reichen :D :D :D


Danke schon mal :)
 
Zurück
Oben