Tired of reading CTFL notes and not knowing if anything is sticking? This app turns passive study into active practice — original quizzes, fast-recall flashcards, and real-world scenario drills, all in your browser with no account required.
Built for people preparing for the ISTQB Certified Tester Foundation Level (CTFL) v4.0 exam.
Important: This is an independent, unofficial project. ISTQB® and CTFL® names are used only to identify the certification being studied. Official syllabus, glossary, and sample exams remain the source of truth. See DISCLAIMER.md for full details.
- Practice quiz — 120+ original multiple-choice questions covering all six syllabus areas, with instant rationale feedback after every answer
- Exam simulator — 40 questions, 60-minute countdown timer, audio chimes at start/end, scored against the 26/40 passing threshold
- Flashcards — shuffled active-recall cards to drill key terms and concepts
- Scenario drills — short real-world prompts that train you to explain testing concepts the way you would in a job interview or on the exam
- Chapter summaries — learning goals, key concepts, and study tactics for each of the six CTFL 4.0 syllabus areas
- Progress tracking — browser-local, no sign-in, no server, no ads; your progress persists across sessions
Open the live demo and follow these steps:
- Pick a chapter — use the syllabus chapter panel on the left to focus on one area, or leave it on the first chapter to start from the beginning.
- Choose a mode — toggle between Practice (immediate feedback after each answer) and Exam (all answers revealed at the end with a pass/fail score).
- Answer questions — submit your answers and review the rationale for each one; understanding why matters more than memorising answers.
- Drill flashcards — scroll to the Flashcards section and hit Shuffle to get a fresh set; say the answer aloud before flipping.
- Try a scenario — the Scenario section gives you a real-world testing situation to explain; use it to practice speaking about concepts, not just recognising them.
- Track your progress — mark chapters as reviewed using the chapter panel; everything is saved automatically in your browser.
For a focused study plan from zero to exam-ready, see docs/fast-cert-prep.md.
Syllabus areas:
- Fundamentals of Testing
- Testing Throughout the Software Development Lifecycle
- Static Testing
- Test Analysis and Design
- Managing the Test Activities
- Test Tools
Always verify current details with your exam provider and the official ISTQB materials.
| Area | Library | Version | Role |
|---|---|---|---|
| UI | React | 19 | Component model, concurrent rendering |
| Language | TypeScript | 6 (strict) | End-to-end type safety |
| Bundler | Vite | 8 | Dev server, production build, code splitting |
| Unit tests | Vitest + Testing Library | 4 / 16 | Component and logic tests under jsdom |
| E2E tests | Playwright | 1.61 | Real-browser quiz and progress coverage |
| Linting | ESLint + typescript-eslint | 10 / 8 | Style and correctness checks |
| CI/CD | GitHub Actions | — | Lint → unit test → build → deploy to Pages |
| Fonts | Fontsource variable fonts | — | Inter (body) + Space Grotesk (headings), self-hosted |
Requirements: Node.js 26+, npm, Git.
git clone https://github.com/darekwojciechowski/istqb-foundation-4-study-lab.git
cd istqb-foundation-4-study-lab
npm install
npm run devOpen the local URL printed by Vite (usually http://localhost:5173/).
macOS launcher (installs deps automatically, opens browser):
./scripts/run-macos.commandWindows launcher:
scripts\run-windows.cmdFor a full local setup guide and troubleshooting, see docs/running.md.
The app is a pack-driven study shell — the React component tree has no knowledge of the subject being studied. All content and UI copy flows through a single KnowledgePack object defined in src/knowledge/types.ts.
Key design decisions:
- Type-enforced pack contract: the
KnowledgePackinterface (src/knowledge/types.ts) usesDeepReadonly<T>and aNonEmptyReadonlyArrayguard — a missingmetaor emptysyllabusChaptersfails the build, not runtime. A complete "World Capitals & Geography" demo pack proves zero subject leakage (src/App.demoPack.test.tsx). - Pure logic, extracted hooks: quiz/progress/SRS rules are pure, React-free functions in
src/lib/driven by focused hooks (useQuizOrchestration,useProgressSync,useExamTimer) — the layering shown above, each unit-tested in isolation. - Content-integrity tests: beyond the unit/e2e runs above, dedicated tests guard answer distribution, per-chapter minimums, and English-only copy.
The shell is fully reusable. To adapt it to a different certification or subject:
- Author a new pack module (use
src/knowledge/demoKnowledgePack.tsas a template). - Point the app at it by editing
src/knowledge/currentKnowledgePack.ts. - The TypeScript compiler enforces the contract — missing required fields fail the build immediately.
- Optional sections auto-hide when their arrays are empty, so you only build what you need.
For the full walkthrough — authoring a pack, one-time repo-branding edits (package.json, Vite base path, index.html, favicon), and verification steps — see docs/swapping.md.
MIT — see LICENSE.
The bundled Inter and Space Grotesk fonts are licensed under the SIL Open Font License v1.1 — see THIRD_PARTY_NOTICES.md.
Provided for educational purposes only, with no warranty and no guarantee of exam success. See DISCLAIMER.md.
