ATS|テスト自動化

2024.6.18

【第7回】:非機能テストのベストプラクティス

「品質保証DX」の実現に向けて

ソフトウェア品質問題を未然に防ぐためには、品質保証チームの抜本的な改革が必要となります。QA現場にDX(デジタルトランスフォーメーション)の概念を適用する「品質保証DX」は、その有力なアプローチとして期待されています。

品質保証DXの実現にあたっては、中核となるテスト実行のソリューション選定が肝要です。前回は、機能テストの有力なソリューションである「Eggplant」をご紹介しました。詳細については、第6回の記事をご一読ください。

【第6回】:機能テストのベストプラクティス

非機能テストのソリューションは第5回で述べたとおり、機能テストと切り離して検討することが求められます。第7回となる本記事では、非機能テストの有力なソリューションである「Seeker」「Elastic Stack」の特長や、関連ソリューションをご紹介します。

非機能テストの品質向上にあたっての障壁

非機能テストは、ソフトウェアの機能要件に該当しないパフォーマンスやセキュリティ性などを検証する手法です。QA現場の品質向上においては機能テストにフォーカスされやすいものの、非機能テストは同等以上に重要性が高く、早期の取り組みが求められます。

しかしながら、非機能テストの品質向上にあたっては次の2点が高い障壁となります。

機能テストとの両立

非機能テストと機能テストの両立は現実的に難しく、両者のプロセスを完全に切り離して実施することが通例です。機能テストのように明瞭な合否基準がないため、テストケースの設計段階で同等に扱うことは難しいといえます。また、応答速度やCPU使用率といった目視確認が難しいリアルタイムな評価は、機能テストと同等の枠組みでは実行できません。

こうした理由から、非機能テストを実行するためのリソースは、機能テストとは独立的に確保する必要があります。アジャイル開発をはじめとするテスト工数のシビアなQA現場において、機能テストの品質を担保しつつ高品質な非機能テストを実行することは困難です。

早期の網羅性確保

一般に、要件定義書などに明記される機能要件のテストは、非機能要件のテストよりも優先されます。また、本番に近い環境がテスト要件に含まれることも多いため、非機能テストの多くはリリース前の最終盤で実行されることが通例です。テスト工数の限られたQA現場においては、リソース不足から非機能テストケースの大幅な「トリアージ」が行われることも少なくありません。

こうした理由から、非機能テストを早期に実施し、網羅性を確保することは困難です。リリース前に非機能要件の欠陥を検出できたとしても対策するスケジュールを組むことが難しく、リリース遅延を余儀なくされるケースもあります。

非機能要件の早期での検証を実現するソリューション

上記のような障壁を取り除き、非機能面での早期での妥当性確認を実現するためには、適切なソリューションの選定が不可欠です。ここでは、有力なソリューションとして「Seeker」「Elastic Stack」の2つをご紹介します。

セキュリティテストソリューション「Seeker」とは

「Seeker」とは、米Synopsys社が提供するIAST(Interactive Application Security Testing)のソリューションです。IASTはセキュリティテスト手法の一種であり、実行中のソフトウェアが抱える脆弱性(セキュリティ上の欠陥)をリアルタイムに検出します。

Seekerには特許取得済みの検証技術が搭載されており、ソフトウェア実行中に高精度な脆弱性検出が可能です。Gartner社が実施したセキュリティテストに関する2023年の調査において、最も高い評価を受けました。

機能テストと並行での脆弱性診断が可能

Seekerの大きな優位性は、CI/CDパイプラインへの統合を前提とした高精度かつシームレスな脆弱性診断です。テスト対象システムのサーバーに配置したSeekerのエージェントは、リアルタイムに稼働状態を監視し、数十万ものリクエストを正確に処理します。識別した脆弱性は独自のランタイムコードによって検証され、迅速にレポーティングされます。

