見出し画像

2020-06-05 AI自動テストツールまるわかりミートアップ (オンライン) #ai_test_automation

2020/06/05 に開催された AI自動テストツールまるわかりミートアップ (オンライン) のイベントレポートです。

●イベント概要
AI技術の活用という新しいトレンドにより、自動テストツールの世界に大きな変化の波が訪れています。

この変化をリードしているのはオープンソースよりも商用のツールやクラウドサービスで、これまでにない使いやすくて便利なサービスがたくさん登場してます。

このミートアップに参加することで、時代の最先端をいくAI自動テストツール各社の製品や取り組み・特徴を、まとめて押さえることができます。

まだしばらくイベント自粛が続きそうですのでオンライン開催となりますが、その代わりに世界中どこからでもご参加いただけます。途中入退室も自由ですので、お気軽にご参加お待ちしております。

イベントURLは https://live.remo.co/e/ai です。(イベントツールRemoを使います)


■AutifyでWebアプリのテストを簡単に自動化する

近澤 良 さん [Autify]

●自己紹介
・Autify代表
・3カ国でエンジニア歴10年以上
  どこでもテストは課題だった
  autify立ち上げ
・趣味
  蒙古タンメン自作

●Autify
・ALCHEMIST ACCELERATOR
  アメリカtop5
  日本人で初卒業
・人形町のオフィスを解約しました
・基本リモートワーク
  zoomの常時接続
  お茶タイムで意識的に雑談の時間を容易

●テスト自動化って難しい
・e2eの自動化
  環境構築、コード書かなくちゃ
・メンテナンス辛い
  デザイン変わっただけで作り変え
  諦めてしまう会社をよく見る
・リリースサイクル高速化
  アジャイルチームの多くが週一回のリリースを希望
  テストしないわけにはいかない

●Autifyの3つの特徴
・No code
  誰でも簡単に
  みんなでメンテナンスしよう
・AIがメンテナンス
・圧倒的なカスタマーサクセス
  自動テストはつまづきポイントが多い

●No codeで誰でも簡単に
・端的に言えばクラウドでselenium
・録画、再生

●AIによる自動メンテナンス
・セルフヒーリング
  自動テストが落ちる多くの原因は
  UIコンポーネントの修正
  AIで見つけて、修正提案してくれる
  ボタンをポチッとでメンテ完了
・クロスブラウザテスト
  OS × ブラウザ
  スマートフォンの実機も用意
  選択してもらえばOK

●テスト自動化を成功に導くサポート体制
・テストが失敗するパターンは色々
・原因調査までサポートチームが一緒に

●demo
・新規シナリオ作成
  開始URL
  レコーディング開始
・新しいウィンドウが開く
  レコーダーUIがついている
・デモリクエストのフォーム入力
  すでにリクエスト済みで、ブラックリスト入りしている
・確認ステップ
  要素 or 画面全体
  要素の確認コマンドを選択
  対象のテキストが○○であること
  メッセージの完全一致を確認
・戻ると、キャプチャ付きで日本語説明つきステップ
  不要なクリックを削除
  入力項目を変更
・挿入ステップを指定して追加もできる
・いつ実行するかのテストプランも作れる
  毎週日曜日の9:00に実行
  OS, ブラウザを組み合わせ
・APIもあるので、CI/CDに組み込みもできる
・AIの話
  UIの変更を見つけると
  シナリオに「要確認」が出る
  フッターを変えた
    HTMLの要素が切り替わっても、認識してくれる
  確認をポチッとしてメンテナンス完了
・再利用
  ステップをグルーピングして再利用
  ログインのステップグループなど
・最大10並列で実行できる

2週間の無償トライアル実施中です!


■WebサイトもモバイルアプリもMagic Podで自動化

伊藤 望 さん [TRIDENT]

●Magic Pod
・AIを活用したテスト自動あkクラウドサービス
・webサイト、モバイルアプリのテストに対応

●対応環境
・テストデータ保存先
  クラウド
・実行環境
  ローカル
  Magic Podクラウド
  外部クラウド

●demo: webサイトのテストをローカルで
・URLを指定
・ブラウザが起動
・シナリオ作成
  キャプチャを撮って、どこに何があるかを検出
  ステップをドラッグして組む
  ステップに値を設定
・実行
  結果を見ると
  キャプチャも撮られている

●demo: モバイルアプリのテストをクラウドで
・アプリを起動
  ブラウザでシミュレータが起動
・シナリオ作成
  キャプチャを撮って、どこに何があるかを検出
  ステップをドラッグして組む
  ステップに値を設定
・実行
  結果を見ると
  キャプチャも撮られている

●AIの活用
・日本語の要素説明文を計算
  分かりやすい説明分をAIロジックで計算
    書き換えもできる
  HTMLの情報、要素の位置関係
  OCR、物体種類認識
・テストスクリプトの自動修復
  画面構成の変化に合わせてAIがスクリプトを修正
  例
    id=guestname → id=guest_name
    次へ → 次のページへ
  自動修復してテストは成功
  結果を見ると要確認でオレンジ
  変更結果の承認

●自動修正の方式
・マルチ属性ロケータ方式
  操作記録時に複数の属性を保存
  失敗したときは、いろいろ試す
