より低コストでテストを加速させる

2020/10/30 - 読み終える時間: 4 分

Accelerating Testing at Reduced Costs の翻訳版です。


より低コストでテストを加速させる

2020年10月29日

著者: Navnit Kumar Singh / Software Test Architect 共著: Shivi Sivasubramanian / Technical Lead

画像の説明

多くの組織にとって、アジャイルおよび継続的なソフトウェアデリバリのトレンドに追いつくためのテストプロセスを定義することは、大きな課題です。

そして、この課題を克服するために、多くのソフトウェアチームは通常、テストの自動化や追加のスクリプトを導入しています。しかし、より自動化された UI テストが必ずしも効率的なプロセスとは限りません。

テストの実行時間は、テストスイートのサイズに正比例します。特にこのようなシナリオでは、テストを自動化する目的は達成されません。この記事では、HCL OneTest UI (HOT UI) が、テストの自動化に関連する最も一般的な問題を克服するのにどのように役立つかを概説します。

このブログ記事では、以下の用語を使用しています。

  • ノード - 物理的または仮想的なマシン、Docker イメージ、モバイルデバイス、またはエミュレータ
  • Channel - テストが実行されるブラウザーのアクティブなインスタンス

スピードを上げる、遅くするのではなく

テストを高速化する最も強力な方法は、テストを並列に実行することです。すべてのテストスクリプトを単一のノードで実行するのではなく、多くのノードに分散して実行します。例えば、100個のテストを 10個以上のノードで並列に実行すると、実行時間は実際の実行時間のわずか10分の1にまで短縮されます。

画像の説明

時間を節約できるだけでなく、テストの実行を並列化することで、テストカバレッジを大幅に向上させることができます。

自動化されたテストを並行して実行するための準備をする際には、以下の要件を考慮してください。

  • アトミックテストと自律テスト
  • ノード間の通信が適切に処理されるテスト環境
  • テスト実行のための単一の統合レポート
  • テストデータを迅速かつ正確に管理する方法

テスト実行の高速化

HCL Software は、HCL OneTest UI と呼ばれるGUI自動化機能テストツールを提供しており、記録することで自動テスト用のテストスクリプトを素早く生成することができます。これらのテストスクリプトは、逐次的にも並列的にも実行することができます。そのシンプルなUIを使用して、並列テスト実行用のアトミック・スクリプトを生成したり (「記録中にテストを分割する」を参照) 、並列テスト実行のためのさまざまな機能を活用したり、テスト・データを自動管理したりすることができます。

HCL OneTest UI は、複数のブラウザーと複数のノードに同時にテスト実行を分散させる方法を提供することで、テストを高速化するのに役立ちます (「分散テストによるテスト作業の高速化」を参照してください)。HOTUI で並列テストを実行するには、加速機能テストアセット (AFT) を設定する必要があります。AFT は、複数の接続されたノードと利用可能なブラウザー上で並列テストを実行するために必要なすべての情報を含む XML ファイルです。

  • テスト スクリプトの詳細。テストスクリプトの詳細: 並列実行するすべてのテストスクリプトの名前と場所
  • ブラウザーの詳細 .... テストを実行するブラウザー
  • Locations ............... テストが実行されるノードの場所
  • グループ ..................... テスト、ブラウザー、ロケーションのグループ

典型的なAFTテストスイートは次のようになります。

画像の説明

  1. AFT テストスイート

増速機能テストの設定方法の詳細は、「増速機能テスト・アセットの作成」を参照してください。

テスト実行の分散を制御する

AFT テストスイートを実行すると、そのテストスイートの一部である WebUI テストが複数の接続されたノードに分散され、テストを並行して実行するための複数のチャネル (またはストリーム) が容易になります。ノード上で並列に実行できるテストの数は、Web UI Playback (Desktop) 環境設定 (Window > Preferences > Test > Test Execution > Web UI Playback (Desktop) ) で「配布用エージェントごとの並列チャンネル数」を整数値に設定することで、HOTUI 環境設定で定義したチャンネル数に依存します。

