Loading
|
@IT > ソフトウェアの品質向上に現実的に取り組むサイオステクノロジー |
|
◆ ソフトウェアの品質が重視される理由 サイオステクノロジー(SIOS)は、4種のテストツールからなる「品質向上フレームワーク」の取り扱いを開始した。ツールの販売に加え、自社での経験から蓄積された実践的なノウハウの提供を含むコンサルティングも実施する。 生産管理の3要素(条件)と呼ばれる“QCD”は、ソフトウェア開発において重要視される。QCDとは、品質(Quality)、価格(Cost)、納期(Deliver)の3つだ。なかでもSIOSでは、特に品質を重視している。 SIOSはソフトウェア開発企業として、自社開発ソフトウェアの品質向上に長年取り組んできた。ソフトウェアの機能は年々向上し、複雑になることで開発負担が大きくなる一方、開発期間の短縮や開発費用の削減要求も高まり続けている。同時に、インターネットでの大規模なサービスなど、ソフトウェアの不具合が発生した場合にはユーザー企業の業務に深刻な打撃を与える重要な存在になってきていることから、ソフトウェアの品質向上も同時に求められる。 SIOSでもこの問題に直面し、かつては自社で機能テストツールを開発して利用していたこともあったが、本業はあくまでもSIやパッケージ・ソフトウェアの開発であることから、テストツールの開発に注力するのは本意ではなく、商用パッケージの導入に方針を切り替えた。例えば、今回の「品質向上ソリューションフレームワーク」に含まれる単体テストツールであるAgitarは、2005年からSIOS社内で利用が開始され、社内で十分な実績を積んだ製品だという。
品質向上フレームワークとは、ソフトウェア開発における品質向上を目指して、複数の商用テストツールを組み合わせることにより、テスト作業の効率化・自動化を実現する取り組みだ。 品質向上フレームワークに含まれるのは、
の4分野4製品である。これらはそれぞれ利用される場面が異なり、相互補完の関係にある。必ずしも4製品を一括導入しなければならないというわけではなく、必要に応じて必要なソリューションから段階的に導入することが可能だ。 例えば、Agitarは単体テスト、Rationalは統合テストと負荷テストと、いずれも作成されたソフトウェアが仕様を満たしているか、という観点からの、「機能要件」のテストに使われるツールであるのに対し、FORTIFYとprotexIPは、仕様には書かれていない「機能外要件」について確認するツールであり、利用目的も利用場面も明確に異なっている。ただし、いずれもテストに要する人手を大幅に削減し、自動化を実現することでテスト品質を高めると同時に時間とコストを節減できることと、すべてがEclipseプラグインを用意しており、既存の開発環境の中に組み込んで利用できる点が共通している。 ◆ 品質向上とコスト削減、生産性向上を同時に実現するには SIOSが品質向上ソリューションフレームワークに取り組むことになったのは、SIOS自身がソフトウェア開発企業として、品質を向上させるためにどうしたらよいかを考えてきた結果だ。ソフトウェアの品質を左右する要素は、「要件をどう決定するか」「デザインをどうするか」「作られたソフトウェア・コンポーネントをどう管理するのか」など、多岐にわたる。その中で、SIOSがまずフォーカスを当てたのがテスト行程だった。その理由は、現実的な効果を重視する、現場主導の発想から生まれたもので、実際にまずソフトウェアの工数管理から手を付け、成果を得たという経験もあるという。 むろん理想論としては、ソフトウェアの品質向上に関連するすべての要素を改善することが望ましい。しかし、ソフトウェア開発企業として“QCD”のCやDを度外視して開発業務を滞らせることはできない。開発を継続しつつ、同時にプロセスを改善していく必要があるのだ。となれば、まずどこか1つのポイントにフォーカスして順次改善を進めていくのが現実的である。 ソフトウェアの品質向上活動を行うに当たり、まず工数管理から始めるのであれば、テストに関しては人間が手動で最善の注意を払いながら工数をかけて実施するしかなくなる。一方、テストから始めた場合には、工数を要するテスト工程が自動化できるというメリットがすぐに得られる。もちろん、テスト部分だけを改善しても、ソフトウェアの品質問題がすべて解消できるわけではなく、「モジュール単位のテスト結果は正しいが、構成の時点でミスをした結果、異なるモジュールを組み込んでしまった」ということもあり得るし、最悪の場合は「要件定義の時点から間違っており、誰も欲していないソフトウェアが仕様書に添って正確に完成した」ということも起こり得ないとはいえない。しかしながら、開発現場として開発作業を止めることなく、かつ一定のソフトウェア品質改善効果が見込めるものとして、まずはテストから始めるのが現実的だというのがSIOSの判断だ。 また、テストへの取り組みはソフトウェア開発における費用対効果という面でも魅力がある。ソフトウェア開発の現場では、ソフトウェアの品質を向上させる必要があるのはもちろんだが、だからといってそのために無制限にコストを費やすわけにはいかない。「コストを掛ければ品質が向上するのは分かっているが、そのコストを掛けられない──。しかし、品質は上げたい」というのが現実的な悩みなのである。テストの自動化は、人手が必要な工程を削減することになるため、貴重なエンジニアのリソースを別の工程に振り向けることができ、品質向上とコスト削減や生産性向上を同時に実現する効果的な解となり得る取り組みなのである。 実際にSIOSが手掛けた開発プロジェクトにこれらのツールを使用した成果が、具体的な数値として計測されている。あるプロジェクトでは、472クラス、2万8000ステップのソフトウェアを開発、テストを行った。メソッド数でいうと、シンプルなメソッドが6134、複雑なメソッドが85という規模だ。このテストを従来同様のJUnitを使って手動で実施した場合の工数見積もりは、1つのメソッドのテストに平均30分を要するとの前提で計算すると375人日となるが、Agitatorを使用するとシンプルなメソッドのテストが10分、複雑なメソッドでも20分で完了するため、計132人日となり、差し引き243人日(約65%)の削減になったという。
また、Rational Functional Testerを利用した結合テストでは、画面数90、画面ごとのテストケース数36(総テストケース数は3240)というシステムのテストが、準備に10人日、実施に2人日で完了したという。これを人手で実施した場合には、準備に8人日、実施に41人日と見積もられるため、削減効果は37人日にのぼる。
SIOS自身が「ソフトウェア開発において、いかに品質を向上させるか」を重要なテーマとして考え続け、さまざまな試行を経てたどり着いたのがこれらのツールの効果的な活用だ。テストによる品質改善に取り組んできたSIOSが、自身が活用してきたツールを販売するのみならず、実際の使用経験に基づいたノウハウの提供が期待できる点が、これからテスト自動化に取り組む開発者にとっての大きなメリットとなる。 ◆ SIOSではこの4製品による「品質向上ソリューションフレームワーク」が現状で完成したものとは見ていない。前述のとおり、ソフトウェアの品質向上という大きなテーマは、テスト行程の改善だけで達成されるものではないためだ。そこでSIOSでは、まずテスト工程から着手し、将来的にはより上流工程にさかのぼる形でソリューションを拡大していくことを考えているという。ツール製品販売のみに目を奪われるのではなく、自社自らがユーザーの立場であり、広い視野でソフトウェアの品質向上に取り組むSIOSの動きは、同じくソフトウェア開発に携わる多くのユーザーにとって学ぶべき点の多い有益な先行事例となるはずだ。
提供:サイオステクノロジー株式会社 企画:アイティメディア 営業局 制作:@IT 編集部 掲載内容有効期限:2007年2月16日 |
|