Step 16 (Wave 5). playground/A11Y-RAPPORT.md (new, 60 lines): - Skeleton with test setup, 4 surface rows (pending), known violations (empty), contrast notes (light + dark mode), keyboard navigation notes, screen-reader landmark map, axe-core run instructions. - Filled in by tester after MANUAL-CHECKLIST.md execution. playground/MANUAL-CHECKLIST.md (new, 115 lines): - 10 sections per test-strategist output: 1. Onboarding round-trip (shared state) 2. Schema-migration (downgrade + reload) 3. Project CRUD 4. Command form prefill from shared state 5. Paste-import per report type (17 commands enumerated) 6. Parse error (corrupt markdown) 7. Export/import cycle 8. Theme-toggle persistence (Step 13) 9. file://-standalone verification 10. axe-core a11y per surface (CDN injection + axe.run + table) - Each section has a concrete pass/fail criterion with a DevTools-console assertion. Section 10 includes axe.run paste-and-execute snippet.
5.6 KiB
Manuell QA-sjekkliste — ms-ai-architect Playground v3
Versjon: v3 (single-file ms-ai-architect-v3.html)
Sist oppdatert: 2026-05-03
Bruk: Krysser av når seksjonen er verifisert. Bruk DevTools-konsoll for assertions.
Åpne playground/ms-ai-architect-v3.html direkte fra filsystemet (file://). Ingen server kreves. Kjør hver seksjon i rekkefølge — flere tester forutsetter state fra tidligere seksjoner.
1. Onboarding round-trip (felles state)
- Åpne playground i tom state (slett
localStorageførst hvis nødvendig:localStorage.clear()) - Forventet redirect til onboarding-surface (siden ingen organization.name finnes)
- Fyll inn alle 5 grupper (organization, technology, security, architecture, business)
- Klikk "Lagre og fortsett"
- Assertion:
JSON.parse(localStorage.getItem('ms-ai-architect-state-v1')).shared.organization.namereturnerer det du skrev inn - Re-onboard via topbar — verifiser at felter er forhåndsutfylt fra forrige runde
2. Schema-migrasjon
- Assertion:
__store.state.__schema_versioner satt til siste SCHEMA_VERSION-verdi - Manuelt nedgrader:
localStorage.setItem('ms-ai-architect-state-v1', JSON.stringify({__schema_version: 0, projects: []})) - Reload — forventet at MIGRATIONS-pipeline kjører og oppdaterer
__schema_versiontil siste versjon - Ingen console.error-meldinger underveis
3. Prosjekt-CRUD
- Fra Home-surface: klikk "Nytt prosjekt"
- Modal vises — fyll inn navn + beskrivelse → "Opprett"
- Assertion:
__store.state.projects.length === 1 - Naviger til prosjektet (klikk fleet-tile)
- Klikk "Slett" → bekreft → tilbake til Home med 0 prosjekter
- Assertion:
__store.state.projects.length === 0
4. Command-skjema-prefill
- Opprett et nytt prosjekt
- Åpne en command (f.eks. "classify") fra prosjekt-tab
- Verifiser at felter med
from: 'shared'er forhåndsutfylt fra onboarding - Assertion:
__buildCommand('classify', {})returnerer en streng som starter med/architect:classify - Endre et felt → "Forhåndsvis" → bekreft pipeline-streng oppdateres
5. Paste-import per rapport-type (17 commands)
For hver av de 17 rapport-produserende commands:
- Åpne fixture-fila under
playground/test-fixtures/<command>.md - Kopier hele innholdet
- I prosjekt-tabben: lim inn i textarea → klikk "Analyser rapport"
- Verifiser at
[data-report-slot="<command>"]rendrer rapport (ikke "Kunne ikke parse") - Assertion:
__handlePasteImport('<cmd>', '<paste>')returnerer uten feil
Commands å teste: classify, requirements, transparency, frimpact, conformity, dpia, security, ros, review, cost, license, migrate, adr, summary, poc, utredning, compare.
6. Parse-feil — skadet markdown
- Lim inn ufullstendig markdown (slett en seksjon-overskrift fra fixture)
- Verifiser at
[data-report-slot]rendrer en synlig feil-melding (ikke crash) - Assertion: Console viser ingen uncaught exceptions
- Feil-meldingen identifiserer hvilken seksjon som mangler
7. Eksport/import-syklus
- Etter onboarding + 1+ prosjekt + 1+ rapport: klikk "Eksporter" i topbar
- JSON-fil lastes ned (Blob via URL.createObjectURL)
- Slett alt:
localStorage.clear()+ reload - Klikk "Importer" → velg den eksporterte fila
- Assertion: Alle prosjekter, rapporter og onboarding-svar er gjenopprettet
8. Theme-toggle (Step 13)
- Klikk theme-toggle (text "Mørk" eller "Lys" i topbar)
- Assertion:
document.documentElement.getAttribute('data-theme')matcherlocalStorage.getItem('ms-ai-architect-theme') - Reload siden — bekreft tema overlever
- Verifiser ingen flash-of-wrong-theme (FOUC) ved reload (theme-bootstrap-script i
<head>) - Bytt tema flere ganger — alle surfaces bytter farge konsistent
9. file://-standalone
- Kopier mappen
plugins/ms-ai-architect/til en helt ny lokasjon (f.eks./tmp/standalone-test/) - Åpne
playground/ms-ai-architect-v3.htmlderfra medopeneller direkte i nettleser - Verifiser ingen console-errors ved load
- Alle 4 surfaces fungerer (onboarding, home, catalog, project)
- Vendored CSS lastes (
vendor/playground-design-system/*.css)
10. axe-core a11y per surface
For hver surface (onboarding, home, catalog, project):
- Naviger til surfacen
- Åpne DevTools-konsollen
- Lim inn:
var s = document.createElement('script'); s.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.10.0/axe.min.js'; document.head.appendChild(s); - Vent til axe lastes (~1 sek), så kjør:
axe.run().then(r => console.log(JSON.stringify({violations: r.violations.length, byImpact: r.violations.reduce((a,v)=>{a[v.impact]=(a[v.impact]||0)+1;return a;},{})}, null, 2))); - Hvis violations: kjør
axe.run().then(r => console.table(r.violations.map(v => ({id:v.id, impact:v.impact, nodes:v.nodes.length, help:v.help}))))for detaljert tabell - Lim inn JSON-resultatet i A11Y-RAPPORT.md (seksjon "axe-core-kjøring")
Forventet baseline: 0 critical, ≤ 3 serious totalt, ≤ 5 moderate. Alle skal logges i A11Y-RAPPORT.md selv om de er innenfor toleranse.
Tab-test: Etter axe — naviger hele surfacen kun med Tab/Shift+Tab/Enter. Notér i rapporten hvis fokus-rekkefølge føles uintuitiv eller hvis en interaktiv element ikke er nåbar.
Avslutning
- Alle seksjoner ovenfor avkrysset
- A11Y-RAPPORT.md oppdatert med browser-versjon, tester-navn, dato
- axe-core JSON limt inn i rapporten
- Avvik dokumentert med severity og handlingsplan