Warden Unit Testing¶
- Table of contents
- Warden Unit Testing
Stránka obsahuje veškeré potřebné informace vztahující se k jednotkovým testům realizovaným na projektu Warden. V první části je popsán použítý modul pro testování. Dále je pak řešeno pokrytí klienta a serveru testy.
Modul pro testování Wardenu¶
Pro jednotkové testy Warden klienta i serveru jsou použity moduly Test::Simple, Test::More. Další užitečné informace jsou pak dostupné na stránce Test::Tutorial. Pro testování vyjímek slouží Test::Exception a pro případné úpravy funkcí v průběhu unit testů je použit Test::MockModule . Unit testy se spouští v požadovaném adresáři pomocí příkazu: perl -MTest::Harness -e '$Test::Harness::verbose=1; runtests @ARGV;' *.t
Pokrytí systému testy¶
Akceptované pokrytí testy¶
Server¶
Warden::getAltNames
- 1 - everything is OK.
Warden::authorizeClient
- 2 - badAndUglyEvent: die (doesn't exist)
- 3 - saveNewEvent: client is not registered
- 4 - getNewEvents: client is not registered
- 5 - saveNewEvent: OK.
- 6 - getNewEvents: OK.
Warden::getNewEvents
- 7 - bad type
- 8 - bad source type.
- 9 - bad date format.
- 10 - port is not a number.
- 11 - attack scale is not a number.
- 12 - priority is not a number.
- 13 - timeout is not a number.
- 14 - everything is fine.
Warden::getNewEvents
- 15 - everything is fine.
Warden::getLastId
- 16 - getLastID is OK.
Warden::getClients
- 17 - everything is fine.
Warden::getStatus
- 18 - everything is fine.
Klient¶
WardenClientSend::saveNewEvent
$ret = WardenClientSend::saveNewEvent($warden_path_fail,\@event_ok); ok ($ret 0, 'Bad Warden path!');
$ret = WardenClientSend::saveNewEvent($warden_path_ok,\@event_ok); ok ($ret 1, 'Everything is fine.');
Návrh pokrytí testy¶
Níže se nachází předběžný návrh oblastí v serveru a klientovi, na které budou vytvořeny testy.
Server¶
- Warden.pm
- sub write2log
- nyni nelze otestovat navratovou hodnotu
- sub authorizeClient
- vsechny spravne parametry
- vzdy jeden chybny parametr (CN, AN nebo IP rozsah)
- testovani na
die
,undef
a%hash
- sub registerSender
- vsechny spravne parametry
- vzdy jeden chybny parametr (nelokalni ip, spatna data v SOAP)
- testovani na
die
areturn 1
- sub registerReceiver
- vsechny spravne parametry
- vzdy jeden chybny parametr (nelokalni ip, spatna data v SOAP)
- testovani na
die
areturn 1
- sub unregisterClient
- vsechny spravne parametry
- vzdy jeden chybny parametr (chybne id, nelokalni ip, spatna data v SOAP)
- testovani na
die
areturn 1
- sub write2log
- WardenConf.pm
- sub loadConf
- korektni konfiguracni soubor
- chybejici konfiguracni soubor
- poskozeny konfiguracni soubor
- sub loadConf
- WardenReg.pm
- sub c2s
- vsechny spravne parametry
- vzdy jeden chybny parametr (chybne certifikaty, spatne uri, chybna metoda, poskozena data)
- testovani na
die
areturn 1
- sub registerSender
- vsechny spravne parametry
- chybny
$warden_path
- testovani na
return 0
areturn 1
- sub registerReceiver
- vsechny spravne parametry
- chybny
$warden_path
- testovani na
return 0
areturn 1
- sub unregisterReceiver
- vsechny spravne parametry
- chybny
$warden_path
- testovani na
return 0
areturn 1
- sub c2s
- WardenStatus.pm
- sub c2s
- viz vyse
- sub c2s
pozn. vstup chranen jen u "type"
Klient¶
- WardenClientConf.pm
- sub loadConf
- korektni konfiguracni soubor
- chybejici konfiguracni soubor
- poskozeny konfiguracni soubor
- sub loadConf
- WardenClientReceive.pm
- sub c2s
- vsechny spravne parametry
- vzdy jeden chybny parametr (chybne certifikaty, spatne uri, chybna metoda, poskozena data)
- testovani na
die
areturn 1
- sub c2s
- WardenClientSend.pm
- sub c2s
- viz vyse
- sub saveNewEvent * prinutit nejak SOAP k chybe, aby "zabral" eval?
- sub c2s