自動テスト結果の分析は、テスト活動において非常に重要かつ困難な部分である。任意の時点で、自動テストの結果に従って製品の状態を伝えることができなければならない、とMaroš Kutschy氏はQA Challenge Acceptedで述べた。彼は、人工知能が分析に費やす時間を節約し、人的ミスを減らし、新たな障害に集中するのに役立っていることを紹介した。
Kutschy氏は、自動テスト結果の分析で課題があり、分析をより効果的に、人的ミスを減らす方法を探していたと述べた:
毎晩約4000のテストシナリオを実行し、そのうちの約5%が失敗しているとすると、毎日約200の失敗を分析する必要があります。
彼らは、人工知能を使って自動テスト結果を分析するツールReportPortalを導入した。このツールはオンプレミスのソリューションとして無料でインストールできるとKutschy氏は説明した:
私は管理者であり、概念実証と統合を行い、あらゆる問題を解決しました。機能チームで働く同僚テスターは、日常的にこのツールを使用しています。
Kutschy氏は、テスターはReportPortalにログインし、自分が担当するジョブの結果を見つけ、「調査中」ステータスにある障害がいくつかあるかを見ると述べた。前日に存在した(以前に分析された)障害は、ReportPortalによってすでにカテゴライズされている。「調査中」ステータスの障害については、標準的な分析ラウンドを行う必要がある。つまり、テストをデバッグし、障害の根本原因を突き止めるということだ:
ReportPortalは、分析結果を表示します。製品のバグ、自動化のバグ、環境の問題、そしてまだ 「調査中」のステータスにある障害のために、どれだけのシナリオが障害を起こしたかを確認できます。
ツールを使い始めると、ツールは障害について何も知らない、とKutschy氏は言う。テスターは、その障害が製品のバグなのか、自動化のバグなのか、環境の問題なのかを判断する必要がある。次に同じ障害がシステムに到着すると、人工知能を使って、以前の決定に従って正しいステータスが障害に割り当てられる。
Kutschy氏は、分析結果を表すダッシュボードが、テストとアプリケーションの状態のハイレベルなビューを提供すると述べた。分析状況の可視性はリアルタイムで、誰がどの障害に取り組んでいるかがわかる。これは、アプリケーションをリリースできるかどうかの判断に役立つ。
Kutschy氏の説明によれば、このツールを使えば、すべての障害を見るのではなく、新しい障害だけを見るので、分析に費やす時間を節約できる:
Kutschy氏は、その違いとは、今日100件の障害があり、そのうちの2件だけの障害であれば、2件の障害だけを見ればいいということです。ツールを使っていない場合は、100の障害を見る必要がある。と述べてます。
kutschy氏は、このツールは、あなたが以前に下した決定に基づいて、古い障害のトリアージを行ってくれるため、人為的ミスも少なくなる。これにより、新しい障害に注意を向けることができると言う。
Kutschy氏は、人工知能は、人間が間違ったデータで訓練すれば、間違った判断を下すようになると言う。あなたが悪い教師であれば、生徒(ReportPortal)の成績も悪くなる:
同僚の一人が、失敗を正しくないJiraチケットに結びつけたり、失敗に正しくないステータスを割り当てたりする状況がありました。
Kutschy氏は、手動で決定を変更することで"学習解除"することができると述べた。
人工知能を正しく使えば、多くの時間を節約でき、人間のミスを減らすことができるとKutschy氏は言う。人工知能が正しく動作していることを確認すれば、あなたや同僚が障害のトリアージをする代わりに、人工知能に頼ることができる。
InfoQは、自動テストの分析に人工知能を使うことについてMaroš Kutschy氏にインタビューした。
InfoQ: その過程でどのような問題に直面し、どのように対処したのか?
Maroš Kutschy氏:私たちは、テスト自動化フレームワークにツールを統合できることを確認する概念実証を始めました。
その課題は、ReportPortalを使ってテスト結果を分析する新しいプロセスに同僚を従わせることでした。初期段階に、彼らはすべての既存の失敗を分類する必要がありました。それは、正しいステータス(自動化の問題、製品のバグ、環境の問題)とJiraチケットを割り当てることを意味します。
一部のチームで試用期間を設け、その後全チームで使用を開始しました。試用期間中のフィードバックは肯定的で、テスト担当者は調査に役立っていると感じていました。
InfoQ: 何を学んだのか?
Kutschy氏:人工知能に依存し始める前に、人工知能を信頼できるかどうかを確認する必要があります。
私たちは、ReportPortalが正しい判断を下していることを確認しなければなりません。その判断は、テスト自動化フレームワークでスタックトレースをどう扱うか、ReportPortalの設定次第でした。期待通りに動かなかったケースでは、ReportPortalの設定を弄ってみました。
テスト自動化コードの作成に人工知能を使うという議論が多いが、テスト自動化結果の分析も非常に適した分野であることを学びました。人工知能( 生成AIを含む)は、テストにおける多くのユースケースに利用できます。