Skip to main content

一晩で未テストの8モジュールをテスト

夜の間に8つのDevinセッションを並列起動し、それぞれがカバレッジの低い別々のモジュール向けに単体テストを書き、朝までにPR(プルリクエスト)をオープンします。
AuthorCognition
CategoryDevinの最適化
Features高度, プレイブック
1

テスト作成のためのプレイブックを作成する

あなたの e コマースのモノレポには 30 以上のモジュールがありますが、十分なテストカバレッジがあるのは一部だけです。全体のカバレッジを 44% から 80% に引き上げたいと考えており、その出発点としてカバレッジが最も低い 8 つのモジュールから始めます。並列セッションを開始する前に、8 つすべてのセッションが一貫した方法でテストを書けるようにするための プレイブック が必要です。Advanced Devin を使ってプレイブックを作成します。入力ボックスの下にある Advanced をクリックし、Create Playbook タブを選択して、テスト方針を記述します。このプレイブックは、すべての並列セッションで共有される共通の指示セットになります。さらに、テストユーティリティやモックのパターン、プロジェクト固有の注意点(例: 「afterEach では常に resetMocks() を呼び出す」)について Knowledge にエントリを追加することもできます。
2

午後6時に並列セッションを8つ起動します

勤務日の終わりに、Devin のホームページの入力ボックス下にある Advanced をクリックして Advanced Devin を開き、Start Batch Sessions タブを選択します。
  1. ドロップダウンメニューからテスト作成用のプレイブックを選択します
  2. プロンプトでタスク内容を記述します:
  1. 提案されたセッションを確認します。Advanced Devin は各モジュールと現在のカバレッジを一覧表示し、どのセッションを作成するかを示します。
提案されたセッション(8モジュール、すべてカバレッジ50%未満):
  1. src/services/PaymentService — 31% coverage
  2. src/services/UserService — 38% coverage
  3. src/api/routes/billing — 42% coverage
  4. src/middleware/auth — 44% coverage
  5. src/services/NotificationSvc — 47% coverage
  6. src/components/Checkout — 49% coverage
  7. src/utils/validation — 51% coverage
  8. src/services/SearchService — 53% coverage

8つの並列セッションを開始しますか? (y/n)
  1. バッチを承認したら、あとはノートパソコンを閉じるだけです。8つのセッションが、それぞれ別々のDevinマシン上で同時に起動し、各セッションがあなたのプレイブックに従って独立して実行されます。
3

起きたら最大8件のPRが届いている

朝までに各セッションが完了し、それぞれ自分用のPRを作成します。リポジトリには8件のPRが作成されており、それぞれに新しいテストファイルとカバレッジサマリーが含まれています。
Module                       | Before | After  | PR     | Status
-----------------------------|--------|--------|--------|--------
src/services/PaymentService  |  31%   |  87%   | #412   | Ready
src/services/UserService     |  38%   |  84%   | #413   | Ready
src/api/routes/billing       |  42%   |  91%   | #414   | Ready
src/middleware/auth           |  44%   |  82%   | #415   | Ready
src/services/NotificationSvc |  47%   |  85%   | #416   | Ready
src/components/Checkout      |  49%   |  83%   | #417   | Ready
src/utils/validation         |  51%   |  93%   | #418   | Ready
src/services/SearchService   |  53%   |  86%   | #419   | Ready

Overall coverage: 44% -> 68% (+24 pts across targeted modules)
PR はどの順番でマージしても問題ありません。各セッションは自分のモジュールに対して新しいテストファイルを追加するだけなので、コンフリクトはまれです。2 つのセッションが共有のテストヘルパーに変更を加えた場合は、手動でコンフリクトを解消するか、Devin に修正を依頼してください。
4

次のティア向けに2回目のバッチを実行する

1回の夜間バッチ実行だけでは、コードベース全体で80%の目標には届きません。次の夜には、次にカバレッジが低いモジュール群に対してフォローアップを実行します:また、重要なユーザーフローについては、ユニットテストからインテグレーションテストに切り替えることもできます:2晩のバッチセッションで、コードベースのカバレッジを50%未満から80%以上まで引き上げることができます。これは、エンジニアが数週間専任で取り組んでようやく達成できる作業量に相当します。