Quantcast
Channel: 組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題
Viewing all 58 articles
Browse latest View live

直交表で制約を扱う Pairwise法との併用で制約の問題を解決

$
0
0
ソフトウェアテストに直交表を活用する上で常に問題となるのが制約(HAYST法では「禁則」という)の扱いです。少し複雑な制約があると人手で扱うことが不可能になります。2-Wayカバレッジが100%でなくてもよいなら人手でも可能ですが、それではテスト漏れが発生してしまいます。直交表を使用したソフトウェアテストを実用的に行なうためには制約の問題を解決することがどうしても必要です。

この直交表における制約の問題はPairwise法を併用することで解決することができます。

ここで例として4水準のL16直交表を取り上げてみます。次のPictMasterのモデルでは4つの値を持つパラメータが5個あり、制約指定が行なわれています。4水準が5個のパラメータにはL16直交表を使用することができます。

5


制約のあるテスト対象に直交表を使用する場合は、PictMasterの原型シートの機能を利用して制約を扱うようにします。原型シートにL16直交表を貼り付け、次に示すように制約に違反する値(赤字の値)を空白に置き換えて、直交表が制約に違反しないようにします。こうしてから原型シートを使用した生成を行なうと直交表の組み合わせを取り込んで、制約のために新たに網羅が必要となる組み合わせが追加されたテストケースが生成されます。

4


4水準のL16直交表の3-Wayカバレッジは26.5%です。以外に少ないと思われるかもしれませんが、この直交表は全く「ゆとり」がないために3-Wayカバレッジはかなり少ない値となります。今回の制約を盛り込んだ生成結果の3-Wayカバレッジは、テストケース数が16件から20件に増加したために35.3%に増加しています。

ここで紹介した方法を適用することで直交表での制約の問題を解決することができます。

なお、生成エンジンにPICTを使用した場合、L16の2水準直交表など「ゆとり」のある直交表(3-Wayカバレッジが100%に近い)では原型シートに貼り付けた直交表の全体を読み込まなくても2-Wayカバレッジが100%となるために、直交表の一部が生成結果に含まれなくなります。この問題は生成エンジンにCIT-BACHを使用した場合は起きません。


※ この方法で生成を行なう場合は生成エンジンにはPICTを使用してください。CIT-BACHではエラーとなります。CIT-BACHはこの問題の修正も含めて今後バージョンアップされる予定です。

※ 3月2日 PICTでの問題点を追記


PictMaster 6.4.3J をリリースしました

$
0
0

PictMaster 6.4.3J をリリースしました。

このバージョンでの変更点は次の通りです。

【バグ修正】
・生成エンジンにPICTを使用して原型シートを使用した生成およびカバレッジを指定した生成を行なった場合、実行環境によっては正しく処理が行なわれない場合があるバグを修正した。
(v6.0からのバグ)

PictMaster 6.4.3J は次のサイトからダウンロードすることができます。

https://osdn.jp/projects/pictmaster/

効率のよい線点図の解体 原因子と交互作用因子をもとに5つの8水準線点図を4水準10個に解体する

$
0
0

直交表をテストに使いたいと思っている人の多くは、「線点図の解体」という言葉を知っていることでしょう。例えば、次の図に示すように1つの8水準線点図は1つの4水準と4つの2水準に解体することができます。

1


この解体のしかたでは、例えば5つの8水準線点図は5つの4水準にしか解体できないことになります。しかし、線点図の解体のしかたとしてこの方法は効率がよくありません。別の方法を使うと5つの8水準線点図を10個の4水準に解体することができます。

8水準線点図に表現されている4つの直線(要素)は、それぞれが4水準に解体できますが、4水準に解体できる要素はこれだけではありません。4水準に解体できるすべての要素を表現した8水準線点図を次に示します。

2


この線点図では、7つの列番号による原因子とその排他的論理和の交互作用因子のすべての組み合わせが表現されています。これまでの線点図ではそれが4つでしたが、この線点図では7つになっています。新たに増えたのは列番号2,7,5、4,7,3、3,6,5の3つです。このことで1つの8水準線点図を1つの4水準線点図に解体するしかたが4通りから7通りに増えます。

