横山実習室へ戻る
テストケースジェネレータ完成
試供品無料提供
試供ツールダウンロード
(2007年12月6日公開)
本格的に使用して、テストの効率化をめざす方、256テンプレート バージョンも完成しています。
現在の状況と今後の予定
*このページで色々と書いてきましたが、それぞれが書いた時点の状況で 全体での整合性はありません。
ソースやクラスもゴチャゴチャで書いた本人でも、どれがどう動くか?です。
*今後とも趣味で書いているので思いついたところは勝手に訂正していきますが
整合性は保障できません。できるだけ日付を入れて新しいものと古いものが 区別できるようにしたいと思っています。



本当にHAYSTは効果があるか

C言語はOS(UNIX)を開発する言語として設計され、今でも高い評価である。
HAYSTのテストツールもかなり有名になり、多くの書籍が氾濫しています
このページを利用してテスト効率の改善を試みる有名会社の社員の方からの
メールもいただき感謝しています。メール(takefumi1604@ybb.ne.jp)
テストツールの内容を今ここに解説する
利用者からの反響(メールの抜粋)
直行表とテンプレートの理解

最新のプログラムのダウンロード(JAR形式)2012版
このプログラムを使用するにはJAVAの開発環境が必要です。
ダウンロードしたらコマンド入力(DOS窓)で testg.jarのあるところで
jar xvf testg.jar のコマンドでJAVAで作られたプログラムが展開されます

ツールの機能と利用方法

1 ツールの概要

このツールはテストデータの組み合わせを自動的に作成するもので、どの2項目を
見ても2項目間ではすべての組み合わせを作り出している。
組み合わせを作る原理は、直交表を使用する、Hayst法と呼ばれている方法を使用
している。

2 使用方法

 .謄好肇如璽燭旅猝椶函△修涼佑鬟謄ストファイルで以下の様に作成する。

コード{01,02,03,04}
数量{1,99999}
単価{1.01,99.99}

このツールでは{},で形式を見るだけで、内容は一切関知しない。
この例ではコードとゆう項目は 01 02 03 04 の4つの値をテストし、
数量は 1  と 99999 の2値、単価は 1.01 と99.99の2値をテストすることを
示している。

◆DOS窓で以下の通りJAVAのプログラムを起動する。

java HaystGUI または java TestGen 入力ファイル 出力ファイル

td01.txtが入力のファイル名で,離侫.ぅ襪任△襦
ans01.csvが出力ファイルでEXCELを使用して編集印刷されることを想定している。

3 取り扱うデータの範囲

 .謄好塙猝椶涼

1項目の値の数は 2値 4値 8値 16値 であるが、16値以内なら内部で
この数にあわせる、足りないものは先頭から2回つかわれる。

◆々猝椰
項目数は以下の式で制限される。
2値 4値 8値 16値のそれぞれの項目数を n2 n4 n8 n16とすると
n2+n4*3+n8*7+n16*15が256以下であるが、それぞれの数が自由に決められる
のではない。
組み合わせの例を{n16,n8,n4,n2}の形で示すと以下の通りである。

{17,0,0,0},
{8,12,13,12},
{6,14,19,10},
{6,13,21,11},
{4,18,13,30},

ただし、n16は n4を5個またはn8とn2が8個とゆうように置き換えられるので各種
の組み合わせで可能であり、目安は最初に示した式で実際はプログラムの中ででき
る範囲を自動的に制限している。

試供品においては、上記式の値は64に制限される。

4 出力の例
テストケース 一覧表
,コード,数量,単価
case1,01,1,1.01
case2,04,1,1.01
case3,03,1,99.99
case4,02,1,99.99
case5,02,99999,1.01
case6,03,99999,1.01
case7,04,99999,99.99
case8,01,99999,99.99

使用方法で示した例の結果は上記の通りである。
コード,数量,単価と入力の順に値を出力する。
この例では、8個の組み合わせでどの2項目の組み合わせは全てカバーしている。

5 実際に適用する面での疑問点と解決策

  ここでは一般論ではなく、長年に渡る経験に基づく直感からの参考意見
 であり、異論のある人はこの説明を無視してください。
(疑問1)256では不足で512、1024のツールが必要ではないか?。
(回答)拡張は容易だが、別の工夫で対処すべきと考える。次項以降参照。

(疑問2)多くの項目は他の項目との関係よりはその項目の値の多様性の方
    が重要ではないか。MAX16値では不足。
(回答)そのとおりと思う、対処方法は簡単でこのツールに与える値は
    正常値と異常値の2値のみとして、出来上がったケースの最適の行を
    コピーして当該の値を変えて必要なだけ増やせばよい。
(疑問3)不要な組み合わせでケース数が多くなり、形式的な作業となり、
    実質の効果が現れないのではないか。
(回答)そのとおりと思う、ヒントとしては組み合わせが重要でないものは
    疑問2のようにすれば、解決する。
(疑問4)このツールは単体テスト、結合テスト、総合テストのどの段階で
    使用するか。
(回答)単体テストはプログラムの流れに沿ってテストする傾向にあり、
    その場合は使用できない。
    単体テストの後半にブラックボックステストを実施する場合は、
    この段階で使用されるべきである。
    結合テスト、総合テストでも機能の組み合わせを重点に行い、テスト
    結果を報告する必要がある場合には有効である。
    総合テストの多重走行、処理能力などを目的とするテストには使用し
    ない。
    まとめると、段階ではなく、機能の確認テストと機能を保障する報告
    に使用されると有効と考える。
(疑問5)出力ファイルがCSV形式なのはなぜか。
(回答)EXCELを介して編集して出力することを想定している。
(疑問6)出力結果を加工すれば、Hayst法の効果に影響しないか。  
(回答)行を増やしても元の結果より悪くなることわないと考える。
    元の行自体を安易に変更することは良くない結果も想定される。