画像の説明

  1. HOTUI 環境設定 - 並列テストの実行回数の設定

というわけで、並列チャンネル数を決定する際には、接続されているノードの構成も考慮する必要があります。

HOTUI では、以下の方法で並列テストの実行を配布することができます。

  • 自動配布 実行時間を最小化する観点から、実行テストの配分は HOTUI によって完全に制御されています。選択された WebUI テストまたは AFT スイートのテストの一部は、個々のテストの実行時間に基づいて、指定されたチャンネル数に事前に配置され、各チャンネルの合計実行時間のバランスをとります。
  • 選択的な配布 グループを作成することで、どのテストをどの接続ノードで、どのブラウザーで実行するかを決めることができます。グループの一部であるすべてのテストは、そのグループに関連付けられているすべてのブラウザー上で実行され、実行はそのグループで定義されているすべてのノードに分散されます。

選択されたテストの数、または AFT テストスイートの一部であるテストの数が、利用可能なチャンネルの数よりも多い場合、各チャンネルは複数の Web UI テストを収容するように構成できます。Web UI テストは、チャンネル間で並行して実行され、チャンネル内では順次実行されます。

並列実行可能なテストの最大数=(配信用のノードごとの並列チャンネル数)×(接続されたノード数)

注: 複合テストを実行する場合、複合テストの数に選択したブラウザの数を乗じた数がチャンネル数を超えないようにしてください。

レポートの表示

テスト実行の終了時には、テストの詳細、実行環境、状態、場所(ノードの詳細)など、実行の詳細と概要をまとめたレポートが生成されます(スクリーンショット参照)。

  1. レポート-並列テスト実行

画像の説明

  1. レポート拡張-並列テスト実行

画像の説明

データ駆動型テストをいかに簡単に加速させるかの詳細についてはこちらをご覧ください。


OneTest: データ駆動型テストの高速化による改善

2020/10/30 - 読み終える時間: 4 分

Data-driven Test Acceleration Made Easy の翻訳版です。


データ駆動型テストの高速化による改善

2020年10月29日

著者: Navnit Kumar Singh / Software Test Architect 共著: Shivi Sivasubramanian / Technical Lead

画像の説明

ディストリビューションテストの大きな課題のひとつは、データ駆動型のテストです。同時に実行されているすべてのテストは、データにアクセスできるはずです。

しかし、いくつかのシナリオでは、複数のテストが同じデータにアクセスできるようにすることはできません。HCL OneTest UI (HOT UI) が提供するデータセットを使用することで、分散テストを実行しながらこの課題に簡単に取り組むことができるようになりました。

この記事では以下の用語を使用しています。

  • データセットは、スクラッチから作成することも、カンマ区切り値 (CSV) ファイルからデータをインポートすることも可能な、実行中の変数データを持つテストを提供します。詳細については、データセットの概要を参照してください。
  • 複合テストは、小さなテストをエンドツーエンドで実行できるシナリオに整理するのに役立ちます。複合テストを実行すると、それに追加された各テストは、定義された順序で呼び出されます。詳細は、「複合テスト」を参照してください。

データセットの作成

e コマースのWebサイトで一般的に起こるシナリオを考えてみましょう。ユーザーがログインし、カートに商品を追加し、注文をします。 したがって、以下の手順で自動テストを行う必要があります。

  • ログイン: e-Commerce Web サイトにログインする
  • カートに追加: 商品を選択してカートに追加する
  • 注文する: 商品内容を確認してから注文する

テストを高速化するために、サポートされているすべてのブラウザーで 3つのテストを並行して実行することを計画してください。しかし、アプリケーションは同じユーザーログインで 3つのセッションを同時に実行することはできません。そのため、各実行ではユーザー ID とパスワードの異なる組み合わせを使用する必要があります。

