Testrapport 4 - Jensprog/CashTrack GitHub Wiki

Datum: 14 maj 2025
Gitlab-commit: ef827689
Referens till testplan: Se Testspecifikation dokument

Testmiljö

  • Operativsystem: MacOS
  • Webbläsare: Firefox 136.0.2
  • Backend: Next.js 15.3.0 utvecklingsserver
  • Databas: MySQL 3.14.0 via Docker-container
  • API-testning: Postman
  • Automatiserade tester Jest 29.7.0
  • Databas stresstest Artillery 2.0.23

Automatiserade tester

Test-ID Namn Status Kommentar
UT1 getUserByEmail (valid email) :white_check_mark: GODKÄNT Verifierar att funktionen returnerar användare när giltig e-post anges
UT2 getUserByEmail (invalid email) :white_check_mark: GODKÄNT Verifierar att funktionen returnerar null när ogiltig e-post anges
UT3 createUser :white_check_mark: GODKÄNT Verifierar att funktionen skapar en ny användare med korrekt data
UT4 comparePassword :white_check_mark: GODKÄNT Verifierar att lösenordsjämförelse fungerar korrekt för både rätt och fel lösenord
UT5 generateToken :white_check_mark: GODKÄNT Verifierar att en JWT-token genereras med korrekt format och data
UT6 verifyToken :white_check_mark: GODKÄNT Verifierar att en token kan verifieras och returnerar korrekt data eller null för ogiltiga tokens
UI1 CategoryForm renderar utan att krascha :white_check_mark: GODKÄNT Verifierar att CategoryForm-komponenten renderas korrekt utan fel
UI2 CategoryForm visar 3 kategori knappar :white_check_mark: GODKÄNT Verifierar att alla tre kategoritypknappar (Inkomst, Sparande, Utgift) visas korrekt
SRV1 authMiddleware omdirigerar oautentiserade användaree :white_check_mark: GODKÄNT Verifierar att middleware skyddar routes från obehörig åtkomst
SRV2 csrfMiddleware validerar tokens :white_check_mark: GODKÄNT Verifierar att CSRF-middleware korrekt validerar tokens för POST-anrop

CI/CD-pipeline

Test-ID Namn Status Kommentar
CI1 Automatiserade tester i pipeline :white_check_mark: GODKÄNT Konfigurerat GitLab CI/CD för att köra alla Jest-tester före driftsättning
CI2 JWT_SECRET-hantering i CI/CD :white_check_mark: GODKÄNT Säker hantering av JWT_SECRET i pipeline med maskerade variabler
CI3 Docker-optimeringar :white_check_mark: GODKÄNT Implementerat .dockerignore och förbättrat Docker-konfiguration för effektivare byggen

Stresstester mot Databas (Artillery)

Stresstest 1: Inloggning och transaktionsskapande (ST1)

Test-ID Testtyp Belastningsparametrar Tidsperiod Status
ST1 Inloggning och transaktionsskapande 2-10 användare/s, 30s 2025-05-14 :white_check_mark: GODKÄNT

Testresultat

  • Total användare: 180
  • Totala förfrågningar: 360
  • Svarsfrekvens: 15 förfrågningar/sekund
  • Svarstider:
    • Minimum: 5ms
    • Maximum: 958ms
    • Medelvärde: 168.7ms
    • Median: 159.2ms
    • 95% percentil: 320.6ms
    • 99% percentil: 415.8ms
  • Fullbordade sessioner: 180
  • Misslyckade sessioner: 0 (0% felfrekvens)

Förbättringspunkter

Refaktorering: Behövde göra lite åtgärder kring kategorisering, göra gränssnittet tydligare och göra om standardkategorier till något som varje användare som skapar konto får automatiskt. Tog bort mina gamla tester och gjorde dem till automatiserade tester med Jest istället.

Uppdaterade hanteringen av CSRF-token från sessionStorage till cookies istället då jag hade problem med att öppna fler flikar av min app, cookies löste problemet.

Analys

Veckan gick bra, men det blev inte lika mycket gjort som jag önskat då jag hade en omtenta att studera inför. Fick automatiska tester att fungera med jest som testramverk och react-testing-library för react komponenter. Det viktigaste dock var att flytta CSRF-tokens till cookies istället för sessionStorage.