ai-test-process-mcp 0.1.0 → 0.2.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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Hashi_Kazu
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hashi_Kazu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,90 +1,101 @@
1
- # ai-test-process-mcp
2
-
3
- AIによるテストプロセス支援MCPサーバー。
4
-
5
- **Phase 1(実装済み)**: テスト計画書(ISO/IEC/IEEE 29119-3準拠)のドラフト生成のみ。
6
- **将来構想**: テスト設計・レビュー・品質ゲート・テストメトリクス・改善提案を段階的に追加。
7
-
8
- ## セットアップ
9
-
10
- ```bash
11
- npm install
12
- npm run build
13
- ```
14
-
15
- ## 提供する機能
16
-
17
- ### Resource: `iso29119://test-plan/structure`
18
-
19
- ISO/IEC/IEEE 29119-3のテスト計画15章立て(Introduction〜Approvals)を構造化データ(JSON)として公開する。
20
-
21
- ### Tool: `generate_test_plan_draft`
22
-
23
- プロジェクト情報(`projectName`, `scope` は必須。`objectives`, `risks`, `scheduleConstraints`, `team` など任意項目)を入力すると、ISO29119の章立てに沿ったMarkdown形式のテスト計画書ドラフトを生成する。未入力の項目は `_TBD — not provided by caller_` として明示される。
24
-
25
- ## コマンド
26
-
27
- ```bash
28
- npm run dev # tsc --watch
29
- npm start # node dist/server.js(stdio transport)
30
- npm test # vitest run
31
- npm run inspect # build後、MCP Inspectorを起動して動作確認
32
- ```
33
-
34
- ## 動作確認(CLI)
35
-
36
- ```bash
37
- npx @modelcontextprotocol/inspector --cli node dist/server.js --method resources/list
38
- npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/list
39
- npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/call \
40
- --tool-name generate_test_plan_draft \
41
- --tool-arg projectName="ECサイト" \
42
- --tool-arg scope="決済とログイン機能"
43
- ```
44
-
45
- ## 実クライアントへの登録例(Claude Desktop / Claude Code)
46
-
47
- ```json
48
- {
49
- "mcpServers": {
50
- "ai-test-process-mcp": {
51
- "command": "node",
52
- "args": ["<repo-path>/dist/server.js"]
53
- }
54
- }
55
- }
56
- ```
57
-
58
- npm公開後は、リポジトリをローカルにcloneしなくても `npx` 経由で起動できる(`.vscode/mcp.json` の例)。
59
-
60
- ```json
61
- {
62
- "servers": {
63
- "ai-test-process-mcp": {
64
- "command": "npx",
65
- "args": ["-y", "ai-test-process-mcp"]
66
- }
67
- }
68
- }
69
- ```
70
-
71
- ## 公開手順(メンテナ向け)
72
-
73
- 1. `npm login`(npmjs.comのアカウントで認証)
74
- 2. `npm run build`(`npm publish` 実行時は `prepublishOnly` フックにより自動実行されるため、手動実行は任意)
75
- 3. `npm publish`
76
-
77
- 公開後の接続方式(stdio)は変わらない。MCPレジストリ(`server.json` / `mcp-publisher`)への登録は本手順の対象外で、将来の別タスクとして扱う。
78
-
79
- ## 将来機能の追加方法
80
-
81
- 新しい機能(テスト設計・レビュー・品質ゲート・テストメトリクス・改善提案)を追加する際は、以下のパターンに従う:
82
-
83
- 1. `src/resources/<name>.ts` — 必要な参照データ(構造化データ)を定義
84
- 2. `src/tools/<name>.ts` — zod入力スキーマ + 純粋なレンダリング関数 + `registerXxxTool()`
85
- 3. `src/resources/index.ts` / `src/tools/index.ts` にそれぞれ1行登録を追加
86
- 4. `test/<name>.test.ts` でレンダリング関数を単体テスト
87
-
88
- `server.ts` 本体は変更不要。プラグインローダーやレジストリのような抽象化は、モジュール数が増えて明示的な登録リストが煩雑になるまで導入しない。
89
-
90
- 詳細は [AGENTS.md](./AGENTS.md) と [docs/ai/project-overview.md](./docs/ai/project-overview.md) を参照。
1
+ # ai-test-process-mcp
2
+
3
+ AIによるテストプロセス支援MCPサーバー。
4
+
5
+ **Phase 1(実装済み)**: テスト計画書(QUINTEEテンプレート17セクション構成・ISO/IEC/IEEE 29119-3準拠)の日本語ドラフト生成、および質問形式でのコンテキスト収集ガイド。
6
+ **将来構想**: テスト設計・レビュー・品質ゲート・テストメトリクス・改善提案を段階的に追加。
7
+
8
+ ## セットアップ
9
+
10
+ ```bash
11
+ npm install
12
+ npm run build
13
+ ```
14
+
15
+ ## 提供する機能
16
+
17
+ ### Resource: `iso29119://test-plan/structure`
18
+
19
+ ISO/IEC/IEEE 29119-3のテスト計画15章立て(Introduction〜Approvals)を構造化データ(JSON)として公開する。各セクションに日本語見出し(`titleJa`)を併記。
20
+
21
+ ### Resource: `testplan://template/quintee`
22
+
23
+ QUINTEEテスト計画書テンプレート(17セクション構成)の構造データ(JSON)を公開する。各セクションの見出し・必須フラグ・ISO29119対応(`isoRef`)・入力マッピング(`fieldKey`)に加え、固定リファレンス(テストタイプ・カタログ、インシデントランク、判定ステータス、標準メトリクス等)を含む。
24
+
25
+ ### Tool: `gen_test_plan`
26
+
27
+ プロジェクト情報(`projectName`, `scope` は必須。`objectives`, `risks`, `scheduleConstraints`, `team`, `testItems`, `stakeholders`, `glossary` など多数の任意項目)を入力すると、QUINTEEテンプレートの17セクション構成(ISO/IEC/IEEE 29119-3準拠)に沿った**日本語**Markdown形式のテスト計画書ドラフトを生成する。未入力の項目は `_未記入_`(必須項目は `_未記入(必須)_`)として明示される。テストタイプ説明・インシデントランク等の固定リファレンスは常に出力される。
28
+
29
+ ### Prompt: `test_plan_interview`
30
+
31
+ 質問形式でテスト計画書のコンテキストを収集するためのガイド。テンプレートの必須項目を中心に、ユーザーへ順に質問して回答を集め、`gen_test_plan` を呼び出すようアシスタントを誘導する。任意引数 `projectName` を受け取る。
32
+
33
+ ## コマンド
34
+
35
+ ```bash
36
+ npm run dev # tsc --watch
37
+ npm start # node dist/server.js(stdio transport)
38
+ npm test # vitest run
39
+ npm run inspect # build後、MCP Inspectorを起動して動作確認
40
+ ```
41
+
42
+ ## 動作確認(CLI)
43
+
44
+ ```bash
45
+ npx @modelcontextprotocol/inspector --cli node dist/server.js --method resources/list
46
+ npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/list
47
+ npx @modelcontextprotocol/inspector --cli node dist/server.js --method prompts/list
48
+ npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/call \
49
+ --tool-name gen_test_plan \
50
+ --tool-arg projectName="ECサイト" \
51
+ --tool-arg scope="決済とログイン機能"
52
+ npx @modelcontextprotocol/inspector --cli node dist/server.js --method prompts/get \
53
+ --prompt-name test_plan_interview --prompt-args projectName="ECサイト"
54
+ ```
55
+
56
+ ## 実クライアントへの登録例(Claude Desktop / Claude Code)
57
+
58
+ ```json
59
+ {
60
+ "mcpServers": {
61
+ "ai-test-process-mcp": {
62
+ "command": "node",
63
+ "args": ["<repo-path>/dist/server.js"]
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ npm公開後は、リポジトリをローカルにcloneしなくても `npx` 経由で起動できる(`.vscode/mcp.json` の例)。
70
+
71
+ ```json
72
+ {
73
+ "servers": {
74
+ "ai-test-process-mcp": {
75
+ "command": "npx",
76
+ "args": ["-y", "ai-test-process-mcp"]
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ ## 公開手順(メンテナ向け)
83
+
84
+ 1. `npm login`(npmjs.comのアカウントで認証)
85
+ 2. `npm run build`(`npm publish` 実行時は `prepublishOnly` フックにより自動実行されるため、手動実行は任意)
86
+ 3. `npm publish`
87
+
88
+ 公開後の接続方式(stdio)は変わらない。MCPレジストリ(`server.json` / `mcp-publisher`)への登録は本手順の対象外で、将来の別タスクとして扱う。
89
+
90
+ ## 将来機能の追加方法
91
+
92
+ 新しい機能(テスト設計・レビュー・品質ゲート・テストメトリクス・改善提案)を追加する際は、以下のパターンに従う:
93
+
94
+ 1. `src/resources/<name>.ts` — 必要な参照データ(構造化データ)を定義
95
+ 2. `src/tools/<name>.ts` — zod入力スキーマ + 純粋なレンダリング関数 + `registerXxxTool()`
96
+ 3. `src/resources/index.ts` / `src/tools/index.ts` にそれぞれ1行登録を追加
97
+ 4. `test/<name>.test.ts` でレンダリング関数を単体テスト
98
+
99
+ `server.ts` 本体は変更不要。プラグインローダーやレジストリのような抽象化は、モジュール数が増えて明示的な登録リストが煩雑になるまで導入しない。
100
+
101
+ 詳細は [AGENTS.md](./AGENTS.md) と [docs/ai/project-overview.md](./docs/ai/project-overview.md) を参照。
@@ -0,0 +1,5 @@
1
+ import { registerTestPlanInterviewPrompt } from "./testPlanInterview.js";
2
+ export function registerPrompts(server) {
3
+ registerTestPlanInterviewPrompt(server);
4
+ }
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,+BAA+B,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { z } from "zod";
2
+ import { testPlanTemplate } from "../resources/testPlanTemplate.js";
3
+ // 質問形式でのコンテキスト収集用プロンプト。
4
+ // テンプレート構造データ(titleJa + guidance)から設問を自動生成し、
5
+ // アシスタントがユーザーに順に質問して gen_test_plan を呼ぶよう誘導する。
6
+ // fieldKey → gen_test_plan の入力キーの対応メモ(設問に添えて収集漏れを防ぐ)。
7
+ const fieldHint = {
8
+ scope: "scope(必須)",
9
+ references: "references[]",
10
+ background: "background{current, concerns}",
11
+ objectives: "objectives[]",
12
+ testLevels: "testLevels[]",
13
+ revisionContent: "revisionContent[]",
14
+ testItems: "testItems[]{name, summary}",
15
+ selectedTestTypes: "selectedTestTypes[](テストタイプ名の配列)",
16
+ featuresToTest: "featuresToTest[] / featuresNotToTest[]",
17
+ risks: "risks[]{description, impact, mitigation}",
18
+ testTechniques: "testTechniques[]{testType, approach, technique}",
19
+ testPeriod: "testPeriod",
20
+ scheduleConstraints: "scheduleConstraints{startDate, endDate, milestones}",
21
+ deliverables: "deliverables[]",
22
+ startCriteria: "startCriteria / endCriteria",
23
+ suspensionCriteria: "suspensionCriteria",
24
+ completionCriteria: "completionCriteria[]",
25
+ passFailCriteria: "passFailCriteria",
26
+ metricsNote: "metricsNote",
27
+ environment: "environment",
28
+ testDataRequirements: "testDataRequirements[]{description, owner, period}",
29
+ team: "team[]{role, name, responsibilities}",
30
+ stakeholders: "stakeholders[]{role, name, contact}",
31
+ assumptions: "assumptions[] / constraints[]",
32
+ glossary: "glossary[]{term, definition}",
33
+ referenceDocs: "referenceDocs[]{name, description}",
34
+ notes: "notes",
35
+ };
36
+ /**
37
+ * テンプレート構造から質問形式のインタビュー指示文を生成する純関数。
38
+ * 必須(*)セクションを中心に、章ごとに設問を並べる。
39
+ */
40
+ export function buildInterviewPrompt(template = testPlanTemplate, projectName) {
41
+ const lines = [];
42
+ const target = projectName?.trim() ? `「${projectName.trim()}」` : "対象システム";
43
+ lines.push(`あなたはテスト計画づくりの聞き手です。${target}のテスト計画書ドラフトを作成するため、` +
44
+ `以下の項目についてユーザーに1〜3項目ずつ順に質問し、回答を集めてください。`);
45
+ lines.push("");
46
+ lines.push("進め方:");
47
+ lines.push("- 必須(★)の項目を優先し、一度に多く聞きすぎない。");
48
+ lines.push("- ユーザーが「不明」「後で」と答えた項目はスキップしてよい(未記入として扱われる)。");
49
+ lines.push("- ひととおり集まったら、収集した回答を gen_test_plan ツールの引数にマッピングして呼び出し、" +
50
+ "テスト計画書ドラフトを生成する。");
51
+ lines.push("- projectName と scope は必須。最低限この2つは必ず確認する。");
52
+ lines.push("");
53
+ lines.push("## 質問項目");
54
+ lines.push("");
55
+ let currentChapter = "";
56
+ for (const section of template.sections) {
57
+ if (section.level === 1) {
58
+ currentChapter = `${section.no} ${section.titleJa}`;
59
+ // 章見出しでも、子を持たず入力に対応する(fieldKey あり)章は設問化する。
60
+ if (!section.fieldKey)
61
+ continue;
62
+ }
63
+ // 入力に対応する(fieldKey あり)セクションを設問化する。
64
+ if (!section.fieldKey)
65
+ continue;
66
+ const star = section.required ? "★" : "・";
67
+ const hint = fieldHint[section.fieldKey] ?? section.fieldKey;
68
+ const guidance = section.guidance ? ` — ${section.guidance}` : "";
69
+ const label = section.level === 1
70
+ ? `${section.no} ${section.titleJa}`
71
+ : `${currentChapter} / ${section.no} ${section.titleJa}`;
72
+ lines.push(`${star} [${label}]${guidance}`);
73
+ lines.push(` (収集先: ${hint})`);
74
+ }
75
+ lines.push("");
76
+ lines.push("上記の質問が終わったら gen_test_plan を呼び出してください。未収集の必須項目は " +
77
+ "テスト計画書上で「未記入(必須)」と明示されます。");
78
+ return lines.join("\n");
79
+ }
80
+ export function registerTestPlanInterviewPrompt(server) {
81
+ server.registerPrompt("test_plan_interview", {
82
+ title: "Test Plan Interview",
83
+ description: "質問形式でテスト計画書のコンテキストを収集するためのガイド。テンプレートの必須項目を中心に、ユーザーへ順に質問し gen_test_plan を呼ぶよう誘導する。",
84
+ argsSchema: {
85
+ projectName: z
86
+ .string()
87
+ .optional()
88
+ .describe("テスト対象システム/プロジェクト名(分かっていれば)"),
89
+ },
90
+ }, (args) => ({
91
+ messages: [
92
+ {
93
+ role: "user",
94
+ content: {
95
+ type: "text",
96
+ text: buildInterviewPrompt(testPlanTemplate, args.projectName),
97
+ },
98
+ },
99
+ ],
100
+ }));
101
+ }
102
+ //# sourceMappingURL=testPlanInterview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testPlanInterview.js","sourceRoot":"","sources":["../../src/prompts/testPlanInterview.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { iso29119TestPlanStructure } from "./iso29119.js";
2
+ import { testPlanTemplate } from "./testPlanTemplate.js";
2
3
  export function registerResources(server) {
3
4
  server.registerResource("iso29119-test-plan-structure", "iso29119://test-plan/structure", {
4
5
  title: "ISO 29119 Test Plan Structure",
@@ -13,5 +14,18 @@ export function registerResources(server) {
13
14
  },
14
15
  ],
15
16
  }));
17
+ server.registerResource("quintee-test-plan-template", "testplan://template/quintee", {
18
+ title: "QUINTEE Test Plan Template",
19
+ description: "Structural reference for the QUINTEE test plan template: 17 chapters with sub-sections, required flags, ISO 29119 cross-references, and input field mappings.",
20
+ mimeType: "application/json",
21
+ }, async (uri) => ({
22
+ contents: [
23
+ {
24
+ uri: uri.href,
25
+ mimeType: "application/json",
26
+ text: JSON.stringify(testPlanTemplate, null, 2),
27
+ },
28
+ ],
29
+ }));
16
30
  }
17
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,gBAAgB,CACrB,8BAA8B,EAC9B,gCAAgC,EAChC;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,0IAA0I;QAC5I,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;aACzD;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,gBAAgB,CACrB,8BAA8B,EAC9B,gCAAgC,EAChC;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,0IAA0I;QAC5I,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;aACzD;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,4BAA4B,EAC5B,6BAA6B,EAC7B;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,+JAA+J;QACjK,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;aAChD;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -7,6 +7,7 @@ export const iso29119TestPlanStructure = {
7
7
  {
8
8
  id: "introduction",
9
9
  title: "Introduction",
10
+ titleJa: "はじめに",
10
11
  standardRef: "§4.2.1",
11
12
  description: "Purpose, background, and references for the test plan.",
12
13
  requiredFields: ["purpose", "background", "references"],
@@ -14,6 +15,7 @@ export const iso29119TestPlanStructure = {
14
15
  {
15
16
  id: "test-items",
16
17
  title: "Test Items",
18
+ titleJa: "テスト対象",
17
19
  standardRef: "§4.2.2",
18
20
  description: "The items (software, systems, features) that are the object of testing.",
19
21
  requiredFields: ["itemsUnderTest", "versionOrRelease"],
@@ -21,6 +23,7 @@ export const iso29119TestPlanStructure = {
21
23
  {
22
24
  id: "features-to-be-tested",
23
25
  title: "Features to be Tested",
26
+ titleJa: "テスト対象機能",
24
27
  standardRef: "§4.2.3",
25
28
  description: "Features or functions that are within scope of the testing effort.",
26
29
  requiredFields: ["featureList"],
@@ -28,6 +31,7 @@ export const iso29119TestPlanStructure = {
28
31
  {
29
32
  id: "features-not-to-be-tested",
30
33
  title: "Features Not to be Tested",
34
+ titleJa: "テスト対象外機能",
31
35
  standardRef: "§4.2.4",
32
36
  description: "Features or functions explicitly excluded from testing, with rationale.",
33
37
  requiredFields: ["excludedFeatureList", "exclusionRationale"],
@@ -35,6 +39,7 @@ export const iso29119TestPlanStructure = {
35
39
  {
36
40
  id: "approach",
37
41
  title: "Test Approach",
42
+ titleJa: "テスト方針",
38
43
  standardRef: "§4.2.5",
39
44
  description: "The overall testing strategy, techniques, and levels to be applied.",
40
45
  requiredFields: ["testLevels", "testTypes", "testTechniques"],
@@ -42,6 +47,7 @@ export const iso29119TestPlanStructure = {
42
47
  {
43
48
  id: "item-pass-fail-criteria",
44
49
  title: "Item Pass/Fail Criteria",
50
+ titleJa: "合否基準",
45
51
  standardRef: "§4.2.6",
46
52
  description: "Criteria used to determine whether a test item has passed or failed testing.",
47
53
  requiredFields: ["passCriteria", "failCriteria"],
@@ -49,6 +55,7 @@ export const iso29119TestPlanStructure = {
49
55
  {
50
56
  id: "suspension-resumption-criteria",
51
57
  title: "Suspension and Resumption Criteria",
58
+ titleJa: "中断・再開基準",
52
59
  standardRef: "§4.2.7",
53
60
  description: "Conditions that would cause testing to be suspended, and conditions for resuming.",
54
61
  requiredFields: ["suspensionCriteria", "resumptionCriteria"],
@@ -56,6 +63,7 @@ export const iso29119TestPlanStructure = {
56
63
  {
57
64
  id: "test-deliverables",
58
65
  title: "Test Deliverables",
66
+ titleJa: "成果物",
59
67
  standardRef: "§4.2.8",
60
68
  description: "Documents and artifacts produced as output of the testing process.",
61
69
  requiredFields: ["deliverableList"],
@@ -63,6 +71,7 @@ export const iso29119TestPlanStructure = {
63
71
  {
64
72
  id: "testing-tasks",
65
73
  title: "Testing Tasks",
74
+ titleJa: "テスト作業",
66
75
  standardRef: "§4.2.9",
67
76
  description: "The set of tasks necessary to prepare for and perform testing.",
68
77
  requiredFields: ["taskList", "taskDependencies"],
@@ -70,6 +79,7 @@ export const iso29119TestPlanStructure = {
70
79
  {
71
80
  id: "environmental-needs",
72
81
  title: "Environmental Needs",
82
+ titleJa: "環境",
73
83
  standardRef: "§4.2.10",
74
84
  description: "Hardware, software, data, tools, and facilities required for testing.",
75
85
  requiredFields: ["hardware", "software", "testData", "tools"],
@@ -77,6 +87,7 @@ export const iso29119TestPlanStructure = {
77
87
  {
78
88
  id: "responsibilities",
79
89
  title: "Responsibilities",
90
+ titleJa: "責任分担",
80
91
  standardRef: "§4.2.11",
81
92
  description: "Roles and responsibilities of individuals or groups involved in testing.",
82
93
  requiredFields: ["roleAssignments"],
@@ -84,6 +95,7 @@ export const iso29119TestPlanStructure = {
84
95
  {
85
96
  id: "staffing-and-training-needs",
86
97
  title: "Staffing and Training Needs",
98
+ titleJa: "要員・教育",
87
99
  standardRef: "§4.2.12",
88
100
  description: "Staffing requirements and any training needed to carry out the test tasks.",
89
101
  requiredFields: ["staffingNeeds", "trainingNeeds"],
@@ -91,6 +103,7 @@ export const iso29119TestPlanStructure = {
91
103
  {
92
104
  id: "schedule",
93
105
  title: "Schedule",
106
+ titleJa: "スケジュール",
94
107
  standardRef: "§4.2.13",
95
108
  description: "Key dates, milestones, and duration estimates for testing tasks.",
96
109
  requiredFields: ["startDate", "endDate", "milestones"],
@@ -98,6 +111,7 @@ export const iso29119TestPlanStructure = {
98
111
  {
99
112
  id: "risks-and-contingencies",
100
113
  title: "Risks and Contingencies",
114
+ titleJa: "リスク・対策",
101
115
  standardRef: "§4.2.14",
102
116
  description: "Risks that could affect the testing effort, along with mitigation/contingency plans.",
103
117
  requiredFields: ["riskList"],
@@ -105,6 +119,7 @@ export const iso29119TestPlanStructure = {
105
119
  {
106
120
  id: "approvals",
107
121
  title: "Approvals",
122
+ titleJa: "承認",
108
123
  standardRef: "§4.2.15",
109
124
  description: "Names and roles of people who must approve the test plan.",
110
125
  requiredFields: ["approverList"],
@@ -1 +1 @@
1
- {"version":3,"file":"iso29119.js","sourceRoot":"","sources":["../../src/resources/iso29119.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,oDAAoD;AACpD,MAAM,CAAC,MAAM,yBAAyB,GAA8B;IAClE,QAAQ,EAAE,2BAA2B;IACrC,YAAY,EAAE,WAAW;IACzB,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,wDAAwD;YACrE,cAAc,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;SACxD;QACD;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,yEAAyE;YACtF,cAAc,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;SACvD;QACD;YACE,EAAE,EAAE,uBAAuB;YAC3B,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,oEAAoE;YACjF,cAAc,EAAE,CAAC,aAAa,CAAC;SAChC;QACD;YACE,EAAE,EAAE,2BAA2B;YAC/B,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,yEAAyE;YACtF,cAAc,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;SAC9D;QACD;YACE,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,qEAAqE;YAClF,cAAc,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC;SAC9D;QACD;YACE,EAAE,EAAE,yBAAyB;YAC7B,KAAK,EAAE,yBAAyB;YAChC,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,8EAA8E;YAC3F,cAAc,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;SACjD;QACD;YACE,EAAE,EAAE,gCAAgC;YACpC,KAAK,EAAE,oCAAoC;YAC3C,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,mFAAmF;YAChG,cAAc,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;SAC7D;QACD;YACE,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,oEAAoE;YACjF,cAAc,EAAE,CAAC,iBAAiB,CAAC;SACpC;QACD;YACE,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,gEAAgE;YAC7E,cAAc,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;SACjD;QACD;YACE,EAAE,EAAE,qBAAqB;YACzB,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,uEAAuE;YACpF,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;SAC9D;QACD;YACE,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,0EAA0E;YACvF,cAAc,EAAE,CAAC,iBAAiB,CAAC;SACpC;QACD;YACE,EAAE,EAAE,6BAA6B;YACjC,KAAK,EAAE,6BAA6B;YACpC,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,4EAA4E;YACzF,cAAc,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;SACnD;QACD;YACE,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,kEAAkE;YAC/E,cAAc,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC;SACvD;QACD;YACE,EAAE,EAAE,yBAAyB;YAC7B,KAAK,EAAE,yBAAyB;YAChC,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,sFAAsF;YACnG,cAAc,EAAE,CAAC,UAAU,CAAC;SAC7B;QACD;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,2DAA2D;YACxE,cAAc,EAAE,CAAC,cAAc,CAAC;SACjC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"iso29119.js","sourceRoot":"","sources":["../../src/resources/iso29119.ts"],"names":[],"mappings":"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"}