性能問題を起こさないシステム開発を目指して ∼画面自動操作型テスト

特集:最新のテクノロジーで進化するシステム開発基盤 CommonStyle®
性能問題を起こさないシステム開発を目指して
∼画面自動操作型テストツール GUIPilot ® を中心に∼
特集記事
4
平井 潤 関根 智 川野 晋一郎
システム開発においては,フレームワークやコンポー
ネントといった実装面だけでなく,性能管理やセキュリ
ティ管理といった非機能要件への対応も重要となって
います。当社のシステム開発基盤CommonSt
y
l
e® で
は,性能管理の方法論も体系的に整備しています。
性能管理の中でも特に重要な性能テストを実現する
ツールとしてはWeb標準方式と,それだけでは対応でき
ない情報システムをテストするために独自開発した画面
自動操作型テストツール GUIPilot があります。
®
本稿では,GUIPilotの特長や適用事例について紹
介します。
性能テスト技術の重要性
当社のシステム開発基盤 CommonStyleでは,非機能要
件の一つである性能について,上流工程における性能管理
計画,性能設計目標策定,性能見積り,設計への反映に
引き続き,下流工程での性能測定,プログラムへの反映お
よび監視・診断を作業の要点として定義しています。( 図1)
特に下流工程の性能測定とプログラムへの反映は情報シ
ステムの性能を最終的に確保するために必須の作業となりま
す。したがって,これらを実現する性能テスト技術は極めて
重要なコア技術となり,継続的な研究開発を行っていく必
要があります。
性能テストの実現方式とツール
性能テストとは,情報システムに対して処理要求が増加し
た状態での,応答時間やCPUをはじめとするコンピュータ
工程 準備
開
発
作
業
設計
要件
定義 システム 方式
システム
分析
ソフトウェア方式
ファイル
DB
要件定義
共通部品
設計
コード
詳細 作成 コード
DB
プログラム
部品
テスト
結合 システム
導入
資源の利用状況を計測し,評価するものです。
したがって,性能テストを実施するためには,システムに
対して多量の処理要求を発生させる必要があります。図2は,
処理要求を発生させるための方法の観点で,性能テストを
分類したものです。
一番単純な方法としては,多人数を動員してクライアント
の画面を一斉に操作する手動方式があります。
しかし,手動方式では,作業効率が悪いうえ,操作手順
の再現性が乏しいためテストの精度が低下する,作業者に
長時間の単純作業による苦痛を与える,といった問題があ
り,性能テストツールを用いた自動化が重要となります。
性能テストの対象となるサーバが Webサーバとなってお
り,ブラウザからHTTPでアクセスする標準的な構成では,
図2の「Web 標準方式 (プロトコルエミュレーション方式 )」
が有効です。これは,ブラウザからサーバに送られる処理要
求を事前に記録しておき,それを繰り返し発生させる方式で
す。この方 式の代 表 的なツールとしては,OSS(Open
Source Software)
の Apache JMeter ※1 があります。
しかしながら,近年増加しているリッチクライアントの適用
によって,クライアント
(ブラウザを含む)
とサーバの間で,非
標準的な通信方式によって処理要求をやりとりしている場合
には,Web 標準方式の適用が難しくなります。更に,クライ
アントとサーバ間にHTTPS が使われていると,Web 標準
方式のツールの中には,処理要求を記録できなくなるものが
あります。
このような,多様な通信方式が使われる環境でも性能テ
ストを行うために,画面自動操作型のテストツールGUIPilot
を開発しました。
手動方式
人間による画面操作
(マウス操作,
キー入力,
など)
サーバ
クライアント
Web標準方式(プロトコルエミュレーション方式)
サーバ
処理要求
HTTP
性能テストツール
事前に記録した処理要求をくり返し送出
画面自動操作方式
性
能
管
理
作
業
性
能
管
理
計
画
性能設計目標策定
詳細化
性能見積もり
高精度化
性能測定
監
視
単体 アプリケーション システム 実運用 ・
診
断
プログラムへの反映
設計への反映
図 1 ISDS® における性能管理作業
当社の統合型システム開発標準 ISDS® では,工程ごとに重要な
管理作業を定義しています。
10
「東芝ソリューション テクニカルニュース」2008年冬季号 Vol.16
GUIPilot ®
ツールによる画面自動操作
(マウス操作,
キー入力,
など)
(1)
クライアントとサーバ間の通信方式に非依存
GUIPilotは,ブラウザなどのクライアントソフトウェアの画
面を,人間が操作したときと同じようにマウスクリックなどの
イベントを発生させ,自動操作することで,サーバに対する
処理要求を発生させるツールです。サーバとの通信はクライ
アントに任せており,GUIPilotは直接関与する必要があり
ません。したがって,通信方式が非標準的であっても,性
能テストが実施できることが特長です。
GUIPilotの動作の仕組みを図3に示します。GUIPilotは,
画面操作手順が事前に設定されているシナリオを読み取り,
その手順にしたがってマウスイベント※2 やキーボードイベン
ト※3 を自動的に発生させることにより,クライアントの画面を
操作します。
GUIPilot ®
クライアントの画面
サーバ
イベント発生
モジュール
画像比較
モジュール
シナリオ
今後の取り組み
画像情報を
取得
マウスイベント
図 3 GUIPilot の動作の仕組み
GUIPilot® は,シナリオに従いマウスイベントやキーボードイベント
を発生させて,人間と同じように,画面を自動操作します。
®
図4はシナリオの例です。
手順1は「クリア」ボタンをクリックすることを示しています。
手 順 2 は「メールアドレス」の右 枠をクリックして,
Toshiba.Taro と入力することを示しています。
手順 3は「検索」ボタンをクリックすることを示しています。
このように,シナリオは人間が画面を操作する手順をその
まま表現しており,直感的にわかりやすいという特長もあり
ます。
手順
サーバ
クライアント
処理要求
同一PC上
図 2 性能テストの実現方式
性能テストでは,サーバに大量の処理要求を送出して負荷を与え
るために,多人数で行う手動方式のほか,性能テストツールを用
いるWeb 標準方式 (プロトコルエミュレーション方式 )と画面自動
操作方式があります。
に基づいて操作を実行していて,ボタンなどの画面部品の内
部構造や実現方式には依存しません。このため,GUIPilot
はほかの画面自動操作型のツールとは異なり,各種のリッチ
クライアントなどの幅広い種類のGUIを備えたシステムの性
能テストに適用することが可能です。
(3)
GUIPilotの適用状況
現在,ソフトウェアの開発現場でGUIPilot 適用による効
果の検証を進めています。
クライアント同時運転による安定動作の検証テストを実施
した事例について説明します。
150 台のPCでクライアントアプリケーションを同時に操作
させ,
クライアントサーバシステムの安定動作を検証しました。
手動で実施すると,少なくとも30 人のオペレーターを動
員して,各々 5 台のPCに対して一斉に操作を行う必要があ
りました。
これをGUIPilot の利用により,一人でテストを実施でき,
大幅な省力化と画面操作の精度向上によるテストの品質向
上が実現できました。
キーボードイベント
操作対象画像情報
マウス操作
1
左クリック
2
左クリック
3
左クリック
性能管理技術における性能テストについて,画面自動操
作型テストツール GUIPilotを中心に紹介しました。
今後も,開発現場からの要望や提案を受け,性能管理
技術の研究開発を継続し,ソフトウェアの品質向上に貢献し
ていきます。
【脚注】
※1
:http://jakarta.apache.org/jmeter/
※2
:コンピュータの動作を発生させるためのマウス位置やマウスボタンの
※3
:コンピュータの動作を発生させるためのキーボードからの入力操作
状態の変化情報
に関する情報。
【参考文献】
[1] 平井 他,「ソフトウェアのテスト効率と精度を向上させるGUI画面の自
動操作技術」
, 東芝レビュー Vol.63 No.6 (2008), pp.36-39
キー入力
“ Toshiba.Taro”
処理要求
運用
プログ
アプリ
ユーザ
プログラム
システム
ラミング
ケーション
検証
画面自動操作型テストツール GUIPilot
図 4 シナリオの例
シナリオには,操作の対象となるボタンなどの画像情報とともに,
マウス操作やキー入力の内容が記述されています。
(2)
画像探索技術による高い汎用性が特長
GUIPilotは,画面に表示されているボタンなどを画像と
して認識し,マウスクリックを行うべき位置を決定するため,
テスト可能なシステムの種類が極めて広いという特長を持っ
ています。
図4のシナリオにおける,手順1において,
「操作対象画
像情報」として,
「クリア」ボタンの画像情報があります。
GUIPilotは図3において,画面内の画像の中から,この「ク
リア」ボタンの画像と一致する箇所を探索し,そこへマウス
を移動させてクリックのマウスイベントを発生させます。つま
り,GUIPilotは,人間の視覚と同様に,画面の表示画像
Profile
平井 潤 Hirai Jun
IT 技術研究所
研究開発部 IT 品質ラボラトリー 研究主務
ソフトウェア品質管理技術,特に,性能管理技術の研究・
開発に従事。
Project Management Professional
情報処理技術者 プロジェクトマネージャ,データベース
関根 智 Sekine Satoshi
IT 技術研究所
研究開発部 IT 品質ラボラトリー 主任研究員
ソフトウェア品質管理技術,特に,性能管理技術の研究・
開発に従事。
川野 晋一郎 Kawano Shin-ichiro
IT技術研究所
研究開発部 IT品質ラボラトリー
ソフトウェア品質管理技術,特に,性能管理技術の研究・
開発に従事。
博士(工学)/電子情報通信学会会員
「東芝ソリューション テクニカルニュース」2008年冬季号 Vol.16
11