105 lines
2.9 KiB
Bash
Executable File
105 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# init_test_plan.sh — Generate task-level test plan + test case template
|
|
#
|
|
# Usage:
|
|
# bash scripts/test/init_test_plan.sh <task-name> [target-dir]
|
|
#
|
|
# Example:
|
|
# bash scripts/test/init_test_plan.sh "preflight-host-readiness" internal/provision
|
|
#
|
|
# Output:
|
|
# docs/test-plans/TEST_PLAN_YYYY-MM-DD_<task-name>.md
|
|
# docs/test-cases/TEST_CASES_YYYY-MM-DD_<task-name>.md
|
|
#
|
|
# These are TEMPLATES. Fill in the actual test cases before implementation,
|
|
# and mark PASS/FAIL after verification.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
TASK_NAME="${1:?Usage: $0 <task-name> [target-dir]}"
|
|
TARGET_DIR="${2:-.}"
|
|
DATE_TAG="$(date +%Y-%m-%d)"
|
|
|
|
PLAN_DIR="${SCRIPT_DIR}/docs/test-plans"
|
|
CASE_DIR="${SCRIPT_DIR}/docs/test-cases"
|
|
mkdir -p "$PLAN_DIR" "$CASE_DIR"
|
|
|
|
# ── Test Plan Template ──────────────────────────────────────────────
|
|
PLAN_FILE="${PLAN_DIR}/TEST_PLAN_${DATE_TAG}_${TASK_NAME}.md"
|
|
cat > "$PLAN_FILE" << EOFTPL
|
|
# Test Plan: ${TASK_NAME}
|
|
|
|
日期: ${DATE_TAG}
|
|
目标文件: ${TARGET_DIR}
|
|
|
|
## 测试目标
|
|
|
|
<!-- 一句话说明本任务的测试目标 -->
|
|
|
|
## 范围
|
|
|
|
- 影响文件: <!-- 列出被修改的文件 -->
|
|
- 风险点: <!-- 可能出问题的地方 -->
|
|
- 不变区域: <!-- 明确不需要测试的范围 -->
|
|
|
|
## 验证层级
|
|
|
|
| 层级 | 验证内容 | 命令 | 通过标准 |
|
|
|------|----------|------|----------|
|
|
| L1 单测 | | | |
|
|
| L2 静态分析 | | | |
|
|
| L3 集成测试 | | | |
|
|
| L4 构建验证 | | | |
|
|
| L5 前端验证 | | | |
|
|
| L6 真实环境 | | | |
|
|
|
|
## 测试用例
|
|
|
|
见 docs/test-cases/TEST_CASES_${DATE_TAG}_${TASK_NAME}.md
|
|
|
|
## 回归检查
|
|
|
|
- [ ] 已有测试不受影响
|
|
- [ ] 覆盖率不低于当前基线
|
|
EOFTPL
|
|
|
|
# ── Test Cases Template ──────────────────────────────────────────────
|
|
CASE_FILE="${CASE_DIR}/TEST_CASES_${DATE_TAG}_${TASK_NAME}.md"
|
|
cat > "$CASE_FILE" << EOFCASE
|
|
# Test Cases: ${TASK_NAME}
|
|
|
|
日期: ${DATE_TAG}
|
|
|
|
## 用例列表
|
|
|
|
| ID | 描述 | 输入 | 预期结果 | 实际结果 | 状态 |
|
|
|----|------|------|----------|----------|------|
|
|
| TC1 | | | | | PENDING |
|
|
| TC2 | | | | | PENDING |
|
|
| TC3 | | | | | PENDING |
|
|
|
|
## 边界用例
|
|
|
|
| ID | 描述 | 输入 | 预期结果 | 实际结果 | 状态 |
|
|
|----|------|------|----------|----------|------|
|
|
| B1 | | | | | PENDING |
|
|
| B2 | | | | | PENDING |
|
|
|
|
## 异常用例
|
|
|
|
| ID | 描述 | 输入 | 预期结果 | 实际结果 | 状态 |
|
|
|----|------|------|----------|----------|------|
|
|
| E1 | | | | | PENDING |
|
|
| E2 | | | | | PENDING |
|
|
EOFCASE
|
|
|
|
echo "✅ Test plan: ${PLAN_FILE}"
|
|
echo "✅ Test cases: ${CASE_FILE}"
|
|
echo ""
|
|
echo "下一步:"
|
|
echo " 1. 编辑测试计划和用例"
|
|
echo " 2. 实现代码"
|
|
echo " 3. 按用例逐条验证"
|
|
echo " 4. 更新状态为 PASS/FAIL"
|