ホームページ よくある問題 CI/CD パイプラインの自動テスト: タイプとステージ

CI/CD パイプラインの自動テスト: タイプとステージ

Apr 16, 2024 pm 02:05 PM
git 自動テスト

ソフトウェア開発ライフサイクルでは、継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインに統合された自動テストがソフトウェアの品質を確保するために重要です。自動テストは、エラーを迅速に発見し、手動作業を軽減し、テストの精度と範囲を向上させるのに役立ちます。 CI/CD パイプラインでは、通常、ビルドの完了後、コードがデプロイされる前に、単体テスト、UI テスト、統合テストなどの自動テストが実行されます。これらは実行を高速化するために並行して実行できます。統合テストは、アプリケーション コンポーネント間の相互作用をテストし、システム全体の機能を検証するため、CI/CD パイプラインでは特に重要です。

CI/CD パイプラインの自動テスト: タイプとステージ

# 前回の記事では、アジャイル チーム向けの自動テスト ケースのさまざまな使用例について説明しました。 1 つのシナリオは、チームがテストをすべてのビルドと統合し、ビルド プロセスの一部として継続的統合を実装したい場合です。

この記事では、継続的インテグレーション/継続的デリバリー プラットフォームでの統合テストについて説明します。

基本的なことから始めましょう。

自動テストとは何ですか?

ソフトウェア テストとは、一連のテスト ケースに基づいてテストを実行し、実際の結果と予測された結果を比較することを指します。このプロセスでは、いくつかの手順とテスト手法に従う必要があります。製品の品質を保証するにはテストが不可欠です。このプロセスは通常、テスターのチームによって手動で行われます。ただし、自動テストでは、ソフトウェア ツールと技術を使用してプロセスが自動化されます。ここでは、手動の手順は不要になり、スクリプトが自動的に作成され、テスト ケースが実行されます。自動テストにより、人的エラー、カバレッジ、その他多くの問題が排除されます。また、時間が節約され、テスト実施の利便性が向上し、効率と有効性が向上します。

CI/CD パイプラインの自動テスト

自動テストは、高速実行テストが開発者に早期のフィードバックを提供するため、CI/CD パイプラインの中核部分です。早期に検出された問題やエラーは、より早く修正できる可能性があります。その結果、公開された製品はより正確になり、エラーがなくなりました。これにより製品全体の品質が向上し、顧客満足度が高まります。つまり、CI/CD パイプラインでの自動テストの利点は次のとおりです。

  • 「高速ビルド、高速フェイル」という CI/CD の概念に沿って

  • 手動作業の量を減らすことで、時間を節約し、エラーの可能性を減らします。

  • テスト ケースの数が増えると、テスト結果の精度が向上し、より広い範囲をカバーできるようになります。

  • #あらゆる問題についてすぐにフィードバックを得る

  • 品質と一貫性を確保するために、複数のテスト結果を生成および比較できます

#CI/CD パイプラインで使用される自動テストの種類

    単体テスト: これは、コーディングとレビューの後に行われる低レベルのテストです。モジュール。テスト ケースは、個々のコンポーネントをテストするように設計されています。その目的は、あらゆる状況下ですべてのコンポーネントが期待どおりに動作することを保証することです。
  • 統合テスト: 統合とは、アプリケーション内のコンポーネントの相互作用をテストすることを指します。このテストは、すべてのモジュールの単体テストが完了した後に行われます。主な目的は、モジュール インターフェイスをテストし、あるモジュールが別のモジュールの関数を呼び出すときにパラメーターの受け渡しにエラーがあるかどうかを確認することです。
  • システム テスト: テストは、完全に開発されたシステムを検証し、要件仕様書に準拠していることを確認するように設計されています。通常、この段階で、ソフトウェアは潜在的なユーザーが使用できる状態になります。これらのタイプのシステム テストは、アルファ (組織内の開発チームによって実行される)、ベータ (選択されたユーザー/顧客のグループによって実行される)、または受け入れテスト (提供されたシステムの受け入れを判断するためにユーザー/顧客によって実行される) と呼ばれます。
継続的インテグレーションと継続的デリバリとは何ですか?

つまり、継続的統合により、開発チームはコードを共有リポジトリに統合できます。これは、コードの品質を維持し、コードのローカル バージョンの潜在的な問題を早期に特定するのに役立ちます。

継続的デリバリーは、「継続的デプロイメント」とも呼ばれます。開発チームが継続的にマージしているものはすべて、常にライブ環境にデプロイされています。

