ここから本文

ホーム > 人と技術 > プロフェッショナルが語る > ソフトウェア試験設計

人と技術

プロフェッショナルが語るソフトウェア試験設計

上流プロセスからテストエンジニアを活用することで品質はもっと高められる

網羅性が高く、かつ効率の良いテストを行うためには、ソフトウェアテストに関する豊富な知識と経験が必要になります。三菱電機インフォメーションシステムズ株式会社(MDIS)の組込みソフトウェア開発支援サービス「DIA-Quality/E」では、ソフトウェアテストの計画から実施までを行う試験支援サービスを提供しています。ここでは、テストエンジニアとして様々なプロダクトのテストを支援してきた、同社のサーティファイドプロフェッショナルである市山正則氏に、ソフトウェアテストの勘所や、ソフトウェアの品質向上のためにテストや開発プロセスはどうあるべきかなどについて伺いました。

テストの専門家の技術とノウハウを提供するDIA-Quality/E

DIA-Quality/Eは、MDISが提供する、組込みソフトウェア開発サイクル全体を包括的に支援するサービスです。サービスは大きく分けて、プロジェクト管理支援サービスと、試験支援サービスのふたつから成ります。DIA-Quality/Eの試験支援サービスでは、単に顧客のテストプロセスを支援するだけでなく、実際にテスト計画からテスト設計、実際のテスト実施までを請け負うことも可能です。

「試験サービスをご利用いただいているお客様の多くは、よりよい試験を行い効率よく品質を確保し、機能の網羅度などもきちんと把握したいという考えをお持ちです。試験計画の段階から私どもがサポートし、製品の特徴やプロジェクトの制約に合わせて試験計画と設計を行うことで、網羅度もわかり、試験の成果を客観的に把握できるようになります」と市山氏は、試験支援サービスの利用状況を語ります。

DIA-Quality/Eでは、試験のエキスパートであるテストエンジニアが、製品開発のエンジニアとも協力しながら試験設計を行っていきます。組込み開発の業界では、ソフトウェアのテストを専門に行う部門やテストエンジニアを揃えている会社は少なく、開発者自身がテストをしたり、自らやり方を考えて実施を指揮する場合がほとんどです。ただ、信頼性の高いテスト行うためには、テストならではの専門知識や技法、ツール、さらにノウハウが必要になりますので、その分開発者の負担が大きくなります。

テストエンジニアは、仕様の裏返しを探し、行間を読む

試験設計で特に重要なプロセスに、仕様書を元にどんなテストが必要かをリストアップしていく作業があります。その際、市山氏は、仕様書に書かれていない部分をいかに引き出していくかという部分に、特に注力しているといいます。


関西支社
システム第二部
DQ推進グループ
サーティファイドプロフェッショナル
市山 正則

「非常にシンプルな例として、電話をかける機能をテストするとします。要求仕様書には“電話がかけられること”とだけ書いてあっても、普通に通話ボタンを押して電話をかけるだけでは、テストとしては不十分です。そこでテストエンジニアは、電話の掛け方がどれだけあるかを想定します。直接番号をプッシュする以外にも、電話帳から発信する、着信履歴から発信するなど、電話の掛け方は様々です。さらに電話を掛けている最中にメールが着信したらどうなるのか、アラームがなったらどうなるのか、といったように思考を発散させていきます。これがいわば試験の"元ネタ"となります」

テストエンジニアは、適切な技法と熟練したテスト設計スキルのもと、仕様の“裏返し”や“行間”を見つけ出します。「裏返し」とは、仕様の記載とは反対の操作や状況、「行間」は仕様で想定されていない操作や状況を指します。仕様書の行間を自動的に見つけてくれるようなITツールはありません。これを見つけるためには、何度もテスト設計を経験して、“テストの勘所”を養うしかありません。DIA-Quality/Eでは、こうした思考の発散にマインドマップなどの思考発散手法を利用しています。マインドマップは、キーワードやイメージから連想されることを放射状に描いていく手法で、思考の整理や自由な発想が求められるブレインストーミングなどで良く使われます。

バグの有無だけでソフトウェアの品質は決まらない

テストによるバグの発見は、品質向上に欠かせませんが、ソフトウェアの品質は、単にバグが少ないということだけではありません。流用性・可用性・保守性といった点も重要となります。

「特に、組込み製品の多くは派生開発になります。例えば、2015年のモデルは、2014年モデルのマイナーチェンジであったり、同じ年式のモデルでもハイエンドとローエンドといったバリエーションがあります。この時、ソフトの基本部分は流用されていきます。きれいにモジュール化されていれば、新しい製品が作りやすくなります。また、保守性や可用性がきちんと確保されたソフトは、自然とバグも少なくなります」(市山氏)

より高品質な製品を実現するためには、後からテストを行うだけでなく、上流の開発プロセスにテストを組み入れていく必要があると市山氏は言います。

「ある製品で、テストの最終段階であるシステム試験で出た不具合の原因がどこにあるかを調べたところ、30%が上位のシステム設計のところにありました。工程の後ろの方で発見された不具合は、初期の設計にまで戻ることになり、余分な修正コストが発生します。テストをフロントローディングして、設計からコーディング終了までの間にできるだけ多くの不具合を解消していくのが望ましいやり方です」


DIA-Quality/E 試験設計支援サービス

組込みはもとより、ソフトウェア開発の現場で、もっとテストエンジニアの能力を活用して欲しいと市山氏は語ります。

「開発者はスケジュール通りに製品を世に出さなければならいというプレッシャーを常に受けていますから、どうしても想定の漏れが出やすい状況にあります。その部分をテスト設計のできる人間がサポートすることでも、より品質の高い製品ができ、バグや仕様漏れによる手戻りが減ることでトータルコストの削減にも繋がるはずです。私どもも、もっとテストのフロントローディング、テストファーストといった考え方の啓蒙に努めていきたいと思います」

市山 正則
1989年三菱電機関西コンピュータシステム株式会社(MKC)入社。オフコンの基本ソフト及びミドルウェア開発に従事。2001年三菱電機インフォメーションシステムズ株式会社(MDIS)に入社。2006年に携帯電話テレビ電話会議システムに関するサポート業務に従事。2010年より組込みソフトウェア検証業務を開始。三菱電機向けカーマルチメディア事業(検証部門)にて、テスト計画・分析・設計・実装・完了まで検証業務のすべてに従事。2012年よりプロジェクト管理支援・試験支援サービス「DIA-Quality/E」を担当。組込み総合技術展への出展や三菱電機の月刊技術広報誌「三菱電機技報」への記事投稿、三菱電機社内講座講師を務めるなど、検証業務について社内外にて幅広く活動中。

この記事について:
この記事は、情報誌「MELTOPIA」2015年3月号(No.204)に掲載されたものを転載しました。

↑ページの先頭へ戻る