組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題
 PictMaster は事実上日本国内で唯一、直交表を用いた組み合わせ生成をサポートしているフリーでオープンソースなツールです。約300種類の直交表テンプレートを内蔵し、モデルに最適なテンプレートを決定してテストケースを生成します。またMicrosoftのフリーソフトであるPICTと大阪大学の土屋教授が開発したフリーソフトであるCIT-BACHをペアワイズ法(オールペア法)の組み合わせ生成エンジンとして使用しています。さらに独自の機能追加を行なったExcelベースのフリーソフトです。
 無償でPictMasterを公開する理由は、業務で実用的に使用できる組み合わせテストツールが入手できない現状を打破し、誰もが自由に使用できるツールを提供することによって、ソフトウェアテスト技術者の技術向上の一助になればとの思いからです。

 PictMasterとCIT-BACH
は以下のサイトからダウンロードできます。
https://osdn.jp/projects/pictmaster/
 PICTは以下のURLからダウンロードできます。
http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi
1 | 2 | 3 | 4 | 5 | 最初次のページへ >>
2018年12月01日

よく聴く曲

テーマ:その他

ソフトウェアテストには関係ありませんが、普段よく聴いている曲を取り上げてみました。たまにはこういうものもいいでしょう。仕事中は大きな音が出ないようにご注意ください。
 

米津玄師  「Lemon」

 

知っている人も多いと思いますが、2018年3月までTBSで放送されていたドラマ「アンナチュラル」の主題歌です。誰もが親しみやすい曲調と歌詞で、YouTubeにUpされて以来、9ヶ月で再生回数が2億回を超えています。今は「フラミンゴ」がそれを凌ぐ勢いですが、聴いてみて以前に聴いたことのある曲のような印象を受けます。
 

 

米津玄師 「ゴーゴー幽霊船」

 

同じ米津玄師の曲ですが、こちらは2012年にUpされて7年近く経っていますが、再生回数は3,500万回にとどまっています。米津玄師は絵の才能もあり、このアニメーションも米津玄師の作です。万人受けするように作られた「Lemon」より、こちらが音楽的に斬新でより魅力的です。

 

 

Neil Cowley Trio "Slims"

 

Neil Cowley Trioは英国のジャズピアノトリオです。"Slims" は2012年のアルバム「The Face of molehill」に収録されています。ピアノが奏でるリリシズムあふれるメロディが秀悦です。演奏にはバイオリンが加わっており、一層雰囲気を高めています。私は伝統的なジャズや一時期流行ったスムースジャズなどは好みではありませんが、この演奏のようにジャズの枠に収まり切らない新しい試みや、これまでに聴いたことのない優れたセンスの演奏は大好きです。

 

 

上原ひろみトリオ "Flashback"

 

この演奏は聴く人を選ぶでしょうね。世界的なジャズピアニストの上原ひろみがトリオを組んでの演奏です。小さな子供が思い切り遊んでいるようでいて、時に暴力的でもあり、喜怒哀楽目まぐるしく様々な表情を見せるその演奏は、聴いている者の精神を解放してくれます。

 

 

GoGo Penguin "Initiate"

 

ゴーゴー・ペンギンという人を食ったようなバンド名のジャズピアノトリオは英国のグループです。東洋的なメロディが特徴的なこの曲をはじめ、伝統的なジャズの枠を越えて、新しい音楽を生み出しているこのグループの曲の大半を気に入っています。

 

 

和楽器バンド 「千本桜」

 

ギター、ベース、ドラムに、尺八、三味線、琴、和太鼓が加わった異色のロックバンドです。ボーカルの鈴華ゆう子は詩吟の師範で、その歌唱にも詩吟の節調(こぶし)を用いています。5年前にYouTubeにUpされて以来、間もなく再生回数が1億回を越えようとしており、このバンドの代表曲といえます。この曲はテーマが大正ロマンのようですが、歌詞はそれらをイメージさせる単語と、まったく無関係な現代的でシュールな単語をミックスした形式となっています。元々は初音ミクの曲だったものをこのバンドがカバーし、人気に火が付きました。コメントを見ると日本人より外国人のコメントが多く、海外でも人気があるようです。既存のどのロックのジャンルにも収まらないこのバンドの演奏が大好きです。

 

 