ここまでは1つの8水準線点図のみに着目してきましたが、効率のよい線点図の解体では異なる線点図にまたがって解体を行ないます。例えばL64直交表で8水準9個の線点図を8水準4個、4水準10個、2水準5個に解体するには次のように行ないます。

9個の8水準線点図のうち、4個はそのまま8水準として使用します。残った5個の8水準線点図の列番号をいったんバラバラに解体し、その列番号の集まりから2つの原因子とその排他的論理和となる交互作用因子の列番号の組み合わせ10個を抽出します。列番号の組み合わせ抽出のしかたは「直交表の多水準化 2水準の直交表を4水準・8水準・16水準に変形する」で説明した方法と基本的に同じです。

この方法で作成した8水準4個、4水準10個、2水準5個の列番号の組み合わせを次に示します。

1


4水準を構成する3つの列番号はそれぞれ2つの原因子とその排他的論理和となる交互作用因子です。このうち、例えば21,38,51は3つの8水準線点図にまたがっています。同様に22,42,60も3つの8水準線点図にまたがっています。そしてこれは8水準線点図の右下と左上を結ぶ直線が、異なる8水準線点図にまたがった形になっています。この異なる線点図にまたがる解体を行なうことで、1つの線点図に閉じた解体よりもかなり多くの多水準に解体することができるようになります。

この方法で4水準に解体した列番号を8水準線点図上に表した図を次に示します。○で囲まれた列番号が4水準に解体した列番号です。


4



この方法は16水準線点図にも適用することができますが、8水準に解体する際に選択する列番号が最適でないと4水準に解体できる数が少なくなります。16水準線点図の解体は8水準線点図の解体よりも難易度が高いです。


※ 線点図の画像はJaSST 2005での富士ゼロックス 秋山浩一氏の発表資料から引用しています。

16水準線点図を4水準5個に解体 2水準255因子のL256直交表を4水準85因子の直交表に変形

$
0
0
前回は5つの8水準線点図を4水準10個に解体してみました。今回は17個の16水準線点図を4水準85個に解体してみましょう。

16水準線点図の1つを次に示します。

1


この線点図から8水準を取り出すと、後は2水準にしか解体できません。8水準×2水準=16水準なので8水準と4水準に解体することはできないことが分かります。では16水準線点図から4水準にはいくつに解体できるでしょうか。4水準×4水準=16水準なので最低でも4水準2個に解体できることはが分かります。

上の16水準線点図を見ると、2つの原因子と1つの交互作用因子からなる4水準線点図の直線が相互に接触しないで取り出せるのは2つまでのようです。

ですがこの16水準線点図には2つの原因子と1つの交互作用因子からなる4水準のごく一部しか表現されていません。存在する4水準をできるだけ多く表現した16水準線点図を次に示します。これでもまだ表現できていない4水準がいくつもあります。

1


多数の4水準線点図が複雑に入り組んでいます。この16水準線点図を5つの4水準線点図に解体することができます。16水準の自由度は15で4水準の自由度は3です。3×5=15なので16水準線点図を5つの4水準線点図に解体すると、2水準は1つも残らないことが分かります。

解体のしかたは「直交表の多水準化 2水準の直交表を4水準・8水準・16水準に変形する」で説明した方法と基本的に同じです。2つの原因子と1つの交互作用因子からなる5つの組み合わせを網羅することです。この方法で見つけた16水準を4水準5個に解体した「16水準列番号表」を次に示します。これは一例であり、別の組み合わせも可能です。4水準5個に解体することにこだわらなければ可能な4水準の組み合わせは膨大な数になります。

3


この表で同じ色の3つの列番号を持つ2水準L256直交表の3列をまとめると4水準となります。1つの16水準で4水準が5個に解体できるので、L256直交表では17×5=85個の4水準に解体できることになります。実際上、4水準のパラメータが85個あるテスト対象はあまり考えにくいのですが、任意の数の16水準と4水準との組み合わせではあり得るかもしれません。

