「テストを知ることがソフトウェア品質向上の近道」─ソフトウェアテストセミナー講師の石原一宏氏が語る

テストは、ソフトウェアの品質を確保するための非常に重要な工程です。しかし、一体どれだけの人がソフトウェアテストの本質を理解できているでしょうか。バルテス株式会社が主催するソフトウェアテストセミナーでは、ソフトウェア品質の向上につながるテストの考え方やノウハウ、実践的な技法などを学ぶことができます。今回は、 同セミナーの講師を務めるバルテス株式会社 テスト技術開発部 部長の石原一宏氏にお話を伺いました。

画像

開発に携わる全ての人がテストについて知る必要がある

バルテス株式会社はソフトウェアテストを専門とする企業で、第三者の視点で、ソフトウェアのテストを実施することが主な業務です。形態としては、お客様先でテストを行うオンサイト形式と、バルテスのテストセンターにてテストを行う請負形式があります。そのバルテスがセミナー形式での教育を手掛けるようになった背景には、ソフトウェアの品質を上げるためには最下流のテスト工程だけでは多くのお客様が不十分と感じるようになったからだと石原氏は語ります。

ソフトウェアに対するテストは、開発工程における下流側で実施されることがまだまだ多いのが現状です。しかし、製品がほぼ完成したその段階から品質を上げるには限度があります。これに対して開発工程の上流側、すなわち設計やコーディングの段階からテストを意識できるようになれば、より高い品質を確保することが可能になります。

「弊社のセミナーが対象としているのはテストの専門家を目指す人だけではありません。品質を高めるためにはソフトウェア開発に関わる全ての人が品質に対する理解を深める必要があります。ですから企画、開発・設計、マネージメント、保守、営業、あらゆる業務の方にとって役に立つ内容だと考えています」⁠石原氏)

また、石原氏はソフトウェアテストについて、次のようにも語っています。

「テストの本質とは、品質とは何かを考えることだと思います。プロジェクトに関わる人全員が品質に対する認識を一致させることで、開発目標や目指すべき品質を明確に定めることが可能となるでしょう。しかし実際には品質に対する認識は、プロジェクトごと、チームごと、ひょっとするとメンバーごとにバラバラとなっているのが現実です。弊社のセミナーを通じて、できるだけ多くの人に品質に対する認識を高めていただきたいと思います。そしてプロジェクト全体で、一貫性のある品質向上への取り組みができるようになります。プロセス全体のコンセプトから考えた品質向上につなげることができるようになります」

たとえば、プログラマはプログラミングの専門家ではありますが、品質を作る専門家ではありません。しかし本来はプログラミングの段階で最終的な製品の品質を考慮して作るべきだというのは言うまでもない事実です。そのために役立つのが「テストの観点⁠⁠、すなわち、どのようなテストが行われるのかを知ることだと言います。

設計の段階でも同様のことが言えます。テスト対象となる設定項目やパラメータ、数値などが仕様書に明記されていれば、その後工程で誤解やミスが少なくなり、結果としてテストに入る前の段階で品質は向上します。

同セミナーで使われるテキストは、実際にバルテスで社内の教育に使われた資料を元に作成されています。もともと同社では社員をテスト専門家に育て上げるための社内教育に力を入れており、月1回の定例勉強会などでノウハウを蓄積してきたといいます。したがってテキストに反映されているのは実際の現場で培ってきたノウハウであり、高い実績に裏付けされたものだそうです。

実際のセミナーはソフトウェアテストと品質の根本的な考え方を体系的に学ぶ「基礎編⁠⁠。ブラックボックステストの実践的な技法を学ぶ「設計編⁠⁠。単体テストの本質的な考え方を学ぶ「ホワイトボックス編⁠⁠。テストだけでなく開発プロセス全体で品質を管理する手法を学ぶ「管理編」の4コースに分かれています。以下に、各コースで学ぶ内容や効果について紹介します。

開発に携わる全ての人に役立つ「基礎編」

まず「基礎編」では、⁠品質とは何か」という観点からソフトウェアテストに関する基本的な知識や考え方を学ぶことができます。石原氏によれば、⁠品質に対する考え方の『軸』は普遍的な部分が多く、一度身につければ100年たっても基本的には変わらない」ものだとのこと。まずそのベースとなる考え方やノウハウを身につけることが本コースの目的です。したがって、セミナーの案内にはテスト業務に携わる方が対象と書かれていますが、実際のテスト担当者だけでなく、ソフトウェアの開発に携わる全ての人に受けていただきたい講義だと同氏は言います。

実際の講義は、仕様書がなくても現物から要求を分析するトレーニングなどがワークショップ形式で行われるそうです。これによって設計段階からテストを意識することの重要性を学ぶことができます。その中で、具体的なテストの観点やドキュメント管理の方法、テスト設計などといったノウハウを身につけていくとのことです。

ハンズオンで実際の技法を学ぶ「設計編」

「設計編」はブラックボックステスト技法を中心とした具体的なテスト設計の方法を学ぶコースであり、S1とS2の2つのコースで構成されています。⁠設計編」は、実際にテストを設計する業務に携わる人や、上流工程で仕様書の作成に携わる人を対象にしたコースとのことです。