また、主要な自動化ソリューションとシームレスに連携できるため、機能テストと並行での脆弱性診断が可能です。第6回で紹介した探索的テストを自動化するEggplantと併用すれば、AIによる高精度な機能テストと並行でき、セキュリティテストの飛躍的な網羅性向上が期待できます。SeekerをCI/CDパイプラインに統合すれば、セキュリティ要件の自動テストを実装段階で行うことができ、脆弱性の早期検出が可能となります。

「Elastic Stack」とは

「Elastic Stack」とは、オランダをはじめアメリカなどに拠点を持つElastic N.V.社が提供するデータ収集・分析ソリューションです。データの収集や検索を担う「Elasticsearch」、リアルタイムな可視化を担う「Kibana」などのソフトウェアで構成され、それらの連携により統合的なデータ収集・分析を実現します。

Elastic Stackの各コンポーネントはOSSとして提供されており、ネットワークを介してリクエストを送ることで利用可能です。監視対象のシステムへエージェントを構築することで、対象システムのメトリクス情報やログなどを自動的に収集・可視化することができます。

機能テストと並行での性能要件に対する妥当性確認が可能

Elastic StackはSeekerと同様に、CI/CDパイプラインへの統合や機能テストソリューションとのシームレスな連携が可能です。システム資源使用状況や速度といった性能に関するデータをElastic Stackによりリアルタイムに収集し、その変化を可視化できます。

またEggplantと併用すれば、網羅性の高い機能テストと並行しての性能情報の収集、妥当性確認が可能です。Elastic Stackは機能要件・非機能要件を問わず様々なデータを収集でき、Eggplantによる網羅的なアプリケーション操作のトレース情報に合わせたメトリクス情報を提供することもできます。これにより、機能テスト以前の段階で性能面における欠陥を検出でき、品質の早期安定化に寄与します。

機能テスト・非機能テストを両立するソリューション

適切なソリューションを選定・適用することで、機能テストと非機能テストをともに自動化し、QCDの向上につなげることが可能です。しかし、各ソリューションを最適な形で統合できなければ、適用効果を最大化することはできません。

機能テスト・非機能テストを両立する際には、アドックインターナショナルが提供する「AQUADOCX」が有力な選択肢となります。開発・環境・テストを連動させた最適な内部エコシステムを構築し、品質の早期安定化を実現するソリューションです。

EggplantやSeeker、Elastic Stackといったソリューションの導入支援やコンサルティング、品質計画の策定支援などを提供します。各ソリューションを適切にCI/CDパイプラインへ統合することで、品質保証プロセスの広範な自動化、ひいてはQCDの飛躍的な向上が期待できます。

品質保証DXを適用し、QA現場に抜本的な改革を

今回は、非機能テストの有力なソリューションであるSeekerおよびElastic Stackをご紹介しました。

■第7回のポイント

  • Eggplantの機能テストにSeekerを併用することで、アプリケーションセキュリティに関する脆弱性検出の並行実施が可能。
  • Eggplantの機能テストにElastic Stackを併用することで、性能面での妥当性確認の並行実施が可能。
  • 機能テスト・非機能テストの両立にあたってはAQUADOCXなどのサービスも有力となる。

テスト実行を自動化するうえでは、機能テスト・非機能テストのソリューションを適切に選定・適用することが肝要です。また、本連載でお伝えした品質計画の最適化や、環境ソリューションの適用も、品質保証DXの実現には欠かせません。

QA人材やテスト工数の不足、テスト難易度の上昇など、品質保証を取り巻く状況は年々厳しさを増しています。ソフトウェア品質問題が増え続ける現状を打開するためには、従来の品質保証プロセスにとらわれない抜本的な改革が不可欠となります。

「品質保証DX」の実現に向けて の記事一覧

「品質保証DX」の実現に向けて

  • 2024.6.18
  • 【第7回】:非機能テストのベストプラクティス

BLOG シリーズ 一覧