ほとんどの開発者は並行して作業するため、コードを常にリポジトリに統合することは、マスター ブランチが新しい機能で常に更新されることを意味します。変更が急速に発生することによってコードの品質が損なわれないようにするには、テストを同じペースで実行する必要があります。

当然のことながら、この環境での手動テストは、この目標を達成するための最良の方法ではありません。自動テストは、CI/CD パイプラインでのテストを成功させるための鍵です。

9 継続的デリバリー フェーズ

    開発: 開発者は、プロジェクト要件または機能リクエストに基づいてコードを構築します。
  • テストを書く: コードを書いたら、テストを書く必要があります。現時点では、これらのテストは通常​​、開発者が作成した単体テストです。
  • ローカル テスト: 次に、ローカル テストを実行して、すべてのテストに合格し、コードが壊れていないことを確認します。通常、パーセンテージは、実行されるテストが満たす必要がある合格率に設定されます。
  • Перебазирование и разрешение конфликтов. В реальном сценарии разработки несколько человек будут объединять свой код. Разработчикам необходимо следить за тем, чтобы их ветки всегда обновлялись. Обновление ветки последним объединенным кодом называется «перебазированием». После изменения положения могут возникнуть некоторые конфликты, которые необходимо разрешить. После этого снова запустите тест для измененного кода.

  • Коммит: после прохождения тестов код готов к фиксации всех изменений.

  • Сборка: разработанный исходный код затем собирается для создания артефакта развертывания, который можно запустить на экземпляре, например на сервере, где среда является локальной по отношению к среде. Теперь этот код готов к развертыванию в другой среде тестирования.

  • UAT: затем код развертывается на тестовом сервере, и тестировщики начинают тестировать функцию. Эти тесты могут быть автоматизированными или ручными.

  • Объединение: если тестируемый коммит одобрен тестировщиками, он будет объединен с основной веткой.

  • Развертывание в рабочей среде: после слияния кода он развертывается в рабочей среде.

Каждая сборка кодов разработчика должна пройти описанный выше процесс.

Какое место в конвейере CI/CD занимает автоматическое тестирование?

В идеале автоматическое тестирование происходит после завершения этапа сборки и возможности развертывания кода. На этом этапе можно запускать модульные тесты, тесты пользовательского интерфейса и интеграционные тесты. Эти тесты помогают убедиться, что код соответствует стандартам качества.

Этот этап может длиться от нескольких минут до нескольких часов, в зависимости от архитектуры автоматизации.

Тесты можно запускать параллельно, чтобы ускорить их выполнение. Если код дает сбой на этапе тестирования, сборку можно отклонить, не тратя дополнительное время на ручное тестирование.

Инструменты для CI/CD

  • Jenkins: Jenkins — это инструмент с открытым исходным кодом для непрерывной интеграции. Его можно использовать бесплатно, а задания можно настраивать через интерфейс и сценарии.

  • Travis CI: Этот инструмент бесплатен для проектов с открытым исходным кодом и размещен на GitHub.

  • Gitlab: Gitlab — это инструмент контроля версий с собственным облачным подходом к CI. Он поддерживается на нескольких платформах и имеет как бесплатную, так и платную версии.

  • Bamboo: Bamboo — это инструмент CI для Jira. Если ваша организация использует Jira, было бы полезно попробовать этот инструмент. Он также поддерживает автоматическое объединение при утверждении заявки.

Рекомендации по использованию конвейеров CI/CD для получения максимальной отдачи от автоматизации тестирования

  • Постепенные изменения: всегда рекомендуется Следуйте поэтапному подходу. Если функция действительно большая, лучше разбить ее на более мелкие и более быстрые для тестирования функции. Это важно для автоматизации, поскольку, если что-то пойдет не так, будет легче определить основную причину. Если ваши обязательства слишком велики, выяснить причину проблемы будет непростой задачей.

  • Определите, что можно автоматизировать. Команды обычно быстро погружаются в работу и говорят: «Давайте автоматизируем все», но это распространенная ошибка. Мы должны понять цель автоматизации и определить тестовые примеры, которые следует автоматизировать.

  • Параллельное тестирование. Тесты следует запускать параллельно, чтобы сделать тестирование более эффективным и своевременным. Это может значительно сократить время, необходимое для запуска тестов, и ускорить получение результатов. Но недостаточно просто выполнять эти тесты параллельно; важно также масштабировать размер сервера, на котором выполняются тесты, чтобы действительно увеличить скорость тестирования.

Заключение