例えば、16水準が8因子で4水準が16因子などといった組み合わせが可能です。この場合でも4水準はまだ29因子余っています。この4水準はもちろん2水準に解体することもできます。

ソフトウェアテストの目的を一言で言い表すとすれば ?

$
0
0
テストの目的を一言で言い表すならば何かと聞かれて人によって様々な答えがありそうです。最もよくありそうなのは「欠陥を検出する」ことだと言えそうです。その他に「品質を保証する」、「ユーザを満足させる」などがあるでしょう。

JSTQBのシラバスでは、テストの目的として次の4つが挙げられています。

1. 欠陥の検出
2. 対象ソフトウェアの品質レベルが充分であることの確認
3. 意思決定のための情報の提示
4. 欠陥の作りこみの防止

このうち、4は実際にソフトウェアを動作させるのではなく、レビューや静的解析のことを指しています。どれもそれなりに説得力がありますが、ソフトウェアテストの目的を「一言で言い表す」ということを考えるとどれもあてはまりません。

私がソフトウェアテストの目的を一言で言い表すならばと聞かれたなら「ソフトウェアの品質を測定する」ことだと答えるでしょう。これは上の2に近いですが同じことではありません。

IEEE 標準規格 610.12-1990 ではソフトウェアテストを次のように定義しています。

「ある特定の条件下でシステムまたはコンポーネントを操作するプロセスであり、その結果を観察または記録して、システムまたはコンポーネントのある側面を評価すること」

ここではソフトウエアのある側面を評価することが目的とされています。「側面」を「品質」と言い換えても大きな違いにはならないと思われます。

Rick Craig と Stefan Jaskiel は、著書の "Systematic Software Testing" (邦訳「体系的ソフトウェアテスト入門」)の中で、ソフトウェアテストを次のように定義しています。

「テストとは、テストされるソフトウェアの品質を測定して改善するために、テストウェアをエンジニアリングし、利用し、保守しながら、同時並行的に進めるライフサイクルプロセスである」

ここでもソフトウエアの品質を測定することが品質の改善とともに目的とされています。

私のいう「ソフトウェアの品質を測定する」は、JSTQBのシラバスの2でいう「対象ソフトウェアの品質レベルが充分であることの確認」とはかなり意味が異なります。「ソフトウェアの品質を測定する」には「品質レベルが充分であることの確認」は含まれません。

ソフトウェアの品質を測定することができていれば、品質レベルが充分であるかどうかの確認はそれ以上テストすることなく自明となります。ソフトウェアの品質を測定することができていれば、意思決定のための情報(ソフトウェア信頼度成長曲線等のデータ)の提示に必要なテストはそれ以上必要ありません。ソフトウェアの品質を測定した結果として、欠陥を検出したり、欠陥の作りこみ防止となります。

シラバスで挙げられている4つのテストの目的はいずれも、「ソフトウェアの品質を測定する」という目的を達成したことの結果として実現されるものです。

それでは「ソフトウェアの品質」とは何でしょうか。SQuBOK策定部会・編集の「ソフトウェア品質知識体系ガイド -SQuBOK Guide-」ではソフトウェア品質の定義について何人もの著名人や諸組織による10通りの定義が時系列で解説されています。これらによるとソフトウェアの品質とは単に要求仕様を満たすだけではなく、顧客やユーザのニーズを満たしている度合いも含まれていると見なされているようです。機能要件のみならず非機能要件も満足して初めて品質が高いと言えることになるのでしょう。

ソフトウェアテストの目的を一言で言い表すとすれば 、「ソフトウェアの品質を測定する」という表現が私には一番しっくりきます。

16水準列番号表を基に16水準・8水準・4水準が混在した多水準のL256直交表を作成する

$
0
0
2水準の直交表を多水準に変形する方法については「直交表の多水準化 2水準の直交表を4水準・8水準・16水準に変形する」で説明しました。今回は、2水準の直交表を多水準に変形する際に使用する列番号表を使って16水準・8水準・4水準が混在した多水準のL256直交表の作成に挑戦してみます。ここで使用する列番号表は16水準の列番号表です。

