カバレッジ統計を再スキャンで更新(予約語171/205=83.4%、高頻度89.4%/低頻度62.2%)。テスト制約補足状態を削除
This commit is contained in:
+82
-48
@@ -105,11 +105,12 @@
|
||||
> 凡例:◎=全構文形式使用、△=一部構文形式使用、×=未使用
|
||||
>
|
||||
> 判定基準:定義書の「構文形式一覧」に記載された各形式がコードベースで使用されているかどうかで評価。
|
||||
> 2026-08-06 に全48プログラムを再スキャンし、◎/△/×を更新(◎138 / △33 / ×34)。
|
||||
|
||||
| No. | 予約語 | 使用状況 | 使用プログラム/備考 |
|
||||
|:---:|--------|:-------:|-------------------|
|
||||
| 1 | ACCEPT | △ | FROM COMMAND-LINEのみ(KIN06CLD,KIN09CSV)。FROM DATE/TIME/DAY未使用 |
|
||||
| 2 | ACCESS | × | ACCESS MODE句未使用 |
|
||||
| 2 | ACCESS | △ | ACCESS MODE IS SEQUENTIAL(全プログラムのSELECT)。RANDOM/DYNAMIC未使用 |
|
||||
| 3 | ADD | ◎ | ADD TO/GIVING/CORRESPONDING/ROUNDED 全メインプログラム |
|
||||
| 4 | AFTER | △ | WRITE AFTER ADVANCING(KIN09CSV)、PERFORM TEST AFTER(ZAN06UPD)のみ。INSPECT AFTER未使用 |
|
||||
| 5 | ALL | △ | SEARCH ALL(KIN03EXP,ZAN03CHK)、INSPECT REPLACING ALL(KIN08DBU,KIN09CSV)。FIGURATIVE CONSTANT(VALUE ALL)未使用 |
|
||||
@@ -117,18 +118,18 @@
|
||||
| 7 | ALPHABETIC-UPPER | ◎ | JIN01KNS(半角カナ大文字チェック: IF NOT ALPHABETIC-UPPER) |
|
||||
| 8 | ALSO | ◎ | EVALUATE ALSO(KYU04CAL: 勤怠区分×手当種別の複合分岐) |
|
||||
| 9 | AND | ◎ | 条件式AND 全プログラム |
|
||||
| 10 | ANY | × | SEARCH ANY未使用 |
|
||||
| 10 | ANY | △ | EVALUATE ALSO ANY(KYU04CAL: WHEN 'LATE' ALSO ANY)。SEARCH ANY未使用 |
|
||||
| 11 | APPLY | × | I-O-CONTROL段落未使用 |
|
||||
| 12 | ASCENDING | ◎ | OCCURS ASCENDING KEY(KIN01INP,KIN03EXP,KIN06CLD,SUB04CHK,ZAN03CHK,JIN02SKL)、SEARCH ALL |
|
||||
| 13 | ASSIGN | ◎ | SELECT ASSIGN TO 全プログラム |
|
||||
| 14 | AT | △ | READ AT END、SEARCH AT END使用。WRITE AT END-OF-PAGE(JIN04PRT: LINAGE制御ページヘッダー) |
|
||||
| 15 | AUTHOR | ◎ | IDENTIFICATION DIVISION 全プログラム |
|
||||
| 15 | AUTHOR | × | IDENTIFICATION DIVISION 段落未使用(ヘッダコメントで代替) |
|
||||
| 16 | BINARY | △ | PIC 9(002) BINARY(JIN02SKL: マスタレベル定義) |
|
||||
| 17 | BLOCK | ◎ | FD BLOCK CONTAINS 全ファイル入出力PGM |
|
||||
| 18 | BY | ◎ | PERFORM VARYING BY、MULTIPLY BY、DIVIDE BY使用。CALL BY CONTENT(JIN05UPD: 3400DBERRSOR) |
|
||||
| 19 | CALL | △ | CALL USING使用。ON EXCEPTION(JIN08TST: 1000ITTTST SUB01DAT呼出)。NOT ON EXCEPTION/RETURNING未使用 |
|
||||
| 20 | CHARACTER | × | OBJECT-COMPUTER未使用 |
|
||||
| 21 | CHARACTERS | ◎ | INSPECT CHARACTERS(ZAN01CHK,KIN04CHK,SUB04CHK) |
|
||||
| 20 | CHARACTER | △ | PADDING CHARACTER IS(JIN01KNS, JIN02SKL, JIN03RAN, JIN09RPT, KYU01CVT 等のSELECT)。OBJECT-COMPUTER MEMORY SIZE未使用 |
|
||||
| 21 | CHARACTERS | × | INSPECT CHARACTERS未使用(INSPECTはTALLYING/REPLACING/CONVERTINGのみ) |
|
||||
| 22 | CLOSE | ◎ | CLOSE(単純CLOSE)。WITH LOCK(JIN04PRT, JIN05UPD) |
|
||||
| 23 | COMP | ◎ | USAGE COMP カウンタ/フラグ |
|
||||
| 24 | COMP-3 | ◎ | USAGE COMP-3 集計/金額項目 |
|
||||
@@ -140,13 +141,13 @@
|
||||
| 30 | CONTINUE | ◎ | SEARCH AT END、EVALUATE WHEN OTHER(全プログラム) |
|
||||
| 31 | CONVERTING | ◎ | INSPECT CONVERTING X"0D"/X"0A" TO SPACE(KYU01CVT: 引用符内改行→SPACE変換) |
|
||||
| 32 | COPY | ◎ | COPY 全プログラム(C書式取込み、REPLACING含む) |
|
||||
| 33 | CORR | ◎ | MOVE CORRESPONDING (JIN03RAN: WS-CORR-SRC→WS-CORR-DST) |
|
||||
| 33 | CORR | × | MOVE CORRESPONDING(完全形)使用(JIN03RAN: WS-CORR-SRC→WS-CORR-DST)。CORR 省略形は未使用 |
|
||||
| 34 | COUNT | ◎ | UNSTRING COUNT IN(KYU01CVT: CSV分解の項目数カウント) |
|
||||
| 35 | CURSOR | ◎ | DECLARE/OPEN/FETCH/CLOSE CURSOR(KIN02UPD,KIN03EXP,KIN06CLD,KIN09CSV) |
|
||||
| 36 | DATA | ◎ | DATA DIVISION 全プログラム |
|
||||
| 37 | DATE | △ | ACCEPT FROM DATE(JIN04PRT: 1000ITTSOR) |
|
||||
| 38 | DATE-COMPILED | ◎ | IDENTIFICATION DIVISION 全プログラム |
|
||||
| 39 | DATE-WRITTEN | ◎ | IDENTIFICATION DIVISION 全プログラム |
|
||||
| 38 | DATE-COMPILED | × | IDENTIFICATION DIVISION 段落未使用 |
|
||||
| 39 | DATE-WRITTEN | × | IDENTIFICATION DIVISION 段落未使用 |
|
||||
| 40 | DECLARATIVES | ◎ | USE AFTER ERROR PROCEDURE(KYU01CVT: R01/W01/W02ファイルエラー時ABEND) |
|
||||
| 41 | DELETE | △ | EXEC SQL DELETE(KIN02UPD,KIN08DBU)。COBOL DELETE文(SEQ FILE)未使用 |
|
||||
| 42 | DELIMITED | ◎ | STRING/UNSTRING DELIMITED BY |
|
||||
@@ -159,7 +160,7 @@
|
||||
| 49 | DIVISION | ◎ | IDENTIFICATION/ENVIRONMENT/DATA/PROCEDURE DIVISION 全プログラム |
|
||||
| 50 | DOWN | × | 未使用 |
|
||||
| 51 | DYNAMIC | × | 未使用 |
|
||||
| 52 | EJECT | ◎ | ソース行 EJECT(JIN09RPT: PROCEDURE DIVISION 直後) |
|
||||
| 52 | EJECT | × | EJECT ディレクティブ未使用(`*EJECT` コメント行のみ) |
|
||||
| 53 | ELSE | ◎ | IF ELSE END-IF 全プログラム |
|
||||
| 54 | END | ◎ | END-IF、END-READ、END-PERFORM等スコープターミネータ 全プログラム |
|
||||
| 55 | END-ADD | ◎ | JIN02SKL(ADD END-ADD) |
|
||||
@@ -187,7 +188,7 @@
|
||||
| 77 | FILE | ◎ | FILE SECTION、FILE-CONTROL 全プログラム |
|
||||
| 78 | FILE-CONTROL | ◎ | FILE-CONTROL SELECT ASSIGN 全プログラム |
|
||||
| 79 | FILLER | ◎ | FILLER 全プログラム(DATA DIVISION) |
|
||||
| 80 | FIRST | ◎ | INSPECT FIRST(ZAN01CHK,KIN04CHK,SUB04CHK) |
|
||||
| 80 | FIRST | × | INSPECT FIRST未使用(WRK-FIRST-FLG 等の変数名のみ) |
|
||||
| 81 | FOR | ◎ | PERFORM VARYING...FOR(KIN06CLD,KIN08DBU,ZAN06UPD) |
|
||||
| 82 | FROM | ◎ | STRING FROM、PERFORM VARYING FROM、ACCEPT FROM |
|
||||
| 83 | GET | × | 未使用 |
|
||||
@@ -215,7 +216,7 @@
|
||||
| 105 | LABEL | ◎ | FD LABEL RECORDS STANDARD |
|
||||
| 106 | LENGTH | ◎ | LENGTH OF(SUB04CHK) |
|
||||
| 107 | LINKAGE | ◎ | LINKAGE SECTION サブプログラム(SUB01-05)+CALL有PGM |
|
||||
| 108 | LOW-VALUE | ◎ | LOW-VALUES(KIN08DBU) |
|
||||
| 108 | LOW-VALUE | △ | LOW-VALUES(複数形)使用(KIN08DBU, SHA01CVT, SHA02MNC, SHA03MNP)。単数形LOW-VALUE未使用 |
|
||||
| 109 | MODE | ◎ | RECORDING MODE F/V |
|
||||
| 110 | MOVE | ◎ | MOVE TO 全20プログラム |
|
||||
| 111 | MULTIPLY | ◎ | MULTIPLY BY/GIVING/ROUNDED(KIN07DAI,ZAN06UPD) |
|
||||
@@ -230,11 +231,11 @@
|
||||
| 120 | OPEN | ◎ | OPEN INPUT/OUTPUT 全ファイル入出力PGM |
|
||||
| 121 | OPTIONS | × | CBL/PROCESS文未使用 |
|
||||
| 122 | OR | ◎ | 条件式OR、UNSTRING DELIMITED BY OR |
|
||||
| 123 | ORDER | × | COBOL SORT未使用(SQL ORDER BYはCOBOL SORT文のORDERとは異なる) |
|
||||
| 124 | ORGANIZATION | × | ORGANIZATION句未使用 |
|
||||
| 123 | ORDER | △ | EXEC SQL ORDER BY(KIN03EXP, KIN06CLD, KIN09CSV 等)。COBOL SORT文のORDER句は未使用 |
|
||||
| 124 | ORGANIZATION | △ | ORGANIZATION IS SEQUENTIAL(全プログラムのSELECT)。INDEXED/RELATIVE未使用 |
|
||||
| 125 | OTHER | ◎ | EVALUATE WHEN OTHER |
|
||||
| 126 | OUTPUT | ◎ | OPEN OUTPUT |
|
||||
| 127 | PACKED-DECIMAL | △ | JIN02SKL(AGG-LEVEL/AGG-AVG-SCORE PIC 9(n) PACKED-DECIMAL) |
|
||||
| 127 | PACKED-DECIMAL | × | 未使用(集計・金額項目は COMP-3 / BINARY を使用) |
|
||||
| 128 | PAGE | ◎ | FD LINAGE IS(KYU08PRI: 66行ページ制御)、WRITE BEFORE/AFTER ADVANCING PAGE |
|
||||
| 129 | PAGE-COUNTER | × | 未使用(KYU08PRIはWORKING-STORAGEのWRK-PAGE-COUNTERで代替。特殊レジスタPAGE-COUNTERは不使用) |
|
||||
| 130 | PERFORM | ◎ | PERFORM(外部段落)/UNTIL/VARYING/THRU/TEST AFTER使用。JIN09RPTでVARYING多重ループ(社員×明細×内部表20) |
|
||||
@@ -246,7 +247,7 @@
|
||||
| 136 | READ | △ | READ INTO AT END使用。KEY IS/NEXT/PREVIOUS/WITH WAIT/LOCK未使用 |
|
||||
| 137 | RECORD | ◎ | FD RECORD CONTAINS、RECORDING MODE |
|
||||
| 138 | RECORDING | ◎ | FD RECORDING MODE F/V |
|
||||
| 139 | RECORDS | ◎ | FD LABEL RECORDS STANDARD、BLOCK CONTAINS RECORDS |
|
||||
| 139 | RECORDS | × | FD LABEL RECORD IS STANDARD(単数形)。RECORDS 複数形は未使用 |
|
||||
| 140 | REDEFINES | ◎ | REDEFINES(各種PGM WORKING-STORAGE) |
|
||||
| 141 | REMAINDER | ◎ | DIVIDE GIVING REMAINDER(ZAN01,ZAN05,SUB05,KIN07) |
|
||||
| 142 | REMOVAL | × | CLOSE FOR REMOVAL未使用 |
|
||||
@@ -290,7 +291,7 @@
|
||||
| 180 | USE | ◎ | USE AFTER ERROR PROCEDURE(KYU01CVT: DECLARATIVESでファイルエラー捕捉) |
|
||||
| 181 | USING | ◎ | PROCEDURE DIVISION USING、CALL USING 全プログラム |
|
||||
| 182 | VALUE | ◎ | VALUE 全プログラム(88条件名、初期値) |
|
||||
| 183 | VALUES | × | 88条件値VALUES(VALUE句複数値)未使用。SQLのVALUES句は別コンテキスト |
|
||||
| 183 | VALUES | △ | EXEC SQL INSERT ... VALUES(KIN02UPD, KIN08DBU 等)。COBOL VALUE句複数指定は未使用 |
|
||||
| 184 | VARYING | ◎ | PERFORM VARYING(ZAN06UPD,KIN06CLD,KIN08DBU)、SEARCH VARYING(KIN01INP) |
|
||||
| 185 | WHEN | ◎ | EVALUATE WHEN、SEARCH WHEN |
|
||||
| 186 | WHEN-COMPILED | ◎ | FUNCTION WHEN-COMPILED 全15プログラム |
|
||||
@@ -302,7 +303,7 @@
|
||||
| 192 | ZEROS | ◎ | ZEROS(ZEROと同義、KIN08DBU LOW-VALUES) |
|
||||
| 193 | ALTER | × | 非推奨 |
|
||||
| 194 | CANCEL | ◎ | CANCEL 'SUB02MSG'(JIN09RPT: 4000STPSOR) |
|
||||
| 195 | ENTRY | × | 未使用 |
|
||||
| 195 | ENTRY | △ | KYU09MRG: ENTRY 'KYU09ENT' USING ENTRYPAR(代替エントリポイント定義) |
|
||||
| 196 | MERGE | ◎ | COBOL MERGE文(KYU09MRG: SALARY-NET + BONUS-DATA を社員番号昇順結合) |
|
||||
| 197 | RELEASE | ◎ | COBOL RELEASE文(JIN06SRT: 2110READSOR INPUT PROCEDURE内でSORTレコード送出) |
|
||||
| 198 | RETURN | ◎ | COBOL RETURN文(KYU09MRG: MERGE OUTPUT、JIN06SRT: 2120OUTPUSOR SORT OUTPUT PROCEDURE) |
|
||||
@@ -314,6 +315,60 @@
|
||||
| 204 | BEFORE | ◎ | WRITE BEFORE ADVANCING PAGE/1 LINE(KYU08PRI: 給与明細印刷の改ページ制御) |
|
||||
| 205 | ADDRESS | △ | MOVE ADDRESS OF(JIN07SUB: 0000MAINSOR)。SET ADDRESS OF未使用 |
|
||||
|
||||
### 3.1 頻度別サマリ
|
||||
|
||||
> 頻度区分は COBOLキーワード網羅定義書.md の「カテゴリ」(高頻度 / 低頻度)に基づく。
|
||||
|
||||
| 区分 | 総数 | ◎ | △ | × | 使用率(◎+△) | 完全使用率(◎) |
|
||||
|:----|:---:|:--:|:--:|:--:|:---:|:---:|
|
||||
| 高頻度 | 160 | 118 | 25 | 17 | 89.4% | 73.8% |
|
||||
| 低頻度 | 45 | 20 | 8 | 17 | 62.2% | 44.4% |
|
||||
| **合計** | **205** | **138** | **33** | **34** | **83.4%** | **67.3%** |
|
||||
|
||||
#### 高頻度・未使用(17語)
|
||||
|
||||
| 予約語 | 備考 |
|
||||
|:------|:-----|
|
||||
| APPLY | I-O-CONTROL 段落未使用 |
|
||||
| CHARACTERS | INSPECT CHARACTERS 未使用 |
|
||||
| CORR | MOVE CORRESPONDING(完全形)のみ。省略形は未使用 |
|
||||
| DISPLAY-1 | 未使用(日本語項目は PIC X) |
|
||||
| DOWN | SET DOWN BY 未使用 |
|
||||
| EJECT | EJECT ディレクティブ未使用(`*EJECT` コメントのみ) |
|
||||
| FIRST | INSPECT FIRST 未使用 |
|
||||
| PACKED-DECIMAL | 未使用(COMP-3 / BINARY を使用) |
|
||||
| PAGE-COUNTER | 未使用(WORKING-STORAGE で代替) |
|
||||
| RECORDS | FD LABEL RECORD(単数形)を使用 |
|
||||
| REMOVAL | CLOSE FOR REMOVAL 未使用 |
|
||||
| SKIP2 | ディレクティブ未使用(`*SKIP2` コメントのみ) |
|
||||
| TABLE | SEARCH TABLE 句未使用(変数名のみ) |
|
||||
| UP | SET UP BY 未使用 |
|
||||
| WRITE-ONLY | I-O-CONTROL 段落未使用 |
|
||||
| REWRITE | VSAM 非対応 |
|
||||
| START | 順次読込のみ |
|
||||
|
||||
#### 低頻度・未使用(17語)
|
||||
|
||||
| 予約語 | 備考 |
|
||||
|:------|:-----|
|
||||
| AUTHOR | IDENTIFICATION 段落未使用 |
|
||||
| CONDITION | 条件名定義句未使用 |
|
||||
| DATE-COMPILED | IDENTIFICATION 段落未使用 |
|
||||
| DATE-WRITTEN | IDENTIFICATION 段落未使用 |
|
||||
| DELIMITER | UNSTRING DELIMITER IN 未使用 |
|
||||
| DYNAMIC | ACCESS MODE DYNAMIC 未使用 |
|
||||
| EXECUTE | 非推奨(未使用) |
|
||||
| GET | 未使用 |
|
||||
| ID | PROGRAM-ID 以外の ID 未使用 |
|
||||
| INVALID | INVALID KEY 句未使用(VSAM 非対応) |
|
||||
| OPTIONS | CBL/PROCESS 文未使用 |
|
||||
| RANDOM | ACCESS MODE RANDOM 未使用 |
|
||||
| RERUN | I-O-CONTROL 段落未使用 |
|
||||
| SHIFT-IN | DBCS シフト制御未使用 |
|
||||
| SHIFT-OUT | DBCS シフト制御未使用 |
|
||||
| TYPE | 変数名(WRK-ERR-TYPE 等)のみで TYPE 句未使用 |
|
||||
| ALTER | 非推奨(未使用) |
|
||||
|
||||
---
|
||||
|
||||
## 4. 全体サマリ
|
||||
@@ -332,12 +387,16 @@
|
||||
| カバレッジ率 | 90.9% |
|
||||
| **予約語カバレッジ(Section 3)** | |
|
||||
| 全予約語数 | 205 |
|
||||
| 全構文形式使用(◎): | 147 |
|
||||
| 一部構文形式使用(△): | 28 |
|
||||
| 未使用(×) | 30 語 | JIN07SUB/JIN08TST追加後(OMITTED を◎化、ADDRESS を△化。SKIP2 はコメント行のため × に是正) |
|
||||
|
||||
| カバレッジ率(◎/205) | 71.7% |
|
||||
| カバレッジ率(◎+△/205) | 85.4% | JIN07SUB/JIN08TST追加後(OMITTED ◎化、ADDRESS △化。SKIP2 × 是正) |
|
||||
| 全構文形式使用(◎): | 138 |
|
||||
| 一部構文形式使用(△): | 33 |
|
||||
| 未使用(×) | 34 語 | 全コード再スキャン(2026-08-06)で確定 |
|
||||
| カバレッジ率(◎/205) | 67.3% |
|
||||
| カバレッジ率(◎+△/205) | 83.4% |
|
||||
| **予約語カバレッジ(頻度別)** | |
|
||||
| 高頻度予約語(160語) | 143 使用 / 17 未使用 |
|
||||
| 高頻度カバレッジ率 | 89.4% |
|
||||
| 低頻度予約語(45語) | 28 使用 / 17 未使用 |
|
||||
| 低頻度カバレッジ率 | 62.2% |
|
||||
| **TYPE定義カバレッジ(11種)** | |
|
||||
| 全TYPE定義数 | 11 |
|
||||
| 使用済TYPE | 10(X, N, 9, 9V9, S9V9, S9V9 COMP-3, S9 COMP-3, S9 COMP, S9 BINARY, ZZZ9) |
|
||||
@@ -347,28 +406,3 @@
|
||||
|
||||
> 本ファイルは全コードベース(JIN01-09 + KIN01-09 + ZAN01-06 + KYU01-09 + SHA01-10 + SUB01-05 = 48プログラム)を統合したカバレッジ状況。
|
||||
> 定義ファイル(COBOLキーワード網羅定義書.md)と合わせて参照すること。
|
||||
|
||||
---
|
||||
|
||||
## 5. テスト制約補足
|
||||
|
||||
### 5.1 JIN01KNS: 桁数超過チェック(K001)が固定長FBデータでテスト不能
|
||||
|
||||
JIN01KNS の `2020CHKSIZSOR` では「半角20桁超過」をチェックしている(VF-A001)。
|
||||
しかし、入力ファイル R01 は FD 固定長(`RECORDING MODE IS F`)であり、各フィールドは定義長で切り詰められる。
|
||||
|
||||
- `R01KANA-SEI` は `PIC X(020)` のため、20文字を超えるデータはFD読込時点で存在し得ない
|
||||
- `FUNCTION LENGTH(FUNCTION TRIM(R01KANA-SEI TRAILING))` の最大値は常に20であり、
|
||||
`20 > 20` が成立することはない
|
||||
|
||||
したがって **K001 該当ブランチ(半角21文字以上)は固定長FBデータでは本質的にテスト不能**。
|
||||
このチェックは可変長入力(CSV → FB 変換後の過剰長検出など)を想定した防御的実装であり、
|
||||
FB 固定長運用下ではデッドコード相当となる。
|
||||
|
||||
| 項目 | 内容 |
|
||||
|:----|:------|
|
||||
| プログラム | JIN01KNS |
|
||||
| 対象ブランチ | K001(半角20桁超過 → W02出力) |
|
||||
| テスト制約 | FB固定長FDのため21文字以上のデータが入力不可 |
|
||||
| 影響 | 該当ブランチの実行カバレッジは取得不可 |
|
||||
| 対処 | テスト不能であることを本ドキュメントで明示。コード自体は正しく動作する |
|
||||
|
||||
Reference in New Issue
Block a user