和楽器バンド 「オキノタユウ」

 

曲名の「オキノタユウ」はアホウドリの別名で、季節移り変わりを人生の旅に例えているとされます。ボーカルの魅力的な歌唱が最大限に活かされたバラードです。

 

 

和楽器バンド 「細雪」

 

最新アルバム「オトノエ」からシングル化された曲です。「別れ」をテーマに日本的な叙情性豊かな歌詞と、和太鼓などの和楽器が主導し、ギターなどの洋楽器とストリングスが支える演奏に、鈴華ゆう子の豊かな歌唱力が印象的な曲です。PVがショートバージョンなのが残念です。

 

2018年10月20日

鏡が左右逆に見える理由が分からない !?

テーマ:その他

先日、NHKの「チコちゃんに叱られる」で興味深い問題が取り上げられていました。その番組では「鏡が左右逆に見える理由は分からない」と結論づけていました。

 

この鏡の問題はずっと昔、私が若かった頃に読んだSF作家、広瀬正の小説「鏡の国のアリス」がテーマとしていて、その小説の中で広瀬正は、鏡は左右逆になるが上下が逆にならない理由を、図解付きで微に入り細に入り非常に詳しく数十ページを費やして説明していました。私は途中で読むことをあきらめてしまいましたが、でも面白かったです。

 

先日、鏡が左右逆に見えて、上下逆には見えない理由について、ここで書いたのですが、今回、新たにもっとわかりやすくコンパクトな説明に書き替えました。

鏡像は前後が逆で上下左右はそのまま

鏡に映った像、つまり鏡像は物理的、光学的に言えば左右は逆にはなっていません。上下左右はそのままで前後だけが逆になっています。鏡に相対した時、自分の手前側から出た光は見かけ上、鏡の手前で反射され、自分の手前より後ろ側から出た光は見かけ上、鏡の手前より後ろ側から反射されます。この関係を模式的に図示したものを次に示します。

 

 

 

この図のように、光の向きが鏡で反射されるので前後が逆になります。向こう向きがこちら向きに逆転するということです。一方、上下左右は変わりません。ではなぜ鏡を見た時に左右が逆になっていると思うのでしょうか。その前に、鏡を見て左右が逆になっていると思わない人もいますが、ここでは話を分かりやすくするため、そういう人については最後に説明することにします。

鏡を見て左右逆に見える理由

鏡を見た時に左右が逆になって見える理由は、人には “間主観性” という認識のしかたが備わっているためです。間主観性というのは簡単に説明すると、自分が主観的に考えると自分で認識していると同じように、他の人も主観的に考えるだろうと自分が認識しているということです。人間ひとりひとりが、他人も主観的に考えるものだと思い、それぞれが相手の主観的な考えを自分が主観的に考えるという、人間に備わった認識のしかた。これが間主観性です。個々人の主観が間主観性によって左右されるという点を理解することが重要です。

 

Aという人とBという人が向かい合い、Bが右手を挙げたとしましょう。この場面でAは、Aから見てBの左側の手が挙がったことを認知しますが、間主観性の働きによって、AはBの右手が挙がったと瞬時に認識します。

 

人間の間主観性による左右の認識は、有史以来から備わっているものと考えられ、現実に見える人以外に写真や絵画に映った人物にも働きます。写真上の人物に主観は存在しませんが、写真だからといって右手/左手の認識が、実際に人を前にしたときと逆になるわけではありません。

 

人間だけでなく、動物にも同じように働きます。さらには動物以外の人が操るモノ、例えば自動車や飛行機などにも働きます。左ハンドル/右ハンドル、左翼/右翼といった具合です。自動車の前に人が居て、その人から見てハンドルが車体の左側にあると、運転する人から見ての右ハンドルと認識します。ただし、人が操らないモノに間主観性は働きません。

 

そしてそれは鏡に映った自分自身の鏡像にも働きます。鏡像を見ている自分は、その鏡像が他者から見えている自分であり、他者の主観に映る像であることを理解しています。その鏡像と自分とが向かい合っているので、鏡の前では自分が他者の主観に立ち、右手を挙げれば間主観性の働きによって、鏡像が左手を挙げたと認識するのです。

 