上記のシナリオのために、HCL HOTUI で以下のデータセットを必要な行データと共に作成します。

  • DS_Login: ユーザーログインの詳細をユーザー ID とパスワードの 2つの列の下に保存します。

画像の説明

  1. データ集合 - DS_Login
  • DS_Product: 3 つの列の下に製品の詳細を格納します - 製品名、ID、販売者 (product name, id, seller)

画像の説明

  1. データ集合 - DS_Product

DS_Login データセットをログインテストに関連付け、テストの入力値をデータセットの列に関連付けます。同様に、DS_Product データセットを addToCart テストに関連付け、入力値をそれぞれのデータセット列に関連付けます。詳細については、「テスト値をデータセット列に関連付ける」を参照してください。

複合テストの作成

3 つのテストをシナリオとしてまとめて実行するには、HCL OneTest で TC_PlaceOrder という名前の複合テストを作成し、3 つのテストを予想される実行順序で追加します。複合テストの中にループを挿入し、addToCart テストをその中に移動します。これは、実行中に対応するデータセットの行から値(この場合は、商品の詳細)を取得するために必要です。

画像の説明

  1. 複合テスト

TC_PlaceOrder という複合テストを実行すると、まずアプリケーションにログインするためにログインテストが実行され、次に addToCart テストがカートに商品を追加します。カートに追加された商品の数は、ループ内で指定された反復回数に等しくなります。最後に、placeOrder テストは、カートに追加された商品の注文を行います。

テストの配布

複数のブラウザーで同時にテストシナリオを実行するには、Distribute_TC_PlaceOrder という AFT テストスイートを作成します。

画像の説明

  1. AFT テストスイート

Distribute_TC_PlaceOrder と呼ばれる AFT テストスイートを実行すると、TC_PlaceOrder テストは Chrome と Firefox で並行して実行されますが、複合テスト TC_PlaceOrder の一部であるテストは順次実行されます。

異なるブラウザーでの実行の各ステップで、ログイン・テストは、DS_Login データセットの異なる行から必要なログイン詳細を取得します。このようにして、各並列テストの実行において、単一のユーザー・ログイン・セッションが保証されます。 ログインテストが完了すると、addToCart テストはループ内で(指定された回数分)、異なるブラウザー上で同時に実行されます。addToCart テストの各実行は、DS_Productdataset にアクセスし、データセットにアクセスする1つのテストであるかのように、カートに商品を追加します。

まとめると、HOTUI は、必要に応じてデータへのアクセスを制限しながら、データへの同時アクセスを可能にすることで、テストの並列実行を容易にします。

コストを削減しながらテストを高速化する方法の詳細はこちらをご覧ください。


OneTest: 統一されたレポートによるテスト結果の改善

2020/10/28 - 読み終える時間: 4 分

Enhancing Test Results Via Unified Reports の翻訳版です。


統一されたレポートによるテスト結果の改善

2020年10月26日

著者: Eshita Gupta / User Experience designer for HCL Software

画像の説明

ソフトウェアでは、製品の最適な品質が常に優先されています。

予期せぬ状況や期待される状況下でのソフトウェアコンポーネントの評価は非常に重要です。そのため、テストチームは製品の品質を評価することで、ビジネスの成長に大きな役割を果たしています。

テスターであるあなたは、レポートに迷い、メールボックスに書類をダンプしてしまうことが何度あるでしょうか。それはよくあることで、テスターはゼロからスタートしなければならないことが多いです。

HCL OneTest Server の新しい統一レポートにより、テスト結果を簡単にアクセスして分析できるようになりました:このレポートは、機能テストとWeb UIテストレポートの機能を統合し、HCL OneTest UIのすべてのテストタイプをサポートしています。広範囲で直感的なデザインを使用することで、統一レポートはテスト結果を分析するための以下の機能を提供します。

