※発表を聞きながら取っていたメモを元にしているため、誤りがあるかもしれません。あくまで個人のメモということでご了承いただければと思います。修正が必要な場合はDiscordのid:yocajiまでお知らせいただければ幸いです。
登壇者
山本 イアンさん
LegalOn Technologies
SET
当時の状況
受託システムの開発
2023年2月頃
スケジュールがタイト
手動テストがやっと
APIテストメインの自動化にこぎつける
自動化リソース確保の鍵が生成AIだった
1Try目の課題
リソース不足
生成AI導入がその後に繋がらない
どう書けばAIがテストコードを生成しやすいか
2Try目
自動化対象
結合テスト中心
APIテスト
バッチ処理のテスト
AWS S3などの外部サービスとの連携のテスト
収穫
コメントが大事
DocStringを入力してテスト名を入力する
テストの流れを再現できたことが重要
大きな補完の仕組みを確立することが大事
より効率的に
次を予測しやすいテストの書き方
テストケースの順番を統一する
複雑なテストは先に書いた方が補完が効きやすい(右からやる)
単数系→複数形
任意オプションなし→あり
ハッピーパス→網羅的なパス
ページネーションなし→あり
ケースの分岐はコメントを使って紐づける
それぞれのフィクスチャにコメントをつける
タグをつけるイメージで記述する
適切なコメントは生成の精度向上だけでなく分岐先の処理の生成にも役立つ
小さな補完ではAIの死角をクリアにする情報を出す
過剰な最適化を避ける
ルーティング情報は埋もれがち
クレデンシャル情報は生成が途中で途切れる
テスト用の変数を用意する
コピペや手入力の方が早くはないか、代替案を持っておく
補完ツールの選び方
大きな補完がしやすいか
一定のコメントに対応したスニペットを安定して保管するか
ダッシュボードが提供されているか
エディタと連携しやすいか
まとめ
大きな補完を最適化する
AIの視点に立ってコードの改善ポイントを
プロンプトや改善手法も資産
感想
テストコードを作成するために生成AIをどう使うか、具体的な実践例を知ることができる貴重な発表でした。小さく補完させるよりも、どうやって大きな塊で生成させるかということと、細部は違ったとしても全体の流れが合っていることが大事という考え方を知ることができたのが収穫でした。