システム開発のリスクヘッジを考える 
第1回 アプリケーションテストを総合的にサポートするOracle Application Testing Suite

取引システムにおける大量の誤発注や過請求、あるいはシステムにおける性能障害の発生など、ソフトウェアの設計ミス、あるいはコードの中に潜むバグがビジネスに影響を与える事例は少なくありません。その背景にはさまざまな理由が考えられますが、その1つとして挙げられることが多いのがテスト不足です。今回は、このテスト工程における課題を解決する、「Oracle Application Testing Suite」を解説していきます。(編集部)
《システム開発のリスクヘッジを考える》シリーズをお見逃しなく!
110103-01_00.png
日本オラクル
テクノロジー製品事業統括本部
データベースソリューション本部
プリンシパルエンジニア
中島良樹
 
 
 
■開発期間の短縮と品質の向上を両立
 
 開発サイクルの短縮やコスト圧力の増大など、ソフトウェア開発を巡る環境は厳しさを増し続けています。ただその一方で、ビジネスのあらゆる領域でITが使われるようになり、設計ミスやバグがビジネスに大きな影響を与えるようになりました。
 
110103-01_01.png
出典:ガートナー
 
 こうした相反する問題に対応するため、重要な鍵を握っているのがテスト工程です。そもそも大規模ソフトウェア開発において、完全にバグを解消するのはほぼ不可能でしょう。このため品質確保には、多くのテストを繰り返して不具合を洗い出す作業が欠かせません。ただ、テストに莫大な時間をかければ、スケジュールやコストに大きな影響を及ぼします。そこでテストツールを用いて自動化を進め、短期間で品質を高めることが重要となっているわけです。このように考えていくと、テスト工程がソフトウェア開発において極めて重要なプロセスであることが理解できるでしょう。
 
 オラクルでは特にWebシステム開発のライフサイクルを通じて品質向上を支援するためのソリューションとして、機能/回帰テストを行う「Oracle Functional Testing」、負荷テストのための「Oracle Load Testing」、そしてテスト工程を管理する「Oracle Test Manager」の3つの製品で構成された「Oracle Application Testing Suite」を提供しています。
 
110103-01_02.png
 
■シンプルな使い勝手でテストの効率化を実現
 
 Oracle Functional Testingは機能/回帰テストを行うための製品で、大きな特徴としてGUIでテストスクリプトを作成できる「OpenScript」の搭載が挙げられます。さらにユーザー視点でテストを行うコンテンツチェックやレスポンスの閾値テスト、データ駆動型のテストを可能にするデータバンクといった機能を利用し、テストの自動化を図ることが可能です。
 
 大量のアクセス時のレスポンスをチェックするなど、システムのパフォーマンスを確かめることもテスト工程で欠かせない重要な作業です。Oracle Load Testingは、こうした負荷テストを実施するためのツールであり、運用を開始する前にアプリケーションの性能問題を炙り出すことができます。こちらもGUIを利用して簡単にスクリプトを作成できるほか、OSやアプリケーション、ネットワークなどの性能データをエージェントレスで収集することが可能です。特に本番環境の性能を確かめたいといった場合、別途エージェントをインストールすることなくデータを収集できるのは大きなメリットでしょう。
 
 また、テスト工程ではテストした内容や結果、あるいはテストの進捗状況などをドキュメントとしてまとめることが欠かせません。こうした作業をサポートするために用意されているのが「Oracle Test Manager」です。テスト計画からテスト実施、不具合管理といった一連のテストプロセスを統合的に管理するための機能を提供しており、これらの情報を品質管理者やテスター、開発担当者、プロジェクト管理者の間で容易に共有することができます。もちろんレポート作成機能も搭載しているため、ドキュメント作成の手間を大幅に削減できるのもポイントでしょう。なお、「Oracle Test Manager」はWebアプリケーションに限らず、クライアントーサーバーシステムや組み込みシステムなど様々なテスト工程で利用できます。
 
■テストの自動化で負担を軽減
 
 こうしたテストツールを使うメリットの1つとして、定型化されたテストを自動化できるという点です。たとえば機能追加や不具合修正を行った際、デグレートが起こっていないかをテストする必要がありますが、毎回手動でテストを行うのは手間がかかります。しかしOracle Functional Testingを利用すれば、あらかじめ用意しておいたテストスクリプトに沿って自動的にテストを行えるため、テストの負担を大幅に軽減できます。
 
 事前にシステムのパフォーマンスを検証し、それに合わせてハードウェア構成を検討するといった使い方も考えられるでしょう。Oracle Load Testingを利用してシステムの性能を検証し、それに合わせてサーバスペックやネットワーク構成を検証するという使い方です。
 
 テスト作業の負担軽減といったところでは、ドキュメント作成にかかる負担も無視できません。こうしたドキュメントを表計算ソフトで苦労して作っているという人は少なくないでしょう。しかしOracle Test Managerを利用すればテスト結果のレポートを自動的に記録し、さらに簡単に関係者でリアルタイムに共有することが可能です。
 
 このようにOracle Application Testing Suiteでは、ソフトウェア開発におけるテスト作業の課題を解決するための仕組みを提供しています。Oracle Wikiにおいて製品の情報を提供しているので、テストを効率化したいと考えているなら是非1度試してみてください。
 
 次回はOracle Application Testing Suiteの新バージョンで強化されたOracle Databaseの負荷テストを中心に解説します。