テスト実行の包括的な詳細を表示することで、テストの問題点を素早く深く掘り下げることができます。

  • 複雑な複合テストから特定のテスト反復の詳細までのドリルダウン
  • テスト実行からキャプチャしたスクリーンショットをカルーセル形式で表示します
  • テスト実行からのライブレポート
  • レポートからテスト結果をHTML形式でエクスポートすることができます

画像の説明

クイックビューアプローチ

レポートの最初のセクションでは、実行された結果が一目でわかるようになっています。これは、資産の健全性を素早く分析し、チーム内で同じことを伝えたいマネージャーやテスターに最適です。

結果レポートを素早く表示する方法について詳しく説明します。

  • ドーナツチャートは、結果の新鮮で迅速なビューを提供します
  • テストの合格・不合格の相対的な割合をカラーコードで表示する
  • 大規模データの要約に役立つ
  • 解析時間の短縮
  • さらなる調査のために報告書を掘り下げるためのアンカー

画像の説明

サマリーとリソースタブ:新しい統一されたレポートで、重要な情報が前面に出て、ユーザーの体験を向上させるのに役立ちます。

サマリータブ

画像の説明

階層的アプローチ

階層構造により、作業と依存するテスト資産の明確な権限が確立されます。複雑なアセットをシンプルな構造で見ることができます。

視覚的な階層構造は、ユーザーの流れを簡単かつ直感的にナビゲートします。

画像の説明

イテレーション: 各データセットをイテレーション形式で見ることができます。

画像の説明

結果比較 - あらゆるタイプのデータの実際の結果と期待される結果の比較が、これまで以上に簡単になりました。さまざまなタイプのデータについては、次の表の例を参照してください。

画像の説明

フィルター: 資産の状態をフィルタリングすることで、故障の原因を簡単に掘り下げることができます。

画像の説明

差分だけを表示: チェックボックスを使用して、無関係な情報を除外することができます。

画像の説明

マイクロスコープ的詳細

ユニファイド・レポートは、データの拡大率がはるかに高く、誰でも階層の各レベルで資産の詳細を検出することができます。アコーディオンを拡大しなくても、関連するアイコンにカーソルを合わせることで、個々のアセットの微細な詳細を確認することができます。

アイコンにカーソルを合わせると、以下のような詳細を見ることができます。

  • テストステップが何回失敗したか?
  • 実行中に使用されたブラウザは?
  • どのホストが関連付けられていたか?
  • テストの実行にどれくらいの時間がかかりましたか?

画像の説明

スクリーンショットのキャプチャ。記録および再生中に、スクリーンショットがキャプチャされ、各テストアセットに添付されます。キャプチャしたすべてのスクリーンショットを説明とともにカルーセルで簡単に見ることができます。

画像の説明

ライブレポート

ライブレポート機能の助けを借りて、あなたはレポートを見るために実行するための完了を待つ必要はありません、リフレッシュせずにライブレポートを実行していると、経験がシームレスになります。

画像の説明

エキスポート

あなたの都合に合わせてレポートをエクスポートし、チームで共有することができます。レポートとエクスポートのカスタマイズされたビューは、統一されたレポートのために長い間要求された機能です。今、あなたは希望する形式でレポートをエクスポートすることができます。エクスポートされたテストレポートは、インタラクティブなHTML形式とPDF形式で利用できます。将来のリリースでは、他のフォーマットもサポートしています。

画像の説明

オートヒーリング

オートヒーリングは本製品の最も奥深い機能です。統一されたレポートでは、「オートヒーリング」タグでレポートの状況を知ることができます。

画像の説明

HCL OneTest は、リリースのたびにレポートを継続的に強化しています。


OneTest: 組込みソフトウェア試験の業界標準認証を取得

2020/10/19 - 読み終える時間: 2 分

Achieving Industry Standard Certification for Embedded Software Testing の翻訳版です。


組込みソフトウェア試験の業界標準認証を取得

2020年10月16日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

コンポーネント・テスト・ハーネス、テスト・スタブ、テスト・ドライバの作成と展開を自動化することは、HCL OneTest Embedded を使えば容易に実現できます。

