TALLINNA TEHNIKAÜLIKOOL
INFORMAATIKAINSTITUUT
ERPLY KASSASÜSTEEMI
TESTIMINE Projekt õppeaines “
Tarkvara kvaliteet ja
standardid ”
Autor:
Esitatud:
Juhendaja: Jekaterina Tšukrejeva
TALLINN
2016 Sisukord
1. Ülesande püstitus.
Organisatsioon , süsteem, metoodika 4
1.1 Organisatsioon (ja süsteem) 4
1.2 Süsteem (ja organisatsioon) 5
1.3 Metoodika 5
2. Nõuded süsteemile 6
2.1
Funktsionaalsed nõuded süsteemile 6
2.2 Mittefunktsionaalsed nõuded süsteemile 7
3.
Hankimise tegevused(väljavõte) 10
3.1
Elutsükli mudel 10
3.2
Hankija osalus hankes 10
3.3 Nõuete muudatuste haldamine 11
3.4 Vastuvõtmise plaan 11
4.
Riskid ja vastuvõtutestid 12
4.1 Riskide hinnang 12
4.2 Vastuvõtutestid 13
4.2.1 Funktsionaalsed vastuvõtutestid 13
4.2.2 Mittefunktsionaalsed vastuvõtutestid 14
5. Testimine ja esmane hinnang 16
5.1 Testide
salvestamine ja täitmine 16
5.2 Esmane hinnang 16
6. Läbivaatused 18
6.1 Tarkvara projekti
läbivaatus 18
7. Funktsionaalne testimine 19
7.1 Funktsionaalselt
testitav komponent ja detailsed nõuded 19
7.2 Funktsionaalsed testid 19
7.2.1 Nõuded testitavatele elementidele 19
7.2.2 Ekvivalentsklassid 19
7.2.3 Funktsionaalsed testid 20
7.3 Funktsionaalsete testide salvestamine, täitmine ja tulemused 22
8. Mittefunktsionaalsed testid 24
8.1 Riskipõ
histe mittefunktsionaalsete vastuvõtutestide salvestamine ja täitmine 24
8.2 Esmane hinnang 27
9. Programmipõhised testid 28
9.1 Testitav programm või
moodul 28
9.2 Programmipõhiste testide koostamine 31
9.3 Testide tulemused 34
10. Kokkuvõte. 36
9.1 Süsteemi hindamine, riskianalüüs ja vastuvõtmine 36
9.2 Projektist saadud kogemuse analüüs 36
9.3 Kasutatud kirjandus 36
9.4 Testide kood 37
9.4.1 Programmipõhise testimise testide kood 37
1. Ülesande püstitus. Organisatsioon, süsteem, metoodika
Selles peatükis esitatakse organisatsiooni ja süsteemi kirjeldus,
süsteemi eeldatavad kasutajad, arhitektuur ning kirjeldatakse,
millised valikulised tööd
projektis tehakse ning miks.
1.1 Organisatsioon (ja süsteem)
Organisatsiooniks
on IM Arvutid, mis tegeleb Apple seadmete müügi ning hooldusega.
Testimine viiakse läbi Majandustarkvara OÜ arendatavas ja
hallatavas veebikeskkonnas “Erply”. Tegemist on ettevõtte sisese
veebikeskkonnaga.
Vaadeldav
kassasüsteem pakub reaalajas ülevaadet kõikide poodide kohta:
kaupade laoseisud, broneeringud, vastuvõetud tellimused, kassajääk
päeva lõpus, müük valitud perioodil. Samuti töötab kassasüsteem
arvutiriistvarast sõltumatult. Kui soovitakse vahetada arvutit või
uuendada kassariistvara, siis kassatarkvara töötab endiselt
samamoodi nagu enne. Samuti võib müügijuht koostada teatud
kaupadele kampaaniahinnad oma kontorist. Müüjatel tarvitseb vaid
uuendada poes nähtaval olevaid hindu. Müügijuhil on reaalajas info
kaupade müügiedukuse kohta. Lisaks on välistatud segadus erinevate
hindadega, sest kogu müügisüsteem kasutab hinnakirju
tsentraalselt. Seega ei erine enam hinnad poes müügihinnast tšekil.
Süsteemis on kassapidajatel õigused üksnes müügitoimingutele.
Müügitühistused toimuvad poe juhataja õigustega. Kindlaks
määratud allahindlusprotsendid ei lase müüa tooteid odavamalt kui
lubatud. Lisaks saab teenindaja vaadata oma
kassa sissetulekut ja
kaardimakseid päeva lõpuks.
Süsteem
on ettevõttes väga oluline, kuna võimaldab kiiresti toimetada
informatsiooni raamatupidaja, müügikonsultandi ja tehniku vahel.
Organisatsioonil on oluline süsteemi toimine ja selle töökindlus.
Samuti andmete korrektsus ning nende turvalisus, mis tähendab, et
andmeid ei tohiks näha teised isikud ning need ei tohi mingil juhul
kaduma minna. Süsteem peab olema lihtne ja arusaadav, et uus
kasutaja õpiks selle kasutamise kiiresti selgeks. Samuti peab saama
süsteemi kasutada
enamlevinud internetibrauserites.
Organisatsioonis
on tähtsateks huvipoolteks juhatus, kuna tegemist on olulise
süsteemiga ning nad on huvitatud, et see hästi töötaks. Samuti
teenindajad, kes tegelevad kauba müügiga, mis tähendab, et süsteem
peab olema kiire ning tõrgeteta, et tagada sujuv klientide
teenindamine. Lisaks ka tehnikud, kellele teenindajad edastavad
hooldustööga seotud infot. Organisatsioonist väljas on tähtsateks
huvipoolteks kliendid, kelle teenindamisel tuleb tagada sujuv,
tõrgeteta süsteemi töö.
1.2 Süsteem (ja organisatsioon)
Kuna süsteem koosneb väga mitmetest osadest,
on käesolevas töös valitud testimiseks hooldustöödega seotud
süsteemi osad.
Süsteemi kasutajateks võivad olla
müügikonsultant, tehnik, kaupluse juhataja, ettevõtte juhtkond ja
ettevõtte omanik. Kasutajakontosid loob administraator vastavalt
töökohale ning annab vastavad õigused. Kasutajad saavad pärast
autentimist lisada ning muuta hooldustöid. Pärast hooldustööde
salvestamist on see võimalik üle vaadata ning esitada kliendile
arve. Hiljem on võimalik näha tehtud hooldustööde arveid.
Eeldatavalt on tegemist kihilise
arhitektuuriga, kus andmekiht on realiseeritud pilvepõhise
CloudHybrid tehnoloogial. Andmekihi implementatsioonid on
programmeerimiskeeles
Java ning
kasutajaliidese käitumine
JavaScriptis.
1.3 Metoodika
Selles projektis on valikulisteks töödeks hankimise tegevused ning
läbivaatused. Hankimise tegevus on oluline, kuna kokkuvõttes
tehakse arendus vaid hankija jaoks. Samuti on tähtis, missugune
arendusprotsess on projektis valitud ja kuidas hankija projekti töös
osaleb. Läbivaatus on valitud, sest siis toimub süsteemi teksti,
spetsifikatsiooni ning dokumentatsiooni analüüs.
2. Nõuded süsteemile
Järgnevalt on esitatud funktsionaalsed ja mittefunktsionaalsed
nõuded. Need kirjeldatakse kasutusjuhtudena. Iga kasutusjuhu koha
tuuakse välja kasutusjuhu ID, kasutusjuhu nimetus,
tegutseja ,
eeltingimused, põhistsenaarium ning järeltingimused. Töös on
välja toodud 5 funktsionaalset ja 5 mittefunktisonaalset nõuet ning
sealhulgas üks koormusega seotud nõue.
2.1 Funktsionaalsed nõuded süsteemile
Kasutusjuhu ID:
F1
Kasutusjuht :
Töötaja süsteemi autentimine kasutajanime ja parooliga
Tegutseja:
Töötaja Eeltingimused:
Töötaja on lisatud süsteemi, talle on määratud õigused ning ta
teab oma kasutajanime ja
parooli .
Põhistsenaarium:
Töötaja autendib end süsteemi kasutajanime ja parooliga.
Järeltingimused:
Töötaja süsteemi
sisselogimine on õnnestunud.
Kasutusjuhu ID:
F2
Kasutusjuht:
Hooldustöö arve
sisestamine Tegutseja:
Töötaja
Eeltingimused:
Töötaja on süsteemi sisse loginud ja tal on vajadus luua uut
arvet.
Põhistsenaarium:
Töötaja valib peamenüüst „Müük“ – „
Arved “ – „Lisa“,
sisestab andmed ja toote ning salvestab arve.
Järeltingimused:
Hooldustöö arve on süsteemi
sisestatud ning järgmine samm
edenemisribal on aktiivne. Arve on leitav kõigile kasutajatele.
Kasutusjuhu ID:
F3
Kasutusjuht:
Hooldustöö arve muutmine
Tegutseja:
Töötaja
Eeltingimused:
Hooldustöö on pooleli, salvestamata või valede andmetega.
Põhistsenaarium:
Töötaja valib menüüst “Arved”, sisestab arve numbri ning
vajutab otsingu nupule. Seejärel avab hooldustöö, teeb vajalikud
muudatused ning salvestab.
Järeltingimused:
Hooldustöö arve on muudetud.
Kasutusjuhu ID:
F4
Kasutusjuht:
Hooldustöö arve otsimine
Tegutseja:
Töötaja
Eeltingimused:
Hooldustöö arve on süsteemi salvestatud.
Põhistsenaarium:
Töötaja valib menüüst “Arved”, sisestab arve numbri ning
vajutab otsingu nupule.
Järeltingimused:
Töötajale kuvatakse otsingutulemused ning ta saab neid avada.
Kasutusjuhu ID:
F5
Kasutusjuht:
Hooldustöö arve kustutamine
Tegutseja:
Töötaja
Eeltingimused:
Hooldustöö arve on süsteemi salvestatud.
Põhistsenaarium:
Töötaja valib menüüst “Arved”, sisestab arve numbri ning
vajutab otsingu nupule. Avab arve ning vajutab kustutamise nupule.
Järeltingimused:
Olemasolev hooldustöö arve on
süsteemist kustutatud ja töötajale
kuvatakse tühi leht.
2.2 Mittefunktsionaalsed nõuded süsteemile
Kasutusjuhu ID:
MF1
Kasutusjuht:
Erply programm on kasutatav veebilehitsejates
Chrome 53.0.2785.143,
Mozilla Firefox 49.0.1 ja Safari 10.0
Tegutseja:
Töötaja
Eeltingimused:
Töötaja arvutisse on installeeritud Chrome, Mozilla Firefox ja
Safari
veebilehitseja .
Põhistsenaarium:
Töötaja saab avada kassasüsteemi erinevates veebilehitsejates.
Järeltingimused:
Chrome, Mozilla Firefox ja Safari veebilehitsejates kuvatakse
süsteemi ühtemoodi ja seda saab kasutada.
Kasutusjuhu ID:
MF2
Kasutusjuht:
10 töötaja samaaegne süsteemi kasutamine
Tegutseja:
Töötaja
Eeltingimused:
Töötajad on autenditud süsteemi.
Põhistsenaarium:
Töötajad logivad sisse, süsteem autendib neid alla 5 sekundi ja
avaneb
avaleht .
Järeltingimused:
200 töötajale kuvatakse avaleht 5 sekundi jooksul.
Kasutusjuhu ID:
MF3
Kasutusjuht:
Sisselogimine toimub alla viie sekundi alates sisselogimise
nupuvajutusest
Tegutseja:
Töötaja
Eeltingimused:
Töötaja on
sisestanud oma kasutajanime ja parooli.
Põhistsenaarium:
Töötaja täidab kõik vajalikud
lahtrid ja vajutab nuppu “Sisene”.
Seejärel logitakse töötaja kuni viie sekundi jooksul programmi.
Järeltingimused:
Töötaja on kassasüsteemi sisse logitud.
Kasutusjuhu ID:
MF4
Kasutusjuht:
Vormide täitmise
loogika on ühtne- „
Salvesta “ ja „Kinnita“
nupp on alati
üleval paremal
Tegutseja:
Töötaja
Eeltingimused:
Hooldustöö arve on avatud ja täidetud on kõik vajalikud lahtrid.
Põhistsenaarium:
Hooldustöö arvet salvestades on “Salvesta” ja “Kinnita”
nupp üleval paremal.
Järeltingimused:
Hooldustöö arvel on “Salvesta” ja “Kinnita” nupp üleval
paremal.
Kasutusjuhu ID:
MF5
Kasutusjuht:
Turvaline ühendus
Tegutseja:
Töötaja
Eeltingimused:
Erply kassasüsteem on avatud internetibrauseris.
Järeltingimused:
Andmete saatmine toimub brauseri ja serveri vahel üle
turvalise ühenduse.
Põhistsenaarium:
Töötaja kasutab süsteemi ning andmed
saadetakse kasutaja brauseri
ja süsteemi serveri vahel üle turvalise HTTPS ühenduse.
3. Hankimise tegevused(väljavõte)
Selles peatükis on kirjeldatud lühidalt rakendatavat elutsükli
mudelit, hankija osalust hankes ning kuidas hallatakse projektis
muudatusi. Samuti tuuakse välja plaan, kuidas süsteem vastu
võetakse.
3.1 Elutsükli mudel
Projekti arendusprotsessiks on Scrum, mis koosneb arendustsüklitest
(sprintidest). Üks sprint kestab tavaliselt üks kuni neli nädalat.
Arendusprotsessi jälgimiseks kasutatakse Kanban tahvlit (
board).
See on jagatud
neljaks osaks: „vaja teha“ (arendused, mida on
vaja teha või parandada), „tegemisel“ (kui kindel ülesanne või
viga on juba
arendaja käes), „testimisel“ (kui valminud arendus
on jõudnud testija kätte) ja „tehtud“ (sinna lähevad kõik
valminud arendused ja parandatud vead, mis läbisid edukalt
testimise).
Sprindi lõpus analüüsib
meeskond ühiselt, mis läks
sprindi jooksul hästi, mis halvasti ja mida järgmises sprindis
teisiti teha. Uue iteratsiooni alguses on koosolek, kus osalevad kõik
meeskonna liikmed. Koosoleku sisu jagatakse kolmeks osaks:
1. eesmärgid (mida on vaja saavutada antud sprindi jooksul)
2. alustamine (kui aega jääb, alustatakse nende arendusega)
3. Iga meeskonnaliige annab oma hinnangu selle arvestusega, et
eesmärk saaks tehtud enne sprindi lõppu. Iga nädala aja tagant
toimub meeskonna lühikoosolek, mis toimub alati samal ajal ja samas
kohas. Koosoleku eesmärk on meeskonna kogunemine ja infovahetus, et
kõikide probleemide lahendamisega võimalikult kiiresti alustada.
Iga meeskonnaliige räägib, millega ta hetkel tegeleb, millega on
plaanis järgmisena tegelema hakata ja kas tegevustele on mingeid
takistusi. Sinna on kutsutud ka hankija, et ta oleks arendusega
kursis ning teaks sellega arvestada vastuvõtutestide koostamisel.
Koosolek kestab umbes 15 minutit.
3.2 Hankija osalus hankes
Hanke protsessi aeg on pool aastat, mis tähendab, et erinevad
osapooled on sellega seotud terve protsessi aja. Iga
iteratsioonijärgne hankija ülevaade ja tagasiside toote kohta
võimaldab tal tarnijapoolset tööd lähemalt jälgida ja sunnata,
vältides hilisemaid vigu. Hanke läbiviimiseks peaks hankija tegema
valmis vastuvõtmise plaani ning teavitama projektijuhti, kas arendus
on vastu võetud või tuleb raporteerida testijale vearaport.
3.3 Nõuete muudatuste haldamine
Muudatusi haldab hankija, kes edastab tarkvara osade kirjelduse, mis
peaksid olema teistmoodi realiseeritud, süsteemi analüütikule.
Edasi suhtleb
analüütik projektijuhiga, et selgitada, kas
muudatus on “lisatellimus” või on tegu analüüsi veaga. Vea korral
võetakse muudatus töösse tarkvara arendaja kulul, mis pole
kindlasti meeskonnale kasulik. Sel juhul muudab
projektijuht lepingut, analüütik kirjutab analüüsi ümber, arendaja omakorda
muudab juba rakendatud koodi, testija täiendab testlugusid ja viib
testid uuesti läbi. Kui aga
selgub , et muudatus on kliendi poolt
soovitud “lisaarendus”, siis projektijuht küsib meeskonna käest
mahuhinnangu muudatuse kohta ja koostab hankijale hinnapakkumise.
Seejärel teavitab hankija projektijuhti oma otsusest: kas tellitakse
lisaarendus või mitte.
Vastuvõtmise plaan
Tavaliselt üks kord kahe nädala jooksul toimuvad
ülevaatekoosolekud, kus osaleb ka hankija. Koosolekul
demonstreeritakse valmis saadud asju. Näidatav peab vastama
projektis kokku lepitud "valmis" kriteeriumitele. Sinna
kuuluvad kõik funktsionaalsed ja ärinõuded, kasutajaliides,
turvalisus ja koormustestid. Tehtud arendust näidatakse juba
töötavas keskkonnas. Seejärel testib hankija kindlat arendust ning
otsustab kas eesmärk on saavutatud või mitte ja annab enda otsusest
projekti meeskonnale teada. Positiivse otsuse korral on kindel
projekti osa vastu võetud.
Süsteem võetakse vastu, kui
- 90% funktsionaalsetest testidest on täidetud ja neil ei esine vigu (kõik kasutusjuhud on realiseeritud ja nende funktsionaalsus toimib vigadeta)
- 90% mittefunktsionaalsetest testidest on täidetud
- süsteemis ei esine muid vigu, mis takistavad süsteemi toimimist vastavalt testide tulemustele
4. Riskid ja vastuvõtutestid
Käesolevas peatükis hinnatakse võimalike riskide mõju ning
sagedust. Riskidele antakse prioriteedid , mis on vastavalt kas madal,
keskmine või kõrge. Igal riskil on ka esinemise sagedus, mis võib
olla kas madal, keskmine, kõrge või kriitiline. Samuti on riskidel
mõju, mis võib olla kas kerge, keskmine või raske.
4.1 Riskide hinnang
ID: RISK-1
Risk: Ühilduvuse
probleem internetibrauseriga
Selgitus : Sü steem võib internetibrauseriga mitte ühilduvuse tõttu kuvada veebilehte
ebakorrektselt.
Sagedus: Madal
Mõju: Keskmine
Hinnang prioriteedile: Keskmine
ID: RISK-2
Risk: Internetiühenduse
puudumine
Selgitus: Internetiühenduse
katkemise korral ei saa süsteemi kasutada.
Sagedus: Madal
Mõju: Raske
Hinnang prioriteedile: Kõrge
ID: RISK-3
Risk: Süsteemile
ligipääs kolmanda isiku poolt
Selgitus: On
võimalik, et süsteemile pääseb ligi isik, kellel pole
administraatori poolt antud õigusi.
Sagedus: Madal
Mõju: Kõrge
Hinnang prioriteedile: Kõrge
4.2 Vastuvõtutestid
Töös on projekteeritud 5 funktsionaalset ja 5
mittefunktsionaalset vastuvõtu testi ning sealhulga üks
koormustest. Testimise eesmärk on hinnata, kas süsteem rahuldab kõige kriitilisemad nõuded. Testid on tuletatud nõuetest ja
riskide hinnangust. Iga test sisaldab testi ID-d, testi nimetust,
testi kirjeldust, sisendid oodatavat väljundit, viidet testitavale
nõudele ja riskidele (nõude ja riski ID järgi).
4.2.1 Funktsionaalsed vastuvõtutestid
Testi ID:
TEST- F1
Test: Töötaja
süsteemi autentimine kasutajanime ja parooliga
Kirjeldus: Testitakse
kasutaja autoriseerimist keskkonda kasutajanime ja parooliga.
Sisend :
Kasutajatunnuse ja parooli sisestamine.
Oodatav väljund:
Kuvatakse kassasüsteemi avaleht.
Viide testitavale nõudele ja riskile:
F1, RISK-1, RISK-2, RISK-3
Testi ID:
TEST- F2
Test: Hooldustöö
arve sisestamine
Kirjeldus: Töötaja
sisestab hooldustöö arve.
Sisend:
Töötaja täidab lahtrid „ Klient “, „E-post“, „Toode“ ja
seejärel vajutab nuppu „Salvesta“
Oodatav väljund:
„Kinnitatud“ samm edenemisribal muutub aktiivseks.
Viide testitavale nõudele ja riskile:
F2, RISK-1, RISK-2, RISK-3
Testi ID:
TEST- F3
Test: Hooldustöö
arve muutmine
Kirjeldus:
Töötaja muudab hooldustöö arvet.
Sisend:
Töötaja muudab lahtrite „Klient“, „E-post“ või „Toode“
sisu, vajutab nuppu „Uuenda“ ning seejärel nuppu „Salvesta“.
Oodatav väljund:
Andmed on uuendatud.
Viide testitavale nõudele ja riskile: F3,
RISK-1, RISK-2, RISK-3
Testi ID:
TEST- F4
Test: Hooldustöö
arve otsimine
Kirjeldus:
Töötaja otsib arve numbri järgi hooldustööd.
Sisend:
Otsitav arve number.
Oodatav väljund:
Töötajale kuvatakse otsingutulemused ning töötaja saab neid
avada.
Viide testitavale nõudele ja riskile: F4,
RISK-1, RISK-2
Testi ID:
TEST- F5
Test: Hooldustöö
arve kustutamine
Kirjeldus:
Töötaja kustutab hooldustöö arve.
Sisend:
Töötaja otsib arve numbri järgi hooldustöö arve ja seejärel
vajutab nuppu „Kustuta“
Oodatav väljund:
Töötajale kuvatakse tühi leht.
Viide testitavale nõudele ja riskile: F5,
RISK-1, RISK-2, RISK-3
4.2.2 Mittefunktsionaalsed vastuvõtutestid
Testi ID:
TEST- MF1
Test: Erply
programm on kasutatav veebilehitsejates Chrome 53.0.2785.143, Mozilla
Firefox 49.0.1, Safari 10.0.
Kirjeldus: Erply
programm on avatav erinevates internetibrauserites (Chrome
53.0.2785.143, Mozilla Firefox 49.0.1, Safari 10.0)
Sisend:
Töötaja logib sisse süsteemi erinevaid brausereid kasutades
Oodatav väljund:
Veebilehitseha kuvab kassasüsteemi ühesuguselt antud brauserites.
Viide testitavale nõudele ja riskile: MF1,
RISK-1, RISK-2
Testi ID:
TEST- MF2
Test: Süsteemi
jõudlus 100 töötajaga
Kirjeldus: Süsteemi
kasutab korraga 100 töötajat.
Sisend: 100
töötajat on kassasüsteemi sisse logitud.
Oodatav väljund:
Süsteem toimib 100 töötaja koormusega ning vastuse aeg ei ületa
sellise koormuse juures 5 sekundit
Viide testitavale nõudele ja riskile: MF2,
RISK-1, RISK-2
Testi ID:
TEST- MF3
Test: Sisselogimine
toimub alla viie sekundi alates sisselogimise nupuvajutusest
Kirjeldus:
Töötaja sisselogimine toimub alla viie sekundi alates sisselogimise
nupuvajutusest
Sisend:
Töötaja sisestab kasutajanime ning parooli ja seejärel vajutab
sisenemisnuppu.
Oodatav väljund:
Töötaja autentimine ei võta rohkem aega kui 5 sekundit.
Viide testitavale nõudele ja riskile: MF3,
RISK-1, RISK-2
Testi ID:
TEST- MF4
Test: Ühtne
vormide täitmise loogika
Kirjeldus:
Vormide täitmise loogika on ühtne- „Salvesta“ ja „Kinnita“
nupp on alati üleval paremal
Sisend:
Töötaja avab hooldustöö arve.
Oodatav väljund:
Hooldustöö arve blanketil on „Salvesta“ ja „Kinnita“ nupp
üleval paremal.
Viide testitavale nõudele ja riskile: MF4,
RISK-1, RISK-2
Testi ID:
TEST- MF5
Test: Turvaline
ühendus
Kirjeldus: Brauser ja server on omavahel turvaliselt ühenduses.
Sisend:
Kassasüsteem on avatud internetibrauseris.
Oodatav väljund:
Andmete saatmine on toimub brauseri ja serveri vahel üle turvalise
HTTPS ühenduse.
Viide testitavale nõudele ja riskile: MF5,
RISK-1, RISK-2
5. Testimine ja esmane hinnang
5.1 Testide salvestamine ja täitmine
Esmase hinnangu andmisel lähtutakse Selenium
IDEi abil ja käsitsi tehtud testidest. Raamistik Selenium on
vabavaraline veebilehitsejate kasutuse automatiseerimiseks loodud
tööriistade kogumik. Seleniumi peamine kasutusala on
veebirakenduste testimine, kuid sellega saab automatiseerida ka
erinevaid administratiivseid tegevusi – näiteks vormide täitmine.
Selenium IDE (integreeritud programmeerimiskeskkond) –
veebilehitseja Mozilla Firefox lisana loodud tööriist, mis oskab
lindistada veebis teostatavaid toiminguid ja konverteerida need
Seleniumi käskudeks. Alljärgnevates tabelites on kokkuvõte
funktsionaalsetest vastuvõtutestide tulemustest. Piltidel on välja
toodud testimise tulemused.
Test
Testi tulemus
TEST-F1
ÕNNESTUS
TEST-F2
ÕNNESTUS
TEST-F3
ÕNNESTUS
TEST-F4
ÕNNESTUS
TEST-F5
ÕNNESTUS
Tabel 1. Funktisonaalsete
vastuvõtutestide tulemused
Pilt 1. Funktsionaalsete
vastuvõtutestide tulemused Selenium IDEga.
Esmane hinnang
Riskipõhiseid teste oli planeeritud 5, nendest funktsionaalsetele
nõuetele vastavaid 5. Nõuded olid, et 90% funktsionaalsetest
testidest on täidetud ja neil ei esine vigu (kõik kasutusjuhud on
realiseeritud ja nende funktsionaalsus toimib vigadeta) ning
süsteemis ei esine muid vigu, mis takistavad süsteemi toimimist
vastavalt testide tulemustele. Riskipõhistest testidest õnnestus
100% ehk kassasüsteem vastab nõuetele ja süsteemi võib vastu
võtta.
6. Läbivaatused
6.1 Tarkvara projekti läbivaatus
Selles projektis planeeritakse tarkvara projekti läbivaatust. Enne
läbivaatust teavitatakse osalejaid selle eesmärgist, reeglitest
ning jagatakse kätte materjalid.
Osavõtjad: Projektijuht (koosoleku koordinaator), sekretär,
analüütik, kasutaja esindaja
Tegevused: Läbivaatusi korraldatakse iga sprindi lõpus.
Korraldatakse koosolek, kus hakkavad kõik projektiliikmed välja
tooma ning põhjendama oma osaga seotud positiivseid ja negatiivseid
aspekte ning mida võiks tema arvates teisiti teha. Seejärel
otsitakse kogu meeskonnaga negatiivsetele aspektidele lahendus ning
pannakse need kirja. Koosolek kestab 30 kuni 60 minutit.
Tulemused: Kirja pandud probleemide lahenduste põhjal
hakatakse projektis esinevaid vigu parandama. Nii välditakse
tulevikus samu vigu.
7. Funktsionaalne testimine
7.1 Funktsionaalselt testitav komponent ja detailsed nõuded
Funktsionaalseks testimiseks valiti sisselogimise vormi komponent.
Sisselogimiseks on vaja täita kliendikoodi, kasutajanime ning
parooli lahter . Kõik need väljad peavad olema täidetud. Samuti
peavad kliendikood, kasutajanimi ning parool olema õiges formaadis .
7.2 Funktsionaalsed testid
Töös on projekteeritud 10 funktsionaalset testi sisselogimise
kohta. Selleks on kirjeldatud nõuded testitavatele elementidele,
nendest tulenevad ekvivalentsklassid ning funktsionaalsed testid. Iga
test sisaldab testi ID-d, testi nimetust, nõuet, viidet
ekvivalentsklassile, sisendit ning oodatavat väljundit.
7.2.1 Nõuded testitavatele elementidele
Kliendikood
- Koosneb ainult numbritest
- Pikkus peab olema kuus numbrit
Kasutajanimi
- Peab olema e- maili aadressi vormis
Parool
- Ei tohi sisaldada sümboleid
- Peab sisaldama suur- ja väiketähti
- Peab olema vähemalt 8 tähemärki pikk
7.2.2 Ekvivalentsklassid
1. Kliendikood
1.1 Suvaline täht sees
1.2 Suvaline sümbol sees
1.3 Kliendikoodi lahter on tühi
1.4 Kliendikood vastab reeglitele
2. Kasutajanimi
2.1 Ei ole e-maili aadressi vormis
2.2 Kasutajanime lahter on tühi
2.3 Kasutajanimi vastab reeglitele
3. Parool
3.1 Suvaline sümbol sees
3.2 Parooli lahter on tühi
3.3 Parool vastab reeglitele
7.2.3 Funktsionaalsed testid
Testi ID:
TEST- FT1
Test: Täht
kliendikoodi sees
Nõue:
Kliendikoodi lahter peab sisaldama ainult numbreid .
Ekvivalentsklassid:
1. 1 Suvaline täht sees
Sisend:
Töötaja on kliendikoodi sisestanud suvalise tähe: 12345a
Oodatav väljund:
Ilmub veateade , et kliendikood ei ole õige.
Testi ID:
TEST- FT2
Test: Sümbol
kliendikoodi sees
Nõue:
Kliendikoodi lahter peab sisaldama ainult numbreid.
Ekvivalentsklassid:
1. 2 Suvaline sümbol sees
Sisend:
Töötaja on kliendikoodi sisestanud suvalise sümboli: 12345).
Oodatav väljund:
Ilmub veateade, et kliendikood ei ole õige.
Testi ID:
TEST- FT3
Test: Kliendikoodi
lahter on tühi
Nõue:
Kliendikoodi lahter peab sisaldama numbreid.
Ekvivalentsklassid:
1.3 Kliendikoodi lahter on tühi
Sisend:
Töötaja jätab kliendikoodi lahtri tühjaks.
Oodatav väljund:
Ilmub veateade, et kõik väljad tuleb täita.
Testi ID:
TEST- FT4
Test: Kliendikoodi lahter
sisaldab numbreid
Nõue:
Kliendikoodi lahter peab sisaldama ainult numbreid.
Ekvivalentsklassid:
1.4 Kliendikood vastab reeglitele
Sisend:
Töötaja on kliendikoodi lahtrisse sisestanud numbrid : 387163
Oodatav väljund:
Töötaja logitakse süsteemi sisse.
Testi ID:
TEST- FT5
Test: Kasutajanimi on sõna
Nõue:
Kasutajanimi on e-maili aadressi vormis.
Ekvivalentsklassid:
2.1 Ei ole e-maili aadressi vormis
Sisend:
Kasutaja sisestab suvalise sõna: aed.
Oodatav väljund:
Ilmub veateade, et sisselogimine ebaõnnestus.
Testi ID:
TEST- FT6
Test: Kasutajanime
lahter on tühi
Nõue:
Kasutajanimi on e-maili aadressi vormis.
Ekvivalentsklassid:
2.2 Kasutajanime lahter on tühi
Sisend:
Töötaja jätab kasutajanime lahtri tühjaks.
Oodatav väljund:
Ilmub veateade, et kõik väljad tuleb täita.
Testi ID:
TEST- FT7
Test: Kasutajanimi on e-maili
vormis
Nõue:
Kasutajanimi peab olema e-maili vormis.
Ekvivalentsklassid:
2.3 Kasutajanimi vastab reeglitele
Sisend:
Töötaja on kasutajanime sisestanud e-maili vormis.
Oodatav väljund:
Töötaja logitakse süsteemi sisse.
Testi ID:
TEST- FT8
Test: Sümbol
parooli sees
Nõue:
Parool peab sisaldama ainult suur/ja või väiketähti
Ekvivalentsklassid:
3.1 Suvaline sümbol sees
Sisend:
Töötaja on parooli sisestanud suvalise sümboli: aiamaja{.
Oodatav väljund:
Ilmub veateade, et sisselogimine ebaõnnestus.
Testi ID:
TEST- FT9
Test: Parooli
lahter on tühi
Nõue:
Parool peab sisaldama ainult suur/ja või väiketähti
Ekvivalentsklassid:
3.2 Parooli lahter on tühi
Sisend:
Töötaja jätab parooli lahtri tühjaks.
Oodatav väljund:
Ilmub veateade, et kõik väljad tuleb täita.
Testi ID:
TEST- FT10
Test: Parool
sisaldab suur/ja või väiketähti
Nõue:
Parool peab sisaldama ainult suur/ja või väiketähti
Ekvivalentsklassid:
3.3 Parool vastab reeglitele
Sisend:
Töötaja on parooli lahtrisse sisestanud väiketähed: uuskasutaja.
Oodatav väljund:
Töötaja logitakse süsteemi sisse.
7.3 Funktsionaalsete testide salvestamine, täitmine ja tulemused
Testide salvestamiseks ja täitmiseks kasutatakse Selenium IDE-t.
Alljärgnevas tabelis on kokkuvõte funktsionaalsetest testidest.
Piltidel on välja toodud funktsionaalsete
testide tulemused.
Test
Testi tulemus
TEST- FT1
ÕNNESTUS
TEST- FT2
ÕNNESTUS
TEST- FT3
ÕNNESTUS
TEST- FT4
ÕNNESTUS
TEST- FT5
ÕNNESTUS
TEST- FT6
ÕNNESTUS
TEST- FT7
ÕNNESTUS
TEST- FT8
ÕNNESTUS
TEST- FT9
ÕNNESTUS
TEST- FT10
ÕNNESTUS
Tabel 2. Funktsionaalsete
testide tulemused
Pilt
2. Funktsionaalsete testide tulemused Selenium IDEga.
8. Mittefunktsionaalsed testid
8.1 Riskipõhiste mittefunktsionaalsete
vastuvõtutestide salvestamine ja täitmine
Esmase hinnangu andmisel lähtutakse Apache Jmeteri abil ja käsitsi tehtud testidest.
Alljärgnevas tabelis on kokkuvõte
mittefunktsionaalsetest testidest. Piltidel on välja toodud
testimise tulemused.
Test
Testi tulemus
Kommentaar
TEST-MF1
(käsitsi)
ÕNNESTUS
Kassasüsteem avanes antud veebilehitsejates
TEST-MF2
ÕNNESTUS
10 töötajat korraga süsteemis ning vastuse aeg ei ületa 5 sekundit
TEST-MF3
(käsitsi)
ÕNNESTUS
Sisselogimine toimus alla 5 sekundi (2.935 sek)
TEST-MF4
(käsitsi)
ÕNNESTUS
„Salvesta“ ja „Kinnita“ nupud on üleval paremal
TEST-MF5
(käsitsi)
ÕNNESTUS
On olemas HTTPS ühendus
Tabel 3. Mittefunktsionaalsete
testide tulemused
Pilt 3. Erply kassasüsteem
avatud Chrome 53.0.2785.143
ning „Salvesta“ ja „Kinnita“ nupud on üleval paremal.
Pilt 4. Erply kassasüsteem
avatud Mozilla
Firefox 49.0.1 ning „Salvesta“ ja „Kinnita“ nupud on üleval
paremal.
Pilt 5. Erply kassasüsteem
avatud Safari
10.0 ning „Salvesta“ ja „Kinnita“ nupud on üleval paremal.
Pilt
6. Süsteem
toimib 10 töötaja koormusega ning vastuse aeg ei ületa sellise
koormuse juures 5 sekundit.
Pilt 7. Sisselogimine on
toimunud alla 5 sekundi.
Pilt 8. Brauser
ja server on omavahel turvaliselt HTTPS ühenduses.
8.2 Esmane hinnang
Mittefunktsionaalseid teste oli planeeritud 5. Nõuded olid, et 90%
mittefunktsionaalsetest testidest on täidetud ning süsteemis ei
esine muid vigu, mis takistavad süsteemi toimimist vastavalt testide
tulemustele. Mittefunktsionaalsetest testidest õnnestus 100% ehk
kassasüsteem vastab nõuetele ja süsteemi võib vastu võtta.
9. Programmipõhised testid
9.1 Testitav programm või moodul
Erply
kassasüsteemi lähtekoodi käesolevas töös kasutada ei lubatud,
siis seetõttu valiti programmipõhiste testide läbiviimiseks
Caesari šiffer keeles Java. Caesari šiffer näeb ette, et kui on
antud tekst ja mingi nihkenumber n, siis krüpteeritud teksti jaoks
on vaja iga täht asendada sellest n tähte tähestikust tagapool
oleva tähega . Teksti tagastamiseks on vaja võtta krüpteeritud
tekst, seesama nihkenumber n, ja asendada krüpteeritud tekstis iga
täht sellest n tähte tähestikust tagapool oleva tähega. Kui
krüpteerimisel või dekrüpteerimisel valitud täht osutub
tähestikust väljapoole, tuleb hakata teiselt poolt tähestikku
edasi lugema.
Programmi
kood:
public
class EX03 {
/**
* Given text and a rotation , encrypts text.
* @param
plainText plain text, readable by humanoids
* with
relative ease.
* @param
rotation
* @ return encrypted
text
public
static String encrypt(String plainText, int rotation) {
if
(plainText == null)
return null;
if
(plainText.isEmpty())
return plainText;
String encrypted = "";
//plainText =
minimizeText(plainText);
plainText =
plainText.toLowerCase();
if (rotation % 26 == 0)
return plainText;
if (rotation return null;
int len = plainText.length();
for
(int x = 0; x char c =
plainText.charAt(x);
if (Character.isLetter(c))
if (c + rotation >= 97)
c =
(char) (97 + (c + rotation - 97) % 26);
else
c = (char) (c + (rotation % 26));
encrypted += c;
return encrypted;
/**
* Finds the most frequently occurring letter in text.
*
@param
text
either plain or encrypted text.
* @return
the
most frequently occurring letter in text.
public
static String findMostFrequentlyOccurringLetter(String text) {
if (text == null)
return null;
if
(text.isEmpty())
return text;
String max =
"";
int count = 0;
int max_nr = 0;
text = text.toLowerCase();
for (int x = 0; x char c = text.charAt(x);
count += 1;
for (int y = x + 1; y char ch = text.charAt(y);
if (c == ch)
count++;
if (count == max_nr) {
if (c
>= 97 && c max_nr) {
if (c >= 97 && c
Kõik kommentaarid