このL256直交表を作成することは、16水準が6個、8水準が13個、4水準が21個、2水準が11個の列番号表を作成することを意味します。これさえできればこれから多水準のL256直交表を作成することは機械的作業です。とはいえ非常に煩雑な機械的作業であることは間違いありません。

6個の16水準は、16水準列番号表のはじめの6行をそのまま使用します。8水準13個と4水準21個はこれまで説明した2つの原因子とそれらの交互作用因子を求める方法で決定します。

手作業で作成した列番号表を次に示します。

1


残念ながら4水準が19個であと2つ足りません。ここまで作成したところで残っている列番号では、2つの原因子とそれらの交互作用因子に合致する列番号が見つかりませんでした。8水準の列番号を決定する際に、32以降の群と64以降の群からいくつを使用するかが最適な組み合わせに関係するようです。

今回までに説明した方法を用いれば、最適とはいえないまでも、2水準の直交表を任意の多水準の直交表に手作業で変形できることがお分かりいただけたと思います。とはいえ、非常に煩雑な作業であることは間違いありません。

直交表ベースの組み合わせテストにこだわるのであれば、制約の問題も含めてツールを使用しない手作業では実用性に疑問符がつくと言わざるを得ません。さればといって、制約もサポートした直交表ベースのツールは某メーカから販売されていますが、1ライセンスが百万円もします。

直交表ベースの組み合わせテストにこだわる限り、悩みは尽きないようです。

PictMasterをCドライブ以外のドライブに置きCIT-BACHで生成を行なうとエラーとなる

$
0
0
現行のPictMasterを、Cドライブ以外のUSBメモリなどに割り当てられる Fドライブなどに置いて、生成エンジンCIT-BACHで生成を行なうと、エラーとなるバグがあります。これは V6.0 からのバグです。現行のPictMasterに次の修正を加えることで正常に生成が完了するようになります。

1. Excelのオプションで「開発」メニューを表示させる。
2. 「開発」→「Visual Basic」で左端に表示される「標準モジュール」内の「テストケース生成」をダブルクリックする。
3. モジュール「CIT実行」のコードを次のように修正する
モジュール CIT実行( ) 内の、7行目の次の記述を
 s = "bat1.bat "
    ↓
 s = strPath & "bat1.bat "
に修正して保存する。
この修正により、Cドライブ以外の別ドライブにPictMasterを置いた場合に、生成エンジンが CIT-BACHでも正常に生成が完了するようになります。
修正版は別途リリースしますが、リリース予定日はまだ決まっていません。


※ 4月10日 追記 上の方法ではCドライブで動作させた場合に生成できなくなる問題があるため、記述を削除しました。

修正版はまもなくリリースします。

PictMaster 6.4.4J をリリースしました

$
0
0
PictMaster 6.4.4J をリリースしました。

このバージョンでの変更点は次の通りです。

【バグ修正】
・PictMasterを、Cドライブ以外のUSBメモリなどに割り当てられる Fドライブなどに置いて、生成エンジンCIT-BACHで生成を行なうと、エラーとなるバグを修正した。
(v6.0のバグ)

【その他】
・PictMasterで多数のワークシートを設けた場合にExcelのファイルサイズが大きくなりすぎて扱いにくくなることを回避するために、制約欄を100個から50個に、結果表の行数を100行から50行に変更した。


PictMaster 6.4.4J は次のサイトからダウンロードすることができます。

https://osdn.jp/projects/pictmaster/

Pairwise法と直交表のテストケース数と3因子間網羅率を比較する

$
0
0
直交表ベースの組み合わせテストではPairwise法と比較してテストケース数は多くなるが、3因子間網羅率(3-Wayカバレッジ)が高くなると言われています。そこで実際にパラメータ数と水準数を変化させた場合の比較を行なってみました。比較はパラメータ数を固定して水準数を変化させた場合と、水準数を固定してパラメータ数を変化させた場合の2種類について行ないました。

