CI Pipeline with Test Management / 🧪 Run Tests & Generate Reports (push) Waiting to run
CI Pipeline with Test Management / 🐳 Docker Integration Tests (push) Blocked by required conditions
CI Pipeline with Test Management / 🏗️ Build Docker Image (push) Blocked by required conditions
CI Pipeline with Test Management / 📊 Generate Test Summary (push) Blocked by required conditions
Test Reporting & Gherkin Analysis / 🧪 Run Tests & Generate Reports (push) Waiting to run
Test Reporting & Gherkin Analysis / 📊 Analyze Test Coverage (push) Blocked by required conditions
Test Reporting & Gherkin Analysis / 🔄 Sync with Linear (push) Blocked by required conditions
Test Reporting & Gherkin Analysis / ⚡ Performance Monitoring (push) Blocked by required conditions
- agent docs: Linear (ZEE-*) → Plane (MITHOME-*) everywhere (task tracking, commit examples, workflows, env vars) - testing steering: replace the obsolete Gherkin/Linear reporting with the pre-deploy suite and the CMS test scripts - README: rewrite to Next.js 15, local deploy, Plane, CMS, security monitoring - DOCKER/proto docs: correct dev-stack ports (app 8080, mongo 27018) and Next.js 15 - content-editor-recovery: mark the old 'next steps' as done - mark clearly-obsolete Linear/GitHub-era guides as deprecated (banner) — LINEAR-SYNC, GITHUB-CICD/INTEGRATION, TEST-MANAGEMENT/REPORTING, traceability, sync-status analysis, requirements docs
479 lines
14 KiB
Markdown
479 lines
14 KiB
Markdown
> **ELAVULT (deprecated)** — Linear-korszakbeli riportrendszer.
|
|
|
|
# Test Reporting System - Gherkin Format & Functional Analysis
|
|
|
|
## 🎯 **Cél: Átfogó Teszt Reporting Rendszer**
|
|
|
|
### **Funkciók:**
|
|
- ✅ **Gherkin formátum** tesztesetekhez
|
|
- ✅ **Funkcionális területek** szerinti csoportosítás
|
|
- ✅ **Lemaradás elemzés** területenként
|
|
- ✅ **TC issue frissítés** Gherkin formátummal
|
|
- ✅ **Automatizált reporting** GitHub Actions-ban
|
|
|
|
---
|
|
|
|
## 📊 **Funkcionális Területek Szerinti Csoportosítás**
|
|
|
|
### **1. 🏠 Weboldal Funkcionalitás**
|
|
- **Kezdőlap**: Hero, szolgáltatások, CTA gombok
|
|
- **Navigáció**: Menü, hamburger, linkek
|
|
- **Oldalak**: Rólunk, Szolgáltatások, Kapcsolat
|
|
- **Webmail**: Külső integráció
|
|
|
|
### **2. 📝 Kapcsolat Űrlap**
|
|
- **Validáció**: Frontend és backend
|
|
- **Spam védelem**: Tartalom ellenőrzés
|
|
- **Rate limiting**: Kérés korlátozás
|
|
- **GDPR**: Adatkezelési hozzájárulás
|
|
|
|
### **3. 🎨 Design és UX**
|
|
- **Responsive**: Mobil, tablet, desktop
|
|
- **Accessibility**: A11y, keyboard navigáció
|
|
- **Performance**: Betöltési idő, Lighthouse
|
|
- **Usability**: Intuitív használat
|
|
|
|
### **4. 🔒 Biztonság**
|
|
- **Input validáció**: XSS, injection védelem
|
|
- **Rate limiting**: API védelem
|
|
- **HTTPS**: Titkosított kommunikáció
|
|
- **Headers**: Security headers
|
|
|
|
### **5. ⚡ Teljesítmény**
|
|
- **Lighthouse**: Performance, SEO, A11y
|
|
- **Kép optimalizálás**: WebP, lazy loading
|
|
- **Code splitting**: JavaScript optimalizálás
|
|
- **Caching**: Browser és CDN
|
|
|
|
### **6. 🛠️ Technikai Stack**
|
|
- **Next.js**: App Router, API Routes
|
|
- **MongoDB**: Adatbázis kapcsolat
|
|
- **Docker**: Containerizáció
|
|
- **CI/CD**: GitHub Actions
|
|
|
|
---
|
|
|
|
## 🥒 **Gherkin Formátum Template**
|
|
|
|
### **Template Struktúra:**
|
|
```gherkin
|
|
Feature: [Funkcionális terület neve]
|
|
As a [user type]
|
|
I want to [functionality]
|
|
So that [business value]
|
|
|
|
Background:
|
|
Given [common preconditions]
|
|
|
|
Scenario: [Test case neve]
|
|
Given [initial state]
|
|
When [action performed]
|
|
Then [expected outcome]
|
|
And [additional verification]
|
|
|
|
Scenario Outline: [Parametrized test]
|
|
Given [initial state with <parameter>]
|
|
When [action with <parameter>]
|
|
Then [expected outcome with <parameter>]
|
|
|
|
Examples:
|
|
| parameter | expected_value |
|
|
| value1 | result1 |
|
|
| value2 | result2 |
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 **Gherkin Test Cases - Jelenlegi Implementáció**
|
|
|
|
### **1. 🏠 Weboldal Funkcionalitás**
|
|
|
|
#### **Feature: Kezdőlap Funkcionalitás**
|
|
```gherkin
|
|
Feature: Kezdőlap Funkcionalitás
|
|
As a weboldal látogató
|
|
I want to megértsem a cég szolgáltatásait
|
|
So that tudjam, hogy mire számíthatok
|
|
|
|
Background:
|
|
Given a weboldal betöltött állapotban van
|
|
And a felhasználó a kezdőlapon van
|
|
|
|
Scenario: Hero szekció megjelenítése
|
|
Given a felhasználó megnyitja a kezdőlapot
|
|
When a oldal betöltődik
|
|
Then látom a főcímet "Megbízható web- és email-szolgáltatás személyre szabott támogatással"
|
|
And látom az alcímet a cég bemutatkozásával
|
|
And látom a Webmail ugrás gombot
|
|
|
|
Scenario: Szolgáltatások megjelenítése
|
|
Given a felhasználó a kezdőlapon van
|
|
When görget le a szolgáltatások szekcióig
|
|
Then látom a Web Hosting szolgáltatást
|
|
And látom az Email szolgáltatást
|
|
And látom a DNS Adminisztráció szolgáltatást
|
|
And minden szolgáltatáshoz van leírás és feature lista
|
|
|
|
Scenario: Webmail gomb működése
|
|
Given a felhasználó a kezdőlapon van
|
|
When rákattint a "Webmail Ugrás" gombra
|
|
Then új ablakban megnyílik a webmail szolgáltatás
|
|
And a webmail URL konfigurálható environment változóval
|
|
```
|
|
|
|
#### **Feature: Navigáció Rendszer**
|
|
```gherkin
|
|
Feature: Navigáció Rendszer
|
|
As a weboldal látogató
|
|
I want to könnyen navigálhassak az oldalak között
|
|
So that gyorsan megtaláljam a kívánt információt
|
|
|
|
Background:
|
|
Given a weboldal betöltött állapotban van
|
|
|
|
Scenario: Desktop navigáció
|
|
Given a felhasználó desktop eszközön van
|
|
When megnyitja a weboldalt
|
|
Then látom a főmenüt a header-ben
|
|
And a menü sticky (ragad a tetején görgetéskor)
|
|
And minden menüpont kattintható
|
|
|
|
Scenario: Mobil navigáció
|
|
Given a felhasználó mobil eszközön van
|
|
When megnyitja a weboldalt
|
|
Then látom a hamburger menü gombot
|
|
When rákattint a hamburger gombra
|
|
Then megjelenik a mobil menü
|
|
And a hamburger gomb ikonja változik (nyitott/bezárt)
|
|
When rákattint egy menüpontra
|
|
Then a mobil menü bezáródik
|
|
|
|
Scenario: Menüpontok navigálása
|
|
Given a felhasználó bármelyik oldalon van
|
|
When rákattint a "Rólunk" menüpontra
|
|
Then a /rolunk oldalra kerül
|
|
When rákattint a "Szolgáltatások" menüpontra
|
|
Then a /szolgaltatasok oldalra kerül
|
|
When rákattint a "Kapcsolat" menüpontra
|
|
Then a /kapcsolat oldalra kerül
|
|
```
|
|
|
|
### **2. 📝 Kapcsolat Űrlap**
|
|
|
|
#### **Feature: Kapcsolat Űrlap Validáció**
|
|
```gherkin
|
|
Feature: Kapcsolat Űrlap Validáció
|
|
As a weboldal látogató
|
|
I want to kapcsolatot felvenni a céggel
|
|
So that kérdéseimet feltehessem
|
|
|
|
Background:
|
|
Given a felhasználó a /kapcsolat oldalon van
|
|
And a kapcsolat űrlap betöltött állapotban van
|
|
|
|
Scenario: Kötelező mezők validálása
|
|
Given a felhasználó üres űrlappal próbál küldeni
|
|
When rákattint a "Üzenet küldése" gombra
|
|
Then hibaüzenet jelenik meg a név mezőnél
|
|
And hibaüzenet jelenik meg az email mezőnél
|
|
And hibaüzenet jelenik meg az üzenet mezőnél
|
|
And hibaüzenet jelenik meg a GDPR checkbox-nál
|
|
And az űrlap nem kerül elküldésre
|
|
|
|
Scenario: Email formátum validálása
|
|
Given a felhasználó kitölti a név mezőt "Teszt Felhasználó"-val
|
|
And kitölti az email mezőt "rossz-email-formátum"-mal
|
|
And kitölti az üzenet mezőt "Teszt üzenet"-tel
|
|
And bejelöli a GDPR checkbox-ot
|
|
When rákattint a "Üzenet küldése" gombra
|
|
Then hibaüzenet jelenik meg "Érvénytelen email formátum" szöveggel
|
|
And az űrlap nem kerül elküldésre
|
|
|
|
Scenario: Sikeres űrlap küldés
|
|
Given a felhasználó kitölti a név mezőt "Teszt Felhasználó"-val
|
|
And kitölti az email mezőt "teszt@example.com"-mal
|
|
And kitölti az üzenet mezőt "Teszt üzenet"-tel
|
|
And bejelöli a GDPR checkbox-ot
|
|
When rákattint a "Üzenet küldése" gombra
|
|
Then sikerüzenet jelenik meg "Üzenet sikeresen elküldve!" szöveggel
|
|
And az űrlap mezői törlődnek
|
|
```
|
|
|
|
#### **Feature: Spam Védelem és Rate Limiting**
|
|
```gherkin
|
|
Feature: Spam Védelem és Rate Limiting
|
|
As a weboldal rendszergazdája
|
|
I want to megvédeni a rendszert spam-től
|
|
So that csak legitim üzenetek érkezzenek
|
|
|
|
Background:
|
|
Given a kapcsolat API endpoint elérhető
|
|
And a rate limiting 5 kérés/perc limitre van beállítva
|
|
|
|
Scenario: Spam tartalom észlelése
|
|
Given a felhasználó spam tartalmat küld
|
|
When POST kérést küld a /api/contact endpoint-ra
|
|
Then 400 Bad Request választ kap
|
|
And a válasz tartalmazza "Spam gyanús tartalom észlelve" üzenetet
|
|
And az üzenet nem kerül feldolgozásra
|
|
|
|
Scenario: Rate limiting működése
|
|
Given a felhasználó 5 érvényes kérést küld 1 percen belül
|
|
When 6. kérést próbálja küldeni
|
|
Then 429 Too Many Requests választ kap
|
|
And a válasz tartalmazza "Túl sok kérés" üzenetet
|
|
And a kérés nem kerül feldolgozásra
|
|
|
|
Scenario: Rate limiting visszaállítása
|
|
Given a felhasználó elérte a rate limitet
|
|
When 1 perc eltelik
|
|
And új érvényes kérést küld
|
|
Then 200 OK választ kap
|
|
And a kérés sikeresen feldolgozásra kerül
|
|
```
|
|
|
|
### **3. 🎨 Design és UX**
|
|
|
|
#### **Feature: Responsive Design**
|
|
```gherkin
|
|
Feature: Responsive Design
|
|
As a weboldal látogató
|
|
I want to minden eszközön jól működő weboldalt
|
|
So that bárhonnan hozzáférhessem a szolgáltatásokhoz
|
|
|
|
Background:
|
|
Given a weboldal elérhető
|
|
|
|
Scenario: Mobil nézet (360px+)
|
|
Given a felhasználó 360px széles eszközön van
|
|
When megnyitja a weboldalt
|
|
Then a hamburger menü látható
|
|
And a szövegek olvashatóak
|
|
And a gombok kattinthatóak
|
|
And nincs vízszintes görgetés
|
|
|
|
Scenario: Tablet nézet (768px+)
|
|
Given a felhasználó 768px széles eszközön van
|
|
When megnyitja a weboldalt
|
|
Then a főmenü látható
|
|
And a szolgáltatások 2 oszlopban jelennek meg
|
|
And a layout optimalizált
|
|
|
|
Scenario: Desktop nézet (1024px+)
|
|
Given a felhasználó 1024px széles eszközön van
|
|
When megnyitja a weboldalt
|
|
Then a teljes navigáció látható
|
|
And a szolgáltatások 3 oszlopban jelennek meg
|
|
And a layout teljes szélességben kihasznált
|
|
```
|
|
|
|
### **4. ⚡ Teljesítmény**
|
|
|
|
#### **Feature: Lighthouse Teljesítmény**
|
|
```gherkin
|
|
Feature: Lighthouse Teljesítmény
|
|
As a weboldal látogató
|
|
I want to gyorsan betöltődő weboldalt
|
|
So that ne várjak a tartalom megjelenésére
|
|
|
|
Background:
|
|
Given a weboldal elérhető
|
|
And a Lighthouse CI konfigurálva van
|
|
|
|
Scenario: Performance Score ≥ 90
|
|
Given a Lighthouse audit futtatásra kerül
|
|
When a performance mérés befejeződik
|
|
Then a Performance score ≥ 90
|
|
And a First Contentful Paint < 1.5s
|
|
And a Largest Contentful Paint < 2.5s
|
|
And a Cumulative Layout Shift < 0.1
|
|
|
|
Scenario: Accessibility Score ≥ 90
|
|
Given a Lighthouse audit futtatásra kerül
|
|
When az accessibility mérés befejeződik
|
|
Then az Accessibility score ≥ 90
|
|
And minden képnek van alt szövege
|
|
And a heading struktúra logikus
|
|
And a kontraszt arány ≥ 4.5:1
|
|
|
|
Scenario: SEO Score ≥ 90
|
|
Given a Lighthouse audit futtatásra kerül
|
|
When az SEO mérés befejeződik
|
|
Then az SEO score ≥ 90
|
|
And minden oldalnak van unique title-je
|
|
And minden oldalnak van meta description-je
|
|
And a sitemap.xml elérhető
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 **Test Reporting Dashboard**
|
|
|
|
### **Funkcionális Területek Lemaradás Elemzése**
|
|
|
|
```markdown
|
|
# Test Coverage Report - 2025-09-05
|
|
|
|
## 📊 Összefoglaló
|
|
- **Összes teszt**: 25
|
|
- **Sikeres**: 23 (92%)
|
|
- **Sikertelen**: 2 (8%)
|
|
- **Kihagyott**: 0 (0%)
|
|
|
|
## 🎯 Területenkénti Elemzés
|
|
|
|
### 1. 🏠 Weboldal Funkcionalitás
|
|
- **Tesztesetek**: 8
|
|
- **Sikeres**: 8 (100%)
|
|
- **Státusz**: ✅ Kiváló
|
|
- **Lemaradás**: Nincs
|
|
|
|
### 2. 📝 Kapcsolat Űrlap
|
|
- **Tesztesetek**: 6
|
|
- **Sikeres**: 5 (83%)
|
|
- **Sikertelen**: 1 (17%)
|
|
- **Státusz**: ⚠️ Figyelendő
|
|
- **Lemaradás**: Rate limiting edge case
|
|
|
|
### 3. 🎨 Design és UX
|
|
- **Tesztesetek**: 4
|
|
- **Sikeres**: 3 (75%)
|
|
- **Sikertelen**: 1 (25%)
|
|
- **Státusz**: ⚠️ Figyelendő
|
|
- **Lemaradás**: A11y keyboard navigáció
|
|
|
|
### 4. ⚡ Teljesítmény
|
|
- **Tesztesetek**: 3
|
|
- **Sikeres**: 2 (67%)
|
|
- **Sikertelen**: 1 (33%)
|
|
- **Státusz**: 🔴 Kritikus
|
|
- **Lemaradás**: Lighthouse Performance < 90
|
|
|
|
### 5. 🔒 Biztonság
|
|
- **Tesztesetek**: 4
|
|
- **Sikeres**: 4 (100%)
|
|
- **Státusz**: ✅ Kiváló
|
|
- **Lemaradás**: Nincs
|
|
|
|
## 🚨 Kritikus Lemaradások
|
|
1. **Lighthouse Performance** - < 90 score
|
|
2. **A11y Keyboard Navigation** - Nem működik
|
|
3. **Rate Limiting Edge Cases** - Hibás kezelés
|
|
|
|
## 📈 Javaslatok
|
|
1. Kép optimalizálás implementálása
|
|
2. A11y keyboard navigáció javítása
|
|
3. Rate limiting edge case kezelés
|
|
4. Performance monitoring beállítása
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 **TC Issue Frissítési Folyamat**
|
|
|
|
### **1. Gherkin Formátum Hozzáadása TC Issues-hoz**
|
|
|
|
```markdown
|
|
## 🥒 Gherkin Test Case
|
|
|
|
```gherkin
|
|
Feature: [Feature neve]
|
|
As a [user type]
|
|
I want to [functionality]
|
|
So that [business value]
|
|
|
|
Scenario: [Test case neve]
|
|
Given [precondition]
|
|
When [action]
|
|
Then [expected result]
|
|
```
|
|
|
|
## 📊 Test Execution Results
|
|
- **Status**: ✅ Passed / ❌ Failed / ⏭️ Skipped
|
|
- **Duration**: 150ms
|
|
- **Last Run**: 2025-09-05T15:30:00Z
|
|
- **Environment**: GitHub Actions / Local
|
|
|
|
## 🔗 Automated Test Implementation
|
|
- **File**: `src/__tests__/integration.test.ts`
|
|
- **Function**: `should handle contact form validation`
|
|
- **Coverage**: 100%
|
|
```
|
|
|
|
### **2. Automatizált TC Issue Frissítés**
|
|
|
|
```javascript
|
|
// scripts/update-tc-issues.js
|
|
const updateTestCaseIssues = async (testResults) => {
|
|
for (const test of testResults) {
|
|
if (test.title.includes('TC-')) {
|
|
const tcId = extractTestCaseId(test.title);
|
|
const gherkin = generateGherkinFromTest(test);
|
|
|
|
await linearClient.updateIssue(tcId, {
|
|
description: addGherkinToDescription(test.description, gherkin),
|
|
labels: ['test-case', 'gherkin', 'automated']
|
|
});
|
|
}
|
|
}
|
|
};
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 **GitHub Actions Integration**
|
|
|
|
### **Test Reporting Workflow**
|
|
|
|
```yaml
|
|
name: Test Reporting & Analysis
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop]
|
|
schedule:
|
|
- cron: '0 9 * * *' # Daily at 9 AM
|
|
|
|
jobs:
|
|
test-execution:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Run Tests
|
|
run: npm run test:all -- --json --outputFile=test-results.json
|
|
|
|
- name: Generate Gherkin Reports
|
|
run: node scripts/generate-gherkin-reports.js
|
|
|
|
- name: Analyze Functional Areas
|
|
run: node scripts/analyze-functional-coverage.js
|
|
|
|
- name: Update TC Issues
|
|
run: node scripts/update-tc-issues.js
|
|
|
|
- name: Generate Coverage Dashboard
|
|
run: node scripts/generate-coverage-dashboard.js
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 **Következő Lépések**
|
|
|
|
### **1. Azonnali (1-2 nap)**
|
|
- [ ] Gherkin template-ek létrehozása
|
|
- [ ] TC issues frissítése Gherkin formátummal
|
|
- [ ] Funkcionális területek elemzési script
|
|
|
|
### **2. Rövid távú (1 hét)**
|
|
- [ ] Automatizált TC issue frissítés
|
|
- [ ] GitHub Actions reporting workflow
|
|
- [ ] Coverage dashboard generálás
|
|
|
|
### **3. Közép távú (1 hónap)**
|
|
- [ ] Teljes Gherkin test suite
|
|
- [ ] Lemaradás predikció algoritmus
|
|
- [ ] Real-time monitoring dashboard
|
|
|
|
---
|
|
|
|
**Ez a rendszer biztosítja, hogy mindig lássuk, mely funkcionális területeken vagyunk lemaradva, és a teszteseteink könnyen olvasható Gherkin formátumban legyenek dokumentálva!** 🎯✨
|