プログラミングをしていて単体テスト仕様書を作る時にAND条件の網羅テストをすることがあります。
そこで テスト仕様書を機械的に作成する為にJavaプログラムを作ってみました。
網羅情報の配列に条件文を設定してJavaを実行すると表示されます。
一度プログラムを実行してから=部分をLIKE・<・>などに変更すると色んなバリエーションが出来きます。
スポンサードリンク
網羅テスト用プログラム
import java.io.*; /** * 網羅テスト用プログラム * * @author Hayato * @since 2011/01/29 */ class Moura { public static void main(String args[]) throws IOException { // 網羅情報の配列 String value[][] = {{顧客TBL.顧客ID,画面入力.顧客ID}, {注文.注文ID,注文明細TBL.注文明細ID}, {注文.論理削除フラグ,TRUE}}; // 配列の数 int count = value.length; int equalCheck = 0; // 等価記号 String equal = =; // 不等価記号 String notEqual = ≠; // 記号 String sign = ; // 全一致項目パターン System.out.println(★★★ 全一致項目パターン ★★★); for (int i = 0; i < count; i++) { for (int j = 0; j < 1; j++) { System.out.println(value[i][j]+ + equal); System.out.println( + value[i][j+1]); } } System.out.println(); // 部分一致項目パターン System.out.println(★★★ 部分一致項目パターン ★★★); for (int k = 0; k < count; k++) { for (int i = 0; i < count; i++) { if (i == equalCheck) { sign = notEqual; } else { sign = equal; } for (int j = 0; j < 1; j++) { System.out.println(value[i][j] + + sign); System.out.println( + value[i][j+1]); } } equalCheck++; System.out.println(); } // 全不一致項目パターン System.out.println(★★★ 全不一致項目パターン ★★★); for (int i = 0; i < count; i++) { for (int j = 0; j < 1; j++) { System.out.println(value[i][j]+ + notEqual); System.out.println( + value[i][j+1]); } } } }
## 網羅テストパターン実行結果
★★★ 全一致項目パターン ★★★ 顧客TBL.顧客ID = 画面入力.顧客ID 注文.注文ID = 注文明細TBL.注文明細ID 注文.論理削除フラグ = TRUE ★★★ 部分一致項目パターン ★★★ 顧客TBL.顧客ID ≠ 画面入力.顧客ID 注文.注文ID = 注文明細TBL.注文明細ID 注文.論理削除フラグ = TRUE 顧客TBL.顧客ID = 画面入力.顧客ID 注文.注文ID ≠ 注文明細TBL.注文明細ID 注文.論理削除フラグ = TRUE 顧客TBL.顧客ID = 画面入力.顧客ID 注文.注文ID = 注文明細TBL.注文明細ID 注文.論理削除フラグ ≠ TRUE ★★★ 全不一致項目パターン ★★★ 顧客TBL.顧客ID ≠ 画面入力.顧客ID 注文.注文ID ≠ 注文明細TBL.注文明細ID 注文.論理削除フラグ ≠ TRUE
Javaプログラムの他にサクラエディタで使えるマクロも作りました。
エクセルで作った条件を元に サクラエディタに張り付けてマクロを実行すると 網羅情報配列が出来あがるマクロです。
適当なテキストに保存して.macに拡張子を変更して使用します。
キーボードマクロのファイル
S_ReplaceAll('t', ',', 28); // S_ReDraw(0); // 再描画 S_Up(0); // カーソル上移動 S_BeginBoxSelect(0); // 矩形範囲選択開始 S_Up(0); // カーソル上移動 S_Up(0); // カーソル上移動 S_Up(0); // カーソル上移動 S_Char(123); // 文字入力 S_Char(34); // 文字入力 S_ReplaceAll('rn', '},rn', 28); // S_ReDraw(0); // 再描画 S_DeleteBack(0); // カーソル前を削除 S_DeleteBack(0); // カーソル前を削除 S_Char(125); // 文字入力 S_WordLeft_Sel(0); // (選択)単語の左端に移動 S_WordLeft_Sel(0); // (選択)単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_GoFileTop(0); // ファイルの先頭に移動 S_Char(123); // 文字入力
キーボードマクロ実行結果
顧客TBL.顧客ID<タブ>画面入力.顧客ID 注文.注文ID<タブ>注文明細TBL.注文明細ID 注文.論理削除フラグ<タブ>TRUE
プログラミングをしていて単体テスト仕様書を作る時にAND条件の網羅テストをすることがあります。
そこで テスト仕様書を機械的に作成する為にJavaプログラムを作ってみました。
網羅情報の配列に条件文を設定してJavaを実行すると表示されます。
一度プログラムを実行してから=部分をLIKE・<・>などに変更すると色んなバリエーションが出来きます。
網羅テスト用プログラム
import java.io.*; /** * 網羅テスト用プログラム * * @author Hayato * @since 2011/01/29 */ class Moura { public static void main(String args[]) throws IOException { // 網羅情報の配列 String value[][] = {{顧客TBL.顧客ID,画面入力.顧客ID}, {注文.注文ID,注文明細TBL.注文明細ID}, {注文.論理削除フラグ,TRUE}}; // 配列の数 int count = value.length; int equalCheck = 0; // 等価記号 String equal = =; // 不等価記号 String notEqual = ≠; // 記号 String sign = ; // 全一致項目パターン System.out.println(★★★ 全一致項目パターン ★★★); for (int i = 0; i < count; i++) { for (int j = 0; j < 1; j++) { System.out.println(value[i][j]+ + equal); System.out.println( + value[i][j+1]); } } System.out.println(); // 部分一致項目パターン System.out.println(★★★ 部分一致項目パターン ★★★); for (int k = 0; k < count; k++) { for (int i = 0; i < count; i++) { if (i == equalCheck) { sign = notEqual; } else { sign = equal; } for (int j = 0; j < 1; j++) { System.out.println(value[i][j] + + sign); System.out.println( + value[i][j+1]); } } equalCheck++; System.out.println(); } // 全不一致項目パターン System.out.println(★★★ 全不一致項目パターン ★★★); for (int i = 0; i < count; i++) { for (int j = 0; j < 1; j++) { System.out.println(value[i][j]+ + notEqual); System.out.println( + value[i][j+1]); } } } }
## 網羅テストパターン実行結果
★★★ 全一致項目パターン ★★★ 顧客TBL.顧客ID = 画面入力.顧客ID 注文.注文ID = 注文明細TBL.注文明細ID 注文.論理削除フラグ = TRUE ★★★ 部分一致項目パターン ★★★ 顧客TBL.顧客ID ≠ 画面入力.顧客ID 注文.注文ID = 注文明細TBL.注文明細ID 注文.論理削除フラグ = TRUE 顧客TBL.顧客ID = 画面入力.顧客ID 注文.注文ID ≠ 注文明細TBL.注文明細ID 注文.論理削除フラグ = TRUE 顧客TBL.顧客ID = 画面入力.顧客ID 注文.注文ID = 注文明細TBL.注文明細ID 注文.論理削除フラグ ≠ TRUE ★★★ 全不一致項目パターン ★★★ 顧客TBL.顧客ID ≠ 画面入力.顧客ID 注文.注文ID ≠ 注文明細TBL.注文明細ID 注文.論理削除フラグ ≠ TRUE
Javaプログラムの他にサクラエディタで使えるマクロも作りました。
エクセルで作った条件を元に サクラエディタに張り付けてマクロを実行すると 網羅情報配列が出来あがるマクロです。
適当なテキストに保存して.macに拡張子を変更して使用します。
キーボードマクロのファイル
S_ReplaceAll('t', ',', 28); // S_ReDraw(0); // 再描画 S_Up(0); // カーソル上移動 S_BeginBoxSelect(0); // 矩形範囲選択開始 S_Up(0); // カーソル上移動 S_Up(0); // カーソル上移動 S_Up(0); // カーソル上移動 S_Char(123); // 文字入力 S_Char(34); // 文字入力 S_ReplaceAll('rn', '},rn', 28); // S_ReDraw(0); // 再描画 S_DeleteBack(0); // カーソル前を削除 S_DeleteBack(0); // カーソル前を削除 S_Char(125); // 文字入力 S_WordLeft_Sel(0); // (選択)単語の左端に移動 S_WordLeft_Sel(0); // (選択)単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_WordLeft(0); // 単語の左端に移動 S_GoFileTop(0); // ファイルの先頭に移動 S_Char(123); // 文字入力
## キーボードマクロ実行結果
顧客TBL.顧客ID<タブ>画面入力.顧客ID 注文.注文ID<タブ>注文明細TBL.注文明細ID 注文.論理削除フラグ<タブ>TRUE
※ <タブ>は\tのタブとなります。
↓
{{顧客TBL.顧客ID,画面入力.顧客ID}, {注文.注文ID,注文明細TBL.注文明細ID}, {注文.論理削除フラグ,TRUE}}
※ <タブ>は\tのタブとなります。
↓
{{顧客TBL.顧客ID,画面入力.顧客ID}, {注文.注文ID,注文明細TBL.注文明細ID}, {注文.論理削除フラグ,TRUE}}
最新記事 by hayato (全て見る)
- 🎬「ミッション:インポッシブル/デッドレコニング PART ONE」感想: アクションがバチバチ!🎬今年28作品目 - 2023年8月28日
- 💖ディズニー最新作「マイ・エレメント」: 恋に落ちる2人の魅力的なキャラクター!🎞️今年27作品目 - 2023年8月27日
- 🎬 宮崎駿最新作「君たちはどう生きるか」鑑賞✨ 豪華声優陣‼️😊今年26作品目🎉 - 2023年8月16日
コメントを残す