6つの一般的な継続的テストのボトルネック
公開: 2021-08-09アジャイルとDevOpsのプラクティスの人気は急速に高まっています。 多くの企業がこれらのソフトウェア開発手法を採用して、新しいソフトウェアとアップデートを迅速かつ頻繁に提供しています。 アジャイルは通常、ユーザーストーリーと要件を使用して製品機能を定義するため、リリースされたソフトウェアはクライアントに価値を段階的に提供します。
その後、継続的テストでは、品質を迅速に提供するための重要な触媒として、前例のない需要の増加も見られました。
継続的なソフトウェアテストは、ソフトウェア開発ライフサイクル(SDLC)の最後のテストとは対照的に、ソフトウェア配信パイプラインの一部としてテストスーツを実行することです。 ソフトウェア配信パイプラインのすべてのフェーズで、リスクベースのフィードバックを可能な限り迅速に提供します。 継続的テストにより、ユーザーエクスペリエンスを損なうことなく、ソフトウェア開発プロセスを迅速に進めることができます。
Freeform Dynamicsは、継続的テストの利点と、923人のITおよびテストの専門家からの蓄積されたフィードバックについて、デジタルビジネスイネーブラーとしての継続的テストについて説明しました。 この研究により、いくつかの興味深い統計が明らかになりました。
約75%の専門家が、ソフトウェア開発における継続的テストの重要性に同意しました。 ただし、回答者の20%のみが、適切なレベル(80%以上)のテスト自動化カバレッジを持っていると答えました。 さらに、回答者の約5人に1人が、依然として手動テストに大きく依存していると述べています。
その多くの利点にもかかわらず、継続的テストの実装は、多くの企業にとって依然として困難です。
継続的な自動テストの分析
継続的テストの最大の課題の1つは、生成された大量の出力を非常に迅速に調査することです。 出力は、多重検定ツール、静的および動的分析、コードカバレッジ、関数型および回帰テストなどを含むさまざまなソースから生成されます。
テストの分析には、たとえば、テストスイートの最適化やテストカバレッジの強化などに役立つ可能性のある多くの時間と労力がかかります。 自動化ソフトウェアテストが成功したかどうかを判断するのに数時間かかる場合があります。これは、実装された継続的テストの主要な目的、つまりソフトウェアの配信を促進することを損ないます。
テストの分析を自動化することで、この問題をある程度解決できます。 ますます多くの開発者が、配信サイクル全体をスピードアップするために出力分析を加速することに注意を向けています。
継続的テスト分析の可視性
開発者と運用チームの両方にとって、テスト分析を明確に明確にすることが重要です。 左にシフトするか、アプリケーションライフサイクルの早い段階でテストすることは非常に重要ですが、それだけでは十分ではありません。 品質保証のためにユーザーから継続的なフィードバックを得る必要があります。これは、右シフトテストによってのみ可能です。
ソフトウェアテストの主な焦点は、開発フェーズとテスト環境での製品のパフォーマンスだけでなく、その使いやすさの向上にも焦点を当てる必要があります。 初期段階を最適化するには、最終製品としてのアプリケーションまたは機能の動作に関する洞察が必要です。
したがって、テストと問題の早期発見を統合するために左にシフトするだけでなく、製品の潜在的な欠陥を理解するために本番環境からデータを調達する必要があります。
長いテスト実行時間
継続的テストは、ソフトウェアアーキテクチャのすべてのレベルでさまざまなテストスイートを実装することで構成されるため、テストの量は膨大です。 テストカバレッジ、機能カバレッジ、および新しいコード行のスクリプト作成に焦点を当てる必要がある一方で、ランタイムにも注意を払う必要があります。

ソフトウェアの品質に影響を与えることなく配信プロセスを高速化するために、継続的テストが導入されました。 したがって、フィードバックがわずかに遅れるため、テストを4〜5時間実行することは実用的ではありません。 その結果、配信パイプライン全体の速度が低下します。
この問題を克服するには、何が不可欠で何が関連しているかについて、より包括的なビューが必要です。 テスト影響分析(TIA)機能は、自動テスト選択によって検証を強化できます。 パイプラインに入る特定のソースコードについて、TIAはコードの検証に必要なテストのみを選択して実行します。 したがって、テストの実行はより速く、より集中的になります。
多数の展開についていく
継続的テストはテスト債務を生み出します。 ソフトウェアの品質を評価してバグを検出し、アジャイル手法に対応するために、さまざまなテストが1日で展開されます。
ただし、毎日実行されるすべてのテストを追跡することは困難になります。 テストの有効性を特定できない場合、またはテストの反復の変更がビジネスリスクとエンドユーザーエクスペリエンスにどのように影響するかを分析できない場合、頻度と速度の増加は無関係になります。
時間と費用がかかる
テストの自動化は、効率的な継続的テストの重要なコンポーネントです。 これにより、チームは新しいテストと反復のパフォーマンスをすばやく分析できます。
ただし、自動テストスクリプトの作成には、時間と費用がかかる場合があります。 したがって、組織はその使用を最適化することが不可欠です。
QA業界のベテランであるAmirGhahraiは、組織はどのテスト領域が最も有益であるかを自動化することに注意する必要があると説明しました。 テスト自動化ピラミッドの原則に従って、テストスクリプトから最大の価値を引き出すことができます。
ソース
チームは、自動化の取り組みの大部分を、ピラミッドの下部にある単体テストに集中させる必要があります。 ピラミッドを上に移動すると、自動化を縮小して、自動化されたスクリプトへの投資を最適化できます。
変化への抵抗
最後に、ソフトウェア開発とテストのすべての進歩にもかかわらず、経験豊富なテスターのごく一部ですが、かなりの割合がテスト方法の更新を拒否しています。 変更したくない主な理由は、一見効果的な従来の方法です。 その結果、最終的にはチーム全体が開発手順を遅らせる結果に苦しんでいます。
SiemensHealthcareのテストアーキテクトであるMarcoAchtzigerは、ドイツで開催されたOOP2015カンファレンスでこの問題について話しました。 彼はあなたが容赦ないチームメンバーに協力的で前向きであり続けるべきであると提案しました。 高度な手順に切り替えることの利点だけでなく、変更によってチーム全体にもたらされる利点にも焦点を当てます。
継続的テストは、ビジネスリスクを軽減しながらソフトウェア開発プロセスを加速できるため、組織にとって重要な資産です。 ソフトウェアテストツールは、テストの実践を容易にし、フィードバック主導のテスト方法に関連するいくつかの課題を克服するのにも役立ちます。
継続的テストをSDLCに統合する際に直面した課題と、それらをどのように克服しましたか? 継続的テストの統合に苦労している読者に役立つように、ストーリーを共有してください。