From 02261e1c61572e799b254dd032bed2769ba6fcef Mon Sep 17 00:00:00 2001 From: Adam Blanchard Date: Mon, 15 Dec 2025 12:20:08 +0100 Subject: [PATCH 1/9] Added qa track to program structure json --- .../programStructure.json | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/support/src/documentationHelpers/programStructure.json b/support/src/documentationHelpers/programStructure.json index c391f8b4..29396d76 100644 --- a/support/src/documentationHelpers/programStructure.json +++ b/support/src/documentationHelpers/programStructure.json @@ -121,6 +121,32 @@ "location": "courses/frontend/final-project" } ] + }, + { + "name": "Quality Assurance", + "location": "courses/qa", + "modules": [ + { + "name": "Basics of Testing", + "location": "courses/qa/basics-of-testing" + }, + { + "name": "Test Automation", + "location": "courses/qa/test-automation" + }, + { + "name": "Test Management", + "location": "courses/qa/test-management" + }, + { + "name": "Final Demo Project", + "location": "courses/qa/final-demo-project" + }, + { + "name": "Career Training", + "location": "courses/qa/career-training" + } + ] } ] } From 3800b95dba9c34c1692a6dbca4f581cf7804a4db Mon Sep 17 00:00:00 2001 From: Adam Blanchard Date: Mon, 15 Dec 2025 12:20:38 +0100 Subject: [PATCH 2/9] Expanded regex to match module template header for learning goals --- support/src/documentationHelpers/generateLearningGoals.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/src/documentationHelpers/generateLearningGoals.ts b/support/src/documentationHelpers/generateLearningGoals.ts index f45138fb..3e0bb0bc 100644 --- a/support/src/documentationHelpers/generateLearningGoals.ts +++ b/support/src/documentationHelpers/generateLearningGoals.ts @@ -24,7 +24,7 @@ function extractLearningGoals(content: string): { readonly found: boolean; readonly goals: readonly string[]; } { - const sectionRegex = /#+\s*Learning goals\s*\n([\s\S]*?)(?=\n#+\s|$)/i; + const sectionRegex = /#+\s*(?:Module\s+)?Learning goals\s*\n([\s\S]*?)(?=\n#+\s|$)/i; const match = content.match(sectionRegex); if (!match) return { found: false, goals: [] }; From f544210ea5a671572f1a769a71573f92d3db42dc Mon Sep 17 00:00:00 2001 From: Adam Blanchard Date: Mon, 15 Dec 2025 12:21:02 +0100 Subject: [PATCH 3/9] Added todo for final project learning goals --- courses/qa/final-demo-project/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/courses/qa/final-demo-project/README.md b/courses/qa/final-demo-project/README.md index df310d87..a169ca60 100644 --- a/courses/qa/final-demo-project/README.md +++ b/courses/qa/final-demo-project/README.md @@ -2,6 +2,10 @@ Welcome to your final project! Here you can learn more about the goals and requirements of this final module. +## Module Learning Goals + +- [ ] Todo + ## Key Activities - [ ] Analyze requirements and define testing scope. From 5869b5d73228a73900338e75f9fd3559601033c8 Mon Sep 17 00:00:00 2001 From: Adam Blanchard Date: Mon, 15 Dec 2025 12:21:16 +0100 Subject: [PATCH 4/9] updated learning goals for qa track summary --- courses/qa/README.md | 53 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/courses/qa/README.md b/courses/qa/README.md index dab53772..3c943af0 100644 --- a/courses/qa/README.md +++ b/courses/qa/README.md @@ -16,42 +16,44 @@ Total: 15 weeks ## Learning goals overview - + -### [Basics Of Testing](/courses/qa/basics-of-testing) +### [Basics of Testing](/courses/qa/basics-of-testing) -- [ ] Introduction to QA and Software Development -- [ ] Testing Fundamentals -- [ ] Understand Bug lifecycle and Defect Reporting -- [ ] Understand Test Design Basics -- [ ] Spend a lot of time with hands-on practice -- [ ] Learn to work efficiently with your team members +- [ ] Understand what QA is and why it matters +- [ ] Learn SDLC models (Waterfall vs Agile) and QA’s role in them +- [ ] Explore functional vs non-functional testing and levels of testing +- [ ] Understand defect life cycle, severity vs priority, and how to report bugs +- [ ] Get familiar with JIRA for defect tracking +- [ ] Learn test case design and techniques like Equivalence Partitioning & Boundary Value Analysis +- [ ] Practice writing clear bug reports and effective test cases ### [Test Automation](/courses/qa/test-automation) -- [ ] Web Testing with DevTools -- [ ] Practice using Network tabs, inspect elements, console using Browser DevTools -- [ ] Introduction to Test Automation with playwright -- [ ] Successfully install and configure Playwright -- [ ] Build automation structure and Page Object Model -- [ ] Learn about Accessibility Testing Fundamentals & Playwright -- [ ] Understand the Performance & Modern Tooling (Lighthouse) +- [ ] Understand web application architecture and common testing challenges. +- [ ] Perform cross-browser and responsive design testing. +- [ ] Learn UI automation fundamentals using modern tools (e.g., Selenium or Playwright). +- [ ] Implement advanced automation practices like Page Object Model and CI/CD integration. +- [ ] Conduct accessibility testing using tools like Axe or Lighthouse. +- [ ] Perform basic performance testing and interpret key metrics. +- [ ] Apply best practices for maintaining automated test suites. ### [Test Management](/courses/qa/test-management) -- [ ] Understand about Test Planning, Strategy and defining test scope -- [ ] Know what is Agile Principles, Acceptance Criteria -- [ ] Write detailed manual test cases based on ACs -- [ ] Understand QA metrics for a feature -- [ ] Reporting and communication of QA status -- [ ] Demo Project Preparation +- [ ] Understand the purpose and structure of a Test Plan and Test Strategy. +- [ ] Define scope, objectives, risks, and environments for testing. +- [ ] Apply practical test case management (grouping, linking, status updates). +- [ ] Implement requirement traceability (requirements → test cases → bugs). +- [ ] Understand Agile principles, Scrum roles, artifacts, and ceremonies. +- [ ] Analyze User Stories and Acceptance Criteria to create effective test cases. +- [ ] Track QA progress and communicate status effectively using QA metrics. +- [ ] Prepare for a demo project by planning scope and team responsibilities. ### [Final Demo Project](/courses/qa/final-demo-project) -- [ ] Final Demo Project -- [ ] Key Deliverables - QA Summary Report, Team Presentation +- [ ] Todo ### [Career Training](/courses/qa/career-training) @@ -63,5 +65,6 @@ Total: 15 weeks - [ ] Know how to make your LinkedIn page attractive to recruiters. - [ ] Learn how to perform well in a screening interview. - [ ] How to handle Job Rejection and Job Anxiety -- [ ] Managing your own tasks within a tight deadline -- [ ] Understanding how and when to ask for help at the right time + + + From 5934f6365bd48b76bf75104527c8a9f961025d52 Mon Sep 17 00:00:00 2001 From: Adam Blanchard Date: Mon, 15 Dec 2025 12:30:53 +0100 Subject: [PATCH 5/9] Prettier --- support/src/documentationHelpers/generateLearningGoals.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/support/src/documentationHelpers/generateLearningGoals.ts b/support/src/documentationHelpers/generateLearningGoals.ts index 3e0bb0bc..0bfe1ad7 100644 --- a/support/src/documentationHelpers/generateLearningGoals.ts +++ b/support/src/documentationHelpers/generateLearningGoals.ts @@ -24,7 +24,8 @@ function extractLearningGoals(content: string): { readonly found: boolean; readonly goals: readonly string[]; } { - const sectionRegex = /#+\s*(?:Module\s+)?Learning goals\s*\n([\s\S]*?)(?=\n#+\s|$)/i; + const sectionRegex = + /#+\s*(?:Module\s+)?Learning goals\s*\n([\s\S]*?)(?=\n#+\s|$)/i; const match = content.match(sectionRegex); if (!match) return { found: false, goals: [] }; From 40c03592a91bee0d301ffc00801109cb5ef6aca9 Mon Sep 17 00:00:00 2001 From: Gayathri Venkatraman Date: Fri, 2 Jan 2026 10:27:11 +0100 Subject: [PATCH 6/9] Add Learning Goals in Final Demo Project --- .vscode/settings.json | 3 + courses/qa/final-demo-project/README.md | 7 +- package-lock.json | 536 +++++------------------- package.json | 2 +- 4 files changed, 110 insertions(+), 438 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e69de29b..795be359 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "cSpell.words": ["SDLC"] +} diff --git a/courses/qa/final-demo-project/README.md b/courses/qa/final-demo-project/README.md index a169ca60..62b0944e 100644 --- a/courses/qa/final-demo-project/README.md +++ b/courses/qa/final-demo-project/README.md @@ -4,7 +4,12 @@ Welcome to your final project! Here you can learn more about the goals and requi ## Module Learning Goals -- [ ] Todo +- [ ] Build the ability to define QA scope from requirements. +- [ ] Develop competency in creating and validating test strategies. +- [ ] Understand defect lifecycle and effective communication in JIRA. +- [ ] Gain hands-on experience with modern automation frameworks (Playwright, POM). +- [ ] Learn principles of accessibility and performance testing. +- [ ] Strengthen analytical skills for interpreting QA metrics and presenting insights. ## Key Activities diff --git a/package-lock.json b/package-lock.json index 17275fc7..23246bec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "markdownlint-cli": "^0.45.0", + "markdownlint-cli": "^0.47.0", "markdownlint-rule-search-replace": "^1.2.0", "prettier": "^3.6.2" }, @@ -51,23 +51,6 @@ "node": "20 || >=22" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@octokit/app": { "version": "16.1.1", "resolved": "https://registry.npmjs.org/@octokit/app/-/app-16.1.1.tgz", @@ -504,9 +487,9 @@ "license": "MIT" }, "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -515,18 +498,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -577,51 +548,19 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">=20" } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -679,18 +618,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -720,43 +647,33 @@ ], "license": "MIT" }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=12.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/glob": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", - "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.0.3", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ignore": { @@ -811,15 +728,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-hexadecimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", @@ -830,31 +738,10 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -879,9 +766,9 @@ } }, "node_modules/katex": { - "version": "0.16.22", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", - "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -894,6 +781,15 @@ "katex": "cli.js" } }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", @@ -903,15 +799,6 @@ "uc.micro": "^2.0.0" } }, - "node_modules/lru-cache": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", - "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -930,9 +817,9 @@ } }, "node_modules/markdownlint": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.38.0.tgz", - "integrity": "sha512-xaSxkaU7wY/0852zGApM8LdlIfGCW8ETZ0Rr62IQtAnUMlMuifsg09vWJcNYeL4f0anvr8Vo4ZQar8jGpV0btQ==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz", + "integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==", "license": "MIT", "dependencies": { "micromark": "4.0.2", @@ -942,7 +829,8 @@ "micromark-extension-gfm-footnote": "2.1.0", "micromark-extension-gfm-table": "2.1.1", "micromark-extension-math": "3.1.0", - "micromark-util-types": "2.0.2" + "micromark-util-types": "2.0.2", + "string-width": "8.1.0" }, "engines": { "node": ">=20" @@ -952,22 +840,23 @@ } }, "node_modules/markdownlint-cli": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.45.0.tgz", - "integrity": "sha512-GiWr7GfJLVfcopL3t3pLumXCYs8sgWppjIA1F/Cc3zIMgD3tmkpyZ1xkm1Tej8mw53B93JsDjgA3KOftuYcfOw==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.47.0.tgz", + "integrity": "sha512-HOcxeKFAdDoldvoYDofd85vI8LgNWy8vmYpCwnlLV46PJcodmGzD7COSSBlhHwsfT4o9KrAStGodImVBus31Bg==", "license": "MIT", "dependencies": { - "commander": "~13.1.0", - "glob": "~11.0.2", - "ignore": "~7.0.4", - "js-yaml": "~4.1.0", + "commander": "~14.0.2", + "deep-extend": "~0.6.0", + "ignore": "~7.0.5", + "js-yaml": "~4.1.1", "jsonc-parser": "~3.3.1", "jsonpointer": "~5.0.1", "markdown-it": "~14.1.0", - "markdownlint": "~0.38.0", - "minimatch": "~10.0.1", + "markdownlint": "~0.40.0", + "minimatch": "~10.1.1", "run-con": "~1.3.2", - "smol-toml": "~1.3.4" + "smol-toml": "~1.5.2", + "tinyglobby": "~0.2.15" }, "bin": { "markdownlint": "markdownlint.js" @@ -976,15 +865,6 @@ "node": ">=20" } }, - "node_modules/markdownlint-cli/node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/markdownlint-micromark": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.2.tgz", @@ -1536,10 +1416,10 @@ "license": "MIT" }, "node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "license": "ISC", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/brace-expansion": "^5.0.0" }, @@ -1559,15 +1439,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1614,12 +1485,6 @@ "@octokit/openapi-types": "^25.1.0" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, "node_modules/parse-entities": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", @@ -1639,29 +1504,16 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/prettier": { @@ -1703,43 +1555,10 @@ "run-con": "cli.js" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/smol-toml": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.4.tgz", - "integrity": "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.5.2.tgz", + "integrity": "sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==", "license": "BSD-3-Clause", "engines": { "node": ">= 18" @@ -1749,68 +1568,25 @@ } }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -1822,28 +1598,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -1856,6 +1610,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/tmp": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", @@ -1916,112 +1686,6 @@ "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", "dev": true, "license": "ISC" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } } } } diff --git a/package.json b/package.json index 4b752861..1b50903c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "markdownlint-cli": "^0.45.0", + "markdownlint-cli": "^0.47.0", "markdownlint-rule-search-replace": "^1.2.0", "prettier": "^3.6.2" }, From 8139ca2f7e2bb803dbcedabc6affb9f0fe84f034 Mon Sep 17 00:00:00 2001 From: Gayathri Venkatraman Date: Fri, 2 Jan 2026 10:27:44 +0100 Subject: [PATCH 7/9] Change the module names in README.md --- courses/qa/README.md | 27 +++++++++++++++----------- courses/qa/basics-of-testing/README.md | 2 +- courses/qa/test-automation/README.md | 2 +- courses/qa/test-management/README.md | 2 +- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/courses/qa/README.md b/courses/qa/README.md index 3c943af0..6179bc04 100644 --- a/courses/qa/README.md +++ b/courses/qa/README.md @@ -4,13 +4,13 @@ Our QA Tech Track offers a comprehensive 15-week training program designed to eq ## Modules -| Name | Weeks | -| -------------------------------------------------------------- | ----- | -| [Basics Of Testing](/courses/qa/basics-of-testing/README.md) | 4 | -| [Test Automation](/courses/qa/test-automation/README.md) | 5 | -| [Test Management](/courses/qa/test-management/README.md) | 3 | -| [Final Demo Project](/courses/qa/final-demo-project/README.md) | 2 | -| [Career Training](/courses/qa/career-training/README.md) | 1 | +| Name | Weeks | +| -------------------------------------------------------------------------------------------- | ----- | +| [QA Foundations & Software Development Basics](/courses/qa/basics-of-testing/README.md) | 4 | +| [Web Testing, UI Automation & Modern QA Tools](/courses/qa/test-automation/README.md) | 5 | +| [Practical Test Planning, Agile & Project Management](/courses/qa/test-management/README.md) | 3 | +| [Final Demo Project](/courses/qa/final-demo-project/README.md) | 2 | +| [Career Training](/courses/qa/career-training/README.md) | 1 | Total: 15 weeks @@ -20,7 +20,7 @@ Total: 15 weeks -### [Basics of Testing](/courses/qa/basics-of-testing) +### [QA Foundations & Software Development Basics](/courses/qa/basics-of-testing) - [ ] Understand what QA is and why it matters - [ ] Learn SDLC models (Waterfall vs Agile) and QA’s role in them @@ -30,7 +30,7 @@ Total: 15 weeks - [ ] Learn test case design and techniques like Equivalence Partitioning & Boundary Value Analysis - [ ] Practice writing clear bug reports and effective test cases -### [Test Automation](/courses/qa/test-automation) +### [Web Testing, UI Automation & Modern QA Tools](/courses/qa/test-automation) - [ ] Understand web application architecture and common testing challenges. - [ ] Perform cross-browser and responsive design testing. @@ -40,7 +40,7 @@ Total: 15 weeks - [ ] Perform basic performance testing and interpret key metrics. - [ ] Apply best practices for maintaining automated test suites. -### [Test Management](/courses/qa/test-management) +### [Practical Test Planning, Agile & Project Management](/courses/qa/test-management) - [ ] Understand the purpose and structure of a Test Plan and Test Strategy. - [ ] Define scope, objectives, risks, and environments for testing. @@ -53,7 +53,12 @@ Total: 15 weeks ### [Final Demo Project](/courses/qa/final-demo-project) -- [ ] Todo +- [ ] Build the ability to define QA scope from requirements. +- [ ] Develop competency in creating and validating test strategies. +- [ ] Understand defect lifecycle and effective communication in JIRA. +- [ ] Gain hands-on experience with modern automation frameworks (Playwright, POM). +- [ ] Learn principles of accessibility and performance testing. +- [ ] Strengthen analytical skills for interpreting QA metrics and presenting insights. ### [Career Training](/courses/qa/career-training) diff --git a/courses/qa/basics-of-testing/README.md b/courses/qa/basics-of-testing/README.md index 6c098991..3329b083 100644 --- a/courses/qa/basics-of-testing/README.md +++ b/courses/qa/basics-of-testing/README.md @@ -1,4 +1,4 @@ -# BASICS OF TESTING +# QA Foundations & Software Development Basics Here you can find course content and the assignments for the Basics of Testing module. This module basically focus on Establishing the core QA mindset and foundational concepts. diff --git a/courses/qa/test-automation/README.md b/courses/qa/test-automation/README.md index 350bc9a8..989c539b 100644 --- a/courses/qa/test-automation/README.md +++ b/courses/qa/test-automation/README.md @@ -1,4 +1,4 @@ -# TEST AUTOMATION +# Web Testing, UI Automation & Modern QA Tools Here you can find course content and the assignments for the Test automation module. This module basically focus on web app testing, modern UI automation, and new automation focuses (Accessibility & Performance). diff --git a/courses/qa/test-management/README.md b/courses/qa/test-management/README.md index b111311d..15d95809 100644 --- a/courses/qa/test-management/README.md +++ b/courses/qa/test-management/README.md @@ -1,4 +1,4 @@ -# TEST MANAGEMENT +# Practical Test Planning, Agile & Project Management Here you can find course content and assignments for the Practical Test Planning, Agile & Project Management module. This module focuses on applying QA skills in an Agile environment, emphasizing effective planning, documentation, and communication for regular QA work. From 7536340553813c368fd292e2b75f69c0ffc96cc4 Mon Sep 17 00:00:00 2001 From: Gayathri Venkatraman Date: Fri, 2 Jan 2026 10:41:49 +0100 Subject: [PATCH 8/9] Add session topics on each week --- .vscode/settings.json | 5 ++++- courses/qa/basics-of-testing/week1/README.md | 4 +++- courses/qa/basics-of-testing/week2/README.md | 4 +++- courses/qa/basics-of-testing/week3/README.md | 4 +++- courses/qa/basics-of-testing/week4/README.md | 4 +++- courses/qa/test-automation/week1/README.md | 4 +++- courses/qa/test-automation/week2/README.md | 4 +++- courses/qa/test-automation/week3/README.md | 4 +++- courses/qa/test-automation/week4/README.md | 4 +++- courses/qa/test-automation/week5/README.md | 4 +++- courses/qa/test-management/week1/README.md | 4 +++- courses/qa/test-management/week2/README.md | 4 +++- courses/qa/test-management/week3/README.md | 4 +++- 13 files changed, 40 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 795be359..a06b59f5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,6 @@ { - "cSpell.words": ["SDLC"] + "cSpell.words": [ + "SDLC", + "WCAG" + ] } diff --git a/courses/qa/basics-of-testing/week1/README.md b/courses/qa/basics-of-testing/week1/README.md index d23b5b7d..b8acf66c 100644 --- a/courses/qa/basics-of-testing/week1/README.md +++ b/courses/qa/basics-of-testing/week1/README.md @@ -1,4 +1,6 @@ -# BASICS OF TESTING, Week 1 +# QA Foundations & Software Development Basics, Week 1 + +## Introduction to QA and Software Development In this session, trainees will be introduced to Quality Assurance (QA) and its importance in software development. We will explore the Software Development Life Cycle (SDLC), QA’s role in different models, and essential QA terminology. This week also focuses on building the QA mindset and understanding soft skills required for effective testing. diff --git a/courses/qa/basics-of-testing/week2/README.md b/courses/qa/basics-of-testing/week2/README.md index 7a70fd29..c6b661c8 100644 --- a/courses/qa/basics-of-testing/week2/README.md +++ b/courses/qa/basics-of-testing/week2/README.md @@ -1,4 +1,6 @@ -# BASICS OF TESTING, Week 2 +# QA Foundations & Software Development Basics, Week 2 + +## Testing Fundamentals In this session, trainees will learn the core principles of software testing and its role in ensuring product quality. We will explore different types of testing, levels of testing, and approaches to executing tests effectively. This week emphasizes understanding functional vs non-functional testing, manual vs automated testing, and how to analyze requirements to define test scenarios. diff --git a/courses/qa/basics-of-testing/week3/README.md b/courses/qa/basics-of-testing/week3/README.md index bd38d7f9..beae60c2 100644 --- a/courses/qa/basics-of-testing/week3/README.md +++ b/courses/qa/basics-of-testing/week3/README.md @@ -1,4 +1,6 @@ -# BASICS OF TESTING, Week 3 +# QA Foundations & Software Development Basics, Week 3 + +## Bug Life Cycle & Defect Reporting In this session, trainees will learn how defects are managed throughout their life cycle and how to report them effectively. We will cover the difference between a defect and a bug, explore defect statuses, and understand severity vs priority. This week also introduces best practices for writing clear, reproducible bug reports and provides hands-on experience with JIRA. diff --git a/courses/qa/basics-of-testing/week4/README.md b/courses/qa/basics-of-testing/week4/README.md index 344e08b8..77ccbac5 100644 --- a/courses/qa/basics-of-testing/week4/README.md +++ b/courses/qa/basics-of-testing/week4/README.md @@ -1,4 +1,6 @@ -# BASICS OF TESTING, Week 4 +# QA Foundations & Software Development Basics, Week 4 + +## Test Design Basics In this session, trainees will learn how to design effective test cases and manage test data. We will cover what a test case is, its structure, and examples of good vs bad test cases. This week also introduces test design techniques such as Equivalence Partitioning and Boundary Value Analysis, which help create efficient and comprehensive test coverage. diff --git a/courses/qa/test-automation/week1/README.md b/courses/qa/test-automation/week1/README.md index e4f3dcb5..0941721f 100644 --- a/courses/qa/test-automation/week1/README.md +++ b/courses/qa/test-automation/week1/README.md @@ -1,4 +1,6 @@ -# TEST AUTOMATION, Week 1 +# Web Testing, UI Automation & Modern QA Tools, Week 1 + +## Web Testing with DevTools In this session, trainees will learn the fundamentals of web testing using browser developer tools. We will cover client–server architecture, the structure of web pages (DOM, HTML, CSS, and basic JavaScript), and how to use DevTools effectively for testing. This week focuses on identifying common front-end issues and analyzing network requests. diff --git a/courses/qa/test-automation/week2/README.md b/courses/qa/test-automation/week2/README.md index a7a71b1c..af453d57 100644 --- a/courses/qa/test-automation/week2/README.md +++ b/courses/qa/test-automation/week2/README.md @@ -1,4 +1,6 @@ -# TEST AUTOMATION, Week 2 +# Web Testing, UI Automation & Modern QA Tools, Week 2 + +## Introduction to Test Automation with Playwright (TypeScript) In this session, trainees will learn the fundamentals of UI test automation using Playwright with TypeScript. We will cover why automation is important, how to set up the Playwright and Node.js environment, and basic TypeScript concepts for testers. This week focuses on writing and running your first Playwright test, understanding selectors and assertions, and executing tests in headed and headless modes. diff --git a/courses/qa/test-automation/week3/README.md b/courses/qa/test-automation/week3/README.md index 2eff80a6..19ec19c7 100644 --- a/courses/qa/test-automation/week3/README.md +++ b/courses/qa/test-automation/week3/README.md @@ -1,4 +1,6 @@ -# TEST AUTOMATION, Week 3 +# Web Testing, UI Automation & Modern QA Tools, Week 3 + +## Building Automation Structure & Page Object Model (POM) In this session, trainees will learn how to organize test automation projects for scalability and maintainability. We will cover test suite structure, reusing locators and actions, and introduce the Page Object Model (POM) design pattern. This week also focuses on creating Page Object classes in Playwright, understanding the benefits of modular test design, and an introduction to test reporting. diff --git a/courses/qa/test-automation/week4/README.md b/courses/qa/test-automation/week4/README.md index fe25d572..b3042f67 100644 --- a/courses/qa/test-automation/week4/README.md +++ b/courses/qa/test-automation/week4/README.md @@ -1,4 +1,6 @@ -# TEST AUTOMATION, Week 4 +# Web Testing, UI Automation & Modern QA Tools, Week 4 + +## Accessibility Testing Fundamentals & Playwright In this session, trainees will learn the importance of web accessibility and how to test it both manually and through automation. We will cover WCAG standards, perform basic manual accessibility checks (keyboard navigation and screen reader basics), and automate accessibility testing using Playwright with Axe-core. This week also focuses on analyzing and reporting accessibility defects effectively. diff --git a/courses/qa/test-automation/week5/README.md b/courses/qa/test-automation/week5/README.md index 9ee63cea..47a029a1 100644 --- a/courses/qa/test-automation/week5/README.md +++ b/courses/qa/test-automation/week5/README.md @@ -1,4 +1,6 @@ -# TEST AUTOMATION, Week 5 +# Web Testing, UI Automation & Modern QA Tools, Week 5 + +## Performance & Modern Tooling (Lighthouse) In this session, trainees will learn the fundamentals of front-end performance testing and how modern tools like Google Lighthouse help QA teams ensure quality. We will cover key performance metrics, run Lighthouse audits, interpret reports, and explore automation options using Lighthouse CLI or Node module. diff --git a/courses/qa/test-management/week1/README.md b/courses/qa/test-management/week1/README.md index 850539e8..a377f897 100644 --- a/courses/qa/test-management/week1/README.md +++ b/courses/qa/test-management/week1/README.md @@ -1,4 +1,6 @@ -# TEST MANAGEMENT, Week 1 +# Practical Test Planning, Agile & Project Management, Week 1 + +## Test Planning, Strategy & Scope In this session, trainees will learn how to create effective test plans and strategies for real-world projects. We will cover the purpose of a Test Plan and Test Strategy, key sections such as scope, objectives, risks, and test environments, and practical test case management techniques. This week also introduces requirement traceability to ensure complete coverage from requirements to test cases and defects. diff --git a/courses/qa/test-management/week2/README.md b/courses/qa/test-management/week2/README.md index 213c20d5..7fd52fcc 100644 --- a/courses/qa/test-management/week2/README.md +++ b/courses/qa/test-management/week2/README.md @@ -1,4 +1,6 @@ -# TEST MANAGEMENT, Week 2 +# Practical Test Planning, Agile & Project Management, Week 2 + +## Agile Testing & Working with User Stories In this session, trainees will learn how QA integrates into Agile development processes. We will cover Agile principles, Scrum roles, artifacts, and ceremonies, and explore QA’s responsibilities during sprint planning and estimation. This week emphasizes analyzing User Stories and Acceptance Criteria (AC) to create effective test cases and maintaining continuous testing and feedback throughout the sprint. diff --git a/courses/qa/test-management/week3/README.md b/courses/qa/test-management/week3/README.md index ad83f408..99ee086b 100644 --- a/courses/qa/test-management/week3/README.md +++ b/courses/qa/test-management/week3/README.md @@ -1,4 +1,6 @@ -# TEST MANAGEMENT, Week 3 +# Practical Test Planning, Agile & Project Management, Week 3 + +## QA Metrics, Reporting & Demo Project Preparation In this session, trainees will learn how to measure QA effectiveness using key metrics and communicate testing progress clearly to stakeholders. We will cover common QA metrics for a feature, reporting best practices, and review all manual and automation topics covered so far. This week also includes planning for the final demo project, defining scope, and organizing teams. From a3e6e48ced03cb6e4eb7cf089d54ec0659075158 Mon Sep 17 00:00:00 2001 From: Gayathri Venkatraman Date: Fri, 2 Jan 2026 10:43:53 +0100 Subject: [PATCH 9/9] Lint fix --- .vscode/settings.json | 5 +---- courses/qa/README.md | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a06b59f5..a706b3ae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,3 @@ { - "cSpell.words": [ - "SDLC", - "WCAG" - ] + "cSpell.words": ["SDLC", "WCAG"] } diff --git a/courses/qa/README.md b/courses/qa/README.md index 6179bc04..101a1f5f 100644 --- a/courses/qa/README.md +++ b/courses/qa/README.md @@ -7,7 +7,7 @@ Our QA Tech Track offers a comprehensive 15-week training program designed to eq | Name | Weeks | | -------------------------------------------------------------------------------------------- | ----- | | [QA Foundations & Software Development Basics](/courses/qa/basics-of-testing/README.md) | 4 | -| [Web Testing, UI Automation & Modern QA Tools](/courses/qa/test-automation/README.md) | 5 | +| [Web Testing, UI Automation & Modern QA Tools](/courses/qa/test-automation/README.md) | 5 | | [Practical Test Planning, Agile & Project Management](/courses/qa/test-management/README.md) | 3 | | [Final Demo Project](/courses/qa/final-demo-project/README.md) | 2 | | [Career Training](/courses/qa/career-training/README.md) | 1 |