Softwareentwicklung
Allgemeines V-Modell

Komponententest
Blackbox-Test
Beispiel (Blackbox-Test):
- Gegeben sei der Funktionsprototyp für eine Funktion
int ascii2int(char c), die eine gegebene ASCII-codierte Ziffer in einen Integer des entsprechenden Werts umwandelt. - Die Funktion soll -1 zurückgeben, wenn c keine Ziffer ist.
- Wie würde ein möglicher Blackbox-Test aussehen?
Lösung:
Gültige ASCII-Ziffern sind 0 bis 9.
#include <iostream>
#include <cassert>
int ascii2int(char c) {
// Unbekannt
}
void test_ascii2int() {
assert(ascii2int('0') == 0);
assert(ascii2int('1') == 1);
assert(ascii2int('9') == 9);
assert(ascii2int('a') == -1);
}
int main() {
test_ascii2int();
return 0;
}Whitebox-Test
Ein Whitebox-Test ist ein Test, der die innere Struktur des Codes testet und die Logik der Implementierung.
Beispiel (Whitebox-Test):
Gegeben sei nun die Implementierungsvarianten:
Variante 1:
int ascii2int(char c) {
if ('0' <= c && c <= '9' )
return c - '0';
else
return -1;
}Variante 2:
int ascii2int(char c) {
switch(c) {
case '0':
return 0;
case '1':
return 1;
/*…*/
default:
return -1;
}
}Wie würden die jeweilige Whiteboxtests aussehen?
Lösung:
Variante 1:
void test_ascii2int() {
assert(ascii2int('0') == 0);
assert(ascii2int('1') == 1);
assert(ascii2int('9') == 9);
assert(ascii2int('a') == -1);
}Variante 2:
void test_ascii2int() {
assert(ascii2int('0') == 0);
assert(ascii2int('1') == 1);
assert(ascii2int('9') == 9);
assert(ascii2int('a') == -1);
}Last updated on