最初はパラメータ数を固定して水準数を変化させた場合です。パラメータ数は8で固定しています。水準数を2から16まで変化させた場合のテストケース数と3-Wayカバレッジを測定しました。

水準数を変化させた場合の直交表とPairwise法のテストケース数と3-Wayカバレッジの変化

1


次に水準数を固定してパラメータ数を変化させた場合です。水準数は6で固定しています。なぜ8水準ではなく6水準かというと、8水準では直交表にとって最適な水準数になるからです。8水準はL64直交表にぴったりマッチする水準です。直交表ベースでは最もテストケース数が少なくなる理想的な水準です。実際のテスト作業では、理想的な水準だけでテストされる訳ではないので、ここでの水準数は4水準と8水準の中間となる6水準を用いています。パラメータ数を3から20まで変化させた場合のテストケース数と3-Wayカバレッジを測定しました。

パラメータ数を変化させた場合の直交表とPairwise法のテストケース数と3-Wayカバレッジの変化

2


表だけでは分かりにくいのでグラフ化しました。まずパラメータ数を固定して水準数を変化させた場合です。

3



4


テストケース数は、Pairwise法では段々と連続的に増加しています。直交表では8水準から9水準に変わった時点で64件から256件に大きく増加しています。Pairwise法の方が多い水準数もありますが、全体でみると直交表の方が多くなっています。

3-Wayカバレッジは、双方にそれほど大きな違いは出ていませんが、全体では直交表の方が多くの場合Pairwise法よりも多いという結果となっています。

次に水準数を固定してパラメータ数を変化させた場合です。

5



6


この比較ではPairwise法と直交表で大きな違いが出ました。Pairwise法ではパラメータ数が増えてもテストケース数はあまり増加しません。直交表ではテストケース数が64→128→256と2のべき乗で不連続に増加しています。全体として直交表でのテストケース数はPairwise法よりも2~3倍も多くなっています。特に直交表でパラメータ数が多くなるとテストケース数が倍々に増加することが大きく影響しています。

3-Wayカバレッジはパラメータ数が9個までは双方に大きな違いは出ませんが、10個以上になると2倍程度直交表の方が多い結果となっています。これはテストケース数がそれだけ増加したためであることが見て取れます。

直交表ベースの組み合わせテストではPairwise法と比較してテストケース数は多くなるとは言っても、多くなる程度が問題です。この比較では、2~3倍もの違いが出ています。これだけテストケース数が多くなっても直交表を使いたいという理由は、3パラメータ間の組み合わせが均等に出現する、ということだけであるように思われます。3-Wayカバレッジが高いのはテストケース数が大幅に多くなったので当然です。これだけを重視するのであれば、PictMasterの「カバレッジを指定して生成」の機能で実現可能です。

CIT-BACH 1.10を同梱したPictMaster 6.4.5Jをリリースしました

$
0
0
CIT-BACH 1.10を同梱したPictMaster 6.4.5J をリリースしました。

このバージョンでの変更点は次の通りです。

【機能改善】
・CIT-BACHがv1.10にバージョンアップされたことにともない、CIT-BACHの新機能である数値の大小比較に対応した。

同梱されている cit.jar のファイルをPICTがインストールされているフォルダ内にコピーしてご使用ください。


PictMaster 6.4.5J は次のサイトからダウンロードすることができます。

https://osdn.jp/projects/pictmaster/

PR: Vpass会員限定通販サイト・ポイント10倍!

PictMaster 6.4.6Jをリリースしました

$
0
0

軽微なバグを修正したPictMaster 6.4.6J をリリースしました。

このバージョンでの変更点は次の通りです。

【バグ修正】
・制約表で制約6の列のフォントサイズの誤りを修正した。
・環境設定で「組み合わせるパラメータ数」のフォントサイズの誤りを修正した。


PictMaster 6.4.6J は次のサイトからダウンロードすることができます。

https://osdn.jp/projects/pictmaster/

まもなく直交表をサポートしたPictMasterをリリースする予定です

$
0
0

まもなく直交表をサポートしたPictMaster 7.0 をリリースする予定です

 

7.0 での主な変更点は次の通りです。

 

