@relipa/ai-flow-kit 0.1.4-beta.0 → 0.1.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -136
- package/bin/aiflow.js +0 -0
- package/bin/ak.js +0 -0
- package/custom/harness/playwright/.env.example +0 -0
- package/custom/harness/playwright/playwright.config.ts +0 -0
- package/custom/harness/playwright/tests/e2e/auth.setup.ts +0 -0
- package/custom/harness/playwright/tests/e2e/fixtures/test.ts +0 -0
- package/custom/harness/playwright/tests/e2e/pages/BasePage.ts +0 -0
- package/custom/harness/playwright/tests/e2e/support/auth.ts +0 -0
- package/custom/mcp-presets/README.md +0 -0
- package/custom/mcp-presets/backlog.json +0 -0
- package/custom/mcp-presets/figma-desktop.json +0 -0
- package/custom/mcp-presets/figma.json +0 -0
- package/custom/mcp-presets/gitnexus.json +0 -0
- package/custom/mcp-presets/google-sheets.json +0 -0
- package/custom/mcp-presets/jira.json +0 -0
- package/custom/mcp-presets/playwright.json +0 -0
- package/custom/prompts/bug-fix.md +0 -0
- package/custom/prompts/feature.md +0 -0
- package/custom/prompts/investigation.md +0 -0
- package/custom/rules/code-style.md +0 -0
- package/custom/rules/java/code-style.md +0 -0
- package/custom/rules/java/naming.md +0 -0
- package/custom/rules/java/review-checklist.md +0 -0
- package/custom/rules/java/spring-boot-examples.md +0 -0
- package/custom/rules/javascript/code-style.md +0 -0
- package/custom/rules/javascript/naming.md +0 -0
- package/custom/rules/ml-conventions.md +0 -0
- package/custom/rules/ml-review-checklist.md +0 -0
- package/custom/rules/naming.md +0 -0
- package/custom/rules/php/code-style.md +0 -0
- package/custom/rules/php/naming.md +0 -0
- package/custom/rules/project-conventions.md +0 -0
- package/custom/rules/review-checklist.md +0 -0
- package/custom/rules/test-patterns.md +0 -0
- package/custom/skills/automation-testing/SKILL.md +0 -0
- package/custom/skills/automation-testing/templates/BasePage.ts +0 -0
- package/custom/skills/automation-testing/templates/PageObject.example.ts +0 -0
- package/custom/skills/automation-testing/templates/playwright.config.ts +0 -0
- package/custom/skills/automation-testing/templates/spec.example.ts +0 -0
- package/custom/skills/ba-skills/{skill-ba-xay-dung-business-rules-v1.md → skill-ba-build-business-rules-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-template-phan-tich-ban-dau-v1.md → skill-ba-initial-analysis-template-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-phan-tich-ban-dau-v1.md → skill-ba-initial-analysis-v1.md} +2 -2
- package/custom/skills/ba-skills/{skill-ba-ve-luong-mermaid-v1.md → skill-ba-mermaid-flowchart-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-qa-template-v1.md → skill-ba-qna-template-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-qa-v1.md → skill-ba-qna-v1.md} +2 -2
- package/custom/skills/ba-skills/{skill-ba-template-uc-v1.md → skill-ba-uc-template-v1.md} +0 -0
- package/custom/skills/ba-skills/{skill-ba-prototype-v1.md → skill-ba-ui-prototype-v1.md} +2 -2
- package/custom/skills/ba-skills/{skill-ba-viet-spec-uc-v1.md → skill-ba-write-uc-spec-v1.md} +4 -4
- package/custom/skills/coverage-check/SKILL.md +0 -0
- package/custom/skills/deploy-model/SKILL.md +0 -0
- package/custom/skills/design-experiment/SKILL.md +0 -0
- package/custom/skills/evaluate-model/SKILL.md +0 -0
- package/custom/skills/evidence-aggregation/SKILL.md +0 -0
- package/custom/skills/execute-flow/SKILL.md +5 -34
- package/custom/skills/execute-flow/templates/playwright.config.ts +0 -0
- package/custom/skills/explore-data/SKILL.md +0 -0
- package/custom/skills/figma-to-component/SKILL.md +0 -0
- package/custom/skills/frame-ml-problem/SKILL.md +0 -0
- package/custom/skills/gate-review/SKILL.md +29 -105
- package/custom/skills/generate-spec/SKILL.md +0 -0
- package/custom/skills/generate-test-report/SKILL.md +0 -0
- package/custom/skills/generate-test-report/templates/test-report.md +0 -0
- package/custom/skills/generate-testcase/SKILL.md +0 -8
- package/custom/skills/generate-testcase/templates/testcase.md +50 -59
- package/custom/skills/impact-analysis/SKILL.md +0 -0
- package/custom/skills/improve-algorithm/SKILL.md +0 -0
- package/custom/skills/investigate-bug/SKILL.md +0 -0
- package/custom/skills/log-bug/SKILL.md +0 -0
- package/custom/skills/pr-impact-analysis/SKILL.md +0 -0
- package/custom/skills/report-customer/SKILL.md +0 -0
- package/custom/skills/retest-orchestration/SKILL.md +0 -0
- package/custom/skills/review-plan/SKILL.md +0 -0
- package/custom/skills/script-sync/SKILL.md +0 -0
- package/custom/skills/test-analysis/SKILL.md +0 -4
- package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +0 -0
- package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +0 -0
- package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +0 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +0 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +0 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +0 -0
- package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +0 -0
- package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +0 -0
- package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +0 -0
- package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +0 -0
- package/custom/skills/test-skills/rules/directory-and-naming-convention.md +158 -0
- package/custom/skills/test-skills/rules/{QA_Writing_Standards.md → qa-writing-standards.md} +0 -0
- package/custom/skills/test-skills/template/{template_testcase.md → testcase-template.md} +50 -59
- package/custom/skills/train-model/SKILL.md +0 -0
- package/custom/templates/laravel.md +0 -0
- package/custom/templates/nestjs.md +0 -0
- package/custom/templates/nextjs.md +0 -0
- package/custom/templates/nodejs-express.md +0 -0
- package/custom/templates/php-plain.md +0 -0
- package/custom/templates/php.md +0 -0
- package/custom/templates/python-django.md +0 -0
- package/custom/templates/python-fastapi.md +0 -0
- package/custom/templates/python-ml.md +0 -0
- package/custom/templates/python.md +0 -0
- package/custom/templates/reactjs.md +0 -0
- package/custom/templates/shared/coding-workflow.md +15 -0
- package/custom/templates/shared/create-spec-workflow.md +80 -95
- package/custom/templates/shared/create-testcase-workflow.md +65 -75
- package/custom/templates/shared/gate-workflow.md +3 -3
- package/custom/templates/shared/ml-gate-workflow.md +0 -0
- package/custom/templates/spring-boot.md +0 -0
- package/custom/templates/tools/claude.md +0 -0
- package/custom/templates/tools/copilot.md +0 -0
- package/custom/templates/tools/cursor.md +0 -0
- package/custom/templates/tools/gemini.md +0 -0
- package/custom/templates/tools/generic.md +0 -0
- package/custom/templates/vue-nuxt.md +0 -0
- package/docs/common/AIFLOW.md +0 -0
- package/docs/common/CHANGELOG.md +75 -9
- package/docs/common/QUICK_START.md +0 -0
- package/docs/common/ai-integration.md +0 -0
- package/docs/common/cli-reference.md +0 -0
- package/docs/common/configuration.md +0 -0
- package/docs/common/getting-started.md +0 -0
- package/docs/common/troubleshooting.md +0 -0
- package/docs/common/workflows/bug-fix.md +0 -0
- package/docs/common/workflows/feature.md +0 -0
- package/docs/common/workflows/figma.md +0 -0
- package/docs/common/workflows/impact-analysis.md +0 -0
- package/docs/common/workflows/investigation.md +0 -0
- package/docs/common/workflows/refactor.md +0 -0
- package/docs/project/ARCHITECTURE.md +0 -0
- package/index.js +0 -0
- package/package.json +1 -1
- package/scripts/checkpoint.js +0 -0
- package/scripts/config.js +0 -0
- package/scripts/context.js +0 -0
- package/scripts/create-score-excel.js +41 -47
- package/scripts/detect.js +0 -0
- package/scripts/doctor.js +0 -0
- package/scripts/gitnexus-worker.js +0 -0
- package/scripts/guide.js +0 -0
- package/scripts/hooks/block-git-write.js +0 -0
- package/scripts/hooks/session-start.js +1 -0
- package/scripts/hooks/session-stop.js +0 -0
- package/scripts/init.js +5 -0
- package/scripts/memory.js +0 -0
- package/scripts/prompt.js +0 -0
- package/scripts/remove.js +0 -0
- package/scripts/review.js +83 -46
- package/scripts/scaffold-playwright.js +0 -0
- package/scripts/task.js +0 -0
- package/scripts/telemetry/cli.js +0 -0
- package/scripts/telemetry/config.js +0 -0
- package/scripts/telemetry/crypto.js +0 -0
- package/scripts/telemetry/flush.js +0 -0
- package/scripts/telemetry/record.js +0 -0
- package/scripts/update.js +0 -0
- package/scripts/use.js +3 -2
- package/scripts/validate.js +0 -0
- package/upstream/.claude-plugin/marketplace.json +0 -0
- package/upstream/.claude-plugin/plugin.json +0 -0
- package/upstream/.codex/INSTALL.md +0 -0
- package/upstream/.cursor-plugin/plugin.json +0 -0
- package/upstream/.gitattributes +0 -0
- package/upstream/.github/FUNDING.yml +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/config.yml +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- package/upstream/.github/ISSUE_TEMPLATE/platform_support.md +0 -0
- package/upstream/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- package/upstream/.opencode/INSTALL.md +0 -0
- package/upstream/.opencode/plugins/superpowers.js +0 -0
- package/upstream/.version-bump.json +0 -0
- package/upstream/AGENTS.md +0 -0
- package/upstream/CHANGELOG.md +0 -0
- package/upstream/CLAUDE.md +0 -0
- package/upstream/CODE_OF_CONDUCT.md +0 -0
- package/upstream/GEMINI.md +0 -0
- package/upstream/LICENSE +0 -0
- package/upstream/README.md +0 -0
- package/upstream/RELEASE-NOTES.md +0 -0
- package/upstream/agents/code-reviewer.md +0 -0
- package/upstream/commands/brainstorm.md +0 -0
- package/upstream/commands/execute-plan.md +0 -0
- package/upstream/commands/write-plan.md +0 -0
- package/upstream/docs/README.codex.md +0 -0
- package/upstream/docs/README.opencode.md +0 -0
- package/upstream/docs/plans/2025-11-22-opencode-support-design.md +0 -0
- package/upstream/docs/plans/2025-11-22-opencode-support-implementation.md +0 -0
- package/upstream/docs/plans/2025-11-28-skills-improvements-from-user-feedback.md +0 -0
- package/upstream/docs/plans/2026-01-17-visual-brainstorming.md +0 -0
- package/upstream/docs/superpowers/plans/2026-01-22-document-review-system.md +0 -0
- package/upstream/docs/superpowers/plans/2026-02-19-visual-brainstorming-refactor.md +0 -0
- package/upstream/docs/superpowers/plans/2026-03-11-zero-dep-brainstorm-server.md +0 -0
- package/upstream/docs/superpowers/plans/2026-03-23-codex-app-compatibility.md +0 -0
- package/upstream/docs/superpowers/specs/2026-01-22-document-review-system-design.md +0 -0
- package/upstream/docs/superpowers/specs/2026-02-19-visual-brainstorming-refactor-design.md +0 -0
- package/upstream/docs/superpowers/specs/2026-03-11-zero-dep-brainstorm-server-design.md +0 -0
- package/upstream/docs/superpowers/specs/2026-03-23-codex-app-compatibility-design.md +0 -0
- package/upstream/docs/testing.md +0 -0
- package/upstream/docs/windows/polyglot-hooks.md +0 -0
- package/upstream/gemini-extension.json +0 -0
- package/upstream/hooks/hooks-cursor.json +0 -0
- package/upstream/hooks/hooks.json +0 -0
- package/upstream/hooks/run-hook.cmd +0 -0
- package/upstream/hooks/session-start +0 -0
- package/upstream/package.json +0 -0
- package/upstream/scripts/bump-version.sh +0 -0
- package/upstream/skills/brainstorming/SKILL.md +0 -0
- package/upstream/skills/brainstorming/scripts/frame-template.html +0 -0
- package/upstream/skills/brainstorming/scripts/helper.js +0 -0
- package/upstream/skills/brainstorming/scripts/server.cjs +0 -0
- package/upstream/skills/brainstorming/scripts/start-server.sh +0 -0
- package/upstream/skills/brainstorming/scripts/stop-server.sh +0 -0
- package/upstream/skills/brainstorming/spec-document-reviewer-prompt.md +0 -0
- package/upstream/skills/brainstorming/visual-companion.md +0 -0
- package/upstream/skills/dispatching-parallel-agents/SKILL.md +0 -0
- package/upstream/skills/executing-plans/SKILL.md +0 -0
- package/upstream/skills/finishing-a-development-branch/SKILL.md +0 -0
- package/upstream/skills/receiving-code-review/SKILL.md +0 -0
- package/upstream/skills/requesting-code-review/SKILL.md +0 -0
- package/upstream/skills/requesting-code-review/code-reviewer.md +0 -0
- package/upstream/skills/subagent-driven-development/SKILL.md +0 -0
- package/upstream/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -0
- package/upstream/skills/subagent-driven-development/implementer-prompt.md +0 -0
- package/upstream/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -0
- package/upstream/skills/systematic-debugging/CREATION-LOG.md +0 -0
- package/upstream/skills/systematic-debugging/SKILL.md +0 -0
- package/upstream/skills/systematic-debugging/condition-based-waiting-example.ts +0 -0
- package/upstream/skills/systematic-debugging/condition-based-waiting.md +0 -0
- package/upstream/skills/systematic-debugging/defense-in-depth.md +0 -0
- package/upstream/skills/systematic-debugging/find-polluter.sh +0 -0
- package/upstream/skills/systematic-debugging/root-cause-tracing.md +0 -0
- package/upstream/skills/systematic-debugging/test-academic.md +0 -0
- package/upstream/skills/systematic-debugging/test-pressure-1.md +0 -0
- package/upstream/skills/systematic-debugging/test-pressure-2.md +0 -0
- package/upstream/skills/systematic-debugging/test-pressure-3.md +0 -0
- package/upstream/skills/tdd-lean/SKILL.md +0 -0
- package/upstream/skills/test-driven-development/SKILL.md +0 -0
- package/upstream/skills/test-driven-development/testing-anti-patterns.md +0 -0
- package/upstream/skills/using-git-worktrees/SKILL.md +0 -0
- package/upstream/skills/using-superpowers/SKILL.md +0 -0
- package/upstream/skills/using-superpowers/references/codex-tools.md +0 -0
- package/upstream/skills/using-superpowers/references/copilot-tools.md +0 -0
- package/upstream/skills/using-superpowers/references/gemini-tools.md +0 -0
- package/upstream/skills/verification-before-completion/SKILL.md +0 -0
- package/upstream/skills/writing-plans/SKILL.md +0 -0
- package/upstream/skills/writing-plans/plan-document-reviewer-prompt.md +0 -0
- package/upstream/skills/writing-skills/SKILL.md +0 -0
- package/upstream/skills/writing-skills/anthropic-best-practices.md +0 -0
- package/upstream/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -0
- package/upstream/skills/writing-skills/graphviz-conventions.dot +0 -0
- package/upstream/skills/writing-skills/persuasion-principles.md +0 -0
- package/upstream/skills/writing-skills/render-graphs.js +0 -0
- package/upstream/skills/writing-skills/testing-skills-with-subagents.md +0 -0
- package/upstream/tests/brainstorm-server/package-lock.json +0 -0
- package/upstream/tests/brainstorm-server/package.json +0 -0
- package/upstream/tests/brainstorm-server/server.test.js +0 -0
- package/upstream/tests/brainstorm-server/windows-lifecycle.test.sh +0 -0
- package/upstream/tests/brainstorm-server/ws-protocol.test.js +0 -0
- package/upstream/tests/claude-code/README.md +0 -0
- package/upstream/tests/claude-code/analyze-token-usage.py +0 -0
- package/upstream/tests/claude-code/run-skill-tests.sh +0 -0
- package/upstream/tests/claude-code/test-document-review-system.sh +0 -0
- package/upstream/tests/claude-code/test-helpers.sh +0 -0
- package/upstream/tests/claude-code/test-subagent-driven-development-integration.sh +0 -0
- package/upstream/tests/claude-code/test-subagent-driven-development.sh +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/action-oriented.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/after-planning-flow.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/claude-suggested-it.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/i-know-what-sdd-means.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/mid-conversation-execute-plan.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/please-use-brainstorming.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/skip-formalities.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/subagent-driven-development-please.txt +0 -0
- package/upstream/tests/explicit-skill-requests/prompts/use-systematic-debugging.txt +0 -0
- package/upstream/tests/explicit-skill-requests/run-all.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-claude-describes-sdd.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-extended-multiturn-test.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-haiku-test.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-multiturn-test.sh +0 -0
- package/upstream/tests/explicit-skill-requests/run-test.sh +0 -0
- package/upstream/tests/opencode/run-tests.sh +0 -0
- package/upstream/tests/opencode/setup.sh +0 -0
- package/upstream/tests/opencode/test-plugin-loading.sh +0 -0
- package/upstream/tests/opencode/test-priority.sh +0 -0
- package/upstream/tests/opencode/test-tools.sh +0 -0
- package/upstream/tests/skill-triggering/prompts/dispatching-parallel-agents.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/executing-plans.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/requesting-code-review.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/systematic-debugging.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/test-driven-development.txt +0 -0
- package/upstream/tests/skill-triggering/prompts/writing-plans.txt +0 -0
- package/upstream/tests/skill-triggering/run-all.sh +0 -0
- package/upstream/tests/skill-triggering/run-test.sh +0 -0
- package/upstream/tests/subagent-driven-dev/go-fractals/design.md +0 -0
- package/upstream/tests/subagent-driven-dev/go-fractals/plan.md +0 -0
- package/upstream/tests/subagent-driven-dev/go-fractals/scaffold.sh +0 -0
- package/upstream/tests/subagent-driven-dev/run-test.sh +0 -0
- package/upstream/tests/subagent-driven-dev/svelte-todo/design.md +0 -0
- package/upstream/tests/subagent-driven-dev/svelte-todo/plan.md +0 -0
- package/upstream/tests/subagent-driven-dev/svelte-todo/scaffold.sh +0 -0
- package/custom/skills/test-skills/rules/Directory_and_Naming_Convention.md +0 -257
|
@@ -11,78 +11,69 @@
|
|
|
11
11
|
| **Người kiểm duyệt (Reviewer)** | |
|
|
12
12
|
| **Ngày kiểm duyệt (Review Date)** | |
|
|
13
13
|
|
|
14
|
-
## 2.
|
|
14
|
+
## 2. Danh sách Test Cases Chi Tiết
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|:---|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
18
|
-
| Round 1 | 0 | 0 | 0 | 0 | 0 | 0% |
|
|
19
|
-
| Round 2 | 0 | 0 | 0 | 0 | 0 | 0% |
|
|
16
|
+
### 2.1. Kiểm thử Truy cập & Phân quyền (Access & Authorization)
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
19
|
+
|---|---|---|---|---|---|---|---|---|
|
|
20
|
+
| [ID]_001 | Truy cập trực tiếp qua URL khi chưa đăng nhập | High | Người dùng chưa đăng nhập hệ thống | 1. Nhập URL màn hình vào thanh địa chỉ trình duyệt.<br>2. Nhấn Enter. | URL của màn hình | Hệ thống không cho phép truy cập.<br>Tự động chuyển hướng về trang đăng nhập (Login). | | |
|
|
21
|
+
| [ID]_002 | Truy cập trực tiếp qua URL khi đã đăng nhập | Medium | Người dùng đã đăng nhập thành công | 1. Nhập URL màn hình vào thanh địa chỉ trình duyệt.<br>2. Nhấn Enter. | URL của màn hình | Hệ thống cho phép truy cập.<br>Hiển thị đúng giao diện màn hình. | | |
|
|
22
|
+
| [ID]_003 | Truy cập qua button/menu điều hướng | Low | Người dùng đang ở màn hình danh sách | 1. Click vào nút "Thêm mới" hoặc menu tương ứng. | - | Hệ thống mở màn hình đăng ký/thực hiện tương ứng thành công. | | |
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
### 2.2. Kiểm thử Giao diện Người dùng (UI/UX)
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
27
|
+
|---|---|---|---|---|---|---|---|---|
|
|
28
|
+
| [ID]_004 | Kiểm tra hiển thị giao diện tổng quan | Low | Màn hình hiển thị bình thường | 1. Quan sát giao diện màn hình.<br>2. Kiểm tra layout, màu sắc, font chữ, khoảng cách giữa các trường. | - | 1. Layout cân đối, font chữ và cỡ chữ đồng nhất.<br>2. Các trường bắt buộc nhập có dấu sao đỏ (*).<br>3. Không có lỗi chính tả.<br>4. Định dạng placeholder hiển thị chính xác theo thiết kế. | | |
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
29
|
-
| [ID]_001 | Truy cập trực tiếp qua URL khi chưa đăng nhập | High | Người dùng chưa đăng nhập hệ thống | 1. Nhập URL màn hình vào thanh địa chỉ trình duyệt.<br>2. Nhấn Enter. | URL của màn hình | Hệ thống không cho phép truy cập.<br>Tự động chuyển hướng về trang đăng nhập (Login). | | | | | | | | |
|
|
30
|
-
| [ID]_002 | Truy cập trực tiếp qua URL khi đã đăng nhập | Medium | Người dùng đã đăng nhập thành công | 1. Nhập URL màn hình vào thanh địa chỉ trình duyệt.<br>2. Nhấn Enter. | URL của màn hình | Hệ thống cho phép truy cập.<br>Hiển thị đúng giao diện màn hình. | | | | | | | | |
|
|
31
|
-
| [ID]_003 | Truy cập qua button/menu điều hướng | Low | Người dùng đang ở màn hình danh sách | 1. Click vào nút "Thêm mới" hoặc menu tương ứng. | - | Hệ thống mở màn hình đăng ký/thực hiện tương ứng thành công. | | | | | | | | |
|
|
32
|
-
|
|
33
|
-
### 3.2. Kiểm thử Giao diện Người dùng (UI/UX)
|
|
34
|
-
|
|
35
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
|
|
36
|
-
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
37
|
-
| [ID]_004 | Kiểm tra hiển thị giao diện tổng quan | Low | Màn hình hiển thị bình thường | 1. Quan sát giao diện màn hình.<br>2. Kiểm tra layout, màu sắc, font chữ, khoảng cách giữa các trường. | - | 1. Layout cân đối, font chữ và cỡ chữ đồng nhất.<br>2. Các trường bắt buộc nhập có dấu sao đỏ (*).<br>3. Không có lỗi chính tả.<br>4. Định dạng placeholder hiển thị chính xác theo thiết kế. | | | | | | | | |
|
|
38
|
-
|
|
39
|
-
### 3.3. Kiểm thử Validation các trường nhập liệu (Input Validation)
|
|
30
|
+
### 2.3. Kiểm thử Validation các trường nhập liệu (Input Validation)
|
|
40
31
|
|
|
41
32
|
*(Tạo riêng từng bảng hoặc nhóm theo từng Field để dễ theo dõi)*
|
|
42
33
|
|
|
43
34
|
#### * Đối với Trường [Tên Trường] — Text
|
|
44
35
|
|
|
45
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
46
|
-
|
|
47
|
-
| [ID]_0xx | Kiểm tra giá trị mặc định | Low | Đã truy cập màn hình | 1. Quan sát trường [Tên Trường]. | - | Giá trị mặc định là trống (blank).<br>Hiển thị đúng Placeholder theo thiết kế. | | |
|
|
48
|
-
| [ID]_0xx | Kiểm tra trường bắt buộc nhập để trống | High | Đã truy cập màn hình | 1. Để trống trường [Tên Trường].<br>2. Bấm nút thực hiện (Đăng ký/Lưu). | Empty | 1. Hiển thị thông báo lỗi: "Hãy nhập [Tên Trường]".<br>2. Field bị highlight viền đỏ. | | |
|
|
49
|
-
| [ID]_0xx | Kiểm tra nhập ký tự khoảng trắng (Spaces) | Medium | Đã truy cập màn hình | 1. Nhập toàn khoảng trắng vào trường.<br>2. Bấm nút thực hiện hoặc focus out. | `" "` | Hệ thống xem như để trống.<br>Báo lỗi bắt buộc nhập (nếu là trường Required) hoặc tự động trim khoảng trắng. | | |
|
|
50
|
-
| [ID]_0xx | Kiểm tra nhập khoảng trắng ở đầu/cuối chuỗi | Low | Đã truy cập màn hình | 1. Nhập chuỗi có khoảng trắng ở đầu/cuối.<br>2. Bấm nút thực hiện (Đăng ký/Lưu). | `" data_test "` | Hệ thống tự động cắt bỏ (trim) khoảng trắng ở đầu và cuối chuỗi trước khi lưu vào DB. | | |
|
|
51
|
-
| [ID]_0xx | Kiểm tra nhập độ dài tối thiểu/tối đa (Boundary Value) | Medium | Đã truy cập màn hình, biết Maxlength = N | 1. Nhập chuỗi độ dài N-1 ký tự.<br>2. Nhập chuỗi độ dài N ký tự.<br>3. Nhập chuỗi độ dài > N ký tự. | Chuỗi test tương ứng | - Độ dài <= N: cho phép nhập và lưu bình thường.<br>- Độ dài > N: hệ thống chặn trực tiếp trên UI hoặc báo lỗi hợp lệ. | | |
|
|
52
|
-
| [ID]_0xx | Kiểm tra nhập ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Nhập các ký tự đặc biệt (!@#$%^&*).<br>2. Bấm nút thực hiện. | `"!@#$%"` | Hệ thống lưu trữ đúng định dạng ký tự đã nhập (hoặc báo lỗi nếu có quy định hạn chế định dạng). | | |
|
|
53
|
-
| [ID]_0xx | Kiểm tra thao tác Copy/Paste | Low | Đã truy cập màn hình | 1. Copy một chuỗi hợp lệ.<br>2. Paste vào trường thông tin.<br>3. Bấm nút thực hiện. | - | Cho phép paste dữ liệu vào field thành công và xử lý lưu bình thường. | | |
|
|
36
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
37
|
+
|---|---|---|---|---|---|---|---|---|
|
|
38
|
+
| [ID]_0xx | Kiểm tra giá trị mặc định | Low | Đã truy cập màn hình | 1. Quan sát trường [Tên Trường]. | - | Giá trị mặc định là trống (blank).<br>Hiển thị đúng Placeholder theo thiết kế. | | |
|
|
39
|
+
| [ID]_0xx | Kiểm tra trường bắt buộc nhập để trống | High | Đã truy cập màn hình | 1. Để trống trường [Tên Trường].<br>2. Bấm nút thực hiện (Đăng ký/Lưu). | Empty | 1. Hiển thị thông báo lỗi: "Hãy nhập [Tên Trường]".<br>2. Field bị highlight viền đỏ. | | |
|
|
40
|
+
| [ID]_0xx | Kiểm tra nhập ký tự khoảng trắng (Spaces) | Medium | Đã truy cập màn hình | 1. Nhập toàn khoảng trắng vào trường.<br>2. Bấm nút thực hiện hoặc focus out. | `" "` | Hệ thống xem như để trống.<br>Báo lỗi bắt buộc nhập (nếu là trường Required) hoặc tự động trim khoảng trắng. | | |
|
|
41
|
+
| [ID]_0xx | Kiểm tra nhập khoảng trắng ở đầu/cuối chuỗi | Low | Đã truy cập màn hình | 1. Nhập chuỗi có khoảng trắng ở đầu/cuối.<br>2. Bấm nút thực hiện (Đăng ký/Lưu). | `" data_test "` | Hệ thống tự động cắt bỏ (trim) khoảng trắng ở đầu và cuối chuỗi trước khi lưu vào DB. | | |
|
|
42
|
+
| [ID]_0xx | Kiểm tra nhập độ dài tối thiểu/tối đa (Boundary Value) | Medium | Đã truy cập màn hình, biết Maxlength = N | 1. Nhập chuỗi độ dài N-1 ký tự.<br>2. Nhập chuỗi độ dài N ký tự.<br>3. Nhập chuỗi độ dài > N ký tự. | Chuỗi test tương ứng | - Độ dài <= N: cho phép nhập và lưu bình thường.<br>- Độ dài > N: hệ thống chặn trực tiếp trên UI hoặc báo lỗi hợp lệ. | | |
|
|
43
|
+
| [ID]_0xx | Kiểm tra nhập ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Nhập các ký tự đặc biệt (!@#$%^&*).<br>2. Bấm nút thực hiện. | `"!@#$%"` | Hệ thống lưu trữ đúng định dạng ký tự đã nhập (hoặc báo lỗi nếu có quy định hạn chế định dạng). | | |
|
|
44
|
+
| [ID]_0xx | Kiểm tra thao tác Copy/Paste | Low | Đã truy cập màn hình | 1. Copy một chuỗi hợp lệ.<br>2. Paste vào trường thông tin.<br>3. Bấm nút thực hiện. | - | Cho phép paste dữ liệu vào field thành công và xử lý lưu bình thường. | | |
|
|
54
45
|
|
|
55
46
|
#### * Đối với Trường Số (Number / Price / Quantity)
|
|
56
47
|
|
|
57
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
58
|
-
|
|
59
|
-
| [ID]_0xx | Kiểm tra nhập chữ cái và ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Cố gắng nhập chữ cái (a, b, c...) hoặc ký tự đặc biệt.<br>2. Bấm nút thực hiện. | `"abc"`, `"@#$"` | UI ngăn không cho nhập chữ cái/ký tự đặc biệt, chỉ chấp nhận chữ số. | | |
|
|
60
|
-
| [ID]_0xx | Kiểm tra nhập số âm | High | Đã truy cập màn hình | 1. Nhập số âm.<br>2. Bấm nút thực hiện. | `-10` | Báo lỗi giá trị phải lớn hơn hoặc bằng 0 (hoặc chặn dấu trừ `-` trực tiếp từ UI). | | |
|
|
61
|
-
| [ID]_0xx | Kiểm tra nhập số thập phân | High | Đã truy cập màn hình | 1. Nhập số có dấu phẩy thập phân.<br>2. Bấm nút thực hiện. | `1.5`, `2,3` | Báo lỗi chỉ chấp nhận số nguyên (hoặc chấp nhận số thập phân tùy đặc tả nghiệp vụ). | | |
|
|
62
|
-
| [ID]_0xx | Kiểm tra hiển thị định dạng phân tách hàng nghìn | Low | Đã truy cập màn hình | 1. Nhập số lớn.<br>2. Focus out khỏi trường nhập liệu. | `1000000` | Số tự động định dạng phân tách hàng nghìn (VD: `1,000,000`). | | |
|
|
48
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
49
|
+
|---|---|---|---|---|---|---|---|---|
|
|
50
|
+
| [ID]_0xx | Kiểm tra nhập chữ cái và ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Cố gắng nhập chữ cái (a, b, c...) hoặc ký tự đặc biệt.<br>2. Bấm nút thực hiện. | `"abc"`, `"@#$"` | UI ngăn không cho nhập chữ cái/ký tự đặc biệt, chỉ chấp nhận chữ số. | | |
|
|
51
|
+
| [ID]_0xx | Kiểm tra nhập số âm | High | Đã truy cập màn hình | 1. Nhập số âm.<br>2. Bấm nút thực hiện. | `-10` | Báo lỗi giá trị phải lớn hơn hoặc bằng 0 (hoặc chặn dấu trừ `-` trực tiếp từ UI). | | |
|
|
52
|
+
| [ID]_0xx | Kiểm tra nhập số thập phân | High | Đã truy cập màn hình | 1. Nhập số có dấu phẩy thập phân.<br>2. Bấm nút thực hiện. | `1.5`, `2,3` | Báo lỗi chỉ chấp nhận số nguyên (hoặc chấp nhận số thập phân tùy đặc tả nghiệp vụ). | | |
|
|
53
|
+
| [ID]_0xx | Kiểm tra hiển thị định dạng phân tách hàng nghìn | Low | Đã truy cập màn hình | 1. Nhập số lớn.<br>2. Focus out khỏi trường nhập liệu. | `1000000` | Số tự động định dạng phân tách hàng nghìn (VD: `1,000,000`). | | |
|
|
63
54
|
|
|
64
55
|
#### * Đối với Trường File Upload (Hình ảnh)
|
|
65
56
|
|
|
66
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
67
|
-
|
|
68
|
-
| [ID]_0xx | Kiểm tra không upload file (Trường tùy chọn) | Medium | Đã truy cập màn hình | 1. Không chọn file upload.<br>2. Bấm nút thực hiện. | - | Hệ thống cho phép thực hiện thành công mà không báo lỗi. | | |
|
|
69
|
-
| [ID]_0xx | Kiểm tra upload file sai định dạng | High | Định dạng cho phép: jpeg, png | 1. Chọn upload file có định dạng không được phép (xlsx, gif, pdf...).<br>2. Tiến hành upload. | File `.pdf`, `.xlsx` | Upload không thành công. Hiển thị thông báo lỗi đúng thiết kế: "Hình ảnh phải là định dạng jpeg hoặc png." | | |
|
|
70
|
-
| [ID]_0xx | Kiểm tra upload dung lượng vượt quá giới hạn | High | Giới hạn dung lượng: tối đa 10MB | 1. Chọn file có kích thước > 10MB.<br>2. Tiến hành upload. | File kích thước `10.5MB` | Upload thất bại. Hiển thị lỗi cảnh báo: "Dung lượng hình ảnh vượt quá 10MB." | | |
|
|
71
|
-
| [ID]_0xx | Kiểm tra upload file giả mạo đuôi mở rộng (Spoofing) | High | Đã truy cập màn hình | 1. Đổi đuôi file thực thi nguy hiểm `.exe` thành `.jpg`.<br>2. Chọn upload file này. | File `.exe` đổi tên thành `.jpg` | Hệ thống kiểm tra phần thân file (MIME type) thực tế và báo lỗi không đúng định dạng. | | |
|
|
72
|
-
| [ID]_0xx | Kiểm tra kéo thả file (Drag & Drop) | Low | Đã truy cập màn hình | 1. Kéo file ảnh thả vào vùng upload. | File `.png` hợp lệ | Upload file thành công và hiển thị thumbnail ảnh xem trước trên giao diện. | | |
|
|
73
|
-
|
|
74
|
-
###
|
|
75
|
-
|
|
76
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
77
|
-
|
|
78
|
-
| [ID]_0xx | Kiểm tra ràng buộc trùng lặp dữ liệu duy nhất (Unique) | High | Đã tồn tại bản ghi trong DB | 1. Nhập thông tin trùng khóa chính/mã duy nhất với bản ghi cũ.<br>2. Điền các thông tin hợp lệ khác.<br>3. Bấm Đăng ký. | Mã trùng lặp | Hệ thống báo lỗi trùng lặp: "Mã/Tên này đã tồn tại trong hệ thống. Vui lòng kiểm tra lại." | | |
|
|
79
|
-
| [ID]_0xx | Kiểm tra logic liên kết dữ liệu động (Dynamic Form Control) | High | Điều kiện thay đổi hiển thị | 1. Tích chọn/Bỏ tích chọn [Checkbox điều kiện]. | - | Giao diện tự động thay đổi hiển thị ẩn/hiện hoặc disable/enable các trường thông tin liên quan theo đúng mô tả Business Rule. | | |
|
|
80
|
-
| [ID]_0xx | Kiểm tra lưu dữ liệu vào Database thành công | Critical | Nhập đầy đủ và chính xác tất cả dữ liệu hợp lệ | 1. Nhập toàn bộ dữ liệu hợp lệ.<br>2. Bấm nút Đăng ký.<br>3. Kiểm tra DB và màn hình danh sách. | Dữ liệu hợp lệ | 1. Lưu bản ghi mới thành công.<br>2. Hiển thị thông báo thành công.<br>3. Dữ liệu trong Database khớp hoàn toàn các trường thông tin đã điền trên UI. | | |
|
|
81
|
-
|
|
82
|
-
###
|
|
83
|
-
|
|
84
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
85
|
-
|
|
86
|
-
| [ID]_0xx | Bấm nút Đăng ký nhiều lần liên tiếp (Double Click) | High | Đã điền đầy đủ dữ liệu hợp lệ | 1. Click liên tiếp nhiều lần vào nút Đăng ký/Lưu. | - | Nút bấm bị disable ngay sau lượt click đầu tiên. Hệ thống chỉ xử lý và tạo duy nhất 1 bản ghi trong DB, không tạo trùng lặp. | | |
|
|
87
|
-
| [ID]_0xx | Kiểm tra mất kết nối mạng đột ngột khi bấm Lưu | High | Điền đầy đủ dữ liệu hợp lệ | 1. Bấm nút Lưu.<br>2. Đồng thời ngắt kết nối mạng. | - | Hệ thống hiển thị loading và thông báo lỗi kết nối mạng, không bị crash hoặc treo màn hình trắng. | | |
|
|
88
|
-
| [ID]_0xx | Kiểm tra nhấn nút Quay lại | Low | Đã điền một số dữ liệu | 1. Nhập một số thông tin.<br>2. Bấm nút Quay lại. | - | Hệ thống chuyển hướng về màn hình danh sách trước đó.<br>Bản ghi mới không được tạo trong DB. | | |
|
|
57
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
58
|
+
|---|---|---|---|---|---|---|---|---|
|
|
59
|
+
| [ID]_0xx | Kiểm tra không upload file (Trường tùy chọn) | Medium | Đã truy cập màn hình | 1. Không chọn file upload.<br>2. Bấm nút thực hiện. | - | Hệ thống cho phép thực hiện thành công mà không báo lỗi. | | |
|
|
60
|
+
| [ID]_0xx | Kiểm tra upload file sai định dạng | High | Định dạng cho phép: jpeg, png | 1. Chọn upload file có định dạng không được phép (xlsx, gif, pdf...).<br>2. Tiến hành upload. | File `.pdf`, `.xlsx` | Upload không thành công. Hiển thị thông báo lỗi đúng thiết kế: "Hình ảnh phải là định dạng jpeg hoặc png." | | |
|
|
61
|
+
| [ID]_0xx | Kiểm tra upload dung lượng vượt quá giới hạn | High | Giới hạn dung lượng: tối đa 10MB | 1. Chọn file có kích thước > 10MB.<br>2. Tiến hành upload. | File kích thước `10.5MB` | Upload thất bại. Hiển thị lỗi cảnh báo: "Dung lượng hình ảnh vượt quá 10MB." | | |
|
|
62
|
+
| [ID]_0xx | Kiểm tra upload file giả mạo đuôi mở rộng (Spoofing) | High | Đã truy cập màn hình | 1. Đổi đuôi file thực thi nguy hiểm `.exe` thành `.jpg`.<br>2. Chọn upload file này. | File `.exe` đổi tên thành `.jpg` | Hệ thống kiểm tra phần thân file (MIME type) thực tế và báo lỗi không đúng định dạng. | | |
|
|
63
|
+
| [ID]_0xx | Kiểm tra kéo thả file (Drag & Drop) | Low | Đã truy cập màn hình | 1. Kéo file ảnh thả vào vùng upload. | File `.png` hợp lệ | Upload file thành công và hiển thị thumbnail ảnh xem trước trên giao diện. | | |
|
|
64
|
+
|
|
65
|
+
### 2.4. Kiểm thử Logic Nghiệp vụ (Business Rules - BR)
|
|
66
|
+
|
|
67
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
68
|
+
|---|---|---|---|---|---|---|---|---|
|
|
69
|
+
| [ID]_0xx | Kiểm tra ràng buộc trùng lặp dữ liệu duy nhất (Unique) | High | Đã tồn tại bản ghi trong DB | 1. Nhập thông tin trùng khóa chính/mã duy nhất với bản ghi cũ.<br>2. Điền các thông tin hợp lệ khác.<br>3. Bấm Đăng ký. | Mã trùng lặp | Hệ thống báo lỗi trùng lặp: "Mã/Tên này đã tồn tại trong hệ thống. Vui lòng kiểm tra lại." | | |
|
|
70
|
+
| [ID]_0xx | Kiểm tra logic liên kết dữ liệu động (Dynamic Form Control) | High | Điều kiện thay đổi hiển thị | 1. Tích chọn/Bỏ tích chọn [Checkbox điều kiện]. | - | Giao diện tự động thay đổi hiển thị ẩn/hiện hoặc disable/enable các trường thông tin liên quan theo đúng mô tả Business Rule. | | |
|
|
71
|
+
| [ID]_0xx | Kiểm tra lưu dữ liệu vào Database thành công | Critical | Nhập đầy đủ và chính xác tất cả dữ liệu hợp lệ | 1. Nhập toàn bộ dữ liệu hợp lệ.<br>2. Bấm nút Đăng ký.<br>3. Kiểm tra DB và màn hình danh sách. | Dữ liệu hợp lệ | 1. Lưu bản ghi mới thành công.<br>2. Hiển thị thông báo thành công.<br>3. Dữ liệu trong Database khớp hoàn toàn các trường thông tin đã điền trên UI. | | |
|
|
72
|
+
|
|
73
|
+
### 2.5. Kiểm thử Ngoại lệ & Hệ thống (Exceptions & Systems)
|
|
74
|
+
|
|
75
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
76
|
+
|---|---|---|---|---|---|---|---|---|
|
|
77
|
+
| [ID]_0xx | Bấm nút Đăng ký nhiều lần liên tiếp (Double Click) | High | Đã điền đầy đủ dữ liệu hợp lệ | 1. Click liên tiếp nhiều lần vào nút Đăng ký/Lưu. | - | Nút bấm bị disable ngay sau lượt click đầu tiên. Hệ thống chỉ xử lý và tạo duy nhất 1 bản ghi trong DB, không tạo trùng lặp. | | |
|
|
78
|
+
| [ID]_0xx | Kiểm tra mất kết nối mạng đột ngột khi bấm Lưu | High | Điền đầy đủ dữ liệu hợp lệ | 1. Bấm nút Lưu.<br>2. Đồng thời ngắt kết nối mạng. | - | Hệ thống hiển thị loading và thông báo lỗi kết nối mạng, không bị crash hoặc treo màn hình trắng. | | |
|
|
79
|
+
| [ID]_0xx | Kiểm tra nhấn nút Quay lại | Low | Đã điền một số dữ liệu | 1. Nhập một số thông tin.<br>2. Bấm nút Quay lại. | - | Hệ thống chuyển hướng về màn hình danh sách trước đó.<br>Bản ghi mới không được tạo trong DB. | | |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -250,7 +250,6 @@ Tạo `test-plan/test-analysis.md`:
|
|
|
250
250
|
|
|
251
251
|
### Step 5: Present to Tester
|
|
252
252
|
|
|
253
|
-
```
|
|
254
253
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
255
254
|
⏸️ GATE 1: TEST ANALYSIS READY
|
|
256
255
|
|
|
@@ -266,11 +265,9 @@ Summary:
|
|
|
266
265
|
|
|
267
266
|
⚠️ I will NOT proceed to Gate 2 until I receive "APPROVED".
|
|
268
267
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
269
|
-
```
|
|
270
268
|
|
|
271
269
|
**Nếu nhận được APPROVED mà còn câu hỏi clarify (Step 3) chưa được TESTER trả lời → từ chối ngay:**
|
|
272
270
|
|
|
273
|
-
```
|
|
274
271
|
⛔ GATE 1 BLOCKED — Còn câu hỏi chưa được trả lời.
|
|
275
272
|
|
|
276
273
|
Câu hỏi đang chờ:
|
|
@@ -278,7 +275,6 @@ Câu hỏi đang chờ:
|
|
|
278
275
|
|
|
279
276
|
→ Vui lòng trả lời câu hỏi trên trước khi gõ APPROVED.
|
|
280
277
|
❌ APPROVED không được chấp nhận khi còn câu hỏi chưa được làm rõ.
|
|
281
|
-
```
|
|
282
278
|
|
|
283
279
|
---
|
|
284
280
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md
CHANGED
|
File without changes
|
package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md
CHANGED
|
File without changes
|
package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md
CHANGED
|
File without changes
|
package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md
CHANGED
|
File without changes
|
package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# 00. Directory Structure & File Naming Convention
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
|
|
5
|
+
Define and standardize directory organization and file naming rules for all Artifacts generated in the QA Workflow. Ensures consistency, traceability, and maintainability across the project.
|
|
6
|
+
|
|
7
|
+
> **Important**: This document is the **mandatory reference** for the entire workflow. All generated Artifacts (Result, QA, TestCase) must strictly follow the rules defined here before executing any step in the workflow.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Directory Overview
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
03.Testing/
|
|
15
|
+
├── 01.Testcases/
|
|
16
|
+
│ └── [functionId]/
|
|
17
|
+
│ └── [functionId]_TestCase.md ← Gate 4 tạo
|
|
18
|
+
└── 07.AI-Artifacts/
|
|
19
|
+
└── [functionId]/
|
|
20
|
+
├── [functionId]_01_Requirement_Analysis_Result.md ← Gate 1 tạo
|
|
21
|
+
├── [functionId]_01_Requirement_Analysis_QA.md ← Gate 1 tạo (nếu có issue)
|
|
22
|
+
├── [functionId]_02_Test_Scenarios_Result.md ← Gate 2 tạo
|
|
23
|
+
├── [functionId]_02_Scenario_Building_QA.md ← Gate 2 tạo (nếu có issue)
|
|
24
|
+
├── [functionId]_03_Test_Cases_Draft_Result.md ← Gate 3 tạo
|
|
25
|
+
├── [functionId]_03_Test_Design_QA.md ← Gate 3 tạo (nếu có issue)
|
|
26
|
+
├── [functionId]_04_Test_Cases_Final_Result.md ← Gate 4 tạo (cùng TestCase)
|
|
27
|
+
└── [functionId]_04_Test_Review_QA.md ← Gate 4 tạo
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Example: `functionId = AD06` → root folder is `03.Testing/`
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 2. 07.AI-Artifacts/ Directory Rules
|
|
35
|
+
|
|
36
|
+
- **Root path**: `03.Testing/07.AI-Artifacts/[functionId]/`
|
|
37
|
+
- **Purpose**: Store all official result artifacts and QA tracking files generated at each workflow gate.
|
|
38
|
+
|
|
39
|
+
### 2.1. File Naming Convention
|
|
40
|
+
|
|
41
|
+
Files are placed under `03.Testing/07.AI-Artifacts/[functionId]/` with the `[functionId]` as prefix:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
[functionId]_[step]_Result.md
|
|
45
|
+
[functionId]_[step]_QA.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2.2. File Name Table by Gate
|
|
49
|
+
|
|
50
|
+
| Gate | Step Name | Result File Name | QA File Name (if issues) |
|
|
51
|
+
| :---: | :--- | :--- | :--- |
|
|
52
|
+
| **01** | `01_Requirement_Analysis` | `[functionId]_01_Requirement_Analysis_Result.md` | `[functionId]_01_Requirement_Analysis_QA.md` |
|
|
53
|
+
| **02** | `02_Test_Scenarios` | `[functionId]_02_Test_Scenarios_Result.md` | `[functionId]_02_Scenario_Building_QA.md` |
|
|
54
|
+
| **03** | `03_Test_Cases_Draft` | `[functionId]_03_Test_Cases_Draft_Result.md` | `[functionId]_03_Test_Design_QA.md` |
|
|
55
|
+
| **04** | `04_Test_Cases_Final` | `[functionId]_04_Test_Cases_Final_Result.md` | `[functionId]_04_Test_Review_QA.md` |
|
|
56
|
+
|
|
57
|
+
### 2.3. Full Path Examples
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
03.Testing/07.AI-Artifacts/AD06/AD06_01_Requirement_Analysis_Result.md
|
|
61
|
+
03.Testing/07.AI-Artifacts/AD06/AD06_01_Requirement_Analysis_QA.md
|
|
62
|
+
03.Testing/07.AI-Artifacts/AD06/AD06_02_Test_Scenarios_Result.md
|
|
63
|
+
03.Testing/07.AI-Artifacts/AD06/AD06_03_Test_Cases_Draft_Result.md
|
|
64
|
+
03.Testing/07.AI-Artifacts/AD06/AD06_04_Test_Cases_Final_Result.md
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
> QA files are only created when there are issues (Critical/Major block, or Minor carry-forward).
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 3. 01.Testcases/ Directory Rules
|
|
72
|
+
|
|
73
|
+
- **Root path**: `03.Testing/01.Testcases/[functionId]/`
|
|
74
|
+
- **Purpose**: Store the final test case artifact ready for execution. This file contains only the **test case tables** (not review summaries, findings, or coverage validation) and is generated **simultaneously** with `04_Test_Cases_Final_Result.md` at the end of Gate 4.
|
|
75
|
+
|
|
76
|
+
### 3.1. File Naming Convention
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
[functionId]_TestCase.md
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3.2. Full Path Example
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
03.Testing/01.Testcases/AD06/AD06_TestCase.md
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3.3. File Content
|
|
89
|
+
|
|
90
|
+
The TestCase file follows the **standard template** at `.claude/skills/test-skills/template/testcase-template.md` and **only includes**:
|
|
91
|
+
|
|
92
|
+
- **Section 1**: General Information (fill in functionId, creation date)
|
|
93
|
+
- **Section 2**: Test Execution Summary (reset to 0, waiting for execution)
|
|
94
|
+
- **Section 3**: Detailed Test Cases (all 5 groups and test case tables)
|
|
95
|
+
|
|
96
|
+
> **Does NOT include**: Review Summary, Review Findings, Coverage Validation (RTM), Sign-off Status — these belong in `04_Test_Cases_Final_Result.md` within `07.AI-Artifacts/[functionId]/`.
|
|
97
|
+
|
|
98
|
+
### 3.4. Generation Timing
|
|
99
|
+
|
|
100
|
+
The TestCase file is generated **simultaneously** with `04_Test_Cases_Final_Result.md` at the end of Gate 4, after all Critical/Major issues are resolved and the test case set has been signed off.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 4. Full Artifact Matrix
|
|
105
|
+
|
|
106
|
+
| Gate | Description | Result Artifact | QA Artifact | TestCase Artifact |
|
|
107
|
+
| :---: | :--- | :--- | :--- | :--- |
|
|
108
|
+
| **01** | Requirement & Risk Analysis | `[fId]_01_Requirement_Analysis_Result.md` | `[fId]_01_Requirement_Analysis_QA.md` | — |
|
|
109
|
+
| **02** | Scenario Building | `[fId]_02_Test_Scenarios_Result.md` | `[fId]_02_Scenario_Building_QA.md` | — |
|
|
110
|
+
| **03** | Test Case Design | `[fId]_03_Test_Cases_Draft_Result.md` | `[fId]_03_Test_Design_QA.md` | — |
|
|
111
|
+
| **04** | Review & Optimization | `[fId]_04_Test_Cases_Final_Result.md` | `[fId]_04_Test_Review_QA.md` | `[fId]_TestCase.md` |
|
|
112
|
+
|
|
113
|
+
> `[fId]` = `[functionId]`
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 5. Additional Rules
|
|
118
|
+
|
|
119
|
+
### 5.1. Update Rule
|
|
120
|
+
|
|
121
|
+
- If a file already exists, **update and overwrite** with the latest content.
|
|
122
|
+
- **Do not create duplicate files** with version suffixes (e.g. `_v1`, `_v2`, `_final`, `_new`).
|
|
123
|
+
|
|
124
|
+
### 5.2. functionId Naming
|
|
125
|
+
|
|
126
|
+
- Use the **exact functionId** determined in Gate 1 Pre-flight (e.g. `AD06`, `AD10`, `LOGIN`).
|
|
127
|
+
- Valid examples: `AD06`, `AD10_Create_Product`, `LOGIN`, `ORD002`
|
|
128
|
+
- **Invalid**: `product`, `login`, `tag_feature` (custom names diverging from the functionId)
|
|
129
|
+
- The workflow **MUST** strictly require a `functionId` before starting.
|
|
130
|
+
|
|
131
|
+
### 5.3. Consistency Principle
|
|
132
|
+
|
|
133
|
+
- `07.AI-Artifacts/` and `01.Testcases/` artifacts for the same functionId **must all use the same functionId prefix** and be grouped in a `[functionId]` subfolder.
|
|
134
|
+
- This ensures fast cross-lookup and traceability.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 6. Application Checklist
|
|
139
|
+
|
|
140
|
+
Before starting any workflow gate, verify:
|
|
141
|
+
|
|
142
|
+
- [ ] functionId has been confirmed in Gate 1 Pre-flight?
|
|
143
|
+
- [ ] Root folder `03.Testing/` exists?
|
|
144
|
+
- [ ] `07.AI-Artifacts/[functionId]/` subfolder exists?
|
|
145
|
+
- [ ] Result file name follows pattern `[functionId]_[step]_Result.md`?
|
|
146
|
+
- [ ] QA file name follows pattern `[functionId]_[step]_QA.md`?
|
|
147
|
+
- [ ] (After Gate 4) `01.Testcases/[functionId]/` subfolder exists?
|
|
148
|
+
- [ ] (After Gate 4) TestCase file name follows pattern `[functionId]_TestCase.md`?
|
|
149
|
+
- [ ] (After Gate 4) TestCase file contains only Section 1+2+3 per template (no review metadata)?
|
|
150
|
+
- [ ] No duplicate or incorrectly named files?
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 7. References
|
|
155
|
+
|
|
156
|
+
- `create-testcase-workflow.md` — Full 4-Gate QA workflow definition
|
|
157
|
+
- `.claude/skills/test-skills/template/testcase-template.md` — Standard test case template
|
|
158
|
+
- `.claude/skills/test-skills/rules/qa-writing-standards.md` — QA writing standards
|
|
File without changes
|