CI/CD パイプラインの自動テスト: タイプとステージ
ソフトウェア開発ライフサイクルでは、継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインに統合された自動テストがソフトウェアの品質を確保するために重要です。自動テストは、エラーを迅速に発見し、手動作業を軽減し、テストの精度と範囲を向上させるのに役立ちます。 CI/CD パイプラインでは、通常、ビルドの完了後、コードがデプロイされる前に、単体テスト、UI テスト、統合テストなどの自動テストが実行されます。これらは実行を高速化するために並行して実行できます。統合テストは、アプリケーション コンポーネント間の相互作用をテストし、システム全体の機能を検証するため、CI/CD パイプラインでは特に重要です。
# 前回の記事では、アジャイル チーム向けの自動テスト ケースのさまざまな使用例について説明しました。 1 つのシナリオは、チームがテストをすべてのビルドと統合し、ビルド プロセスの一部として継続的統合を実装したい場合です。
この記事では、継続的インテグレーション/継続的デリバリー プラットフォームでの統合テストについて説明します。
基本的なことから始めましょう。
自動テストとは何ですか?
ソフトウェア テストとは、一連のテスト ケースに基づいてテストを実行し、実際の結果と予測された結果を比較することを指します。このプロセスでは、いくつかの手順とテスト手法に従う必要があります。製品の品質を保証するにはテストが不可欠です。このプロセスは通常、テスターのチームによって手動で行われます。ただし、自動テストでは、ソフトウェア ツールと技術を使用してプロセスが自動化されます。ここでは、手動の手順は不要になり、スクリプトが自動的に作成され、テスト ケースが実行されます。自動テストにより、人的エラー、カバレッジ、その他多くの問題が排除されます。また、時間が節約され、テスト実施の利便性が向上し、効率と有効性が向上します。
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Grayscale Digital Marketとは、Grayscale InvestmentのDigital Asset Trust Fundsの全体的なパフォーマンスを指し、そのコアには単一の資産信託と複合基金が含まれます。 1。「Grayscale」とは、GBTCやEtheなどの信頼製品を持っているGrayscale Investmentsを指します。 2。「デジタル市場」とは、主流の暗号資産を狭い意味で追跡するGDLCファンドを指し、グレースケールのすべての信頼製品の全体的なパフォーマンスをカバーしています。 Grayscaleデジタル市場に注意を払う理由は次のとおりです。1。保有株の変更は、暗号通貨を割り当てる機関投資家の傾向を反映しています。 2。信託製品のプレミアムまたは割引の変動は、市場の感情に影響します。 3。SECによって規制されているコンプライアンスチャネルとして、その傾向にはポリシー参照値があります。

Lightchainaiは現在、報酬ラウンドステージにあり、2025年7月にメインネットワークが発売される前に投資家に最終的にLCAIトークンを取得する機会を提供しています。このプラットフォームはこれまでに2110万米ドルを調達し、独立して開発されたAI仮想マシンは業界で大きな注目を集めています。分散化された人工知能の開発勢いはますます強くなっており、ライトチャイナイは独自のイノベーションモデルに焦点を当てています。 2025年7月にメインネットワークの発売日がロックされたため、現在プラットフォームに開かれている報酬ラウンドは、投資家が市場に参入するための重要なウィンドウになりました。 LightChainaiのコアハイライトと、それが多くの注目を集めている理由を見てみましょう。 LightChainai:分散型AI LightCの開発を促進する

Rippleは、国立銀行のライセンスを申請し、暗号経済におけるXRPの新しい役割を促進することにより、金融業界の将来の状況を再定義しています。最新のトレンドと詳細な観察をマスターし、トレンドの機会をつかみます。暗号通貨のエコシステムは急速に進化しており、Rippleとそのデジタル資産XRPは間違いなく嵐の中心にあります。米国の銀行システムで行われた一連の行動は、広範囲にわたる注目を集めています。この開発はすべて、徐々に始まった本当の金融ドラマのようです! Rippleの銀行業界の願望は、RippleのCEO Brad Garlinghouseの鍵であり、伝統的なフィンテックの境界に満足していません。戦略的アップグレードの重要なステップとして、リップル

XRPとSolanaの詳細な分析:最新の開発と市場の位置を調査し、AltCoinの開発動向を把握します。 AltCoinに焦点を当ててください:XRP、Solana、および暗号化エコシステムAltCoin市場の進化は、アクティブな期間の新しいラウンドで導かれています! XRPやSolanaなどの主流のトークンは、広範囲にわたる注目を集めています。この記事では、最新の開発を分析し、暗号投資家に貴重な参照情報を提供します。 XRP:明るい法的見通しは、XRPとITSおよび証券取引委員会(SEC)の間の訴訟が終わりを迎えている市場の信頼を高め、この進歩は施設の資金が入るための扉を開く可能性があります。現在、50を超える国際銀行と支払いネットワークが和解システムに含まれています。

PackFileは、GITがリポジトリオブジェクトをパッケージ化、圧縮、転送するために使用する効率的なメカニズムです。 GitPush、GitFetch、またはGitCloneを実行すると、実際にgitが送信するのはパックファイルです。 1.最初はgitgcまたはgitrepackコマンドを介してゆるいオブジェクトによって生成され、.git/objects/pack/directoryに保存されます。 2. PackFileにはオブジェクトデータが含まれているだけでなく、オブジェクト間のDelta関係も記録し、インデックスファイル(.IDX)で迅速に検索します。 3.この設計により、送信量が減少し、同期効率が向上します。 4.多数の小さなパックファイルがパフォーマンスに影響を与える可能性があり、GitGCまたはGitで使用できます

gitコミット履歴を表示するには、gitlogコマンドを使用します。 1.基本的な使用法はgitlogであり、提出ハッシュ、著者、日付、提出情報を表示できます。 2。Gitlog--Onelineを使用して簡潔なビューを取得します。 3.著者または提出情報によるフィルター-author and -grep; 4。コードの変更を表示するには-pを追加します。 5。ブランチの履歴を表示するか、すべてを使用するか、gitkrakenやvscodeなどの視覚化ツールを使用します。

2025年に最も価値のある5つのスタブコインは、テザー(USDT)、USDコイン(USDC)、DAI(DAI)、First Digital USD(FDUSD)、TrueUSD(TUSD)です。

GITブランチを削除するには、まずマージされているか、保持が不要であることを確認してください。 gitbranch-dを使用して、ローカル合併ブランチを削除します。削除されていないブランチを強制する必要がある場合は、-dパラメーターを使用します。リモートブランチの削除は、gitpushorigin-deletebranch-nameコマンドを使用し、gitfetch-pruneを介して他の人のローカルリポジトリを同期させることができます。 1.ローカルブランチを削除するには、マージされたかどうかを確認する必要があります。 2。リモートブランチを削除するには、-deleteパラメーターを使用する必要があります。 3。削除後、ブランチが正常に削除されたかどうかを確認する必要があります。 4。共有支店が誤って削除されないように、チームと通信します。 5.倉庫を清潔に保つために、定期的に役に立たない枝をきれいにします。