・シングルロケータ方式
  Magic Podはこっち
  作成時にHTMLとロケータを保存
  失敗したときは、HTMLの変化を見る
  類似度比較の基準
    要素の属性、位置、親子関係など
    OCR結果、物体種類認識

●機能紹介
・モバイル
  クラウドシミュレータ、クラウドで実機、
  クロス端末テスト、端末操作、
  画像アップロード、ピッカー操作、
  webviewサポート
  など
・web
  クロスブラウザ、IE安定化対応
  ファイルアップロード、ダウンロード
  アラート内容の画面キャプチャ
  など
・全般
  値のチェックは色々できる
  条件分岐、共有ステップ
  データ駆動テスト、画像の共有
  ロケーターを選べる
  全テストで共有する変数
  マスキング、日付も変数化
  OS、ブラウザに合わせて変数設定
  スケジュール実行、web APIでCI連携
  など


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

飯山 正史 さん [テクマトリックス]

画像1

●取扱製品カテゴリ
・構造分析
・コード解析
・機能テスト
  Parasoft Selenic
・ソフトウェア開発基盤
・OSS管理

●UIテスト市場
・seleniumのシェアが圧倒的
・運用課題
  メンテナンスが大変
  実行時間が膨大になりがち
・Selenium実践入門の事例
  失敗したときの調査、実行時間が長い
  終わるまで待つ
  本質的ではないところに時間がかかっている
・SelenicはSeleniumを使い続けていくアプローチ

●セルフヒーリング
・メンテナンスを困難にする要因はロケータの変更
・イメージ
  ビルド
    テスト環境にデプロイ
    この時点で変わっている
  テスト
    Selenic
      ロケータがない!
      画面分析
      セルフヒーリング
      テスト続行
      結果で、どの修正方法を選んだかが見える
    IDEのpluginでも提案、反映できる

●テスト影響分析
・他はDOMの変更があったら直そうというアプローチ
・backendの変更も考慮
  jtestと連携するが、selenicだけで動く
・イメージ
  バージョン1
    war生成
    デプロイ
    javaのカバレッジ収集
  バージョン2
    war生成
    デプロイ
    javaのカバレッジ収集
    カバレッジを比較
    影響のあるテストをリストアップ
    このテストを優先して実施できる

●パフォーマンスベンチマーク
・過去の実績からテスト時間がわかる
  今回の実行はどのくらいの劣化があるかを判断
  20%劣化したらエラーなど

●テストの自動生成
・レコーダーでキャプチャできる
・APIのトラフィックもキャプチャ
  APIのテストシナリオも作成できる
  SOAtestと組み合わせて

●自動化に向いている機能テスト
・UIテストよりもAPIテストの方が自動化に向いている
・テクマトリックスでは組み合わせて提供
  UIテスト自動化
  APIテスト自動化
  backendの仮想化


■mablでQAを進化させる

Darrel Farris さん [mabl]
ほその こういち さん [LOB Inc.]

スクリーンショット 2020-06-05 20.23.52(2)

●DevOps前後の変化
・DevOps以前
  開発のサイクルは数ヶ月
  レガシーなテストでも回せていた
・DevOps後
  開発のサイクルが早くなった
  多数の新しいフィーチャーが提供されるようになった
  テストが十分ではない

スクリーンショット 2020-06-05 20.26.45(2)

テストがDevとOpsの間のボトルネックになっている

スクリーンショット 2020-06-05 20.26.19(2)

・常に変更し続ける
  テストの準備に数時間
  テストの実行に分単位
・マニュアルテスト
  必要
  でも時間がかかり、スケールできない
・スクリプトベース
  スケールできるし実行は早い
  でも準備に時間がかかる

●Shift-left
・ライフサイクルのすべてのプロセスでテスト
  より早い段階でバグを見つけて、修正していく
・マージ前にテスト
  ローカルブランチの段階でテスト
  PRでテスト
    中心的な機能の回帰
    レビューも含める
・品質のために協働する
  チームでのコミュニケーション
  slackやjiraとの連携
・インテリジェントなパイプライン
  CI/CDパイプラインに結果をpush
  次のステージに進んでよいかの判断
  画像の変化や実行時間も分析できる

スクリーンショット 2020-06-05 20.34.46(2)

●事例 LOB Inc.
・マニュアルテストが開発に追いつけない
  webアプリにmablで回帰テスト
  クラウドなのですぐ使える
  レコード&プレイですぐに始められる
  xpathやパイプラインのやりくり
・効果
  手動で60minが、自動で20min
  テストカバレッジは80%
  導入は3ヶ月で済んだ

Test early.
Test often.
Test together.


■感想

最近のe2eテストツールで、AIはどこに使われているのかを知りたくて参加させていただきました。e2eテストのtoilな「ロケーター変更のメンテナンス」と「テストで操作する対象の検出」をAIで楽にする、分かりやすいデモと、特徴量の考え方を解説していただけてすっきりしました!

「リリースサイクルが短くなって、テストに移動したボトルネックを解消するためにshift-leftが必要」これは、説明しやすいですね!

登壇者の皆さん、運営の皆さん、ありがとうございました!


この記事が参加している募集

イベントレポ

いつも応援していただいている皆さん支えられています。