まずS1では状態遷移図/表や、デシジョンテーブル、直交表やAll Pairs法を用いた組合せ技法といったブラックボックステスト技法についてハンズオン形式で学んでいきます。それがなぜテスト設計者だけでなく仕様書の作成者にとっても役に立つのでしょうか。石原氏は次のように説明してくれました。

「実際のテスト技法を知ることで、仕様書の段階でテストが必要となる項目を記載しておくことができるようになります。本来、プログラムへの入力条件やエラー画面の表示条件などソフトウェアの動作に必要な情報が記載されていれば、テスト段階でデシジョンテーブルなどを作る必要はないのです。それに仕様書に書かれていない内容は、テスト項目から漏れてしまう危険性があります。テストが必要なものというのは最終的にお客様の手元に届くものということで、これは本来ならば仕様書作成の段階で考慮されていてしかるべきものが多いのです。」

また、同氏は修正コストに対する「1:10:100の法則」にも言及します。ある機能に対するコーディングの前段階での修正コストを1とすると、コーディング後の単体テスト段階での修正コストはその10倍、出荷後では100倍以上になるという経験則です。したがってコーディングの段階で品質の確保を考えるのがコスト削減のためには有効であり、それには「筋のいいエンジニアリング」の習得が必要になるとのことです。

設計編のS2コースでは、設計したテスト内容をドキュメントに記述する方法について学びます。ここでは、IEEE829準拠のテストドキュメント群について、実際に作成しながら学ぶことができます。S1とS2はそれぞれ独立したコースになっており、個別に受講することもセットで受講することもできるとのことです。

現場の開発者に贈る「ホワイトボックス編」

設計編が仕様設計者やテスト設計者を主な対象にしたものであるのに対し、実際にコーディングを行う担当者にとって役立つのが「ホワイトボックス編」です。このコースでは体系的なホワイトボックステストの技法、具体的には制御フローテストといったテスト技法やカバレッジなど実際にプログラムを動かしながらハンズオン形式で学習します。

「近年ではかなり単体テストの重要性が認識されてきましたが、まだ開発者がそれぞれ独自の方法で行っているというのが現状です。せっかく単体テストを行っても、基準がバラバラでは後の結合テストの段階で齟齬が生じることになります。これを統一するのが本コースの主な目的のひとつです」⁠石原氏)

ソースレビューに関しては、最近は有用なツールが多数公開されています。しかしツールを使うだけで品質を上げることができると考えるのは大きな間違いだと石原氏は強調します。

「ツールというのは、あくまでも基礎となるスキルがあって初めて高い効果を発揮するものです。ツールによって不具合を見つけられたとしても、そこから根本的な原因を導き出せないようではあまり意味がありません。逆に言えば、一度プログラムの全体構造を制御フロー図などで確認しておけば、不具合を発見したり、修正箇所を見つけたりできる可能性はぐっと高くなります」

その制御フロー図などプログラムの構造を把握するための、実践的なノウハウを身につけることができるのが、ホワイトボックス編の特徴だとのことです。

プロジェクト/テストマネージャのための「管理編」

「管理編」は、その名の通りテストマネージャやプロジェクトマネージャを対象としたコースです。このコースでは「品質を管理する」という観点から、TQC(Total Quality Control)や信頼性確保、リスク管理などの手法、そしてテストプロジェクトをうまくハンドリングするためのスキルについて学びます。ソフトウェアテストを効率的に進めるための手法にはさまざまなものがありますが、このコースではそれらの手法からQC7つ道具やWBSなど実際にバルテスで利用している有用なものをピックアップし、総合的に学習するとのことです。

「ソフトウェアプロジェクトで重視しなければならないのは、いかにチームのモチベーション、そしていかに改善をボトムアップで進めていくかということです。⁠管理編』ではそのあたりのノウハウについても言及します」⁠石原氏)


本インタビューを通して石原氏が一貫して強調していたのが、テスト工程だけでなく開発プロジェクトのライフサイクル全体でテストを考える、すなわち品質向上に対する意識を高める必要がある、ということです。この考え方はすでに効率的な品質向上の考え方として、アメリカでは主流になりつつあるそうで、これを日本でも根付かせていきたいと同氏は語っています。

「⁠⁠ソフトウェアの作り方」に加えて、⁠品質の作り方」に対する観点を持っている技術者は、鬼に金棒です。こうした品質の考え方の軸があれば、さまざまなテストツールやテンプレートなどを、道具としてより有効に使いこなすことができます。日本の技術者というのは、うまく考え方を身に付けることができればそれをモノ作りに活用できるセンスを持っているので、どんな国でも真似できない品質につなげられると思います。⁠品質を知ること」「テストを知ること」であり、ソフトウェアエンジニアリングの本質を知ることです。私たちのセミナーでそれを持って帰っていただければ、開発のための強力な武器になるはずです」⁠石原氏)

ソフトウェアテストセミナー
URL:http://gihyo.jp/event/01/test
バルテス株式会社
URL:http://www.valtes.co.jp/

おすすめ記事

記事・ニュース一覧