どのような開発環境からでもワンクリックで、メモリとパフォーマンスをプロファイルし、コードカバレッジを分析し、プログラムの実行動作を可視化することができます。

さらに、HCL OneTest Embedded は、チームがより積極的にデバッグを行い、コードが壊れる前に修正することを支援します。

HCL OneTest Embedded 8.3.0 の新機能

Eclipse 4.7.3 と 4.12(2019.06)とCDT 9 をサポート

  • Rational Test RealTimeはEclipse 4.7.3とCDT 9で提供されるようになりました。
  • アップデートサイトの仕組みを利用して、Eclipse 4.12(通称:2019.06)にもインストールできます。

Eclipse IDE で OTD テストスクリプトを実行

  • テスターは、PTUテストスクリプトと全く同じように、スタジオからEclipse IDEにOTDテストスクリプトをインポートして実行することができるようになりました。
  • スタジオと同じ方法でレポートが生成されます。

新しいコードレビュー HTML レポート

  • コードレビューのポストプロセッサは、新しいHTMLレポートを生成します。
  • このレポートは、テスターが独自のロゴやタイトルを導入するために修正できるテンプレートに基づいています。

MISRA 2004 と2012 のルール改善

  • コードの行数に関するルールは、コードの行数を計算するためのさまざまな方法を提案しています(空行の有無、コメントの有無)。
  • 新しいルールが利用可能になりました。
    • コンパイルユニット内の関数の最大数
    • コンパイルユニット内のグローバル変数の最大数
    • コンパイル単位の最大行数
    • 関数内のパラメータの最大数

Eclipse IDEを他のテストツールに開放

  • Eclipse IDE は、Python、シェルまたは Windows のコマンド命令に基づいたテストスクリプトをサポートしています。
  • ランタイム解析機能を並行して使用可能
  • これらのツールで生成された HTML レポートは、グローバルレポートの一部にもなります。

このオンデマンド・ウェビナーでは、HCL OneTest Embedded チームが、テストと分析のためのクロスプラットフォーム・ソリューションについて議論します。さらに、HCL OneTest Embedded は、デバッグをより積極的に行い、コードが壊れる前にコードを特定して修正する方法を示してくれます。


HCL OneTest: 中間層およびバックエンドアプリケーションの仮想化

2020/8/29 - 読み終える時間: ~1 分

Virtualizing Middle-Tier and Back-end Applications の翻訳版です。

HCL OneTest: 中間層およびバックエンドアプリケーションの仮想化

2020年8月28日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

テストプロセスの間、異なる開発チームが異なる速度で移動するという事実により、配信はしばしば課題となります。

例えば、モバイルチームは毎日確実にリリースできるかもしれません。しかし、ミドルウェアチームは毎週のようにリリースし、メインフレームチームはリリースに1ヶ月以上かかるかもしれません。

目標が継続的なデリバリーであれば、自動テストを行っても、この問題がボトルネックになる可能性があります。

HCL OneTest Virtualization は、不足しているシステム・コンポーネントをシミュレートして、より迅速な開発とテストを可能にします。実際のサービスと同じ方法でネットワーク・トラフィックをリッスンするため、実際のサービスが利用できない場合でも開発とテスト活動を継続することができます。

さらに、受信メッセージをチェックし、それらのメッセージを処理し、記述された動作に従って応答します。

HCL OneTest Virtualization は、元の環境を再構成することなく導入することができ、時間を節約し、エラーを回避することができます。

HCL OneTest Virtualization の詳細については、こちらをご覧ください。


HCL OneTest: アプリケーションのパフォーマンス障害のリスクの特定と管理

2020/8/27 - 読み終える時間: ~1 分

パフォーマンス・テスターの最大の悩みは、負荷をかけるためのデータを作成でしょう。HCL OneTest Performance はワークロードを生成し、テスターの負荷を下げると共に、現実に即した検証ができるようにします。紹介記事 Identifying and Managing the Risk of Application Performance Failures の翻訳版を掲載します。


