プログラミングをしていて単体テスト仕様書を作る時にAND条件の網羅テストをすることがあります。
そこで テスト仕様書を機械的に作成する為にJavaプログラムを作ってみました。
網羅情報の配列に条件文を設定してJavaを実行すると表示されます。
一度プログラムを実行してから=部分をLIKE・<・>などに変更すると色んなバリエーションが出来きます。
網羅テスト用プログラム
[code lang=java]
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]);
}
}
}
}
[/code]
## 網羅テストパターン実行結果
[code lang=java]
★★★ 全一致項目パターン ★★★
顧客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
[/code]
Javaプログラムの他にサクラエディタで使えるマクロも作りました。
エクセルで作った条件を元に サクラエディタに張り付けてマクロを実行すると 網羅情報配列が出来あがるマクロです。
適当なテキストに保存して.macに拡張子を変更して使用します。
キーボードマクロのファイル
[code lang=css]
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); // 文字入力
[/code]
キーボードマクロ実行結果
[code lang=css]
顧客TBL.顧客ID<タブ>画面入力.顧客ID
注文.注文ID<タブ>注文明細TBL.注文明細ID
注文.論理削除フラグ<タブ>TRUE
[/code]
プログラミングをしていて単体テスト仕様書を作る時にAND条件の網羅テストをすることがあります。
そこで テスト仕様書を機械的に作成する為にJavaプログラムを作ってみました。
網羅情報の配列に条件文を設定してJavaを実行すると表示されます。
一度プログラムを実行してから=部分をLIKE・<・>などに変更すると色んなバリエーションが出来きます。
網羅テスト用プログラム
[code lang=java]
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]);
}
}
}
}
[/code]
## 網羅テストパターン実行結果
[code lang=java]
★★★ 全一致項目パターン ★★★
顧客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
[/code]
Javaプログラムの他にサクラエディタで使えるマクロも作りました。
エクセルで作った条件を元に サクラエディタに張り付けてマクロを実行すると 網羅情報配列が出来あがるマクロです。
適当なテキストに保存して.macに拡張子を変更して使用します。
キーボードマクロのファイル
[code lang=css]
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); // 文字入力
[/code]
## キーボードマクロ実行結果
[code lang=css]
顧客TBL.顧客ID<タブ>画面入力.顧客ID
注文.注文ID<タブ>注文明細TBL.注文明細ID
注文.論理削除フラグ<タブ>TRUE
[/code]
※ <タブ>は\tのタブとなります。
↓
[code lang=text]
{{顧客TBL.顧客ID,画面入力.顧客ID},
{注文.注文ID,注文明細TBL.注文明細ID},
{注文.論理削除フラグ,TRUE}}
[/code]
※ <タブ>は\tのタブとなります。
↓
[code lang=text]
{{顧客TBL.顧客ID,画面入力.顧客ID},
{注文.注文ID,注文明細TBL.注文明細ID},
{注文.論理削除フラグ,TRUE}}
[/code]
最新記事 by hayato (全て見る)
- 白蛇の奇跡から始まる!ハリー・ポッター体験と家族旅⛩️🐍🪄 – 2024年10月21日
- 雲に隠れる富士山⁉️ 富士五湖で感じた絶景と旅🚗 – 2024年10月20日
- 🏔️富士山旅行!新倉山で絶景満喫&本栖湖温泉に宿泊✨🍜 – 2024年10月19日
コメントを残す