皆さん、こんにちは。
今週もソフトウェアテスト、テスト自動化に関するニュース記事をご紹介していきたいと思います。
今回は国内ニュース1記事、海外ニュース2記事をご紹介回したいと思います。
■記事内リンク
「国内ニュース」
・日本語でテスト自動化できるツール「T-DASH」OPENβ版が提供開始
「海外ニュース」
・モックアップとAIを活用して、UIテストをスプリントゼロにシフト
・Webおよびモバイルの最新アプリ向けの次世代テスト自動化
■国内ニュース
□日本語でテスト自動化できるツール「T-DASH」OPENβ版が提供開始
こちらは、バルテス社から日本語でソフトウェアテスト自動化できるツール「T-DASH」のOPENβ版が11月1日から提供開始となった内容となります。
「T-DASH」については、先週のニュース記事でもとりあげていますので、見ていただきますと幸いです。
◇T-DASHの特徴
公式サイトを参考に確認したところ、主に以下の特徴がありました。
・ローコード
日本語をベースに、マウス、キーボード操作、テキスト入力でテスト設計が可能です。
作成したテストケースは、インポート/エクスポートが可能で、他プロジェクトにも利用できます。
・テスト設計/テスト実行までの流れ
①対象の画面と動作を定義
対象画面、テキストボックスなどテスト対象となるページ、要素、動作を指定
②テストケース作成
テストケースは、マウス操作でシナリオ作成
③ワンクリックで実行
テスト設計が完了したら、実行ボタンでテストを実施し、テスト結果はレポート画面、ダッシュボードで閲覧可
・その他機能
画面情報のトラッキング機能、導入前の自動化効果の測定可
尚、T-DASHは、Openβ版の公開期間中(2021/11/01~2022/1/31まで)は機能制限、課金等なく、
無料で利用ができるとのことです。
期間終了後は、有料版、無料版で利用が可能とのことです。
私も使ってみたいと思います。
ご興味のある方は、T-DASHの公式サイトにアクセスしてみてはいかがでしょうか。
■海外ニュース
□モックアップとAIを活用して、UIテストをスプリントゼロにシフト
https://techbeacon.com/app-dev-testing/shift-your-ui-testing-sprint-zero-leveraging-mockups-ai
こちらの記事は、「techbeacon.com」に掲載されていた内容となります。
ユーザーインターフェース(UI)テストについて、AIを取り入られた内容が述べられていましたので、ご紹介したいと思います。
◇ユーザーインターフェイスのテストファースト
ビヘイビア駆動開発 (BDD)は、要件を例として説明する初期の試みでした。実際には、チームは「与えられた/いつ/その後」という形で要件を考え出します。
これにより、プログラマーは少なくともソフトウェアが詳細なレベルで何をすべきかを知ることができ、摩擦を防ぐことができました。
それでも、UI要素が定義されていない限り、UIテストの実際の「配線」は、コンピュータープログラムが存在する場合にのみ発生します。
繰り返しになりますが、テストは遅れており、その配線は通常、XPATH、CSS、またはボタンへの他の種類のコードで構成されています。
ボタンが移動した場合、リンクのテキストが変更された場合、またはリンクがページの前半に同じテキストで表示された場合、テストは誤って失敗するため、修正する必要があります。
テストファーストで成功するには、ソフトウェアはロケーターをクリックするだけでは不十分です。
ロケーターを認識する必要があります。
// div // span [text()= ‘会社について’]などのコードの代わりに 、自然言語処理(NLP)とセマンティックモデリングでは、「ログインボタンをクリックして」などのフレーズを使用してボタンを見つけることができます。
そのためには、接続されたイディオムと用語のモデルが必要です。
これは、今日の技術で完全に可能です。
NLPと組み合わせた強力なモデルにより、ホワイトボードスケッチから作成されたテストをテスト自動化することができます。
◇スプリントゼロへの移行
スクラムやその他のアプローチを使用しても、財務担当者やエグゼクティブスイートは、開発にかかる時間を知りたがっています。
それは私たちをスプリントゼロに移行し、そこでプロジェクトは設計され、資金を供給され、そしてモックアップされます。
これらのモックアップは、Webページや詳細なデザインを作成するUIデザイナーの関与により、ホワイトボードに描画される場合があります。
プロジェクトマネージャーは、これを「開始」フェーズと呼びます。
スクラム愛好家はそれをスプリントゼロと呼ぶかもしれません。
ユーザーインターフェイスを見ている人間は、物事がクリックされたときに何が起こるべきかを推測することができます。
複雑なワイヤーフレームでは、クリックすることもできます。
悲しいことに、人間がショッピングカート、虫眼鏡、またはハンバーガーメニューを認識し、ワークフローに何を期待するかさえ知っている場合でも、コンピューターは認識しません。
コンピュータビジョンは、記号を認識するように画像をトレーニングするAI技術です。
それをGoogle画像検索のショッピングカートに送信し、人間に推測を訓練させると、ソフトウェアがショッピングカートを認識できるようになります。
これにより、完全にモックアップに基づいて値をクリック、入力、およびアサートするコマンドを作成できます。
この種の真のAIは、ビットマップではなくシンボルによって行われます。
つまり、1つのテストを多くのプラットフォームで再利用できます。
コンピュータービジョンは、Android、iPhone、およびWebで同じ記号が変更された場合でも、その記号として人間が認識するものを見つけることができます。
これは、変更されたアイコンや別の場所にあるボタンがエラーを引き起こさないため、コードの脆弱性が少ないことを意味します。
これはテストに非常に強力な支援を提供しますが、NLPを追加するまでは、コーディングに強力な技術者が必要になります。
◇人間と機械の力をミックスする
BDDが始まるのと同じくらい簡単ですが、ある時点で、プログラマーは「TeddyRuxpinの検索」の意味をコンピューターに説明する必要があります。
従来のコードはイディオムを理解していません。
たとえば、コンピュータは「チェックアウト」がチェックアウトボタンをクリックすることを意味することを知りません。
コンピュータービジョンにより、プログラマーはIDを探す必要がなくなり、IDが変更されてもテキストが残っている場合でも、ソフトウェアを成功させることができます。
コンピュータビジョンだけで、一部のプログラマーはそのコードを書く必要があります。
NLPでは、そのコードは「チェックアウトボタンをクリック」する可能性があります。
誰もコードを書く必要はありません。
NLPエンジンは、ユーザーがソフトウェアをテストするのを監視し、慣用的な英語のようなコードを作成します。
つまり、コンピュータプログラミング言語ではなく、人間が言うように見えます。
テストが失敗した場合、ソフトウェアはコンピュータービジョンを使用して、人間と同じように画面を見て、変更を試みることができます。試みがうまくいけば、テストソフトウェアは舞台裏でチェックアウトボタンの期待を更新することができます。
これは、Web、Android、iOS、Windows、またはその他のプラットフォームの独自の詳細を維持する1つの高レベルのテストを意味します。
まれで高価なSDETに依存する代わりに、組織は既存のドメインエキスパート、アナリスト、およびテスターを採用して、スプリントゼロからテストを作成させることができます。
◇テストにおけるAIのビジョン
コンピュータビジョンにより、記号を認識できるモックアップに対するテストを作成できます。
UIが複数のプラットフォームに存在する場合でも、引き続きこれらの記号を認識できます。
NLPを使用すると、コーディングを学ぶことなく、従来のテスター、対象分野の専門家、またはアナリストがテストを記録、保存、および変更することができます。
これをスプリントビハインドまたはリリースビハインドで行う代わりに、コードが完了する前にテストが存在し、フィードバックを提供することもできます。
これにより、Heusserのソフトウェアエンジニアリングの使命を果たすことができます。
「テストが実行されるまで、話は終わりません。」
これはすべて、定義上、テストが常に遅れているという観察から始まりました。
これらのテクノロジーはそれを変えます、それは一種の大きな問題です。
コンピュータービジョンとNLPは、現在、今日、テスト自動化の方法を変革できるツールに存在しています。
それらを利用するつもりですか?それとも競争に任せますか?
□Webおよびモバイルの最新アプリ向けの次世代テスト自動化
https://www.softwaretestingnews.co.uk/next-gen-test-automation-for-web-mobile-modern-apps/
こちらは、「softwaretestingnews.co.uk」に掲載されていた内容となります。
当ブログでも過去に紹介した「TestProject」について掲載されていましたので、ご紹介したいと思います。
過去記事
◇TestProjectとは何ですか?
TestProjectは、選択した任意のオペレーティングシステム(Windows、macOS、Linux、さらにはDocker)でのWeb、モバイル、およびAPIテスト用のエンドツーエンドのテスト自動化プラットフォームです。
完全に無料で、1つのプラットフォームですべてのテストを実行できます。
このプラットフォームは、主要なオープンソースのSelenium&Appiumの上に構築されているため、どのチームやスキルレベルでも使用できます。
TestProjectは、使いやすいセットアップと多数の強力な組み込み機能により、テストの問題を解消することにより、テスターと開発者が製品の品質を確保し、市場投入までの時間を短縮できるよう支援することを目的としています。
◇なにが新しい?
TestProject 2.0は、プラットフォームが提供する新機能を提供して、より多くの機能を提供し、テストをより細かく制御できるようにします。
TestProject 2.0を使用すると、プラットフォームのハイブリッドクラウドモードとオフラインモードの両方にアクセスできます。
・ハイブリッドクラウド
TestProjectハイブリッドクラウドを使用すると、クラウド上ですべてのテストを取得でき、世界中のどこからでもアクセスできます。
この機能を使用すると、どこからでも、どのマシンからでもテストを実行できます。
その後、レポートはクラウドで生成され、自動展開とCIフローの恩恵を受けながら、チーム全体と簡単にコラボレーションできます。
・オフラインモード
オフラインモードでは、TestProjectの機能を犠牲にすることなく、すべてのテストをオンプレミスで実行できます。
オンプレミスでテストを生成するだけでなく、ローカルでファイルにアクセスすることもできます。
したがって、完全なオフラインエクスペリエンスを実現するために、クラウドフットプリントを使用せずに、テストをローカルファイルとしてマシンに直接保存できます。
テストの実行が完了するとすぐにローカルのHTMLレポートを取得して、情報全体をローカルでオフラインに保つこともできます。
◇TestProjectツール
「TestProjectエージェント」
TestProject 2.0は、テストを記録またはコーディングし、ネイティブのSeleniumまたはAppiumAPIコマンドで実行するために使用できるローカルエージェントであるオールインワン実行可能ファイルを提供します。
これらのSeleniumドライバーとAppiumサーバーは既に事前構成されているため、外部構成を必要とせずにWebとモバイルでテストを実行できます。
TestProjectエージェントがすべての面倒な作業を処理するため、最も重要なことに集中できます。
つまり、自動化されたテストケースを作成できます。
クラウドの有無にかかわらず、そうすることを選択できます。
したがって、テストを実行すると、マシンまたはクラウドのどちらか好きな方でローカルにレポートが生成されます。
TestProjectエージェントは次のとおりです。
・インストールが簡単
・Webおよびモバイルテスト用の単一ソリューション
・すべてのドライバーと依存関係を管理します
・ゼロ構成が必要
・WindowsでのiOSのテストを有効にします
・組み込みの自動化レポート(ローカル/クラウド)を提供します
・最新のSeleniumWebドライバーとAppiumサーバーを常に最新の状態に保つ
「自動化パイプライン」
TestProject 2.0は、パイプラインの自動化にも使用できます。
プラグインまたはアドオンの1つをCI / CDパイプラインのいずれかと連携して使用することにより、TestProjectはCIフローと一緒にテストを自動的にトリガーできるようになります。
テストは実行されますが、セットアップを選択すると、レポートはプラットフォームまたはクラウドに保存されるか、CI / CDプラットフォームに返送されます。
次に、パブリッククラウド、オンプレミス、またはオンデバイスファームに展開することを選択できます。
そうすることで、次のことができます。
・簡単なセットアップのメリット(単一の実行可能ファイル)
・任意のCIから自動化をトリガーする
・エージェントが実行されている場所にテストを展開します
・Dockerコンテナと並行して実行する
・仮想エージェントを使用してデバイスファームで実行する
・一元化されたダッシュボードでレポートを取得する
・VPNを使用せずにリモートネットワークに展開する
・YAMLファイルにテストをダウンロードしてCLIを利用することにより、完全にオフラインの環境でテストを実行します
・TestProjectは、アドオンライブラリ、スマートレコーダー、テストレポート、モニターなどのさまざまな機能も提供するため、可能な限り最良かつシームレスな方法でテストを作成および実行できます。
◇自動化の不安定さはもうない
自動化の不安定さは、テスト自動化における最大の課題の1つです。
…しかし、TestProjectを使用すれば、もう対処する必要はありません。
TestProjectは、フレークを減らし、テストを安定させるための3つの強力な自動化AIツールを提供します。
「オートメーションアシスタント」
このツールは各ステップを自動的に分析するため、アクションが目標に到達しなかったケースを検出できます。
次に、それを自動的に修正しようとします。
したがって、誤検知アクションは自動的に検出され、テストが再実行されて修正されます。
「アダプティブウェイト」
これは、すべての環境条件が自動化アクションを成功させるのに十分であることを保証するのに役立つメカニズムです。
タイミングは大規模な自動化にとって非常に困難であり、インターネット速度、デバイスパフォーマンス、または非同期イベントの影響を受けるため、このツールは適切なタイミングになるまでテストの実行を待機し、テストを改善します。
「自己回復」
このメカニズムは、他の人が失敗したときに、代替のロケーター戦略を自動的に構築します。
自動化は、実行する特定の要素ロケーター戦略に依存します。
これは、動的なアプリケーションやレイアウト変更の場合に非常に脆弱です。
したがって、このツールは、1つが機能しない場合、最大5つのロケーター戦略を自動的に生成します。
その後、テストが自動的に修正されます。
◇TestProjectを選ぶ理由
TestProjectは、テスターと開発者に強力で協調的なスペースを提供して、テストを改善し、自動化の課題に簡単に取り組むことができます。
新機能を使用すると、より高品質のテストと製品を提供するのに役立つ強化されたエクスペリエンスを楽しむことができます。
■最後に
今回は、国内ニュース、海外ニュース3記事を取り上げてみました。
次週も、ソフトウェアテスト、テスト自動化に関するニュースをご紹介したいと思います。
最後まで見て頂き、ありがとうございました。
UXと理論で作る Webデザイン: デザイナーでなくてもわかる