発行:1月19、2021
2021年のテスト自動化における主な課題
自動テストは効率性の向上につながります。これらの課題に対処することで、より良い製品をより早く、より頻繁にお客様にお届けできます。
アジャイル組織は柔軟性と迅速な対応を目指しています。そのため、ソフトウェアテストを可能な限り効率的に実施したいと考えています。効率的なテストは、デリバリーの迅速化と生産性の向上につながります。ソフトウェアテストにおいて、効率化は開発のスピードアップだけでなく、プラスの効果ももたらします。例えば、検出・修正される欠陥の数を増やす一方で、検出されずに本番環境に漏れてしまう欠陥の数を減らすことができます。
多くの組織は テストの自動化 テスト効率を向上させるための聖杯の一つとして、自動化は不可欠です。自動化により、組織は大規模にテストをカバーし、レイテンシを最小限に抑えることができます。これにより、人材やその他のリソースを解放し、イノベーション、問題解決、ユーザーストーリーといった分野に集中できるようになります。
テスト自動化の実装は決して簡単ではありません。2020年に発表された記事では、 ソフトウェアの進化とプロセスに関するジャーナル8カ国72の組織を対象とした調査では、「テスト管理とテスト自動化は、すべてのテスト活動の中で最も難しいと実務家から考えられている」ことが明らかになりました。テスト自動化を成長痛を最小限に抑えながら導入・拡大するためには、組織は自動テストにおける技術的な課題だけでなく、直面する可能性のあるその他の問題も認識しておく必要があります。
導入コストが高い
自動化はテスト速度を向上させますが、初期投資に多額の投資を必要とします。経営陣への導入は容易ではありません。なぜなら、「投資回収期間」が予測不可能であったり、長期化したりする可能性があるからです。場合によっては、投資回収期間が全く到来しないこともあります。特に、社内チームの生産性向上や製品パフォーマンスの向上によってもたらされる価値を測定するデータを取得するといったベストプラクティスが遵守されていない場合、その傾向は顕著になります。
包括的なテスト自動化を導入した後、高いROIを確保する最大の方法は、エコシステム内の他の製品と統合された自動テストソリューションを実装することです。これにより、ほぼリアルタイムで測定される堅牢な分析機能など、エンドツーエンドの機能を実現できます。そのような指標の一つとして、スピードインデックスが挙げられます。これは、リアルタイムで表示されるページ上の要素を含むアプリケーションの読み込みにかかる時間をユーザーに示します。これらの要素をテストし、開発の全段階にわたってパフォーマンスを集計することで、より優れた変更をより迅速にリリースできるようになります。
オープンソースアーキテクチャからの移行
オープンソースソリューションは、その手頃な価格と、機能ではなく成果を重視して構築されていることから、非常に人気があります。しかし、オープンソースツールには限界があります。これらのコアプロジェクトには十分な開発予算がないため、最も積極的に貢献している開発者でさえ、多くの時間を費やすことができません。金銭的なインセンティブと熱心な開発者が不足しているため、オープンソースツールが人工知能(AI)や機械学習(ML)などの高度な機能を採用する動機は乏しいのです。
利用可能なオープンソースソリューションの発展を目指す組織は、プロジェクトに自らの時間と資金を投入する意欲を持たなければなりません。このコミットメントは、例えば、特定のニーズにプロプライエタリなアーキテクチャがより適しているかどうかなど、費用対効果の検討につながります。また、ライセンスに関する考慮事項もあります。オープンソースプロジェクトの中には、収益化を明確に禁止しているものや、ツールの新しいブランチのソースコードを公開することを推奨しているものもあります。
オープンソースアーキテクチャはセキュリティ上の課題も抱えています。ソースコードが公開されているということは、悪意のある攻撃者が容易にエクスプロイトを探し出せる可能性があるからです。エンドツーエンド暗号化などのソリューションは、ソースコードが公開されている場合でもテストツールのセキュリティを確保できますが、開発チームはこうした側面をケースバイケースで考慮する必要があります。
場合によっては、オープンソースソリューションが依然として最適な選択肢となることもあります。しかし、組織はテスト要件を検討し、最適なツールを決定する必要があります。短期的に最も安価なソリューションに安易に飛びつくべきではありません。オープンソースツールを採用するのは、そのツールを取り巻くコミュニティが、組織の価値観や、最も一般的なユースケースに基づいた特定の機能に対する要望を共有できると確信できる場合に限られます。
テストエコシステムの断片化
現在、多くの組織では一貫した機能と統合能力が不足しており、テストエコシステムの断片化につながる可能性があります。例えば、一部のテスト自動化プラットフォームは開発ツールチェーンと非常に連携しやすいものの、運用フィードバックをテストパラメータに反映するための統合機能が不足しています。テスト環境自体も非常に断片化している可能性があり、モバイル、デスクトップ、ブラウザなど、特定の環境にのみ適用されるものもあります。
このため、開発チームは、開発の各段階にわたって機能を提供し、他のツールと統合できるテストソリューションを探す必要があります。 DevOps 環境。また、レガシーデバイスを含む可能性のあるすべての対象デバイス環境のパフォーマンスを観察できるテストツールセットを選択する必要があります。
解釈が難しい報道
分かりやすいレポートは、テスト自体と同じくらい重要です。テストモデルは非常に特殊なシナリオに基づいて構築される場合があり、この自動化アーキテクチャのため、個々の結果は多くの関係者にとって馴染みのある視点を提供しない可能性があります。レポートを読者にとって有用なものにするためには、追加の解釈や文脈データを提供する必要があるかもしれません。
自動テストソリューションを評価する際には、ダッシュボードから得られる実用的なインサイトを提示できる能力を検討してください。少なくとも、求められる実用的なインサイトを提供できる強力な分析プラットフォームとの統合能力を検討してください。
チーム間のコラボレーションと作業の継続性
テストプロセスがスムーズに進むためには、テスターと開発者が協力する必要があります。テスト、特に自動テストは、「引き継ぎ」フェーズで問題を引き起こす可能性があります。
Hubspot ACCELQのソリューションエンジニアリングディレクター、スティーブン・ロージング氏「構築すべき最も重要なコミュニケーションラインは、テスターと開発者の間です。アプリケーションが自動化に適していることを確認するには、開発チームが自動化ツールの基本的な仕組みを理解することが不可欠です。」
コミュニケーションが途絶え、問題が発生する可能性のある箇所はいくつかあります。テスターが目標を誤解したり、開発者がテスターからのフィードバックをコード品質の向上に活かしきれなかったりするケースがあります。
「開発者は最新かつ最高のコードライブラリを使いたがりますが、自動化ツールがそれらをサポートするまでにはしばしば時間がかかります」とロシング氏は言います。「開発チームとコミュニケーションを取ることで、開発中にサポートされていない技術が導入されたために手動テストに戻らざるを得なくなる事態を防ぐことができます。」
完全なテストカバレッジの達成
どのようなテストでも、何かを見逃してしまう可能性は常に存在します。特に自動テストではそれが顕著です。モデル内で考慮されていない要素があり、見落とされてしまう可能性があります。
こうした盲点を回避する鍵は、高い欠陥エスケープ率など、テストカバレッジの低さに関連する問題の傾向を明らかにする指標を追跡することです。これらの指標を詳細に分析することで、どの種類のコードやコード領域が見落とされているかを明らかにすることができます。また、この分析によって、パフォーマンスの向上を優先し、長期的に追求していくことも可能になります。
統合されたエンドツーエンドの分析ソリューションは、テスト内外のパフォーマンスを自動的に監視し、関連する要因を最前線に表示します。例えば、過去数週間にセキュリティ脆弱性が見つかったアプリ機能をテストしているときにアラートが表示されることがあります。このアラートは、必ずしも内部テストのロジックや検討中のユーザーストーリーに基づくものではなく、本番環境でのアプリの実際のパフォーマンスに基づいています。このような機能により、テストにおけるギャップを埋め、チームが単なる仮説ではなく、現実世界のシナリオに集中できるようになります。
結果よりも自動化に重点を置く
アジャイルプロセスのメリットと、継続的インテグレーションと継続的デプロイメント(CI/CD)の高速化を重視する多くの組織は、可能な限りテスト自動化を導入したいと考えています。これは、自動化そのものを目的とした導入の探求になりかねません。
As アミール・ガライ 「特にアジャイル開発において問題となるのは、QAがユーザーストーリーを受け取り、その受け入れ基準を自動化してしまうことです。その過程で、彼らの主な、そして唯一の焦点は、テストをパスさせるために、限られたコーディングスキルと格闘することなのです。」
自動化は結局のところ、テストプロセスを改善するはずです。 できる 自動化されるからといって、必ずしも すべき自動化する対象は厳選し、ユーザーや組織へのリスクと潜在的な影響に基づいて決定することが望ましいでしょう。システムがまだ機能していることを確認するための回帰テストなど、定期的に実行されるテストを自動化しましょう。
自動テストを実装する際には、「これは自動化されているか? はい/いいえ」という基準以外にも、他の指標が必要です。自動化の価値と利点、例えばサイクルタイムの短縮、テスト結果の向上などに焦点を当てましょう。 展開頻度欠陥の回避率が低下し、計画外の作業も減少します。開発者は、スプリントやCI/CDの目標達成のために、テストの高速化という大きなプレッシャーに直面しています。組織は、自動テストパイプラインを常に最適な状態に保つために、テスト自動化の目標を控えめにする必要があるかもしれません。
テスト自動化の目標は、高速テストではなく、高速な価値を実現することである
組織が自動テストで何を達成したいかに関わらず、主な目的は次の通りです。 値 テストを迅速に完了させるだけでなく、効率的に実行する必要があります。テストは高速に実行されても、後々問題を引き起こす欠陥を見逃してしまうようなテストは、本来の目的を果たしておらず、組織に付加価値をもたらしません。
バリューストリーム管理アプローチにより、組織は生産プロセスのあらゆる段階で創出される価値を定量化できます。 DevOpsテストを含む。テストの自動化は、すべての最適化を推進するための迅速なフィードバックループを促進することもできる。 DevOps プロセス。
テストの自動化は困難で、費用もかかる場合があります。しかし、その結果、より良い製品をより早くお客様にお届けし、より頻繁に改善を実現できるようになります。自動化だけでなく、バリューストリームマッピングと分析を活用することで、スピードアップだけでなく、常に成果を向上させる組織文化を強化できます。
テスト自動化のメリットがどのように拡大してきたか、そして将来的に自動テストに何が期待できるかをウェビナーでご覧ください。テスト自動化のメリット – 過去、現在、そして未来"。