AIでSeleniumを強化するParasoft Selenicの紹介

このたび、現在のUIテストでよくある問題の解決に焦点を当てた新製品Parasoft Selenicがリリースされました。この記事では、Parasoft Selenicの仕組みと、Parasoft Selenicを使用して既存のSeleniumテストプラクティスをすばやく改善する方法を説明します。

Parasoftは30年以上にわたってソフトウェアテスト自動化におけるイノベーションの最先端に立っています。ここ数年、私たちはソフトウェアテストツールにAIと機械学習を取り入れ、ソフトウェアテストの自動化をより導入しやすく、組織全体への拡大も容易なものにしようとしています。まずテストピラミッドの下部にあたるユニットテストから始めて、Parasoft Jtestにスマートなユニットテスト作成テクノロジーを追加し、意味のあるJUnitテストをより簡単に作成できるようにしたほか、作成したテストの実行を最適化するテスト影響分析テクノロジーも導入しました。

大多数の組織にとって一番大きな空白領域であるAPIテストについては、手動でのUI操作をモニターし、AIの支援によってAPIのシナリオテストを自動生成するChromeプラグインをParasoft SOAtestに追加しました。

このテクノロジーは、APIテストの導入に必要なスキルレベルを下げ、テスターがチームや組織全体にわたって包括的なAPIテスト戦略を構築することを促進します。

こうしてアイスクリームコーン型(またはマティーニグラス型)のテスト配分をひっくり返してピラミッド型にすることに取り組み、最後に残ったのがUIテスト層でした。現在、SeleniumがUIテストフレームワークのデファクトになっているのは明らかですが、UIテストの自動化には依然として課題があります。Parasoftが600名以上を対象に行った調査で、自社のUIテストの課題として挙げられたのは以下のような項目でした。

このデータから、上位の課題はみな、メンテナンスと時間に関するものだということがわかりました。そこで私たちは考えました。お気に入りのオープンソースフレームワークであるSeleniumを使い続けながら、こういった主要な課題を(ついでにそのほかのいくつかの課題も一緒に)解決するにはどうすれば良いのだろうか?

私たちの答えはシンプルなものでした。私たちの持つAI+ソフトウェアテスト自動化分野の知見を活用してSeleniumをよりスマートにすること。こうしてParasoft Selenicが生まれました。

Seleniumをよりスマートに

Parasoft Selenicはすでに行っているSeleniumテストプラクティスに簡単に統合できます。IDE(EclipseやIntelliJ)に統合するか、CI/CDで実行するコマンドラインの実行コードを1行変更するだけで、Selenicがテスト実行を解析します。テストが失敗した場合、AIヒューリスティックを適用して、どうすれば失敗を回避できるか(ロケーターまたは待機条件を更新するなど)を判断し、CI/CDパイプラインを続行できるよう実行時にテストを自己修正(セルフヒーリング)しようと試みます。そのため、ユーザーは不安定なテストが原因で起こるCI/CDビルドの失敗をデバッグする必要が無くなります。同時に、Selenicはユーザーのテストに関してさらに多くを学習します。

その後、Selenicは失敗の詳細、スクリーンショット、テストの修正方法に関する実践的なレコメンド(推奨する修正案)とともにAI解析結果をレポートします。テスターのIDEにレコメンドをインポートして確認し、即時修正を適用してテストスクリプトを更新できます(操作は“update”をクリックするだけと非常に簡単です)。

これらの機能によって、壊れたテストスクリプトのメンテナンス、修復、修正にかかる時間が数時間から数分に短縮されます。

さて、テスト実行時に自己修正機能(セルフヒーリング)を利用し、テスト完了後にレコメンドを自動で適用することによって生産性が飛躍的に向上したいま、テストは安定し、メンテナンスが容易になりました。それでもまだ問題は残っています。最近の変更を検証する上で、アプリケーションがデグレードしていないことを確認するには、1,000個のテストのうちどれを実行すればよいのか、どうしてわかるでしょうか?

答えはもちろん、テスト影響分析によってです。テストの実行と対象のコードを関連づけ、アプリケーションのバイナリ(warファイルなど)に加えられた変更を見ることで、Selenicは変更とテストを相互に関連付け、CI/CDパイプラインからすばやくフィードバックを受け取れるようテスト実行を最適化します。

そして最後に、Seleniumをよりスマートにするもう1つの方法は、最初に戻って、ユーザーが簡単にSeleniumを使い始められるようにすることでした。ParasoftのChromeプラグインは、任意のアプリケーションとのUIベースの対話を記録し、アクションをIDE内で直接Selenium Javaコードに変換できるようになりました。作成されたSeleniumテストは、Seleniumテスト作成のベストプラクティスであるページオブジェクトモデル(Page Object Model)を採用しているため、長期にわたるメンテナンスが容易で、導入当初からスケーラブルなテストプラクティスを構築するのに役立ちます。

テストの作成からCI実行の自己修正、壊れたSeleniumテストを即時修正するのに役立つレコメンドまで、Parasoft Selenicは既存のSeleniumテストプラクティスにシームレスに統合できます。

そのほかにもメリットがあります。自動UIテストを利用してAPIテストの空白をさらに埋めることもできます。Parasoft Selenic と Parasoft SOAtestのAIエンジンを組み合わせることで、UIテストを実行しながらAPIの呼び出しもキャプチャし、動的で意味のあるAPIテストシナリオを楽に作成できます。作成されたシナリオは、エンドツーエンドのUIテストを補完するものでありながら、よりすばやく実行でき、問題の診断が容易です。

まとめ

ついに!UIテストがDevOpsプロセスのボトルネックとなり、デリバリースケジュールを遅らせてしまう事態を解決する手段ができたのです!! すでに行っているSeleniumテストプラクティスやテスト環境を変更する必要はありません。

(この記事は、開発元Parasoft社 Blog 「What is Parasoft Selenic?」2019年10月1日の翻訳記事です。)

 

Selenic_top
Selenic_selfhealing
Selenic_recommend
Selenic_analyze_impact
Selenic_apitest
Selenic_ROI
Selenic_DevOps
previous arrow
next arrow

 

 

Top