1
|
# Anotace pro analýzu smluvních podmínek a skrytých reklam - Testování
|
2
|
### Backend testování
|
3
|
Při testování backendu je potřeba převážně testovat Core/Services. Z této oblasti bylo nejprve testováno to, co bylo kritické a zároveň ve stavu, ve kterém to bylo možné testovat.
|
4
|
Pro testování backendu je potřeba prázdná databáze inicializovaná tak jak je v readme projektu, které se nachází v dev větvi.
|
5
|
Testování probíhalo jako blackbox testing, není tedy obtížné přidat další podobné testy. Dosavadní testy jsou komentované a nejsou obtížné na pochopení.
|
6
|
##### Testování dokumentů
|
7
|
Testování dokumentů probíhá tak, že je nad prázdnou databází vytvořena množina dokumentů a admin, který je má přiřazené. Tyto dokumenty jsou nahrávány a získávány z databáze s cílem určit, zda jsou do databáze správně uloženy a zpětně navráceny.
|
8
|
Toto testování bohužel neodhalí, pokud je dokument poškozen při přenosu. To je zapříčiněno sanitizací a úpravou daného dokumentu při nahrání do databáze.
|
9
|
##### Testování uživatelů
|
10
|
Testování uživatelů testuje všechny metody, které UserService systému poskytuje. Sem je zahrnuto vytváření, mazání, změna, změna hesla, přihlášení a získávání uživatelského účtu z databáze různými způsoby.
|
11
|
Přihlášení je testováno jak na validní, tak nevalidní data, stejně tak vytváření a změna uživatele.
|
12
|
##### Další možné testování
|
13
|
Testování na které nevyšel čas, nebo nebylo dost dobře možné testovat dostatečně brzo.
|
14
|
Jedná se o testování značek a anotace. Obě tyto třídy procházely změnami a bylo obtížné a časově neefektivní jim věnovat pozornost, kterou by si zasloužily.
|
15
|
|
16
|
### Frontend testování
|
17
|
Frontend testování probíhá na inicializované databázi. Automatické frontend testování probíhalo na stejném stroji, na kterém běžel server.
|
18
|
Část kódu v C# byla spouštěna klasickým způsobem. Frondend byl spouštěn příkazy
|
19
|
```sh
|
20
|
yarn
|
21
|
yarn dev
|
22
|
```
|
23
|
Po spuštění obou částí bylo možné aplikaci automaticky testovat.
|
24
|
Automatické testy probíhají pomocí nástroje Selenium. To simuluje uživatelské akce.
|
25
|
Selenium použité na tyto testy využívalo prohlížeče Google Chrome a Mozilla Firefox.
|
26
|
Opět, z časových důvodů nebylo možné automaticky otestovat vše, co by automaticky testováno být mělo.
|
27
|
|
28
|
#### Testování přihlášení
|
29
|
Testování automatického přihlášení probíhá stejným stylem, jako na backend. Jedná se o sérii testů, které mají ověřit, zda se může přihlásit uživatel se správnými uživatelskými údaji, a zároveň nemůže uživatel s těmi špatnými, případně jestli se přihlášený uživatel dostal na stránku, na kterou měl.
|
30
|
Tyto testy naneštěstí jako jediné z této oblasti pracují s databází vytvořenou testama na backendu. Jedná se o defekt z vývoje aplikace, na který se zapomnělo a bylo by náročné jej nyní měnit z pohledu finalizace.
|
31
|
|
32
|
#### Testování přesměrování
|
33
|
Toto testování slouží k zajištění, aby anotátor neviděl administrátorské prostřední, ani tak že by se dokázal přesměrovat na stránky administrátora. Jelikož uživatele nepřesměrováváme, test kontroluje, zda element s obsahem stránky má nulové rozměry.
|
34
|
Test by mohl být postavený rozumněji, ale svoji funkci ve stávající implementaci plní.
|
35
|
|
36
|
#### Testování vytváření uživatele
|
37
|
Protože v nástroji spousta elementů, které nejsou nahrané v DOM ve chvíli načtení stránky, selenium může mít problémy s jejich získáváním. Tento test funguje asi hlavně jako inspirace pro vytváření dalších testů, na které v projektu nevyzbyl čas.
|
38
|
Test probíhá přihlášením administrátora, změnou stránku na seznam uživatelů a vytvořením uživatele ve vyskakujícím okně. Poslední krok je aktualizace stránky, získání všech uživatelů v tabulce uživatelů a zjištění, zda se uživatel úspěšně vytvořil.
|
39
|
Tato testovací sada je rozšiřitelná na editaci a mazání úživatele.
|
40
|
|
41
|
### Manuální testování
|
42
|
Manuální testování je velkou součástí testování tohoto nástroje. Jedná se o testování, které bylo převážně aplikováno během dokončování projektu a jeho finalizace.
|
43
|
Jednoduchý scénář pro takové testování se zaměřením na uživatele by mohl vypadat následovně:
|
44
|
```sh
|
45
|
Přihlásit se jako administrátor
|
46
|
Vytvořit uživatele anotátora
|
47
|
Odhlásit se
|
48
|
Přihlásit se jako nový anotátor
|
49
|
Odhlásit se
|
50
|
Přihlásit se jako administrátor
|
51
|
Změnit nového anotátora - jméno
|
52
|
Změnit nového anotátora - příjmení
|
53
|
Změnit nového anotátora - uživatelské jméno
|
54
|
Změnit nového anotátora - jméno, příjmení i uživatelské jméno
|
55
|
Změnit nového anotátora - heslo
|
56
|
Odhlásit se
|
57
|
Přihlásit se jako změněný anotátor
|
58
|
Odhlásit se
|
59
|
Přihlásit se jako administrátor
|
60
|
Změnit měněného anotátora na administrátora
|
61
|
Odhlásit se
|
62
|
Přihlásit se jako nový administrátor (změněný anotátor)
|
63
|
Zkusit vytvořit a editovat uživatele
|
64
|
Smazat nového uživatele
|
65
|
Odhlásit se
|
66
|
Přihlásit se jako původní administrátor
|
67
|
Změnit nového administrátora - jméno
|
68
|
Změnit nového administrátora - příjmení
|
69
|
Změnit nového administrátora - uživatelské jméno
|
70
|
Změnit nového administrátora - jméno, příjmení i uživatelské jméno
|
71
|
Změnit nového administrátora - heslo
|
72
|
Odhlásit se
|
73
|
Přihlásit se jako změněný administrátor
|
74
|
Odhlásit se
|
75
|
Přihlásit se jako původní administrátor
|
76
|
Smazat nového administrátora
|
77
|
Odhlásit se
|
78
|
```
|
79
|
Podobné scénáře lze napsat pro testování značek, dokumentů a anotace.
|
80
|
Důležité při manuálním testování ale je dávat si pozor na detaily, které jsou strojově těžko odhalitelné, jako například velikost tlačítek, nebo intuitivnost a celková použitelnost aplikace.
|