NashTech

なぜ早期のパフォーマンステストがより良いアジャイルの成果をもたらすのか

なぜ早期のパフォーマンステストがより良いアジャイルの成果をもたらすのか

Early-performance-testing

ほとんどの組織は、アジャイル開発がもたらす利点を理解し、頻繁に、そして早期にテストを行うことの重要性を認識している。 しかし、配備直前までパフォーマンステストが行われることはほとんどない。 この記事では、NashTechのシニアテストチームマネージャであるLam Pham氏が、テスト自動化の利用を含め、スクラム・アジャイルと並行してパフォーマンステストを実施する方法について論じている。

パフォーマンス・テスト - 今か、後か?

アジャイル開発とDevOpsが提供するビジネス価値(より質の高いソフトウェアと市場投入までの時間の短縮)は、今日よく理解されている。 また、アジャイル・アプローチには、頻繁に、そして早期にテストを行うことが重要であるという認識も広まっている。 しかし、パフォーマンス・テストがスプリントに含まれることはほとんどない。 一般的には、配備直前のリリース候補に対して実施されるが、これはプロジェクトのリスクにつながる可能性がある。

NashTechでは、スクラム・アジャイルと並行してパフォーマンス・テストを実施することを推奨している。 スプリント中にパフォーマンステストを実施し、DoD(Definition of Done:完了定義)の一部として各ストーリーの非機能受け入れ基準を定義することで、機能が完了したと合意する前に、パフォーマンスが要件を満たしていることを証明することができる。

スプリントにおけるパフォーマンステストの課題トップ3

スプリント内でパフォーマンステストを実施するメリットはあるものの、課題も多い:

  • 継続的インテグレーション(CI)パイプラインにパフォーマンス・テストをどのように組み込むか?
  • 未完成で頻繁に変更されるコードベースを、どうやってパフォーマンステストするのか?
  • 本番よりもはるかに小規模な環境で、意味のある結果を得るにはどうすればいいのか?

NashTechでは、こうした課題に対処するために3つの戦略を立てている。

1.CIパイプラインにおけるパフォーマンステスト

性能テストは、ある作業負荷の下でシステムの品質を評価するため、エンドユーザーにとって許容可能な品質レベルを確立する上で重要な役割を果たす。 パフォーマンス・テストを左にシフトすることで、できるだけ開発の近くで実施するようにし、開発者にパフォーマンスの問題に対する早期のフィードバック・ループを提供する。

リリースサイクルの高速化の必要性が高まる中、継続的インテグレーション(CI)と継続的デリバリー(CD)は、プロジェクトコストを削減しながら製品品質を向上させるのに役立つ。

明白なように、パフォーマンステストはCI/CDパイプラインの必要な部分である。 特定の環境における目標(ボリューム・メトリクスを含む)と許容値を特定することは、パフォーマンス・テストを成功させる上で非常に重要である。 目標に応じて、各モジュールの閾値を特定し、スプリントにおけるDoDを設定する。 そして、新しいビルドの準備ができた時点で、パフォーマンステストが実施される。 そして、何か失敗があれば、すぐに私たちに知らされる。

2.未完成で変化するコードベースに対するパフォーマンステスト

すべての状況に対する唯一の正解はない。パフォーマンス・テストのアプローチを個々のケースに適応させなければならない。 以下の点を考慮する必要がある。

測定と測定基準。 まず、必要なパフォーマンス測定と測定基準を理解する必要があります。 現実的なものにするために、システムの技術的なスタック、ビジネスルール、アプリケーションが本番でどのように使用されるかを考慮します。 そして、パフォーマンス・テストの目標と評価方法を定義する。

また、アプリケーションの実際のパフォーマンスに悪影響を及ぼす可能性もあります。 そのため、どの測定と測定基準がテストの目標達成に最も関連しているかを理解することが重要です。

テストは早めに。 性能テストは、システムの構成部品を使って、できるだけ早い時期に行うべきである。 これは、システム全体をテストするよりも安価な場合が多く、個々のコンポーネントが開発されたらすぐに実施できる。 パフォーマンステスト実行のトリガーは、CIプロセスにおける各ビルドである。 ただし、インフラやデータ量など、テクノロジーのあらゆる側面についてテストを実施する必要がある。 テストは、システムがロールアウトされた瞬間に、想定された利用者に対応できていることを保証するものでなければならない。

テストシナリオ 一般的には、可能な限り現実的なシナリオでテストすべきである。 そのため、事前に収集したテスト、ユースケース、目的、環境に関する可能な限りの情報に基づいてシナリオを作成する。 この種のテストは、すべてのコンポーネントが統合された時点で実施される。

3.有意義な結果の確保

性能テストはシンプルで目立たない環境で行い、その結果を分析することで実際の環境を予測できるというのが一般的な考え方だ。 しかし、この方法には多くのリスクがある。 特に、データのサイズと構造は、負荷テストの結果に劇的な影響を与える可能性がある。

テスト環境が、データサイズ、構造、インフラストラクチャにおいて本番環境に近ければ近いほど、パフォーマンステスト結果の信頼性は高くなります。

先ほどのメトリクスの話になるが、私たちはテスト・ツールやモニタリング・サービスを使って、できる限り多くの情報を収集している。

自動化されたパフォーマンス・テストを定期的に実行することは、主に2つの理由で役に立つ:

  • できるだけ早くデータを入手する
  • 情報が多ければ多いほど、トレンドの発見が容易になる

システムの動作をよりよく理解し、ペインポイントをより早く特定することで、本番でシステムがどのように機能するかについて、より迅速に正確な予測を提供することができる。

最終的な感想

アジャイルの各スプリントでパフォーマンスの問題を明らかにすることには、大きなメリットがある。 デプロイ直前までパフォーマンステストを放置すると、問題をすぐに修正しなければならず、リリースが遅れる可能性がある。

プロジェクトが予定通りに本番稼動する可能性を高めるだけでなく、パフォーマンスの問題に対する認識をできるだけ早く高めることが、より優れたアーキテクチャと拡張性を備えたアプリケーションの開発につながります。

もっと知りたいですか?

NashTech ソフトウェア・テスト・サービスの詳細については、info@nashtechglobal.comまでメールでお問い合わせください。

おすすめ記事

THE OUTがプレミアムレンタカー業界をどのように破壊するか

ベトナムのナッシュテック開発チームと緊密に協力し合うことで、高品質でデジタルファーストの高級レンタカーサービスを構築することができた。 将来を見据えて、THE OUTは製品ロードマップに注力し、旅行代理店やコンシェルジュ・パートナーを含むB2B顧客へのサービスを拡大し、そのための新しいポータルを構築している。

GCP
GCP
特注のデスク予約システムでハイブリッド勤務を実現:内部の視点

ナッシュテックの社内デスク予約ソフトウェアがどのように職場の効率化を促進し、高い精度で稼働率を測定したかをご覧ください。

オーストラリアで設立された広告・メディア費ビジネスは、ナッシュテックの支援により、いかにして駆け出しのビジネスから世界的な大企業へと成長したのか?

オーストラリアで設立された広告・メディア支出企業は、現在世界的な事業展開をしており、ナッシュテックがその成長を支えていることを知っている。

テクノロジー・ジャーニーを理解し、複雑なデータの世界をナビゲートし、ビジネス・プロセスをデジタル化し、シームレスな ユーザー体験を提供するお手伝いをします。

上部へスクロール