鏡を見て左右逆に見える現象は、何も鏡像だけに限られる現象ではなく、実際に人と向かい合った時でも同じように間主観性の働きによって、見る方から右側に見える手は左手、左側に見える手は右手と、見る方からは常に左右逆に見えています。

鏡を見て上下逆に見える場合とは

鏡像が上下逆に見えないのは、鏡像の上下左右はそのままで前後だけが逆になっているからです。この場合、前とはお腹の側であり、後とは背中の側です。そうであると解れば、鏡像が上下逆に見えるのはどういう場合かはおのずと解るでしょう。

 

床一面が鏡張りの部屋を想像してください。その部屋に立って足元を見れば、上下が逆になって見えます。この場合の上とは頭であり、下とは足の裏です。ここで正確に言い換えると、鏡像は上下左右はそのままで前後だけが逆になりますので、下に鏡がある場合の前とは足の裏であり、後とは頭です。この前後が逆になりますから見る人にとっては上下が逆になって見えます。

 

 

 

この場合の見る人にとっての前とはお腹の側であり、後とは背中の側になります。鏡像の左右は物理的、光学的にはそのままで逆になっていませんが、人間に備わった間主観性によって、左右が逆になって見えます。自分が右手を挙げれば、鏡像は左手を挙げていると見えます。

 

同じように天井が鏡の部屋の場合も上下(物理的、光学的には前後)が逆になって見えます。ですので、鏡は左右逆にはなるが、上下逆にならないのはなぜ、と問うことは正確とはいえません。

 

文字などのモノが左右逆に見える理由

鏡像は前後が逆で上下左右はそのままと説明しました。すると文字などの鏡像は、左右が逆に見えるのは矛盾するではないかと思う人がいるかも知れません。確かに英大文字のLの鏡像は、縦線の左側に横線があり、左右が逆になって見えます。

これは文字が書かれた紙などを左右裏返しにして鏡に向けているためです。左右を逆にして鏡に向けていますから、鏡像はそのまま左右逆になって見えているだけです。

鏡を見て左右逆に見えない人がいる理由

鏡の前で右手を挙げた時、「鏡に映った人はどちらの手を挙げていますか」と問われて、左右逆ではなく、見たままに右手を挙げていると答える人がいます。こういう人が存在することで、これまでの説明に矛盾があるように感じられるかもしれません。

鏡を見て左右逆に見えない人は、質問の仕方に曖昧さのあることが原因で、鏡像そのものからは見ていません。鏡に映った自分自身、つまり、鏡像ではなく、自分自身がどちらの手を上げているかと考えて、自分自身は右手を挙げているので、右手を挙げていると答えているのです。

「鏡に映った人」という意味を、こういう人は鏡像ではなく、鏡に映っている自分自身と受け止ています。「鏡に映った人」という質問の意図に対する理解の仕方が、前にいる人を映し出す鏡の持っている特性ゆえに人によって異なっているだけです。

「鏡像そのものから見て、鏡像は右手、左手のどちらの手を挙げていますか」と、曖昧さのない質問を行えば、さすがに例外なく全員が左手を挙げていると答えるはずです。

 

2018年07月30日

64bit版のPictMaster64.xlsm は多くの場合使う必要がありません

テーマ:PictMaster

PictMasterには、32bit Office用のPictMaster.xlsmと64bit Office用のPictMaster64.xlsmがあります。このどちらのPictMasterをインストールするかで混乱しているユーザの方がいらっしゃるようですので、ここで改めて説明します。

 

PictMaster.xlsmとPictMaster64.xlsmのどちらをインストールするかは、使用しているOfficeが32bit版か64bit版かによります。OSが32bit版か64bit版かではありません。

 

現在ではOSが32bitというユーザはほとんどいないと思います。64bit OSなのでPictMasterも64bit版をインストールしなければと間違っているユーザが見受けられます。

 

使用しているOfficeが32bit版か64bit版かのどちらであるかは、こちらのサイトに確認方法が記載されています。

Excelの32-6bit版 の判別方法

 

ビジネス用途では、VBAのユーザインタフェース周りで多くの制限があり、32bit版と互換性のない64bit版Officeが使用されることはほとんどありません。これは今後も変わらないと思われます。64bit版のPictMaster64.xlsmもVBAのユーザインタフェース周りの制限により「分析」ボタンの機能が大幅に制限されています。

 

