| 

.NET C# Java Javascript Exception

3
fürs unit testing möchte ich eine funktion mit allen überhaupt möglichen parameterwerten aufrufen. wie kann ich das machen?
static string Test1(string str, int count)
{
...
}
News:
06.09.2009
ergo 61 1 2
4 Antworten
8
Verwende dazu am besten PEX. Dies erzeugt parametrisierte Unit-Tests und PEX erstellt anhand der Ausführungspfade im Code die Paramter für die Tests.
06.09.2009
gfoidl 9,4k 3 5
2
"Alle möglichen" sind ziemlich viele, eigentlich zu viele, als dass die der PC in machbarer Zeit überhaupt schafft.

Eigentlich sollten die jeweiligen Extremwerte und einige Zwischenwerte zum Testen genügen.
07.09.2009
Feroc 1,2k 2 9
0
Alle moegliche parameter Werte einer Funktion zu pruefen ist wie mein Vorredner schon erwaehnt hat seht viele. Eine einfache Multiplication von 2 32bit Integern resultiert in 2^64 Tests. Wenn nun jeder Test nur 1ns braucht dauert das trotzem noch 18.44674 * 10^27 Sekunden, das sind mal schlappe 584.9424 * 10^18 Jahre.

Anstelle dieses `brute force testing' sollte man die extrem werte, also maximale und minimale Werte testen. Desweiteren muss man um die Grenzwerte herum testen, um ein Beispiel zu geben die Funktion `bool Volljaehrig(int alter)', muss in Deutschland bei allen Werten fuer alter unter 18 FALSE zurueckliefern, bei allen Werten ab 18 TRUE. Die Grenzwerte sind daher 17 -> FALSE und 18 -> TRUE.
08.09.2009
Sputhnic 1 1
Wie im Beispiel mit negativen Werten von alter umgegangen wird könnte auch berücksichtigt werden (oder eben -> false).
gfoidl 08.09.2009
0
Beim Testen im allgemeinen unterscheidet man zwischen White-Box-Tests und Black-Box-Tests.
White-Box heißt in diesem Fall Du hast direkten Zugriff auf eine Funktion und willst nur dieses eine Modul prüfen. Hier solltest Du auf jeden Fall midestens einen Positiv-Test sowie einen Negativ-Test machen. Bei fest vorgegeben numerischen Werten oder bei bestimmten Codewörtern kann man diese unter Umständen auch nahezu komplett testen (siehe pairwise-testing). Wenn Du allgemeine Eingaben prüfst mach auf jeden Fall eine Wertebereichsprüfung. Ist kein fester Werteberiech definiert kannst Du hier lediglich prüfen ob die erfassten Daten soweit wie gewünscht verarbeitet werden. Bei Strings empfiehlt es sich mitunter im Testlauf sehr lange Eingaben zu prüfen um zu evaluieren ob diese im Programmcode nicht irgendwo abgeschnitten werden. Je nach verwendeter Programmier-/Skript-Sprache sollte zusätzlich noch geprüft werden ob die Einagben evtl. vorhandene Befehle oder Variablen überschreiben könnten.
08.09.2009
Ralf D. 89 2

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH