DevOps での継続的テスト
継続的テストとは何ですか?
継続的なテスト in DevOps は、ソフトウェア開発ライフサイクルのあらゆる段階でソフトウェアをテストするソフトウェア テスト タイプです。 継続的テストの目標は、早期にテストし、頻繁にテストすることで、継続的デリバリー プロセスのすべての段階でソフトウェアの品質を評価することです。
DevOps の継続的テスト プロセスには、開発者、DevOps、QA、および Opera国家システム。
継続的テストはどう違うのですか?

以前のテスト方法はハンドオフ中心でした。 ソフトウェアはあるチームから別のチームに引き渡されました。 プロジェクトには明確な開発フェーズと QA フェーズがあります。 QA チームは常に、品質を確保するためにより多くの時間を必要としていました。 目標は、プロジェクトのスケジュールよりも品質を優先することでした。
しかし、企業はエンドユーザーへのソフトウェアのより迅速な配信を望んでいます。 ソフトウェアが新しければ新しいほど、マーケティング効果が高まり、企業の収益の可能性が高まります。 そこで、新しいテスト方法が開発されました。
継続的とは、継続的に実行される中断のないテストを意味します。 継続的 DevOps プロセスでは、ソフトウェア変更 (リリース候補) が開発からテスト、デプロイへと継続的に移行します。
コードは継続的に開発、配信、テスト、展開されます。
たとえば、開発者が Jenkins などのソース コード サーバーでコードをチェックするたびに、自動化された一連のユニット テストが継続的なプロセスで実行されます。テストが失敗すると、ビルドは拒否され、開発者に通知されます。ビルドがテストに合格すると、徹底的な機能テストと負荷テストのためにパフォーマンス サーバー、QA サーバーにデプロイされます。テストは並行して実行されます。テストに合格すると、ソフトウェアは運用環境にデプロイされます。
継続的テストは、継続的開発、統合、展開サイクルにおける小さな歯車です。
ソフトウェア開発は、開発を月単位から週単位に短縮した過去とは異なります。 現在のテスト スタック (上図を参照) は UI テストに向けたタイトルになっています。 しかし、目標は、単体テストの自動化をさらに増やすことです。
継続的テストはテスト自動化とどう違うのですか?
テスト自動化と継続的テスト
テスト自動化 | 継続的なテスト | |
---|---|---|
テスト自動化は、ツールまたはソフトウェアを使用してタスクを自動化するプロセスです。 | これは、継続的な品質と改善の達成に焦点を当てたソフトウェア テスト方法論です。 | |
目的 | 一連の同様のタスクまたは反復的なタスクを、マシンはより速く、より少ないミスで実行できます。 | 継続的なテストプロセスは、リスクを見つけて対処し、製品の品質を向上させるのに役立ちます。 |
前提条件 | 継続的なテストを統合しなくても、テストの自動化が可能です。 | 継続的なテストはテストの自動化なしには実装できません。 |
時間 | ソフトウェアのリリースには XNUMX か月から数年かかる場合があります。 | ソフトウェア リリースは、毎週から毎時間リリースされる場合があります。 |
フィードバック | 各リリースのテスト後の定期的なフィードバック。 | 各段階でのフィードバックは即座に行われる必要があります。 |
沿革 | 自動テストは、テストプロセスを高速化するために数十年にわたって行われてきました。 | 継続的テストは比較的新しい概念です。 |
継続的テストの方法
- ツールを使用してユーザー ストーリー/要件からテスト自動化スイートを生成する
- テスト環境を作成します。
- 本番データをコピーして匿名化し、テスト データ ベッドを作成する
- サービス仮想化を使用して API をテストする
- 並行パフォーマンステスト
継続的テストツール
ここに厳選された最高のリストがあります 継続的テストツール :
1) クエリサージ
クエリサージ は、継続的なデータ テストのためのこの種初の完全な DevOps ソリューションであるスマート データ テスト ソリューションです。 主な機能には、60 を超える呼び出しを備えた堅牢な API、詳細なデータ インテリジェンスとデータ分析、継続的なテストのための DevOps パイプラインへのシームレスな統合、大量のデータの迅速な検証などが含まれます。
2) ジェンキンス
Jenkins は、次を使用して書かれた継続的インテグレーション ツールです。 Java 言語。このツールは、GUI インターフェイスまたはコンソール コマンドを使用して構成できます。
リンクをダウンロード: https://jenkins.io/
3) トラビス
Travis は、GitHub でホストされている継続的テスト ツールです。 ホスト型とオンプレミス型が提供されます。 さまざまな言語と優れたドキュメントを提供します。
リンクをダウンロード: https://travis-ci.org/
4) Selenium
Selenium オープンソースのソフトウェアテストツールです。次のような主要なブラウザをすべてサポートしています。 Firefox、Chrome、IE、Safari。 Selenium WebDriver は、Web アプリケーションのテストを自動化するために使用されます。
リンクをダウンロード: https://www.seleniumhq.org/
継続的テストの利点
- ソフトウェアの配信を加速する
- 継続的なテストによりコードの品質が向上します
- これは、正確なビジネスリスク範囲を評価するのに役立ちます。
- DevOps プロセスにシームレスに統合されます
- 数か月ではなくわずか数時間で、俊敏かつ信頼性の高いプロセスを作成するのに役立ちます。
- 継続的なフィードバック メカニズムにより市場投入までの時間を短縮します。
- 従来のサイロ化されたチームを統合して、現代の企業のニーズに対応します。開発、テスト、運用の各チーム間の断絶を解消します。
- テスト自動化は、関連するすべてのテストで同じ構成を維持することで一貫性を実現します。
- ビジネスリスクを軽減するためにビジネス上の期待を強調する
- サービス仮想化によるユビキタスなテスト環境へのアクセスの提供
継続的テストの課題
- 従来のプロセスは、開発および QA プロフェッショナル間の文化的変化を制限しています。
- アジャイルおよび DevOps 環境でテストするための DevOps スキルと適切なツールが不足しています。
- 本番環境を決して反映しない異種テスト環境。
- 従来のテストプロセスと大まかに定義されたテストデータ管理。
- コード統合サイクルが長くなると、統合の問題が発生し、不具合修正が遅れます
- リソースとテスト環境が不十分で非効率的
- DevOps の導入を制限する複雑なアプリケーション アーキテクチャとビジネス ロジック。
まとめ:
- ソフトウェア エンジニアリングにおける継続的テストは、早期にテストし、頻繁にテストし、あらゆる場所でテストし、自動化するプロセスです。
- 以前のテスト方法はハンドオフ中心でした。 ソフトウェアはあるチームから別のチームに引き継がれます
- ジェンキンス、トラヴィス、 Selenium 人気の継続的テストと 統合ツール.
- 継続的テストは、配信パイプラインの各段階に応じて実用的なフィードバックを提供します。
- 継続的なテストはコードの品質の向上に役立ちます
- 従来のプロセスは、開発および QA プロフェッショナル間の文化的変化を制限しています。
- コード統合サイクルが長くなると、統合の問題が発生し、不具合修正が遅れます