・L512までの直交表に対応

・50因子、50水準まで指定可能

・カバレッジ優先とサイズ優先のいずれかを選択

・制約をサポート

・生成結果の分析機能を追加

 

2水準系184種類、混合水準系99種類の直交表テンプレートを内蔵し、カバレッジ優先またはサイズ優先のいずれかの選択に応じて最適なテンプレートを決定し、組み合わせを生成します。


オープンソースでフリーソフトである点は今まで通りで変わりありません。

 

すでに基本動作を確認済みで、問題がなければ9月中旬ごろにリリースする予定です。

 

 

✳︎ 9月1日 変更点に追記しました。リリース時期を9月中旬ごろに変更しました。

直交表をサポートした組み合わせテストツール PictMasterOA 1.0 をリリースしました

$
0
0

組み合わせの生成に直交表方式をサポートした組み合わせテストツール PictMasterOA 1.0 をリリースしました。
PictMasterOA は、PictMaster 6.4.6 からの派生開発プロジェクトです。

 

PictMaster 6.4.6 からの変更点は次の通りです。

 

・L256までの直交表に対応(16水準、33因子でL512に対応)
・50水準、50因子まで指定可能
・組み合わせ生成に使用する直交表テンプレートを2水準系と混合水準系から選択可能
・組み合わせできない組み合わせを除外する制約機能をPairwise法とほぼ同レベルでサポート
・生成結果の各種分析機能を追加
・制約表、結果表の視認性向上のためセルの横幅を拡張
 
2水準系185種類、混合水準系97種類の直交表テンプレートを内蔵し、2水準系、混合水準系またはサイズ優先のいずれかの選択に応じて最適なテンプレートを決定し、組み合わせを生成します。

 

テスト対象の性質に応じてPairwise法と直交表のいずれかを選択してテストケースを生成することができます。直交表の場合はさらにサイズ(テストケース数)優先かカバレッジ(3因子間網羅率)優先かを2水準系と混合水準系の使い分けで行なうことができます。

 

今回のリリースにあたり、有償の直交表テンプレートを同梱しての公開を快諾していただいた KTS&C の菊池様にこの場を借りて改めて感謝申し上げます。

 

PictMasterOA 1.0 はフリーソフトでオープンソースです。

次のサイトからダウンロードすることができます。

 

https://osdn.jp/projects/pictmasteroa/

PictMasterOA v1.0.1 をリリースしました

$
0
0

PictMasterOA 1.0.1 をリリースしました。

このバージョンでの変更点は次の通りです。

 

【バグ修正】

・直交表方式の場合、制約ありで生成した後に制約なしで生成すると、生成される組み合わせが正しくない場合がある問題を修正した。

・直交表方式でL512のテンプレートが使用されて制約がある場合、CIT-BACHのエラーとなる問題を修正した。

・直交表方式で制約がある場合、モデルが大きいと不必要に生成時間が長くかかる問題を修正した。

 

PictMasterOA 1.0.1 は次のサイトからダウンロードすることができます。

https://osdn.jp/projects/pictmasteroa/


自動アップデート機能を追加したPictMasterOA v1.1 をリリースしました

$
0
0

PictMasterOA 1.1 をリリースしました。

このバージョンでの変更点は次の通りです。

 

【機能追加】

・新しいバージョンのPictMasterOAにワンタッチでアップデートが行なえる自動更新(バージョンアップ)機能を追加した。

 

【機能改善】
・直交表方式で制約があると生成する際にカーソルの形状がちらついていたが、これをちらつかないようにした。

・制約の指定で「#」などの演算子のみ記入されていて値が記入されていないセルがある場合、生成エンジン側でエラー検出となっていたが、これをPictMasterOA側でエラー検出するようにした。

 

【バグ修正】

・値がエイリアスを含む場合、各パラメータの値の数によっては分析機能の「パラメータ間のカバレッジ表示」が正しく表示されない場合がある問題を修正した。

・サブモデルを指定して生成した結果に対して分析機能の「パラメータ間のカバレッジ表示」を実行するとCIT-BACHでエラーとなる問題を修正した。

