HOME > 活動報告 > イベント報告 > JaSST'15 Tokai

イベント報告
 ソフトウェアテストシンポジウム 2015 東海

2015年11月6日(金) 於 刈谷市総合文化センター アイリス

ソフトウェアテストシンポジウム 2015 東海
「テストをわかりやすく共有する ~ テストで変える/テストで変わる設計品質~テストが生み出す新たなソフトウェアの価値 ~」

2015年11月6日(金)、JaSST'15 Tokaiは天候にも恵まれ刈谷の地で開催された。テーマから「実行委員が伝えたいのはソフトウェア技術者が現状から『変わる必要がある』と問題提起したいこと」と感じる。

オープニング

まず引き込まれるのは劇場風に演出された実行委員長の挨拶だ。実行委員長からテーマ設定の意図として「設計にテストのノウハウを取り入れれば素晴らしいチームができる」と話があった。設計フェーズにテスト技術者が参画し、テスト技術を活用すれば、ソフトウェアの価値を早い時期から上げるチームができるのではということだ。演出もそうだが実行委員の熱い思いが伝わるオープニングであった。

基調講演
「テストから観た実体のモデリングと実装構造の評価~検証指向設計の実現に向けて~」
松尾谷 徹 (デバッグ工学研究所)

「検証指向設計」は25年ほど前から提唱されているが、開発現場へ浸透していない。仕様ベースの検証では、「セキュリティホールがないこと」のように事実上仕様と言えない仕様が多く存在する。そのような不完全な仕様をベースにテストを進めることにより、検証できないままリリースされてしまっている現状に対して、少しでも改善を進める方法について話が進められた。

内容は「検証指向設計」「派生開発」「スキルの成長」「探索モデル」「プログラムの探索構造」の5項目で構成されていた。前半の2項目でテスト技術者の変わる方向を、後半の3項目で変わる方法が示された。

検証指向設計

「検証指向設計」は検証可能な範囲を見極め、その範囲に合わせた設計を行うことにより、すべての範囲を検証可能とする設計手法のことである。
しかし、オブジェクト指向設計という名目で、中途半端にコードレベルでのみ導入されることで、自らが作成していないクラスのコードも取り込み、テストすべき範囲が広がり検証できない範囲も広がってしまっているのが現状である。このようにコード作成を優先させることが「検証指向設計」という考えが展開されない原因だと考えられる。

派生開発

オブジェクト指向をコードレベルで導入すると、変更していないにも関わらず、変更された箇所の影響を受けている可能性が否定できない。オープンソースでは回帰テスト結果も含めてリリースされているが、日本の開発ではソースコードレベルでの回帰テストは十分に行われず、ビッグバンテストになっていることが多くある。これでは検証できているとは言えず、仕様ベースのテストは破たんしている。そこで実装ベースでのテストであるコンコリックテストを用いて検証を行う等の発想が必要であるということであった。

スキルの成長

テスト技術者のスキル習得方法もプログラム技術者と同じように「作って確認する」といった手順が必要なのではないかということである。つまりテスト設計においてもデバッグの手順を踏むことにより、技術を習得しやすくなると考えられることから「ブリコラージュ」の考え方をテストにも導入すべきであると提唱された。

探索モデル/プログラムの探索構造

ソフトウェアのテストはランダム探索で行われることが多いが、効率よく漏れのない探索は「探索理論」に基づいて行うほうがよい。それには、原因結果グラフやパス解析、CFD等といった、全体を俯瞰する技法が必要であり、テスト技術者の教育が必要となる。その教育方法として、「スキルの成長」で示した「テスト設計のデバッグ」がテスト技術者の教育にも有効ではないかということであった。そのためにも実装ベースでのテストケース作成ツールはテストケースのデバッグ環境として有効であると提案があった。

現在コードの実装に重点を置いたソフトウェア開発現場が多く、検証しきれていないソフトウェアがリリースされていることは社会問題であり、それを正すべきであると松尾谷氏が強く言われていた。筆者はその状況を正すには「テスト技術者がテスト技術だけでなく設計や実装に対するスキルを習得し『変わる』必要がある」というメッセージを感じた。

特別講演
「はじめてのコンコリックテスト~基本原理から知るホワイトボックステストの新技術とその応用~」
植月 啓次 (フェリカネットワークス)

「コンコリックテスト」の簡単な説明と、試せる環境が揃いつつあると紹介された。「コンコリックテスト」は静的テストに分類されるが、オブジェクトを作成し実行することから文法チェックとは異なる性格を持つものである。
テストで作成したデシジョンテーブルと実装結果を比較し論理漏れが摘出できることや、形式仕様での活用、派生開発でのデグレード存在確認への適用も考えられる。静的分析技術が向上していることや、様々な言語に対応されつつあり有効な技術になると考えられる。課題としては実践への適用のためのノウハウが不足しており、開発者間でのノウハウの共有が必要であると今後の進め方について提起された。

事例発表
「安全系組込ソフトウェア開発におけるユニットテストの効率化」
岸本 渉 (デンソー)

ここでは特別講演で紹介されたコンコリックテストの活用事例が発表された。
単体テストのケース作成は自動作成ツールで行っていたが、最終的には人手によりテストケースの見直しと追加を行っているために工数がかかっていた。その工数を削減するために自動化率を上げることを目的として、コンコリックテストの活用を検討したとのことであった。
実際に使い始めた際は、ツール実施環境の選択や探索方法によるカバレッジ測定等、ノウハウの蓄積が必要なことも多くあった。しかし、以前のテストケースの見直しに必要な工数よりも、コンコリックテストのために必要な作業工数のほうが少ない見込みであるとのことであった。本格的に導入するには、導入に必要な作業をプロセスに追加、変更することや、ツールによる得手不得手への対策が必要であるとのことであった。特別講演でも言及されていたが、コンコリックテストを活用するには、ノウハウの蓄積と共有が必要であることをここでも感じた。

ワークショップ
「意地悪漢字を使ってみよう~テスト設計ワークショップ~」
鈴木 三紀夫 (リコーITソリューションズ)

基調講演で紹介された「探索モデル・プログラムの探索構造」の具体的な方法のひとつとして体験してほしいと実行委員長からの話もあり、プログラムのつながりを考え受講した。
内容は仮想のミュージックプレイヤーの仕様からマインドマップを用いてテストケースを作成する中で、鈴木氏から示された図形(タートル図、意地悪漢字、対立漢字)を参考にすると、それまで見えていなかった方向へ、発想が広がることを感じるためのワークショップであった。講師からは、これらの図形には相性のようなものもあるのですべての場合に使えるものではないが、各自が良いと感じるものを自社に持ち帰って使うことを期待している、とのことだった。提示された図形は、いずれもリストとしてまとめがちな内容を図形にすることにより、一覧性を高め発想を拡げることを意識されたものであった。これをテストケース作成だけでなく要件定義やレビューで活用することにより、今回のメインテーマにつながることを実感した。

まとめ

JaSST Tokaiで例年行われているポスターセッションで、参加者が気になるテーマで発表者と意見交換することは、参加者だけでなく発表者としても大きなメリットがあると思われた。情報交換会も無料で参加しやすく、セッション発表者と参加者で意見交換できる機会が設定されていた。これらは参加者が本当に納得し持ち帰ってもらい、「絵に描いた餅」にならないようにという実行委員の思いが伝わってくるものであった。
ひとつひとつのセッションがテーマに沿って丁寧に構成されており、初心者から経験者まで満足のいく内容であったと思われる。
もちろん筆者も十分に満足した内容であった。

記:武田 学(JaSST Kansai実行委員会)

[ページトップへ]