性能試験について(性能試験とは編)

先日、社内会議で性能試験についての発表がありました。 発表された内容がとても分かりやすくまとまっていたため、ブログの方でも紹介したいと思います。

性能試験とは

  • 非機能要件を満たせているか確認するための試験で、以下のような項目から試験の前提条件や内容を決めます。
    • 同時接続数
      • どれくらいの負荷をかけるべきか
    • データ保持期間
      • どれくらいのデータをあらかじめ用意しておくか
    • レスポンスタイム
      • 単位時間内にどれだけ速く処理できるか
    • スループット
      • 単位時間内にどれだけの量を処理できるか
    • リソース(メモリ、CPU)使用率
      • 単位時間内にどれだけリソースを使っているか
  • 非機能要件に記載のないものについても試験に含めるようにします。評価は一般的な基準で行います。
    • 例:GCの負荷状況、ディスクI/O、ネットワーク利用状況、(クラウド環境の場合)ネットワークの帯域制限など
  • 上記から試験計画書、試験シナリオを作成し、お客様と合意をとります。

試験実施タイミングと実施期間

実施タイミング

  • 試験実施は総合テストフェーズで実施します。
    • 事前準備(試験計画など)は、前倒しで結合テスト以前から進めたりもします。

実施期間

  • 試験実施の期間はおおよそ1か月~2か月程度です。
    • チューニングや再試験を考慮して余裕をもった日程にすることが大切です。

性能試験のポイント

最後に性能試験で抑えておくべき重要なポイントをまとめます。

数年後想定での試験計画

  • 非機能要件定義書等で記載されているデータの保持期間(ワークフローの完了案件データ等)やユーザ数の増加見込み等を元にデータの積み込み件数やユーザの同時接続等を検討しましょう。

評価項目の確定

  • 試験計画書作成時に、非機能要件定義書等をベースにお客様とどこを評価対象とし、どこまでをゴールとするか確約を取っておきましょう。

試験の対象範囲

  • 試験計画書作成時に、対象となるアプリケーション(シナリオ)、サーバ台数(縮小試験込みか)、同時接続数等について工数と期間を考慮した上で、お客様と検討しましょう。

ログや各種情報の取得

  • 評価項目の他に、性能問題発生時にどこがボトルネックとなっているか切り分けが出来るように各サーバにおいてログや情報出力の内容を把握した上で取得出来るようにしておきましょう。

バックアップリストア

  • 検証環境や稼働前の本番環境での実施の他に、再試験を行う場合もあるので任意のタイミングで環境を戻せるように、バックアップ/リストアの手順の確立と動作確認した上でバックアップ取得を行っておきましょう(依頼を出すのか自分たちで対応するのかも確認は必要)。

利用するサービス及び環境の事前確認

  • 外部WEBサービス連携やクラウド環境を利用する場合、事前申請手続きが必要であったり、そもそも性能試験NG(短時間の高負荷) の場合もあるので、必ず事前に確認しておきましょう。

次回予定

  • 性能試験の実施について紹介します。