見出し画像

AI時代に必要になるテスト力(ぢから)

TL;DR

AIの使用をするしないに関わらず、プログラム開発で厄介かつ重要なのがテスト。AIはけして責任をとってくれないので、責任を取るための人間の役割は残る。そのためにも今後はテストの重要性が確実に上がってくる。
まあ、楽しい部分は機械に取られて、面倒でつまらない部分だけ人間に残されるとも言う。AI推進の際によく言われるのが「非本質的な部分はAIに任せ、人間はよりクリエイティブな作業をする」だが、現実には逆転していることも多い。

AIの怖さ?いや、別に人間でも同じ

昨年10月から12月にかけてIT研修の講師をした時に受講者に話したのがAI時代の人間の役割について。

以下のような記事もあるが、会員向け記事なので記事の内容をざっくり説明するとこんな感じ。

  • ChatGPTなどではもっともらしい誤った回答をすることも多い

  • プログラミングでも同様なので、ChatGPTの出すコードの確認は必要

  • そのためにもテスト駆動開発(TDD)など、テスト主体の開発が必要

ただ、AIについての話が出てくる時にいつも思うのですが、これって別にAIじゃなくても同じです。もちろん、開発者である自分が書いたコードの中身が理解できない、ということはないと信じたい。が、実際にはネットで拾ってきたコードを繋ぎ合わせてとりあえず動くものをつくる、なんてやり方が横行していると言う話も。

そんなコピペコーディングの話は置いておいても、人間が100%つくっていようと、それが仕様通りなのかと正常に動作するのか、異常時にも問題なく適切な処理をするのかは確認しなければ話になりません。
なので、別にAIと関係なくテスト主体の開発は必要です。

これからはテストできる技術者が重要?

ここで言う「テストできる」は作ったコードを単体テストできる人と言うよりは、結合テストや総合テストをきちんと計画し、テスト仕様書を作り、そのテストを運営できる人になります。つまり、単なるテスターではなく、テスト・プロデューサーとかテスト・マネージャーみたいな存在。

AIが生成したものについて、AIやその開発元は一切責任を持ちませんし、最近の世界の潮流ではAI任せではなく最終的には人間が判断すべきと言うものかと思います。
そうすると、100%をAI任せにするにしろ、サポートをさせるにしろ、そのコードに対する責任はAIやその開発元ではなく、開発プロジェクトが負うことになります。

そうなると責任を負うためにはきっちりと確認する必要があり、当然、そのためのスキルが必要かつ重要になるという話です。まあ、ある意味無責任に書きっぱなしのAIのお守りとも言います。コーディング・ガチ勢にとってはなんともAIが羨ましくなります。

実はこれAIに限った話ではなく、最近、いろんなシステムの不具合が問題になってきています。最近では昨年末に某金融系システムのシステム障害が問題になりました。
IT人材不足が叫ばれて久しいですが、頭数は揃っても促成栽培された技術者のスキルの問題は避けて通れません。今までは優秀な技術者がつくりながら品質の作り込みができていた。が、それは人材不足とそもそもの少子高齢化で今後は難しいと思ってます(優秀な人材を集められるリソースがある羨ましい会社なら別ですが)。
そうなると、最後の砦であるテストでなんとかするしかないです。それはそれで非効率なのですが、不具合を残したまま外に出してしまうと、それこそ先日のシステム障害みたいな事態になります。

つまり、こんな考え方になります。

  • ある程度の製造時の品質の悪さには目を背ける

  • 低品質を前提に結合や総合テストをリッチにする

  • テストに通らなかった部分に集中的に優秀な人間を投入

すごく非効率ですが、優秀な人材が限られる、かつ、全体的な技術力低下が明らかなので、こうするしかないのかな?というのが率直な感想です。

でも、つまらないよね

受講者からの相談を受けつつ、雑談ぽく考え方とか聞いたりしています。その中でも、やはりコーディングは楽しい、コーディングしたいという声は多かったです。まあ、気持ちはわかります。

とは言え、そもそも設計は重要だよねという話もあれば、テストも重要なので、コーディング以外の作業の方が多いのが現実。そこにさらにAIが入って一番楽しい部分は手を離れ、面倒な部分だけ手元に残ると言う状況に。あまり嬉しくないですよね。

私は前職時代末期はPMとかやらされたので、コードを書く機会は減っていきました。一応、上司にはことあるごとにコードを書きたいと伝えましたが、当然ながら通りません。
そんなわけで産業医との面談時にちょっと愚痴ったことがあります。その時の産業医さんの答えは「趣味で書けば」というものでした。まあ、いきつくところはそこですよね。趣味であればいくらでも(時間の限り)コードを書くことができます。

まとめ:これから必要とされるスキル

今、IT人材不足とは言われてます。ただ、これは少々ざっくりし過ぎ。不足している職種やスキルは偏りがあります。よく言われているのが、マネジメント層の不足。
自分もそうですが、PMの成り手不足と経験不足があって、結構深刻な問題になっている会社さんもあるかと。

それとともに今後重要になってくるのが上に書いた通りテストを運営する力。つまりテスト力(ぢから)です。

拙い記事でございますが、サポートしてもよいよという方はよろしくお願いします。著者のやる気アップにつながります。