継続的テストとは?
継続的テストとは、デリバリーパイプラインのあらゆる段階で自動テストを実行し、品質へのフィードバックが時折ではなく常時得られるようにすることです。
古いワークフローでは、テストは終わり近くのフェーズ、リリース前のゲートでした。継続的テストはそのフェーズをパイプライン全体へと溶かします。テストはあらゆるcommit、あらゆるmerge、あらゆるdeployで実行されるため、品質のフィードバックが継続的に届き、リグレッションが導入されて数週間後ではなく数分後に捕まえられます。
継続的な活動としてのテスト
継続的テストは、テストを到達する段階ではなく、CI/CDに織り込まれ常に起きるものとして扱います。高速なユニットテストはあらゆるpushで、より広範なスイートはmergeで、smokeテストはdeploy後に実行されます。その結果、ソフトウェアがまだ動くかどうかについて安定したシグナルの流れが得られます。
必要なもの
- 大部分が自動化された信頼できるテストスイート。
- テストがフローをブロックしないための高速なフィードバック。
- ユニットからE2Eまで、複数の層にわたるテスト。
- 結果が信頼できるための低いflakiness。
簡単な例
継続的テスト向けに構成されたパイプラインは、手動のステップなしに、あらゆるpushとpull requestで自動的にテストを実行します。
Tests on every change
on: [push, pull_request]
jobs:
test:
runs-on: latchkey-small
steps:
- uses: actions/checkout@v4
- run: npm test見返り
継続的テストはフィードバックループを数分に短縮し、バグを直すコストを低く保ち、mainブランチを確実にリリース可能な状態に保ちます。あらゆる変更が着地した瞬間に検証されるため、頻繁で低リスクなリリースを可能にするものです。
速度と信頼性が実現要因
継続的テストは、スイートが高速かつ信頼できる場合にのみ機能します。遅い、あるいはflakyなスイートはループを壊し、人々はそれをスキップし始めます。テストを高速runnerで並列実行することでフィードバックを素早く保ち、一時的なflakeを自動リトライすることでシグナルをクリーンに保ちます。Latchkeyはその両方を提供するために作られています。
重要なポイント
- 継続的テストはパイプライン全体で自動テストを実行します。
- テストを最終フェーズから常時フィードバックへと変えます。
- 高速で信頼でき、flakinessの低いテストスイートに依存します。
関連ガイド
What Is Shift-Left Testing?Shift-left testing explained: moving testing earlier in the lifecycle to catch bugs sooner and cheaper, what…
What Is Regression Testing?Regression testing explained: how it ensures old features still work after changes, regression suites, an exa…
What Is a Test Report?Test reports explained: the structured summary of a test run, what they contain, common formats, an example,…
What Is Test Parallelization?Test parallelization explained: running tests concurrently to cut wall-clock time, the isolation requirement,…