最終更新: 2026/06/22 18:56
MAS-098: RPA起票の冪等性テスト自動化
概要
| 項目 | 内容 |
|---|---|
| 案件ID | MAS-098 |
| カテゴリ | テスト |
| Phase | P1 |
| 優先度 | ★★★ |
| 所要時間 | 30分 |
| 対象ファイル | 900_test/901_test_runner.js |
| 前提案件 | MAS-076(isDuplicate_ 冪等性バグ修正) |
目的
MAS-076 の修正後、冪等性が回帰しないことを自動テストで担保する。テストランナーに「同一条件で2回実行→2回目は0件」の冪等性検証を追加する。
テスト仕様
テストケース: T9-IdempotencyGuard
| # | テスト名 | 対象関数 | 手順 | 期待結果 |
|---|---|---|---|---|
| T9-1 | SaaS冪等性 | generateSaasInvoices | 同一ターゲット月で2回実行 | 2回目の戻り値が 0 |
| T9-2 | HC冪等性 | generateHcInvoices | 同上 | 同上 |
| T9-3 | CAPEX冪等性 | generateCapexInvoices | 同上 | 同上 |
| T9-4 | Finance冪等性 | generateFinanceInvoices | 同上 | 同上 |
| T9-5 | Adhoc冪等性 | generateAdhocInvoices | 同上 | 同上 |
| T9-6 | Pipeline冪等性 | generatePipelineInvoices | 同上 | 同上 |
実装方針
901_test_runner.js に以下のテスト関数を追加:
function testIdempotency_() {
// 1回目: 通常実行(件数を記録)
var count1 = generateSaasInvoices(TEST_TARGET_YM, true);
// 2回目: 同一条件で再実行(0件であること)
var count2 = generateSaasInvoices(TEST_TARGET_YM, true);
addResult_('T9-1', 'SaaS冪等性', count2 === 0,
'2回目=' + count2 + '件 (期待: 0件)');
}
注意事項
- テストは
_silent = trueで実行し、UIダイアログを抑制する - 1回目の実行で生成されたINVは、テスト後にクリーンアップするか、テスト専用の対象月(過去月)を使用してデータ汚染を防ぐ
- 既存のテストケース(T1〜T8)との干渉を避けるため、テスト実行順序に注意
関連ドキュメント
| 仕様書 | 関連箇所 |
|---|---|
| B.1 テスト概要・戦略 | テストランナーの設計方針、テストケース一覧(T1〜T8 に T9 を追加) |
| B.3 統合テスト手順 | 統合テストの実行手順(Phase 1 の RPA テスト) |
| D.1 MAS-076 isDuplicate_ 冪等性バグ修正 | 本テストの前提となるバグ修正 |
| 4.3.1 HC(人件費) | T9-2 テスト対象 |
| 4.3.2 SaaS・サブスク | T9-1 テスト対象 |
| 4.3.3 CAPEX(設備投資・借入) | T9-3 テスト対象 |
人間が検討すべき事項
テスト対象のRPA関数の範囲(全6種 or 主要のみ)
変更履歴
| 日付 | 変更内容 |
|---|---|
| 2026-04-14 10:33 | 初版作成 |