本記事はペアワイズテスト用テストケース生成エンジンCIT-BACHを開発された大阪大学・土屋教授(写真左)と、バルテスで今共同研究を担当した石原上席研究員(写真右)による対談を記事としたものです。
情報は2012年4月9日対談当時のものです。内容は弊社ポータルサイト「Qbook」の再掲となります。
対談者紹介
- 土屋 達弘 教授
大阪大学大学院 情報科学研究科
情報システム工学専攻 ディペンダビリティ工学講座
1996年4月大阪大学・基礎工学部・助手、1998年9月に大阪大学 博士(工学)を取得、2000年5月から大阪大学大学院・基礎工学研究科・講師、2002年4月から同大学院・情報科学研究科・助教授、2012年4月から同大学院教授に着任。ディペンダビリティ工学講座でディペンダブルな(信頼のおける)情報システムを実現するための技術について研究を進めている。2022年6月から電子情報学会ディペンダブルコンピューティング研究会(DC研究会)の専門委員長。著書に「教養のコンピュータアルゴリズム」(共立出版)、共著「ディペンダブルシステム: 高信頼システム実現のための耐故障・検証・テスト技術」(共立出版)がある。
学生も教員も成長していけるような研究室を目指す。二児の父で休日はもっぱら家族と過ごす。
バルテス・ホールディングス株式会社 品質ビジネスイノベーション部 部長 兼 首席研究員
年間2,000名を超える開発エンジニアにテスト・品質を教えるセミナー講師。 ソフトウェアテスト・品質技術の研究開発、社内/社外の技術研修やセミナーの講師、コンサルティングなどを担当する。 著書に『いちばんやさしいソフトウェアテストの本』、『ソフトウェアテストの教科書』。 PMI認定プロジェクト・マネジメント・プロフェッショナル(PMP)。 JSTQB認定Advanced Level テストマネージャ。
座右の銘は『ぶれない軸を持って品質をつくる』。顧客の要求に立脚した品質向上技術の開発と、 現場のエンジニアを元気にする技術研修を目指す。趣味は料理とアンティークの筆記具。
- もくじ
「Qumias」(クミアス)について
大阪大学・土屋教授の開発する組合せテストケース生成エンジン CIT-BACH(シット・バック)を用いた、高速な組合せテストケース生成ツールです。
従来の組合せテストケース生成ツールは、禁則が複雑になったり、因子・水準数が増えると、極端に処理が遅くなる、 ハングアップするなどの問題点があり、実業務で使用するには注意が必要でした。
本共同研究では、大阪大学・土屋教授が強力な計算アルゴリズムを有する組合せテストケース生成エンジン CIT-BACH(シット・バック)を開発し、従来の問題点を大きく改善しました。
バルテスは実際のソフトウェア開発現場で使われた 因子水準や禁則条件を使用してCIT-BACHに対するテストを行い、エンジンが実用に耐えるものであることを確認しました。
また、バルテスは、使いやすいGUIをデザインし、それを多くのIT技術者が使い慣れているExcelで動作するアドインによって 実現しました。
これによりシンプルなGUIベースのCIT-BACHの性能を存分に活用できるツールとなっています。
※現在はダウンロード版は配信停止し、同等の機能をMicrosoft Excel不要でお使いいただけるようになっています。詳しくは以下の「Qumias Plus」をご確認ください
従来のツールが持つ問題点を改善、より実用的なツールに
石原:バルテスとは、組合せテストについて共同研究させていただいておりますが、そのほかに土屋教授はどのような研究に取り組んでおられるのでしょうか?
土屋:研究室の名前は「ディペンダビリティ工学講座」です。 ソフトウェアシステムを中心とした高信頼化技術の研究をしています。
- もともと分散システムとか耐故障化の理論研究をしていたのですが、そこから始まって、ソフトウェアテストの理論とか、あとはモデル検査と言っているのですが、いわゆる形式検証、フォーマルメソッドの一種みたいなものについて研究をしています。
石原:なかでも最も熱心に取り組まれているご研究は?
土屋:それはもうCIT-BACHでしょう。
石原:ありがとうございます。
- では、CIT-BACHは、土屋教授の研究室の名称でもある「ディペンダビリティ」(高信頼性)では、どのように位置づけられるものなのでしょうか?
土屋:システムをどうやって高信頼化するかというと、故障が起きても大丈夫なようにする耐故障化と、そもそも故障や不具合が入っていないようにしようという、大きく2つの方法があります。 CIT-BACHは後者に役立つ研究になります。
石原:なるほど、私の専門のソフトウェアテストはどうしても故障が入らないようにするという意識に偏りがちなのですが、ディペンダビリティの意識を持ってテストに取り組まないと、本当に高品質なシステムは実現できませんね。
土屋:そうですね、あらゆる信頼の属性を含む大きな概念というのがディペンダビリティですのでとても重要です。
CIT-BACHの優れているところ
石原:組合せテストケース生成ツールとしてはすでにPICTがあるのはご存知だったと思うのですが、新たにCIT-BACHを開発しようと思われたのはどうしてなんでしょう?
土屋:組合せの生成は、禁則処理が大事だと思っています。PICTでも禁則処理はできるんですが、ちょっと問題点がありました。 でも改良しようにも、どうやって実現しているのかが公開されていないんですね。 そこへ最近、ほかの研究者たちが、PICTとは異なるやり方なんですが、方法を明らかにした組合せのやり方を発表したんです。 その方法を見て、それよりもっといい方法があるんじゃないかって思いまして、それを実現しようと開発を始めました。
石原:それはすごいですね。研究成果を発表されたら、大きな話題になるのではないでしょうか。
土屋:いやあ、どうでしょう。そうなるといいのですが。
石原:どういったところが、CIT-BACHの優れているところなのでしょうか?
土屋:今までの方法ですと、先に禁則を考えずに組合せテストケースを作成してから、一つ一つ禁則を満たしているか調べて、満たしていたら排除するなりしていたんです。 CIT-BACHは、先に禁則情報を持つようにして、いちいち調べなくても、そこを参照したらほぼ一瞬でテストケースが禁則を満たしているか、そうでないかがわかるようにしているんです。
石原:PICTだと水準が増えた時に、禁則処理がものすごく遅くなるのは経験的に知っていたのですが、そういうことだった のですね。でもそうするとCIT-BACHは最初の禁則情報を作成するのに時間がかかるのではないでしょうか?
土屋:そこがどうなのかは、検証しているところです。 ただ、PICTがものすごく遅くなる既に知られている例というのがあるんですけど、それに対しては速いですよ。
石原:私たちが行ったCIT-BACHに対するテストでも、これまでだと不安のある因子水準と禁則データを入れても安心して使える印象を持ちました。開発はお一人でされたのでしょうか。
土屋:はい、基本的にツールの開発は、自分で全部やりました。本当に速くなるのかの確認は学生にやってもらいました。
一緒にツールを作り上げたのは、今回の共同研究が初めて
石原:工夫されたところとか、苦労された部分は?
土屋:エンジン部分は意外と早く出来上がったんですよ。 禁則情報を扱うところは、グラフ構造のBDDを扱えるJavaのライブラリを使いました。 苦労したというか、時間がかかったのは、GUIから呼び出されることを考慮するとか、出力ファイルとか、そういうエンジンとは無関係のところですかね。
石原:私のほうから出したリクエストにも応えていただきましたしね。
土屋:はい、できるかぎり対応しました。石原さんはこのような大学との共同研究というのは、これまでにもされてきたのですか?
石原:これまでは先生方をお招きして講義などをしていただき、いろいろな理論などを教えていただく形で、大学の先生方と関わらせていただいてきました。 今回も土屋教授にはたいへん勉強させていただきましたが、それだけでなく、こちらからもデータをご提供したり、一緒にツールを作り上げたりできるようになったのは、今回の共同研究が初めてです。
土屋:QumiasのGUIは非常にいいですよね。 GUIがあると使いやすいですものね。 実業務で使いやすいものを、みなさん望まれていると思うのですが、GUIの開発というのは大学の研究ではやりにくい部分なんです。 そういう部分を企業様に担っていただけると助かります。Qumiasの開発ではどんなところに苦労されたのでしょうか?
石原:高機能と簡便さのバランスですね。 私たちもそれなりに組合せテストは使ってきているので、いろいろなことをできるようにしたくなるのですが、そうすると設定画面が増えて、簡便さが損なわれてしまいます。 たんに因子水準表から2因子間網羅の組合せ表をつくりたいだけなのに、さまざまな設定ダイアログを見せられては使いたくなくなりますからね。 ですから、原型シート利用機能などCIT-BACHが持っている機能でも、Qumiasからは使えない機能もあります。
土屋:なるほど。でも、今は原型シートは使えないかもしれませんが、Qumiasで出力されるモデルファイルの機能を拡張すれば、比較的簡単にできるような作りになっているような気がしますが。
石原:はい、簡単に使えるようにということを念頭に入れて作ってますが、原型シートなり、デシジョンテーブルなりという方法を、やっぱりQumias上で使いたいという声が大きければ、次のバージョンで入れられるようには考えてあります。
土屋:すばらしいですね。どうしようCIT-BACHにバグがあったらいやだな。
石原:私たちもCIT-BACHのテストをさせていただきましたので大丈夫ですよ。 ところで、CIT-BACHという名称についてお聞かせください。
土屋:CITというのはよく使われている略語でして、Combinatorial Interaction Testingのことです。 Pairwiseとか、Three-wayとか、そういうものをまとめてCITと呼んでいます。 それで名称として、"くつろぐ"という意味のsit backに音を似せようと、BACHは無理やりくっつけた感じです。 一応、BDD Assisted Constraint Handlerで、BDDを用いた制約処理装置という意味になります。
今後の展望
石原:CIT-BACHの今後の改良予定などはありますか?
土屋:禁則や制約処理については工夫したんですが、テストケース生成のアルゴリズムに関しては、よく知られたタイプで作っています。 それを洗練させて、もっと速くて小さなテストセットが出てくるようにしたいと思っています。 アルゴリズムをいくつか用意しておいて、あとは、与えられた因子水準、禁則のパターンを見て、最適なアルゴリズムを推定して、自動的に切り替えるとか、そういう拡張を考えています。
石原:今後2年間、共同研究を行わせていただくわけですが、私たちからは、実際の現場で使用した結果を、土屋教授にフィードバックさせていただければと思っています。
土屋:研究室の中にはCIT-BACHがあるから便利、なければ困るという"実際の問題"というものがありません。 ですので、バルテスさんのような実業務のところから上がってきた問題を形式化して、それに対して解法を考えていくようにしないと研究できないんですよね。
石原:バルテスのテストエンジニアに使ってもらうのと同時に、Qbookというソフトウェア品質のポータルサイトでQumiasをダウンロードできるようにします。 私のほうで現場からの声やデータを集約しつつ、QumiasもCIT-BACHもブラッシュアップしていければと。
土屋:そうしていただけるとありがたいです。 こんな条件の時に遅くなったとか、さまざまな要望とか、例えば、もっと速くしろとか、遠慮なく言っていただけるといいかなと思います。
石原:そうして改良したツールや、ツールに限らず研究成果を使って、さらに実業務のテストがより正確になり、効率が上がるといいですね。 私たちにとっても大きなメリットです。 それが共同研究の目指すところでもありますので、今後ともよろしくお願いいたします。
土屋:こちらこそよろしくお願いします。
石原:本日はありがとうございました。
組み合わせテストケース生成ツール「Qumias Plus」
オールペア法(ペアワイズ法)による組み合わせテストケース生成ツール [Qumias Plus(クミアス プラス)]は膨大な組み合わせのテストケースを瞬時に生成できる、組み合わせテストツールの決定版です。
ダウンロード版「Qumias」は、配信停止し、現在は「QumiasPlus」としてn因数網羅のテストケースを、Web上で作成することができます。
Qbook会員の方なら誰でもご利用いただけますので、ぜひご活用ください!