アプリケーションのパフォーマンス障害のリスクの特定と管理

2020年8月27日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

アプリケーションへの負荷の影響を分析するパフォーマンス・テストを迅速に実行することは、大変な作業になります。

テスターは、Web およびサーバーベースのアプリケーションのスケーラビリティを検証し、システム・パフォーマンスのボトルネックの存在と原因を特定し、バージョン間のパフォーマンスの変化を追跡できる必要があります。

HCL OneTest Performance は、パフォーマンス・テスターが日々のユーザー活動をモデル化した現実的なワークロードを簡単に作成できるようにすると同時に、土壇場のパフォーマンス問題を排除することができます。ベアメタルや Docker エージェントを介して拡張可能で、パフォーマンス・テスト・プラットフォームのプロビジョニングがこれまでになく簡単になりました。

HCL DevOps との統合により、デリバリー・パイプラインにパフォーマンス品質のメトリクスをもたらすことが簡単かつ効果的になります。

HCL OneTest Performance の詳細についてはこちらをご覧ください。


HCL OneTest: 複雑なシステムの健全な統合

2020/8/26 - 読み終える時間: ~1 分

HCL OneTest API は文字通り API のテストを行う製品です。その紹介記事 Ensuring Sound Integration of Complex Systems の翻訳版です。


複雑なシステムの健全な統合

2020年8月26日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

最近では、さまざまなネットワークプロトコルやメッセージフォーマットに対応したシステムのAPIを検証することが必須となっています。

大規模なトランザクション内の個々の交換を検証するために、テストケースを作成する必要があります。そして、これは、記録とサービスの仮想化のための同じ技術を使用して、押しつけがましくない方法で行われなければなりません。

HCL OneTest API は、さまざまなネットワーク・プロトコルやメッセージ・フォーマットを横断して、システムのAPIをトリガーし、検証します。

HCL OneTest API は、エンタープライズ・メッセージングやビジネス・プロセス統合プロジェクトのテストを開発するためのスクリプトなしの環境を提供します。HCL OneTest API のオーサリング環境は、環境発見、システムモデリング、メッセージ記録のための同じツールを使用して、テストを作成するためのベースライン・データを提供する機能を提供します。

サンプルメッセージを作成し、複数のテストケースで参照することで、最大限の再利用性を得ることができます。これらのメッセージはテンプレートとして使用することができ、テストグループの簡単な更新を可能にし、共有された検証ルールにより、複数のテストケースで検証を再利用することができます。

HCL OneTest API の詳細については、こちらをご覧ください。


OneTest: オンデマンドテストに必要なデータの開発

2020/8/26 - 読み終える時間: ~1 分

HCL OneTest Data はテスト用のデータを生成するツールです。Developing the Data Needed for Testing On Demand の翻訳版です。


オンデマンドテストに必要なデータの開発

2020年8月25日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

テスト用に適切なデータが手元にあるかどうかを確認するのは大変な作業です。

従来のアプローチでは、本番システムから既存のデータを複製し、テスト環境で使用します。GDPRやその他のプライバシー規制が施行されたことで、この種のテストは、特に個人データに関係する場合には、はるかにリスクが高くなっています。また、まだ本番システムがないため、使用する本番データがない場合も多くあります。

HCL OneTest Dataは、テスト環境用のモックデータを生成し、データ漏洩やプライバシー問題のリスクなしに合成データセットを生成します。

強力なビルトイン API により、テスト担当者は、定義済みのデータセットの使用、データ生成ルールの使用、またはあらゆる環境に対応したカスタムデータ生成スクリプトの使用など、さまざまな方法でデータを生成することができます。

HCL OneTest Dataの詳細については、こちらをご覧ください。


このブログについて

HCL Japan の Software 部門の複数担当者で HCL Software 全般について記しています。