Files
websitedev/TEST-REPORTING-SYSTEM.md
T
Do Siki 410b4a2e2f
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
docs: refresh all documentation to the current state
- 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
2026-08-22 19:41:50 +02:00

14 KiB

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:

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

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

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ó

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

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

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

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

# 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

## 🥒 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

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! 🎯