2015年10月に開催された@IT主催セミナーより、前編となる今回は、JAXA主任研究員の植田泰士氏やサイバーエージェントのチーフクリエイティブディレクターの佐藤洋介氏による品質向上への取り組みに関する講演、品質向上に役立つ考え方やツールを紹介した各講演をお伝えする。
2015年10月23日、@IT主催セミナー「ソフトウェア品質向上の“変”2015秋〜今、変革のとき〜」が開催された。ビジネスのスピーディな差別化が強く求められ、DevOpsが今あらためて注目されている中で、開発のスピードと品質をどう両立するか、パフォーマンス、安定性、セキュリティなど、さまざまな意味での品質をどう担保するか、あらゆる視点での講演が行われた。前後編に分けて紹介する。
最初の基調講演では、「JAXAにおけるソフトウェア品質向上活動〜一発勝負のものづくり〜」と題し、JAXA(宇宙航空研究開発機構)研究開発部門の植田泰士氏が、その取り組みを説明した。一歩間違えれば人命をも失う危険な事故につながりかねない宇宙機システムのソフトウエアの品質確保はどのように行われているのだろうか。
同氏が所属するJAXAでは、宇宙に物資を運ぶ「H-II A/B」「H3」「イプシロン」など各種ロケットの他、地球観測や通信のための衛星、小惑星探査機を開発・運用しているが、これらにはある共通のキーワードが存在する。「一発勝負」だ。
5〜10年の開発期間で数百億円の開発コストを掛け、新しい技術要素を多分に盛り込んだ宇宙機システムは、どれも同じものが存在しない、いわば「一品もの」だ。それを、ほぼ一回しかない本番で確実に宇宙へ送り出さなければならない。しかも、打ち上げ後に高真空や放射線、無重力の軌道上環境に晒されるため、これら機器を修理すらできない。このことから、開発者たちは耐故障設計含む基本設計から検証・審査、製作後の打ち上げ環境や軌道上環境の模擬テストなど、厳しい品質管理を徹底しているという。
ソフトウエアも同様だ。例えば2013年8月にイプシロンロケット試験機が打ち上げ延期になった事例では、ロケットの搭載コンピューターが姿勢計算を始める0.07秒前に地上側の監視ソフトウエアが監視を開始し、それを異常と判定して自動停止した。「いずれも間違った動作をしていないが、双方が関わることで異常が生じた。複雑なシステムの品質管理は非常に難しい」(植田氏)
そこで、JAXAでは客観性を導入することでソフトウエアの品質を確保するアプローチを採っている。具体的には、ISO/IEC 12207 1995/2008版に基づいて2011年に策定されたプロセス標準に従い、それが順守されていることを客観的に評価、プロセス改善を繰り返して「プロセス品質の確保」を実施。そして、ソフトウエアが意図した通りに動作するか、想定外でも期待通りに振る舞うかなど、開発者とは別の第三者が検証と妥当性確認(IV&V)を実施し、開発者でも検証と妥当性確認を実施、「プロダクトの検証」をする。
「IV&V」は、スペースシャトルのチャレンジャー号の事故をきっかけに米国航空宇宙局(NASA)が1993年に本格的に組織化したプログラムだ。JAXAでも1995年に開始。「技術的にも管理的にも、また経済的にも独立した観点で製品をしっかり検証するプログラムとして、NASAや欧州宇宙機関(ESA)と協力しながら実施している」と植田氏は言う。JAXAではIV&V普及に向けた無料技術セミナーを開催する他、『IV&Vガイドブック』も出版している。
今後の課題は、これまでかそれ以下のリソースでより複雑かつ大規模、高度なシステムを開発・テストするにはどうすればよいか検討することだと植田氏は言う。「人の経験に依存する部分を可視化し、誰もが合理的に対応できるようにしたい」。
セッション「システム移行に伴う現新比較テストを効率化するテスト自動化ソリューション」では、日本アイ・ビー・エムの越水喜之氏がシステム移行という別の切り口から品質保証に言及した。
「現行システムを新システムへ移行するとき、変わらない動作環境を保証するために動作比較テストを実施する。だが、それぞれのシステムでエビデンスを取得することから、テスト工数は必然的に増加し、また担当者が異なるとエビデンスが一致しないなどの問題が発生することもあり、品質保証は至難の業だ」(越水氏)。しかも、複数システムで構成されている場合、「どこかのシステムでテストが遅れたらテスト工程全体も遅延し、待ち時間も増える」と、越水氏は課題を洗い出した。
これらを解決する方法は、テスト自動化とサービス仮想化を導入することだ。「テストスクリプトでテスト自動化してテスト工数の短縮や正確かつ効率的なエビデンス作成を実現し、システムのインターフェースをスタブ化(仮想化)することで、システム全体の連携・結合前でもテストできるようにし、テストの待ち時間の削減とテスト遅延を防止できる」(越水氏)
「IBM Rational自動化ソリューション」は、テストの効率化をサポート。同ソリューションは、機能テストを実行しエビデンスも取得する「IBM Rational Functional Tester」や、システム間の依存関係を取り除いてテスト目的に合った応答を返すようスタブ化する「IBM Rational Integration Tester」などがある。
実際、「Inetnet ExplorerやChrome、Firefoxの各バージョン対応に向けたテストを効率化したい」ということで、同ソリューションを採用したSI事業者は、テストの8割を自動化。1プロダクト当たりのテスト工数を70人月も削減し、テストを可視化したことで1プロダクトにかかる評価実施時間が20時間から2時間に削減された。さらには人的エラーも減り、毎日テストできるようになったことで品質向上も実現したと、越水氏は明かす。
「システムの移行は、システムの新規開発よりも検討材料が多く、悩みも多い。紹介したシステム自動化とシステム仮想化が、困りごとの解消に役立ててもらえれば幸いだ」(越水氏)
Copyright © ITmedia, Inc. All Rights Reserved.