使用しているOfficeが32bit版の場合は、32bit版のPictMaster.xlsmをインストールされることを強く推奨します。

2018年01月11日

組み合わせテストは無則だけをテストする? 有則・無則・禁則の考え方

テーマ:テスト技法

有則・無則・禁則とは

組み合わせテストに関係した用語に「有則」「無則」「禁則」があります。禁則を除き、これらの言葉はもとからあるのではなく造語であり、直交表を用いる組み合わせテストで用いられています。ちなみに禁則はペアワイズ法では英語で Constraint といい、日本語では「制約」と呼びます。

禁則という言葉が登場したのはJasst05東京での「直交表を活用したソフトウェアテストの効率化 -HAYST法の活用-」が最初だと思われます。

さらに有則と無則という言葉が登場したのは、Jasst07東京の「ソフトウェアテストの展望 SW機能テストから、システム挙動の評価へ」が最初のようです

禁則とは、パラメータ(要因)を組み合わせることのできる組み合わせが制限されているという意味です。例えばエアコンの運転モードと設定の組み合わせでは、送風モードのときは温度設定は行えないので、これらの組み合わせは組み合わせることができず、禁則の関係にあります。

それでは有則はどういう意味でしょうか。組み合わせによって出力に影響を及ぼす組み合わせを有則の組み合わせといいます。例えばデシジョンテーブルでは条件の組み合わせ(ルール)に応じて出力であるアクションが様々に変化します。デシジョンテーブルは有則のテストであるということができます。

その他にデシジョンテーブルほどルールのパターンは多くなくても、組み合わせによって出力が変化するといったことはよくあることです。こうした組み合わせも有則の組み合わせといえます。

出力に影響を及ぼさないと考えられる組み合わせを無則の組み合わせといいます。どのように組み合わせても出力は常に同じであると考えられる関係を無則といいます。

組み合わせテストは無則だけをテストする?

直交表関係の組み合わせテストを論じている記事では、組み合わせテストは無則の関係をテストするとしています。記事を読んでみると、どうも組み合わせテストでは有則の関係にある組み合わせは考慮されていないようです。

前出の「ソフトウェアテストの展望…」では、「無則のテストは、悪影響が無いことをテストする 実験計画法(直交表)、All-Pair法は、無則の一部をテストする技法」と書かれています。どのような組み合わせであっても出力が変化しないと考えられる組み合わせだけをテストすると読めます。

この記事以外でも、組み合わせテストでは無則だけをテストする、としている記事がほとんどです。しかし、本当にそうでしょうか。実際のテストの現場で、組み合わせテストはどのような組み合わせでも出力が影響を受けない、変化しない組み合わせだけを扱っているでしょうか?

組み合わせテストでは有則の組み合わせもテストが必要

機能の組み合わせを考えた場合、機能Aと機能B、機能Cがあり、機能Aは機能Bと機能Cを呼び出してその出力結果に応じて異なる出力を行う、といった処理はよくあることです。そして各機能にはデータ設定があり、その設定内容に応じて異なる動作となる、といったこともよくある処理です。

このような機能の数が多くなると、結合テストあるいは総合テストではそれぞれのデータ設定の異なる内容の組み合わせを考慮するとテストケースが多くなりすぎる場合があります。そうした場合は組み合わせテストが最も最適なテスト技法だといえます。

組み合わせが多すぎるため、デシジョンテーブルは現実的ではありません。2つまでの要因の組み合わせで発生する障害を効率よく検出することができる組み合わせテストこそ、こうしたテストにふさわしいものです。

このテストではデータ設定内容に応じて動作が異なるので有則のテストです。したがって、有則のテストも組み合わせテストの対象になるのです。

もちろん、組み合わせによって出力が影響を受けないと考えられる無則のテストも組み合わせテストの対象です。またテストによっては無則の組み合わせと有則の組み合わせを組み合わせて実施する場合もよくあります。

 

組み合わせによって異なる結果となる場合、組み合わせに対応する結果を自動的にテストケースに設定できるように、PictMasterでは結果表という機能が用意されています。組み合わせテストにおいて、こうした機能の必要性は海外の論文などでは論じられています。


