continuous testing devops
DevOpsの継続的テストと継続的テストのパイプラインとは何ですか?
皆さんが最後のチュートリアルを楽しんだことを願っています DevOpsでの継続的デプロイ 。
ソフトウェア配信でのテストの重要性とDevOpsは配信の短いサイクルであることがわかっています。バージョン管理ツールでコードの単一行が更新されると、設計されたすべてのテストケースを手動で実行することは不可能であり、継続的です。テストと自動化された継続的テストのパイプラインがDevOpsに登場します。
推奨読書=> ゼロからのDevOpsトレーニングチュートリアル
CTの利点:
-
- 品質とスピードはCTの大きなメリットです。
- コードに関するフィードバックがどんどん速くなります。
- チームの自信を高め、継続的に改善することを奨励します。
ビデオパート3ブロック4:継続的テスト–14分39秒
トランスクリプト:
このブロックでは、 継続的テストと継続的テストのパイプライン 詳細に。
継続的テストは、継続的インテグレーションとともに継続的デリバリーパイプラインのもう1つの重要なプロセスであり、パイプラインには次のものが含まれます。 さまざまなテストフェーズ ここで、自動テストは、その間の自動品質ゲートとともに実行されます。
したがって、継続的テストとは、自動化されたテストを、コードベースおよびさまざまな展開環境に対して継続的かつ繰り返し実行することです。
主に、単体テスト、静的コード分析、セキュリティコード分析、統合テスト、負荷およびパフォーマンステストは、自動化された継続的テストパイプラインで実行される継続的テストの一部です。
継続的インテグレーションと継続的デプロイはCI、CDと呼ばれるため、継続的テストはより頻繁にCTと呼ばれます。
テスト面接の質問のソフトウェア開発者
継続的デリバリーパイプラインであるこの図を見ると、このパイプラインには2つのパイプラインが含まれています。1つはCIパイプラインであるビルドパイプライン、または自動ビルドトリガー、コンパイル、ビルド、デプロイで構成される継続的インテグレーションパイプラインです。
もう1つは、継続的テストパイプラインであるテストパイプラインです。
それでは、継続的テストについて詳しく見ていきましょう。
テスト、コードのすべての行のテスト…..毎回のテスト…そしてさまざまな段階でのテストの重要性を認識しており、コードの行がバージョン管理に更新されるときに、設計されたすべてのテストを手動で実行することはほとんど不可能です。
そこで、継続的テストが重要になります。
したがって、自動化された継続的な統合パイプラインに入り、徹底的にテストされ、必要な品質が保証されない限り、ソフトウェアを顧客にリリースする意味はありません。つまり、コードを徹底的にテストしない限り、品質を保証することはできません。
したがって、継続的テストとは、前述のように、継続的デリバリーパイプラインで事前定義および設計されているように、コードベースおよびデプロイ先のさまざまな環境でさまざまなタイプのテストを継続的に実行することです。
写真にあるように、ユニットテストはCIサーバー自体で実行され、システムの各ユニットを個別にテストします。
統合テストは、基本的に一緒に統合されたコンポーネントを検証する統合環境で行われます。システムテスト環境でのシステムテスト。すべての統合コンポーネントとインターフェイスを備えたBIGシステムが、システムテスト環境などのシステムレベルのシナリオでテストされます。
また、環境のシミュレーションが本番環境に近づくにつれて、テストの深さはしばしば進行します。
コードが成熟し、環境の複雑さが増すにつれて、いくつかのテストとより複雑なテストをゆっくりと追加する必要があるため、継続的テストは、実稼働環境への進行とともに次第に厳しくなり、長くなります。
同じテストケースが全体で実行されるわけではありません。テストケースは異なるフェーズで毎回更新する必要があり、自動化されたスクリプトは更新されます。コードが成熟するにつれて、構成とインフラストラクチャもより高いレベルの環境に進みます。それが生産に入るまで、前進します。
そのため、テストの実行にかかる時間でさえ、テストがリリースポイントに向かって進むにつれて増加します。たとえば、単体テストの実行にかかる時間は非常に短い場合がありますが、一部の統合テスト、一部のシステムテスト、または負荷テストの実行には数時間かかる場合があります。実行するのに数日。
ここでは、継続的テストは主に、トリガーを使用して自動テストケースを自動的に実行します。ただし、前に定義したように、継続的デリバリーには、特定の手動テストとゲートも含まれます。特定のテストは、本番環境に移行する前に手動で実行されます。
これらの中間品質は、テストのすべての段階でゲートし、コードの信頼性を高めます。
そのため、継続的テストパイプラインには、予備的な自動セキュリティ検証とともに単体テストが含まれます。次に、自動統合テストが実行される統合レベルのテストに入り、次にシステムレベルのシナリオが自動化されて実行されるシステムレベルに進みます。
ここでは、特定のパフォーマンステストシナリオも実行されます。
次に、基本的に自動化されたサイト受け入れテストケースを含む「受け入れテスト」に進み、最後に手動実行であり、テストを実行するためのエンドユーザーの参加を含む「ユーザー受け入れテスト」に進みます。製品または機能の一種の最終承認。手動ゲートが呼び出され、最終的に本番サイトに展開されます。
したがって、基本的に、継続的テストが進むにつれて、テストとテスト環境の複雑さが増し、シミュレーションのように本番環境に近い環境に到達します。
これらすべてのテスト段階には、ビルド検証テスト、健全性テスト、スモークテスト、回帰テストも含まれることを特に言及する必要はありません。これも、継続的テストと配信パイプラインで設計する内容によって異なります。
これは典型的な継続的テストパイプラインであり、製品のタイプ、さまざまなレベルのテスト、および製品が要求するテストのタイプに基づいてチームが設計できます。
継続的テストでは、自動化フレームワークをバージョン管理およびCIツールとさまざまな自動化ツールと統合して、次のようなテストのさまざまなフェーズで機能テストと非機能テストを実行する必要があります。
- 静的コード分析用のソナー、
- 安全なコード分析のために強化し、
- 機能テスト用のセレン、
- 負荷テストなどのロードランナー、
Microsoft TFS、Jenkins、chef、puppetは、CI-CDパイプラインを設計するために市場で入手できるいくつかのツールです。
ただし、使用するバージョン管理ツールによっては、これらのツールが完全なエンドツーエンドの自動化をサポートしていない可能性があるため、コードからの配信パイプラインのエンドツーエンドの自動化を可能にする独自の自動化フレームワークを開発することを好む組織はほとんどありません。コード配信にコミットします。
したがって、継続的テストはテストの非常に重要な部分であり、製品またはリリースの品質を保証します。主に配信の品質と速度を決定するツール、フレームワークなどの選択には十分注意する必要があります。
そのため、適切な継続的テストパイプラインの設定には、継続的デリバリーパイプラインで少し時間がかかります。ツールとフレームワークの部分だけでなく、テストケースの部分でも。継続的テストには、内部でのデプロイメントパイプラインの定義も含まれます。
CTでは、さまざまなフェーズでさまざまな環境にビルドを自動展開する必要があるため、展開を自動化し、自動スクリプトを介して環境をセットアップする必要があります。
インフラストラクチャと環境の構成をコードとして設定することを含むこれらの自動化されたスクリプトは、バージョン管理ツールにチェックインされ、配信パイプラインはそれをバージョン管理ツールから取得して展開を実行します。これは、デプロイメントパイプラインと呼ばれます。
それでは、CTのメリットをご紹介します。
品質と速度を達成することは、継続的テストの最大の利点です。
以前はテストが最終的にしか行われていなかったのとは異なり、テスト全体は継続的テストの概念であるため、配信パイプラインでの継続的テストにより、チームはどこにでも、必要な数の品質ゲートを順番に導入できます。彼らが必要とする品質の程度を達成するために。
したがって、パイプラインの特定のポイントまたはゲートでコードがテストに失敗した場合、チームは戻って、そのポイントまでの展開全体を自動的に失敗させることができます。
これにより、DevチームとOpsチームの両方に、何かが不足していることが明確に示され、チームはそれを修正するために取り組むことができます。つまり、これが継続的テストパイプラインの利点と柔軟性です。
そのため、さまざまなテストフェーズでの品質ゲートの導入により、パイプラインでのコードの品質がより適切に管理されます。
コードが通過するゲートの数が多いほど、より高いレベルの品質で本番環境に到達できるというチームのコードへの信頼が高まります。
したがって、継続的なテストはチームの信頼を高め、チームが継続的に改善することを奨励します。
全体として、チームがパイプラインのテストフェーズまたは品質ゲートでのテストの失敗を実際に無視しない場合、継続的なテストは高品質の目標を達成するためのボーナスになります。
したがって、継続的テストを結論付けるには、予備段階で実行される単体テストから受け入れテスト、パフォーマンステスト、さらには実行される特定の手動テストでさえ、DevOpsパイプラインで継続的テストを定義するために非常に重要です。
これで、継続的インテグレーション、継続的デリバリー、継続的テストのパート3トピックに関するディスカッションは完了です。
今後のチュートリアルでは、 構成管理、リリース管理、およびアプリケーションパフォーマンスの監視。
推奨読書
- DevOpsでの継続的デプロイ
- DevOpsでの継続的デリバリー
- DevOpsテスト用のトップ10継続的テストツール(2021リスト)
- 最高のソフトウェアテストツール2021 (QAテスト自動化ツール)
- DevOpsテストチュートリアル:DevOpsはQAテストにどのように影響しますか?
- DevOpsビデオチュートリアルの要約
- DevOpsでの継続的インテグレーション
- PrimereBookダウンロードのテスト