Skip to content
Latchkey

継続的テストとは?

継続的テストとは、デリバリーパイプラインのあらゆる段階で自動テストを実行し、品質へのフィードバックが時折ではなく常時得られるようにすることです。

古いワークフローでは、テストは終わり近くのフェーズ、リリース前のゲートでした。継続的テストはそのフェーズをパイプライン全体へと溶かします。テストはあらゆる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の低いテストスイートに依存します。

関連ガイド