継続的テストを理解することがDevOpsを理解する唯一の方法です

ソフトウェア製品の成功は、市場の需要をタイムリーに制御できるかどうかに大きく左右されます。DevOps を導入すると、製品の提供が迅速化され、ユーザー エクスペリエンスが向上し、競合他社に対する優位性を維持できます。

アジャイル開発手法の延長として、DevOps は、開発、テスト、運用および保守のさまざまなチーム間のコラボレーションとコミュニケーションを重視します。
 
継続的インテグレーションと継続的テストは、製品を構築、テストし、繰り返してバグを修正するプロセスです。これは、チームが開発段階の早い段階でバグを発見するのに役立ちます。通常、バグはそれほど複雑ではなく修正が容易です。継続的統合と継続的テストを通じて、企業はエラーのリスクを早期に最小限に抑え、より高品質のソフトウェアをより迅速に提供できます。
 

DevOps における製品開発のための継続的テストの利点

● 定期的なリスク分析: 継続的なテストにより各段階で潜在的なリスクが検出されるため、テストのすべての段階を通過したビルドが得られます。
●ユーザーエクスペリエンスの向上:ユーザーの動的なニーズに適応するための継続的なテスト。チームはフィードバックに基づいて継続的に更新を行い、製品の堅牢性、柔軟性、信頼性を高めることができます。
●製品のセキュリティ強化:サポート体制を構築することで、アプリケーションを脅威やマルウェアから保護できます。
● フィードバックを計画する: デリバリー パイプラインのすべてのアーキテクチャ レイヤを評価し、実用的なフィードバックをチームと共有します。
● リソース使用率の向上: 前述したように、バグを早期に発見すると、コストとリソースを節約できます。継続的なテストと欠陥防止戦略のベスト プラクティスを活用し、貴重なリソースを他の戦略的な開発イニシアチブに再配置できます。

DevOpsにおける継続的テストの役割

DevOps プロセスでは、継続的なテストにより、製品配信パイプライン全体で触媒として機能する継続的なフィードバック メカニズムが提供されます。各段階での自動フィードバックにより、開発プロセスの早い段階で欠陥に確実に対処できます。
 
デリバリーチェーンの次のプロセスを可能にするためには、実用的なフィードバックが必要です。たとえば、フィードバックを前に進めることができる場合はプロセスは続行されますが、フィードバックが問題があることを示している場合は、プロセスを一時停止して修正措置を講じる必要があります。
 
専門のテストチームによる継続的なテストにより、ソフトウェアに関連するビジネスリスクをリアルタイムで評価できます。さらに、チームがより適切なトレードオフの決定を下せるよう、リスクベースのフィードバックを提供します。

DevOps における継続的テストの実践

1. テストの左または右に移動します

従来のテストは主に、ソフトウェア開発サイクルの終わり、製品リリース前に集中して行われます。加速し続ける配信頻度に対応するために、ますます多くのチームのテスト活動が左右に移動し始めました。一般に、修理費や企業向け料金が高いソフトウェアは、本番環境でトラブルが発生した場合の損失が相対的に大きいため、テストを左にずらす方法が採用されることが多いが、表示機能のあるソフトウェア製品の場合は、テストを左にずらす方法が採用されやすい。実稼働環境での問題を見つけるために、通常は右へのテスト シフトの形で行われます。テストが左右に振れるという問題に直面している場合、この図を使用して、DevOps でテストを実装する方法を説明できます。

 テストを左にシフトするということは、テスターがソフトウェア プロジェクトの初期段階でさまざまな活動に早期に参加し、機能開発前に関連するテスト ケースを定義し、品質上の問題を事前に発見することを意味します。テスト プロセスを早期に導入することは、欠陥を防止するのに役立ち、開発者は開発段階全体を通じて動的な変更を適用する柔軟性を得ることができます。


テストを右にシフトすると、運用環境で直接監視し、リアルタイムでユーザーのフィードバックを取得できます。この方法では、ユーザー側からフィードバックを収集し、ユーザーのフィードバックに応じて製品のユーザーエクスペリエンス満足度を継続的に改善し、製品の品質を向上させますテストを右にシフトすると、予期せぬ状況にうまく対応できるようになります。
 

2. 継続的インテグレーション

理想的な DevOps サイクルは、コード開発から運用環境の運用までワンクリックで導入できることです。明らかに、DevOps では構築、テスト、展開の自動化が非常に重要視されており、継続的インテグレーションの使用が継続的テストの基礎となっています。継続的テストを実現するための重要なステップは、継続的統合ビルドで使用するための包括的な自動テスト スイートを作成することです。コードは送信後すぐにこの自動テスト スイートによって検証されます。一般的な自動テスト スイートは、単体テスト、コンポーネント検出、および受け入れテストで構成されます。回帰問題が発生しないようにするには、各テストのコードまたは関数のカバレッジが少なくとも 80% である必要があります。

3. テストカバレッジの効率を向上させる

DevOps の実践では、コード カバレッジを改善し、低レベルの可用性のカバレッジを増やして、高レベルの可用性への展開時にコード カバレッジに関連する問題が発生しないようにすることが求められます。

一部の組織では、コード カバレッジを確保するために、デフォルトで「毎回すべてのテストを実行」しています。これはリソースを無駄にするだけでなく、テストサイクルを延長し、コードカバレッジの実際の保証はありません。時間、お金、リソースを節約するために、テストする必要があるものをテストします。モデルを視覚化すると、さまざまなパスを探索および最適化して、少数のテスト ケースのみで最大のカバレッジを提供できるようになります。Rally、HP ALM、Zen Road ZTF などのツールを利用すると、テスト ケースをインポートし、重複したユース ケースを削除し、最適化されたユース ケースを配布できます。

4. 部門を超えた連携

DevOps における品質保証は、もはやテスターだけの責任ではなく、すべての担当者が取り組むべき方向性となっています。継続的テストの実装を成功させるには、チーム内、チーム間、およびチーム間のコラボレーションが不可欠です。テスターは事前に開発作業に介入し、開発者とテスト計画を策定する必要があります。開発者は構成の展開に参加できます。運用および保守担当者は自動テスト ケース ライブラリにテスト ケースを入力できます。テスターは継続的デリバリーに向けて自動テスト ケースを構成できます。いつでもチェーンで、すべてのメンバーの共通の目的は、効率的で高品質の製品を提供することです

DevOps は開発と運用の間の障壁を取り除き、開発サイクルを短縮します。その中で、継続的インテグレーション、継続的テスト、継続的デリバリーはすべて品質向上の重要な触媒ですが、継続的テストのほうがより困難です。DevOps ライフサイクルをマスターする継続的なテストは、DevOps を完全に理解する上で重要な役割を果たします。

おすすめ

転載: blog.csdn.net/MXB1220/article/details/132283697