AI時代におけるQA/テストエンジニアの道を考える
以下のQAキャリアのイベントでパネリストとして登壇することとなった。
考えをまとめておかないと本番で散らかった考えを話してしまう。
それでは聴講者にも主催者にも迷惑をかけてしまうため、自分の考えを整理する。
飽くまで僕の考えであるため「そんな考え方もあるんだ」程度で読んでいただきたい。
AI活用によりチームが少数精鋭化する傾向が見えている
ここで指すチームはプロジェクトチーム全体だ。QAチームではない。
格好良く言えば少数精鋭化であり、格好悪く言えば人件費削減だ。
AIを活用することによりできることが爆発的に増えた。効率化によりエンジニアも手が空き、他のことに着手しやすくなった。
そうなると多忙で後回しにしていた「テストの見直しをしよう」「プロセス改善をしよう」といったことをできるようになる。
予算がたっぷりあるのであれば、QAエンジニアという専門家をチームに迎えて任せようという組織もあるだろう。
しかし自分たちの手が空いてきたのだ。「輪読会をして進めてみよう」と新たな挑戦に踏み出すチームが増えると僕は考える。現に今の僕のチームはそうだ。今は開発、QAとロールが別れているものの、開発エンジニアがプロセス改善も行い、QAエンジニアがアプリ開発も行う。
特定スキル特化の専門家を雇うのではなく、できる人がやろうの精神である。
この場合は複数の専門性を持った人が有利になる。
QA/テストの専門性を持った開発エンジニアやiOS/Android開発もできるサーバーサイドエンジニアといったところだ。
よって、今後はQAやテストや開発といったロールで別れるのではなく、複数スキルを持った人が集まり、その時々で仮面を付け替えるような少数精鋭化していくというのが僕の考えだ。
AIによる高速開発で品質保証の難易度も増している
人件費から見た組織の決定として、前述した特化した専門家を置かない組織が主流になるというのが僕の考えだ。
しかし、AIを活用してプーなモノを高速で作ったところで儲けにつながらないプーが大量生産されるだけだ。それどころか信頼を一気に失わせるプーを出してしまうかもしれない。(言葉を弱くしたが伝わるだろうか)
よって、高速リリースに耐えうる高度な品質管理/品質保証が必要になる。
開発工程全体を見まわし、どのように進めれば高速で、かつ求める品質で着地させ世に送り出すことができるかの戦略を立て、Unit testやAIによるテスト、探索的テストといった戦術を駆使してそれを実現するのだ。
この場合は一朝一夕のスキルや隙間時間でやってみようのノリでは難しい。専門家を迎えようとなる。
「システムテストの実行ができます」といったレベル感ではない。他の人ができないが実現する必要があるから迎えようである。突出した専門スキルが必要だ。
QA/テストエンジニアの道
複数のスキルセットの準備
いきなりQA/テストエンジニアの道からそれてしまった。あなたの人生戦略としてである。
定年まで残り30年ほどとして、QA/テストエンジニア一本で行くのは止めはしないが、いばら道は覚悟しておいた方がいい。
どの粒度のQA/テストエンジニアかと問われそうだが(自動テストを含むかなど)、そこは各々が納得できるような形で考えてほしい。ここで言いたいのはつぶしが効かない状態は避けるべきだ、である。
例えが適切かはわからないが、絵に置き換えて考えてほしい。
僕は絵も生業として持っている。
さて、あなたの友人が「これからも絵一本でやっていく!」と言ったとしよう。絵を見ると上手いと言えば上手いが突出した絵ではない。その場合、あなたは「もし絵がダメだった時のために他のこともやったほうがいいんじゃない?」くらいは言うだろう。それと同じだ。
先に少し触れたが、僕のチームのQAメンバーはコードも書く。アプリ開発だ。
チームに来るまではコードにほとんど触ったことがなかったが、諸々必要となるうちにできるようになった。少し前までPythonやswiftだったが、最近はC++も趣味でやっているようだ。(ロボット開発チームなので)
加えてソフトウェアのテストと、ハードウェアの試験(EMI試験や落下衝撃試験など)も通常業務として行っている。
改めて書き起こすとわけがわからないが、ウチのメンバーは今後の人生も下手を打たなければ食うに困るような状態にはならないし、転職時も困らないであろう。
軍師としてのQA/テストエンジニア
盛大に話がそれてしまった。専門家としてのQA/テストエンジニアを考えたとき「軍師」のようなポジションが考えられる。
開発工程全体を見渡し、目標とする品質のプロダクトを、目標とする期間かつ今ある兵站でどうすれば実現できるかの戦略を立てるポジションである。
システムテストレベルの話ではない。全てである。
ロジック部分は基本Unit testでおさえて、ある程度のふるまいはAPIでのレスポンスで確認、UIを通した確認はE2E自動テストやAIによるテスト実行、バグの探索や使い勝手の把握は人による探索的テスト実施……。
そういった全体を俯瞰して、目標を達成するためにどのように戦術を組み立てていくか考えられるようなロールだ。
以下は手前みそだが、前に勤めていた会社で似たようなことをやっていた例だ。
旗振りとしてのQA/テストエンジニア
品質に注力しようと話し合ったが、テストをどう進めたらよいかわからない、プロセスで問題の予防をするといっても何をしたらいいかわからない、といった場合もある。
よってチームにおいて品質面で旗振り(先導)する、コーチをするポジションが考えられる。
チームメンバーにどうやって品質を守るか、上げればよいか、自分の知識と技術を伝え、チームみんなでプロダクトの品質を保証していく体制を作るのだ。
まだお目にかかったことはないが、体制が完成したならばお役御免となる可能性はある。
自動テストエンジニア
今後はより自動テストエンジニアの需要が高まると考えている。
ここでいう自動テストはUIを通したE2E自動テストだけではなく、APIやインフラなどオートメーション化し期待通りか確認するもの全般である。
AIの登場により、自動的にテストできる範囲が大幅に広がっている。これによって今まで手が出せなかったところに手が届くようになった。今後も各社貪欲に自動テストによるカバレッジを広げていくのは明白だ。
昨今は新しいAIによる自動操作/テストツールが次々とリリースされている。それらを自動テストとして使いこなせる人材は各社欲しがるだろう。かゆいところに手が届かない場面もあるため、やりたいことに対して自動テストツールから作るエンジニアも重宝されると考えている。
おまけ
テスト項目を手動実行する役割の人はいなくならない
記載されたテスト項目を実行してそれが期待値と一致するか……つまりテスト項目を実行するテスト実行者のニーズはAIの登場によって縮小する。
だが、完全にはなくならないと考える。
僕が先日公開した記事は「既存のテストケースを実行できるテスト実行エージェント」の話だ。
実証実験を進めているが、確認方法が特殊でなければ多くのテストを実行できそうなことが見えてきている。
だが、完全にAIに任せるには至らない。
手順や期待結果の確認方法が難しい場合は、人手の方が十分にコストが低い。
またクリティカルな部分はAIが信用ならないということを実験で感じている。
それに、これまでのテスト自動化の流れでもあった話もある。
AIを使って開発の高速化をしたのはいいが、技術に乏しく自動テストができないため、テスト実行がボトルネックになるパターンだ。
その場合は人海戦術でボトルネック解消を試みることになる。
よって、テスト項目を実行する役割のテスト実行者のニーズのパイは小さくなるものの、なくなりはしない。
探索的テストはまだ手動実行が良い
2025年12月時点ではそう思う。
AIは様々な観点を出せるようになった。しかし与えられた情報だけからの観点、一般的に起こりそうな問題の観点までしか今は出せない。(それでも十分助かるが)
なのでバッファオーバーフローが起こりそうな場所は教えてくれるが、仕様には全く書かれていないが実は管理ツールからアクセスができることや、昔大騒動があった(がAIにそのバグチケットを伝えていない)みたいなところからの観点はでてこない。
また「ウチのロボットはそんな淡々とした話し方はしない。もっと感情を込めて話すはずだ」みたいなことにも気づかない。
こういった部分は今のところ、どうやってAIに情報を入力しよい答えを出力させるか工夫を重ねるよりも、人間が自己の知識・経験を使って探索してしまったほうが低コストでできる。
Discussion