最近AIが目まぐるしく進化しています。
ChatGPT、Claude、Geminiとさまざまな生成AIがサービスを展開しています。
生成AIは文章生成だけでなくプログラムコードも書けるため、開発の場でも活躍しています。
このAI技術を使い、テスト自動化も進化しています。
今までのテスト自動化
生成AIが流行る前からテスト自動化は存在していました。
テスト自動化と言ってもテストレベルごとの自動化があります。
単体テスト・結合テストレベルでは比較的実装しやすいテスト自動化ですが、GUI操作を軸としたシステムテストでは難易度が高めでした。
その理由として、GUIの操作や表示確認を行うシステムテストでは、GUIのちょっとした変更が自動テストの障壁となります。
ちょっとしたボタンの位置の変更や名称の変更で、プログラムは簡単にそのボタンを見失ってしまい補足できなくなってしまいます。
しかしAIの進化とともに、AIと組み合わせて自動テストを構築・実行できるサービスが登場してきました。
アプリのボタンなどの要素補足や、GUIの変更差分などをAIが理解して柔軟に対応してくれるようになり、システムテストでの自動化も手が出しやすくなりました。
また生成AIを利用して、テスト自動化のプログラムコードを書いてもらうことも可能になりました。
実際にChatGPTに自動テストを書いてもらって
実際にChatGPTに書いてもらうと、こんな感じになりました。
(下記スクリーンショットの自動テストで使っているサイトは弊社サービスのG-SAT(ジー・サット)の紹介ページになります。)
驚いたことに、テスト自動化の依頼としてChatGPTに対象Webサイトのスクリーンショットを渡し、指示も「添付画像のWebサイトの自動テストをPlaywrightとPythonで書いて。」と伝えただけ。
それでこのような自動化コードを書いてくれました。
しかも、WebサイトのHTMLからサイトを分析することもなく、また指示も自動テストを書いてほしいというだけで、具体的なテストの内容は書いていないにも関わらず基本的なテストのコードを出力してます。
もちろんテストとしてはまだまだ不十分ですが、この程度の指示で自動テストのコードを書いてくれるのは十分優秀です。
こんな簡単なテスト自動化。やるしかない?!
以前より手軽に自動化が出来るようになり、テスト自動化でコストが下がる、テスト期間が短縮される。
自動化をそんな魔法のように考える方もいるかもしれません。
しかし、テスト自動化では事前に検討しなければいけないことが数多くあります。
ここではJSTQBのシラバスを参考に上げたいと思います。
テスト自動化の制限には、以下が含まれる。(1.1 テスト自動化の目的)
– すべての手動テストを自動化できない
– 自動化によってチェックできるのは、ツールが解釈できる結果のみ
– 自動化によってチェックできるのは、あらかじめ定義された期待結果によって検証可能な実行結果だけである
– 探索的テストを自動化に置き換えることはできない
(テスト技術者資格制度 Advanced Level シラバス テスト自動化エンジニア から一部抜粋)
すべての手動テストを自動化できない。
これが自動化するにあたっての最も大事なキーと言っても過言ではないでしょう。
テスト自動化というと、全てのテストを置き換えてしまいたくなりますが、自動化の向き不向きがあります。
まず、探索的テストを自動化することはできません。
探索的テストとは、テストケースが用意されたテストとは異なり、テスト実行時に動的にテスト設計を行いつつ、実行、そして記録を行うテスト手法です。
そのため、あらかじめ定義された期待結果による検証ができず、プログラムコード化するのが難しいため、テスト自動化には不向きです。
また、UX(User eXperience:ユーザー体験)でありがちな「なんとなく」使いにくい、のような数値化できないような期待値もプログラムコードにできず、テスト自動化には不向きです。
しかし、「なんとなく使いにくい」「なんとなくもっさりとしている」のようなフィードバックはUXを考えた上で重要で、テストとして避けられません。
このようにテスト自動化するにしても、何を自動化するのか / 何を自動化しないのか(=手動テストで行うのか)の判断は自動化するにあたってとても重要になります。
自動化の注意点
生成AIを利用することにより、テストの内容や自動テストのコードを簡単に生成してくれますが、生成AIの出力にはハルシネーションが含まれるリスクがあります。
これを判断するためには、その分野の専門知識が必要になります。
それでは何に注意して、テスト自動化をしたら良いのか。
テスト自動化に移行する上で押さえておきたいポイントを7月23日・24日に開催されたDevelopers Summit 2024 Summerでお話しさせていただきました。
また、Developers Summit 2024 KANSAIで9月18日(水)12:40からBトラック(B-4)で改めてお話しします。
ご興味がある方はぜひ聞きにいらしてもらえたらと思います。
参加申し込みは2024年9月13日(金)13時までです。(参加費無料の事前登録制です。)
また弊社には、自動化でのお悩みを解決するサービス「G-SAT(ジー・サット)」があります。
- 自動化したいけれど、どうすればいいのかわからない
- 自動化すればコストダウンできると思っていたのに、逆に…
- 用途ごとに最適ツールを選ぶ必要があるなんて知らなかった
- 自動化したら、プロセス管理はいらないと思っていたが…
そのようなお悩みがありましたら、ぜひGENZにご相談ください。
サービスの詳細についてはこちらをご覧ください。