なお、2パラメータ間の組み合わせだけでは組み合わせに応じて異なる結果のバリエーションのすべてを網羅することができない場合は、テストケースは多くなりますがデシジョンテーブルですべての組み合わせをテストする必要があります。

「組み合わせテストは無則だけをテストする」といった誤解があるようですので指摘させていただきました。

 

2017年10月25日

PictMasterの直交表テンプレート決定方法

テーマ:PictMaster

PictMasterでは直交表ベースの組み合わせ生成を行うことができますが、みなさんはPictMasterが、本当に正しく直交表どおりの組み合わせ生成を行なっているのだろうかと疑問に思うことはないでしょうか。PictMastreが内部で行っている処理は目に見えないので、そうした疑問を抱くことは自然だと思います。

でも安心してください。PictMasterでは生成した直交表ベースの組み合わせが正しく直交表の性質を保持していること(2因子間網羅率が100%)を、ペアワイズ法での組み合わせ生成結果との比較を行なって確認することで保証しています。この確認は環境設定で「カバレッジを表示」をチェックして生成を行なうことで行うことができます。

PictMasterは約300種類の直交表テンプレートを内蔵し、モデルのパラメータ数と水準数に合った最も小さなサイズのテンプレートを決定し、それをもとに組み合わせを生成しています。今回はそのテンプレート決定方法について説明します。

PictMasterでは、それぞれの直交表テンプレートが水準数別にいくつのパラメータがあるかを「テンプレート属性テーブル」で定義しています。直交表テンプレートは水準数の少ない列から多い列の順で並んでいます。属性テーブルも同じ列の順で並んでいます。モデルの水準数の大きな順からその水準のパラメータ数で属性テーブルをテンプレートのサイズの小さな順からサーチし、属性テーブルの水準別のパラメータ数がモデルのパラメータ数以上のテンプレートを探します。

属性テーブルの水準別のパラメータ数がモデルのパラメータ数以上のテンプレートが見つかったら、モデルの次に少ない水準数のパラメータ数が今見つかったテンプレートでカバーできるかを判定し、カバーできれば同じようにモデルのすべての水準数のパラメータについて判定します。すべての水準数をカバーできると分かったらそのテンプレートで組み合わせを生成します。

そのテンプレートの水準数のパラメータ数でモデルのパラメータ数をカバーできない場合は次に大きなサイズの属性テーブルをサーチします。ここでテンプレートの水準数のパラメータ数がモデルのパラメータ数をカバーできるかの判定においては、より上位の水準数のパラメータで組み合わせ生成に使われていないパラメータがあれば、そのパラメータを下位の水準に「繰り下げ」て組み合わせ生成に使用するようにします。

ここまでの説明では分かりにくいと思うので例を使って説明します。

例えば、モデルの水準別パラメータ数が次の表の場合、2水準系直交表の属性テーブルの水準数を見ると、どのテンプレートも一部のパラメータ数が不足していることが分かります。
 

 

モデルの水準別パラメータ数


 

2水準系テンプレートの属性テーブル(抜粋)

 

No.168では4水準のパラメータ数が不足しています。No.169とNo.170についても4水準または2水準のパラメータ数が不足しています。こうした場合、PictMasterでは上位の水準で組み合わせ生成に使われていない余ったパラメータがあるかを調べ、あればそれを不足している水準に繰り下げます。繰り下げられた上位水準のパラメータはモデルの水準数で割った余り(MOD)を算出して実際の値の名称に変換します。

この時のテンプレート決定処理を次に示します。
 

上位水準のパラメータの繰り下げの例


こうした上位水準から下位水準への繰り下げは隣り合った水準のみに限られることはなく、例えば16水準から2水準への繰り下げといったことも可能です。極端な例ですが、No.168のテンプレートを使って2水準のパラメータが5+17+11+28=61個ある組み合わせを生成することも理論上は可能です。

 

このような柔軟性のあるテンプレート決定アルゴリズムを採用しているため、限られたテンプレート数にもかかわらず、実用上支障のない程度に様々なモデルへの適用が可能となっています。

 

 

 

1 | 2 | 3 | 4 | 5 | 最初次のページへ >>

Ameba人気のブログ

Amebaトピックス