テスト自動化に関するお仕事などしているので、よく(ユーザー様からとは限らず)「AIでテストをまるっとなんかいい感じにやってもらえないものか」という話を聞くことがあります。

あるいは「そのへん技術的にどうなん?」というざっくりとした世間話ですかね。こういった話になることもあります。

QA界隈に十数年いて若干思考が凝り固まり始めている身としては、「テストを考えることを手放すな!」「楽するな!」みたいな気持ちになったりもするのですが、そうはいってもいまどき「それAIでなんとかなりませんかね」は自然な発想ではあるわけです。

AIがやるテストと人間が考えるべきテストの線引き

そんななか、先日以下のイベントで登壇させていただきました。

テスト自動化×AI最前線 - connpass

イベント内容には

AIに任せるべき品質と人がこだわるべき価値、その境界線と役割変化のリアルを紐解きます。

とあるように、この境界線あたりも事前に考えて臨みました。

たしかイベント中には、

  • 当たり前品質はAIに担保してもらって人間はドメイン知識がいる部分や魅力的品質などの部分を担うような整理になるのでは

といった話をした気がします。

わりと普通の話ではあるものの遠からずなんじゃないかなと思ってまして、「テストをAIに丸投げしたい」と言っている人の「テスト」と、これまでQA・テストエンジニアとしてご飯を食べてきた人の言う「テスト」の意味合いが若干違い、そこに線引きがありそうだなと思っています。

丸投げしたい人にとってのテスト

テストって退屈でつまらないもの、という意見があります。わからなくはない。

このように言われるときのテストって、正解がわかっていて、そのとおりに動くことを画面ごしにポチポチあるいはテストコードを書くような営みをイメージされていると思います。

具体例で考えると、ログインフォームみたいなものがあったとして、

  • 空だったら弾く
  • 英数字以外は弾く
  • アットマークのない文字列だったら弾く
  • パスワード欄はマスクされている

などはテストすると思います。

このあたりのテスト、発想すべきだけれども別にこのシステム固有のなにかは含まれないテストが、丸投げしたい対象なのではないでしょうか。これはいちQAとしても個人的には賛成です。

見落としがちな組み合わせとか、特定の条件のときに起こるクリティカルな問題、を見つけるほうがテスト活動としての(バグを見つけるという側面においては)価値がありそうだし、なによりやっていて楽しい。

AIとの分業、私がやりたい姿

このあたりを考えると、自律的にテストしてくれるAIエージェントみたいなものがいたとして、 まずチェッキングにあたる部分は自律的テストAIにやってほしいなと思います。

上述のような、ドメインとかシステムを問わず「大体基本だよね」という項目についてはAIがテストして問題ないことを担保してくれる。 その横で人間が探索的テストもしくはスクリプトテストだけれども"手の込んだ"ものをやってバグを見つけるような、そんな形で仕事できても面白そうだな、と考えています。