Projekt

Obecné

Profil

Testovaci scenare » Historie » Verze 5

Jakub Homolka, 2025-04-23 22:19

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