Tests d'assurance qualité

VérifiéSûr

Utilisez après des modifications de code, avant les versions ou lors de tests de fonctionnalités. Exécute le niveau de QA approprié en fonction des changements.

Spar Skills Guide Bot
TestingIntermédiaire
2025/07/2026
Claude CodeCursorWindsurf
#qa#testing#e2e#unit#visual-qa

Recommandé pour

Notre avis

Exécute le niveau de QA approprié (tests unitaires, e2e, visuels ou d'installation) en fonction des modifications apportées au code.

Points forts

  • Automatisation du choix du niveau de test selon le changement
  • Intégration avec agent-browser pour la vérification visuelle
  • Procédure claire pour les tests de release et d'infrastructure

Limites

  • Dépend de make targets et d'outils externes (Playwright, agent-browser, multipass)
  • Nécessite l'installation préalable d'agent-browser pour les tests visuels
  • Les tests E2E prennent plusieurs minutes
Quand l'utiliser

Après toute modification du code, avant une release ou lors de la validation d'une fonctionnalité.

Quand l'éviter

Pour des modifications mineures de documentation ou des changements purement non fonctionnels.

Analyse de sécurité

Sûr
Score qualité90/100

The skill provides a structured QA testing guide using local commands, agent-browser, and a VM test. The install script download uses curl-pipe-bash, but it is executed inside a disposable multipass VM and references the project's own domain, so it's not a generic risky instruction. No exfiltration, destruction, or safety bypass.

Aucun point d'attention détecté

Exemples

QA after a bug fix
I just fixed a bug in the login flow. Run the appropriate QA level for this change.
Pre-release QA
We are about to release version 2.3. Run the full QA suite including unit, E2E, visual, and VM install tests.
Visual verification of new UI component
I added a new chart to the dashboard. Use agent-browser to visually verify it renders correctly.

name: qa description: Use after code changes, before releases, or when testing features - runs the right level of QA based on what changed

QA Testing

What did you change? Start here.

| Change | Test level | Command | |--------|-----------|---------| | Bug fix, refactor, small feature | Unit | make test | | Feature, UI, big change | Unit + E2E | make test then make test-e2e | | Visual / UI verification | Agent-browser | make dev + agent-browser | | Install script, matcha, infra | VM install | multipass VM | | Release | All of the above | See release checklist |


Level 1: Unit Tests (~3 seconds)

make test

Run after every change. No excuses.


Level 2: E2E Tests (~5 minutes)

# CRITICAL: Kill any running dev server first — E2E uses its own database
lsof -ti :3000 | xargs kill -9 2>/dev/null
make test-e2e

Playwright tests that run onboarding, create websites, check dashboards, ingest events. Run after features or big changes.


Level 3: Visual QA with agent-browser

For verifying UI rendering, checking that data displays correctly, or testing flows that E2E doesn't cover.

Setup (one-time)

npm i -g agent-browser
agent-browser install

Start dev server

make dev    # MUST use make dev (Go + Vite together)

Dev credentials

  • Email: admin@example.com
  • Password: password
  • Created by make db-seed

Login

agent-browser open "http://localhost:3000/login"
agent-browser snapshot -i
agent-browser fill @e1 "admin@example.com"
agent-browser fill @e3 "password"
agent-browser click @e4

Navigate and verify

agent-browser snapshot -i           # list interactive elements with refs
agent-browser click @e11            # click element by ref
agent-browser scroll down 1000      # scroll to find sections
agent-browser screenshot            # capture page as PNG
agent-browser get url               # check current URL

Generate real browser events

# The /_demo page includes the tracking script — fires real pageviews
agent-browser open "http://localhost:3000/_demo"

# Wait for event processing (~10s), then check dashboard

Key pages to verify

| Page | How to reach | What to check | |------|-------------|---------------| | Admin home | /admin | Website list loads | | Dashboard | Click arrow (→) on a website | Charts, stats, time range | | Browsers tab | Scroll to Device Analytics, click "Browsers" | Browser names (Brave, Edge, etc.) | | Settings | Click "Settings" in nav | Forms save, flash messages | | Events | Click "Events" tab on dashboard | Event list, sessions view |

Important

  • Always make devmake watch-go alone won't render Inertia pages
  • Click through the UI — don't force navigation with open after login (breaks Inertia state)
  • /_demo for real events — sends actual Sec-CH-UA headers from the browser
  • Dev database: storage/fusionaly-development.db

Level 4: VM Install Test

Only needed when changing: install script, matcha, Docker setup, or release infrastructure.

Create fresh VM

multipass delete fusionaly-test --purge 2>/dev/null || true
multipass launch 24.04 --name fusionaly-test --cpus 2 --memory 2G --disk 10G

Run install

multipass exec fusionaly-test -- bash -c '
sudo apt-get update -qq && sudo apt-get install -y -qq expect

cat > /tmp/run_install.exp << '\''EXPECTSCRIPT'\''
#!/usr/bin/expect -f
set timeout 300
spawn sudo bash -c "curl -fsSL https://fusionaly.com/install | bash"
expect "Enter your domain name"
send "test.local\r"
expect "Proceed with this configuration"
send "Y\r"
expect eof
EXPECTSCRIPT

expect /tmp/run_install.exp
'

Verify

multipass exec fusionaly-test -- bash -c '
echo "=== Containers ===" && sudo docker ps
echo "=== Version ===" && fusionaly version
echo "=== Health ===" && curl -s http://172.18.0.2:8080/_health
'

Browser test via tunnel

VM_IP=$(multipass info fusionaly-test | grep IPv4 | awk '{print $2}')
ssh -L 8080:172.18.0.2:8080 ubuntu@$VM_IP
# Open http://localhost:8080/setup

Cleanup

multipass delete fusionaly-test --purge

Release Checklist

Before tagging a release:

  • [ ] make test passes
  • [ ] make test-e2e passes (kill dev server first!)
  • [ ] Visual QA: dashboard loads, browser stats correct, events ingesting
  • [ ] VM install test (if install/infra changed)
  • [ ] Pro: update OSS submodule, build, test

Common Issues

| Issue | Cause | Fix | |-------|-------|-----| | E2E fails "Setup already complete" | Dev server running (wrong DB) | lsof -ti :3000 \| xargs kill -9 | | agent-browser login doesn't work | Vite not running | Use make dev, not make watch-go | | Dashboard shows JSON error | Navigated directly after forced POST | Start fresh browser, click through UI | | /_demo events not appearing | Processing job hasn't run yet | Wait ~10 seconds, check ingested_events table | | VM can't reach app | Docker internal network | Use SSH tunnel to 172.18.0.2:8080 |

Skills similaires