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

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

百草
百草オリジナル
2024-04-16 14:05:581040ブラウズ

ソフトウェア開発ライフサイクルでは、継続的インテグレーションおよび継続的デリバリー (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 までご連絡ください。