・生成エンジンがCIT-BACHでドライブC以外のドライブでカバレッジを指定して生成を行なうとVBAのエラーとなる問題を修正した。

 

PictMasterOA 1.1 は次のサイトからダウンロードすることができます。

https://osdn.jp/projects/pictmasteroa/

PictMasterOA v1.1.1 をリリースしました

$
0
0

PictMasterOA v1.1.1 をリリースしました。

 

前バージョンからの変更点は次の通りです。

 

【バグ修正】

 ・値がエイリアスを含みかつ「冗長なペアをチェック」が指定されていた場合、各パラメータの値の数や重み付けの有無によっては分析機能の「パラメータ間のカバレッジ表示」が正しく表示されない場合がある問題を修正した。

 

PictMasterOA v1.1.1は次のサイトからダウンロードすることができます。

 

https://osdn.jp/projects/pictmasteroa/

 

旧バージョンのPictMasterOAをワンタッチで最新バージョンにアップデートする

$
0
0

これまでのPictMasterを含むPictMasterOAでは、バグ修正や機能追加などでバージョンアップした場合、それまでの旧バージョンを新バージョンにアップデートすることは困難でした。まだモデルが記入されていない場合はファイルを入れ替えるだけで済みますが、パラメータや制約などが記入された後でのバージョンアップはワークシート記入内容のコピー&ペーストが必要となり、煩雑な作業が必要でした。

 

v1.1のPictMasterOAからはこうした煩雑な作業が不要となり、ワンタッチでバージョンアップが行える自動更新機能が備わっています。今回はこの自動更新機能の使い方を説明します。

 

自動更新機能では、PictMasterOAがオープンされると現在のバージョンと最新版のバージョンの比較が行われ、不一致の場合、現バージョンの標準モジュールとフォームが新バージョンの内容で置き換えられます。

 

バージョンの識別はファイルの右クリックでプロパティを表示させて詳細タブのバージョン番号で表示される内容に対して行われます。今回の説明では次に示す2つのバージョンのPictMasterOAを用いることにします。


   

現バージョンのバージョン番号

 

 

 

新バージョンのバージョン番号

 

 

自動更新機能を有効にさせるためには設定が必要です。現バージョンのExcelで開発」メニューから次の設定を行なっておく必要があります。この設定が行われていないとVBAのエラーになります。

 

 「開発」メニュー → マクロのセキュリティ → マクロの設定 → 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックを入れる

 

 「開発」メニューを表示させる操作はExcelのバージョンによって異なり次の通りです。
 
Excel2007
 (1)    左上の「Officeボタン」をクリック
 (2)    メニューから「Excelのオプション」を選択
 (3)    「基本設定」項目で[開発]タブをリボンに表示するにチェックを入れる
Excel2010以降
 (1) 「ファイル」タブから「オプション」を選択
 (2) 「リボンのユーザ設定」で右の「開発」にチェックを入れる

 

新バージョン側のPictMasterOAをサーバ上またはネットワークドライブ上の任意の場所に置きます。自動更新を行なわせたい現バージョン側のPictMasterOAで環境設定の「参照ファイル」欄に次の例のように新バージョンの置いてある場所をファイル名も含めてあらかじめ設定しておきます。

 

 

この状態で現バージョン側のPictMasterOAをオープンすると、新バージョンとのバージョン番号の比較が行われ、不一致の場合に次に示すようにアップデートを行なうかどうか問い合わせるフォームが表示されます。

 

 

ここで「はい」を選択すると自動更新が行われ、2秒ほど経過した後で次に示すアップデートが完了した旨のメッセージが表示されます。

 

 

自動更新機能で更新されるのは標準モジュールとフォームです。ワークシートやワークブックに記述されたコードは自動更新の対象外です。バージョンの比較は同じか異なるかを判定しているだけで、どちらが新しいかまでは判定していません。

 

現バージョンが参照する場所には常に最新版が置かれている必要があります。万が一、間違って古いバージョンに更新が行われてしまってもあわてる必要はありません。現バージョンが参照する場所に最新バージョンを置いて、再度自動更新を行えばOKです。

 

