最近、ChatGPTにエラーを解決してくれと投げていたら、エラーを突破するために、不適切な型変換を行なっていたことがわかりました。テストを事前に用意していたので気づけましたが、テストがなければ、この問題は発見できなかったかもしれません。
生成AIの利用シーンとその課題
生成AIを利用する場面では、特定のコードスニペットを出力させたり、エラーを解決するために使用されることが多いのではないかと思います。こうした利用方法の中で、意図しない出力やエラーが発生することは少なくありません。ChatGPTの記憶力にはまだ限界があるので、どうしても部分最適になってしまいがちです。
テストの役割
こうした状況において、最後の防波堤として頼れるのがテストだなとしみじみ思いました。開発の初期段階からある程度カバレッジの広いテストを用意することで、途中で発生する可能性のあるバグや意図しない変更を未然に防ぐことができます。これから生成AIを実際の開発現場で使うことがより増えていくでしょう。そんな時、テストにパスできれば、とりあえずOK!って気持ちで、安心して開発を進めることができるようになるのは偉大だなと思います。
生産性の面から考えても、もう少し生成AIが発展すると、生成AIの出力したコードすべてを詳細に見ていくのではなく、大雑把に見て、問題なさそうならすぐに次のタスクに取り掛かる、みたいなスタイルになるのではと思っています。そんな時にもやはり防波堤としてのテストがあると、安心です。
まとめ
いずれ生成AIも進化して『良きにはからえ』でいい感じに作ってくれるようになるとは思いますが、まだまだ記憶力が足りないので、少なくとも今は間違えを出力する前提で生成AIと付き合う必要があります。そんな時、ちゃんとしたテストがあったら開発する上ですごく安心だなというお話でした。