Автоматическое тестирование — важная часть успешного развертывания проектов с соблюдением стандартов качества. Обеспечение выполнения тестов на каждом этапе обеспечивает хорошую прозрачность качества кода. Ошибки можно обнаружить на ранней стадии, и любые задержки, которые могут быть вызваны ими, могут быть оперативно устранены. Наличие конвейера CI/CD для интегрированного тестирования помогает ускорить процесс тестирования и развертывания.

以上がCI/CD パイプラインの自動テスト: タイプとステージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GitでSSHキーを生成する方法 GitでSSHキーを生成する方法 Apr 17, 2025 pm 01:36 PM

リモートGitサーバーに安全に接続するには、パブリックキーとプライベートキーの両方を含むSSHキーを生成する必要があります。 SSHキーを生成する手順は次のとおりです。端子を開き、ssh -keygen -t rsa -b 4096を入力します。キー保存場所を選択します。秘密鍵を保護するには、パスワード句を入力します。公開キーをリモートサーバーにコピーします。アカウントにアクセスするための資格情報であるため、秘密鍵を適切に保存します。

GITでリポジトリを削除する方法 GITでリポジトリを削除する方法 Apr 17, 2025 pm 04:03 PM

gitリポジトリを削除するには、次の手順に従ってください。削除するリポジトリを確認します。リポジトリのローカル削除:RM -RFコマンドを使用して、フォルダーを削除します。倉庫をリモートで削除する:倉庫の設定に移動し、「倉庫の削除」オプションを見つけて、操作を確認します。

Gitダウンロードがアクティブでない場合はどうすればよいですか Gitダウンロードがアクティブでない場合はどうすればよいですか Apr 17, 2025 pm 04:54 PM

解決:gitのダウンロード速度が遅い場合、次の手順を実行できます。ネットワーク接続を確認し、接続方法を切り替えてみてください。 GIT構成の最適化:ポストバッファーサイズ(Git Config -Global HTTP.Postbuffer 524288000)を増やし、低速制限(GIT Config -Global HTTP.LowsPeedLimit 1000)を減らします。 Gitプロキシ(Git-ProxyやGit-LFS-Proxyなど)を使用します。別のGitクライアント(SourcetreeやGithubデスクトップなど)を使用してみてください。防火を確認してください

PHPプロジェクトで効率的な検索問題を解決する方法は?タイプセンスはあなたがそれを達成するのに役立ちます! PHPプロジェクトで効率的な検索問題を解決する方法は?タイプセンスはあなたがそれを達成するのに役立ちます! Apr 17, 2025 pm 08:15 PM

eコマースのウェブサイトを開発するとき、私は困難な問題に遭遇しました:大量の製品データで効率的な検索機能を達成する方法は?従来のデータベース検索は非効率的であり、ユーザーエクスペリエンスが低いです。いくつかの調査の後、私は検索エンジンタイプセンスを発見し、公式のPHPクライアントタイプセンス/タイプセンス-PHPを通じてこの問題を解決し、検索パフォーマンスを大幅に改善しました。

Gitサーバーのパブリックネットワークに接続する方法 Gitサーバーのパブリックネットワークに接続する方法 Apr 17, 2025 pm 02:27 PM

GITサーバーをパブリックネットワークに接続するには、5つのステップが含まれます。1。パブリックIPアドレスのセットアップ。 2。ファイアウォールポート(22、9418、80/443)を開きます。 3。SSHアクセスを構成します(キーペアを生成し、ユーザーを作成します)。 4。http/httpsアクセスを構成します(サーバーをインストールし、許可を構成); 5.接続をテストします(SSHクライアントまたはGITコマンドを使用)。

GitでSSHを検出する方法 GitでSSHを検出する方法 Apr 17, 2025 pm 02:33 PM

GITを介してSSHを検出するには、次の手順を実行する必要があります。SSHキーペアを生成します。 Gitサーバーに公開キーを追加します。 sshを使用するようにgitを構成します。 SSH接続をテストします。実際の条件に応じて可能な問題を解決します。

Gitプロジェクトをローカルにダウンロードする方法 Gitプロジェクトをローカルにダウンロードする方法 Apr 17, 2025 pm 04:36 PM

gitを介してローカルにプロジェクトをダウンロードするには、次の手順に従ってください。gitをインストールします。プロジェクトディレクトリに移動します。次のコマンドを使用してリモートリポジトリのクローニング:git clone https://github.com/username/repository-name.git

Gitアカウントにパブリックキーを追加する方法 Gitアカウントにパブリックキーを追加する方法 Apr 17, 2025 pm 02:42 PM

Gitアカウントに公開キーを追加する方法は?ステップ:SSHキーペアを生成します。公開キーをコピーします。 gitlabまたはgithubに公開キーを追加します。 SSH接続をテストします。