何らかの理由で長期的に自動更新を行ないたくない場合は、「確認しない」のチェックボックスにチェックを入れることで、ファイルオープン時の更新問い合わせをスキップさせることができます。Excelのセキュリティの設定を変更することに不安を覚える場合は、「確認しない」のチェックボックスにチェックを入れてセキュリティ設定を初期値に戻し、バージョンアップが必要になった時だけ、設定を変えればよいでしょう。
 

Pairwise法よりも少ない!? 直交表方式でのテストケース数を大きく削減する「サイズ優先」

$
0
0

Pairwise法と比較した場合の直交表方式の欠点として、生成されるテストケース数がPairwize法よりも多くなりがちだというものがあります。このことについては「Pairwise法と直交表のテストケース数と3因子間網羅率を比較する」で確認しています。

 

直交表方式でテストケース数が多くなる要因として、テストケース数が2のべき乗で増加するという性質が挙げられます。この問題に対してPictMasterOAでは2水準系直交表に加えて混合水準系直交表を追加しています。これにより、テストケース数が2のべき乗で増加するという従来の欠点を取り除くことができました。また生成方式で「サイズ優先」を設け、2水準系直交表と混合水準系直交表でのテストケース数を比較してどちらか少ないほうを生成結果として残せるようにしています。

 

この「サイズ優先」を指定した場合と「2水準系」のみを指定した場合でのテストケース数を比較してみました。

 

まずパラメータ数を8に固定して水準数を変化させた場合のテストケース数です。パラメータ数を8としたのは比較的平均的なパラメータ数だと考えたためです。

 

 

サイズ優先と2水準系との違いを見てみると、水準数が8を超えると2水準系ではテストケース数がそれまでの64から256と4倍に跳ね上がっていることが目につきます。同じ8水準でサイズ優先の場合は64から81への増加にとどまっています。水準数が14になるまでサイズ優先のほうがかなり少ないテストケース数となっています。2水準系のテストケース数で2のべき乗となっていない値があるのはダミー水準によって発生した重複するテストケースが削除されたためです。

 

この結果の水準数が6以上ではサイズ優先でのテストケース数がPairwise法の場合よりも少ない結果となっています。2水準系の直交表ではPairwize法よりもテストケース数が少なくなる場合はありますが、あくまでもモデルが直交表とぴたりと一致したときの例外的なものであり、ここでの結果のように連続して少なくなることはありません。

 

つぎに水準数を6に固定してパラメータ数を変化させた場合のテストケース数です。水準数を6としたのは7や5では混合水準系でぴたりと一致する直交表があること、また8や4では2水準系で同様にぴたりと一致する直交表があることからそのどれにも当てはまらない6としました。混合水準系には6水準の直交表もありますが、パラメータ数が少なかったり、サイズが大きくて今回の条件には一致しません。

 

 

結果を見るとそれほど大きな違いありませんが、混合水準系が一貫して2水準系よりもテストケース数が少ない結果となっています。2水準系が倍々に増加しているのに対して混合水準系では増加が緩やかです。Pairwize法と比較すると、パラメータ数が9以内まではサイズ優先でのテストケース数がほぼ同程度となっています。

 

以上から、PictMasterOAの「サイズ優先」の生成方式を使用すると、今回の条件ではこれまでの「直交表はPairwize法よりもテストケース数が多い」という定説を覆す結果が得られたということができるでしょう。
 

PictMasterOA v1.1.2 をリリースしました

$
0
0

PictMasterOA v1.1.2 をリリースしました。

 

前バージョンからの変更点は次の通りです。

 

【バグ修正】

・分析ボタンで「パラメータ間のカバレッジ表示」を実行したとき、生成結果が「自動整形」などで先頭列に「No.」がある場合、最後のパラメータを含むカバレッジが表示されない問題を修正した。

 

PictMasterOA v1.1.2は次のサイトからダウンロードすることができます。

 

https://osdn.jp/projects/pictmasteroa/

Viewing all 58 articles
Browse latest View live