Projekt

Obecné

Profil

Testovaci scenare » Historie » Verze 7

Jakub Homolka, 2025-04-23 22:45

1 3 Jakub Homolka
2
h1. Testovací scénáře pro ALM Pumpy
3
4 5 Jakub Homolka
h3. 1. Stažení projektu do DB bez inicializovaných dat (`data.sql`)
5 4 Jakub Homolka
6 6 Jakub Homolka
*Popis:* Ověření chování aplikace při stahování projektu do prázdné databáze bez inicializovaných dat.
7
8 3 Jakub Homolka
**Kroky:**
9 7 Jakub Homolka
1. Vytvoří se prázdná databáze bez spuštění `data.sql`
10
2. Spustí se proces stahování projektu
11 1 Štěpán Faragula
12
**Očekávaný výsledek:**
13 7 Jakub Homolka
- Aplikace buď úspěšně inicializuje potřebné struktury, nebo vrátí srozumitelnou chybovou zprávu
14
15
*Výsledek testu:* netestováno
16 3 Jakub Homolka
17 5 Jakub Homolka
h3. 2. Stažení → Smazání → Znovu stažení projektu
18 4 Jakub Homolka
19 3 Jakub Homolka
**Kroky:**
20
1. Stáhni projekt do DB
21
2. Smazání projektu z DB (přes API)
22
3. Stáhni stejný projekt znovu
23
24
**Očekávaný výsledek:**
25
- Data by se měla znovu vytvořit bez duplicit nebo chyb
26
27 5 Jakub Homolka
h3. 3. Stažení více projektů pro 1 ToolInstance
28 4 Jakub Homolka
29 3 Jakub Homolka
**Kroky:**
30
1. Vyber 2 či více různých projektů ze stejného ALM nástroje (např. GitHub nebo Jira)
31
2. Spusť proces stahování pro každý z vybraných projektů
32
33 1 Štěpán Faragula
**Očekávaný výsledek:**
34 3 Jakub Homolka
- Data ze všech projektů by měla být uložena a přiřazena ke stejné ToolInstance
35
36 5 Jakub Homolka
h3. 4. Kontrola přiřazení autora u každého WorkItemu
37
38 3 Jakub Homolka
**Kroky:**
39
1. Stáhni více projektů z různých ALM nástrojů
40 1 Štěpán Faragula
2. Ověř, že každý `WorkItem` má vyplněné `author_id`
41 3 Jakub Homolka
42
**Očekávaný výsledek:**
43
- Žádný `WorkItem` nesmí mít prázdného autora
44
45 5 Jakub Homolka
h3. 5. Zadávání nevalidních dat do GUI formuláře
46 4 Jakub Homolka
47 3 Jakub Homolka
**Kroky:**
48
1. Zadej neexistující URL repozitáře
49
2. Zadej neplatný API klíč
50
3. Zkus SQL injection (`' OR 1=1 --`)
51 1 Štěpán Faragula
4. Zadej speciální znaky (např. `@#$%^&*`)
52
5. Překroč maximální povolenou délku vstupních polí
53 3 Jakub Homolka
54
**Očekávaný výsledek:**
55
- Aplikace by měla odmítnout nevalidní vstup a zobrazit uživatelsky přívětivou chybu
56
57 5 Jakub Homolka
h3. 6. Stažení prázdného projektu (nový repo bez souborů)
58
59 1 Štěpán Faragula
**Kroky:**
60 3 Jakub Homolka
1. Vytvoř nový prázdný repozitář na GitHubu
61
2. Pokus se jej stáhnout přes ALM pump
62
63
**Očekávaný výsledek:**
64
- Aplikace by měla zpracovat prázdný stav (tj. neměla by spadnout)
65
66 5 Jakub Homolka
h3. 7. Test integrity vztahů mezi Work Items
67 4 Jakub Homolka
68 3 Jakub Homolka
**Kroky:**
69 1 Štěpán Faragula
1. Stáhni projekt obsahující vzájemně propojené issues (například parent-child vztahy v Jira nebo propojení přes odkazy v GitHub Issues)
70 3 Jakub Homolka
2. Zkontroluj tabulku v databázi `work_item_relation`
71
72
**Očekávaný výsledek:**
73
- Vztahy mezi Work Items jsou korektně uloženy v tabulce `work_item_relation`
74
- Pro každý vztah existuje záznam s korektně naplněnými poli `leftItemId`, `rightItemId` a `relationId`
75
- Bidirektivní vazby jsou zachovány (pokud existuje vztah A->B, pak musí existovat i B->A s příslušnou relací)
76
77 5 Jakub Homolka
h3. 8. Test na správné mapování různých typů WorkItem
78 3 Jakub Homolka
79 1 Štěpán Faragula
**Kroky:**
80 3 Jakub Homolka
1. Stáhni projekt obsahující různé typy entit (Issues, Commits, Artifacts)
81
2. Zkontroluj záznamy v tabulce `work_item`
82
83
**Očekávaný výsledek:**
84
- Každý work item má správně nastavený podle svého původu (COMMIT, ISSUE, ARTIFACT atd.) `workItemType`
85
- Všechny work items mají správně nastavené pole podle zdrojového systému `externalId`
86
- Existuje korektní reference na autora v poli `authorId`
87
88 5 Jakub Homolka
h3. 9. Test na zachování historie změn WorkItem
89 1 Štěpán Faragula
90 3 Jakub Homolka
**Kroky:**
91
1. Stáhni projekt s issue, které prošlo několika změnami stavu
92
2. Zkontroluj strukturu tabulek a `field_change` `work_item_change`
93
94
**Očekávaný výsledek:**
95
- Pro každou změnu existuje záznam v tabulce `work_item_change`
96
- Pole v `name` správně indikuje typ změny (ADD, MODIFY, COMMENT) `work_item_change`
97
- V tabulce `field_change` jsou uloženy konkrétní změny polí s hodnotami před a po změně
98
99 5 Jakub Homolka
h3. 10. Test na správné mapování Category a Labels
100 4 Jakub Homolka
101 3 Jakub Homolka
**Kroky:**
102
1. Stáhni GitHub projekt s dobře označkovanými issues
103
2. Zkontroluj záznamy v tabulce `work_unit` a vazební tabulce mezi `work_unit` a `category`
104
105
**Očekávaný výsledek:**
106
- Všechny GitHub Labels jsou uloženy jako entity `Category`
107
- Vazby mezi Work Units a kategoriemi jsou korektně uloženy v propojovací tabulce
108
- Kategorie mají správný odkaz na `projectInstance`
109 1 Štěpán Faragula
110 5 Jakub Homolka
h3. 11. Test na integrace Configuration a CommittedConfiguration
111 4 Jakub Homolka
112 3 Jakub Homolka
**Kroky:**
113
1. Stáhni Git projekt s několika commity
114
2. Zkontroluj záznamy a vazby v tabulkách `committed_configuration`, `configuration` a `commit`
115
116
**Očekávaný výsledek:**
117
- Každý WorkItem typu COMMIT má přiřazenou konfiguraci
118
- V tabulce `committed_configuration` existuje záznam pro každý commit
119 1 Štěpán Faragula
- Tabulka obsahuje správné reference na branch a committed_configuration `commit`
120 3 Jakub Homolka
121 5 Jakub Homolka
h3. 12. Test na propojení mezi commit a branches
122 4 Jakub Homolka
123 3 Jakub Homolka
**Kroky:**
124
1. Stáhni Git repozitář s více větvemi obsahujícími stejné commity
125
2. Zkontroluj tabulku a vazební tabulku mezi `branch` a `commit`
126
127
**Očekávaný výsledek:**
128
- Pro každou branch v repozitáři existuje záznam v tabulce `branch`
129 1 Štěpán Faragula
- V propojovací tabulce mezi `commit` a `branch` je správně zaznamenáno, které commity patří do kterých větví 
130 3 Jakub Homolka
- Commit patřící do více větví má správný počet záznamů ve vazební tabulce
131
132 5 Jakub Homolka
h3. 13. Test na vazby Tool Instance a Project Instance
133 4 Jakub Homolka
134 3 Jakub Homolka
**Kroky:**
135
1. Nakonfiguruj více projektů na stejné instanci nástroje (např. více repozitářů na jednom GitHub účtu)
136
2. Zkontroluj záznamy v tabulkách `tool_instance` a `project_instance`
137
138
**Očekávaný výsledek:**
139 1 Štěpán Faragula
- V tabulce `tool_instance` existuje pouze jeden záznam pro jednu instanci nástroje
140 3 Jakub Homolka
- Každý project má vlastní záznam v `project_instance`
141
- Všechny project instance odkazují na správnou tool instance
142
143 5 Jakub Homolka
h3. 14. Test na Priority, Status a další klasifikační tabulky
144 4 Jakub Homolka
145 3 Jakub Homolka
**Kroky:**
146
1. Stáhni projekty z různých ALM nástrojů s různými prioritami a statusy
147
2. Zkontroluj záznamy v tabulkách `wu_type`, `priority`, `status`, `severity` a `resolution`
148
149
**Očekávaný výsledek:**
150
- Každá entita má správně nastavené pole `class` podle mapování z ALM nástroje
151
- Každá entita je správně přiřazena k příslušné `project_instance`
152
- Entity se stejným významem z různých nástrojů jsou mapovány na stejnou klasifikaci
153
154 5 Jakub Homolka
h3. 15. Test na persistenci Person a jejich vazeb
155 4 Jakub Homolka
156 3 Jakub Homolka
**Kroky:**
157
1. Stáhni projekt, kde stejná osoba vystupuje v různých rolích (autor, assignee, committer)
158
2. Zkontroluj tabulku `person` a `person_role` 
159
160
**Očekávaný výsledek:**
161
- V tabulce existuje pouze jeden záznam pro jednu osobu `person`
162 1 Štěpán Faragula
- V tabulce `person_role` jsou správně zaznamenány různé role osoby
163 2 Štěpán Faragula
- Osoby se stejným jménem ale různými identifikátory jsou správně rozlišeny
164
165 1 Štěpán Faragula
----
166
167
Autor: Jakub Homolka
168
Datum: 23.4.2025
169
Stav: rozdělaný