1 |
b11af9b1
|
schenkj
|
# 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.
|