2018年4月11日水曜日

Cognizant ITSを使ったモバイルアプリUIテストの自動化(1) - Cognizant Intelligent Test Scripterとは

皆さんはモバイルアプリのシステムテストや受け入れテストに自動化ツールは導入されていますでしょうか。
2018年現在、アプリの自動テストツールと言えばAppiumが主流ですが、シナリオを作るにあたりテストコードを書く必要があるため、普段コードを書かない方には導入しづらいのではないかと思います。

Cognizant Intelligent Test Scripter(以下Cognizant ITS)はテストデザイン、テスト実行、レポート作成、保守などの日々のテスト作業をGUIで行える自動テストツールで、開発元のコグニザント·テクノロジー·ソリューションズ社がオープンソースで公開しているため無料で利用できる所が特徴です。


コグニザント·テクノロジー·ソリューションズ社(外部リンク)
Cognizant Intelligent Test Scripter - GitHub Pages(外部リンク)

また、シナリオとページオブジェクトは分離して管理されているため、アプリが完成していないうちからシナリオを作り始めることができたり、仕様変更によるシナリオのメンテナンスなどが簡単になり、SeleniumやAppiumの弱点を克服しています。

2018年4月時点ではWebアプリケーション開発向けに作られているように見えますがAndroidやiOSなどのネイティブアプリケーションのテストにも使用することができます。

ただ公式ドキュメントには使い方の説明はほとんど無く、コードを書かない方や、Appiumを使ったことが無い方には理解が難しいと思われます。
本連載では、コードを書かない方でも、Cognizant ITSを使ってスマホアプリの自動テストが導入できるようになるよう解説していきたいと思います。


連載目次


免責事項 - 本記の掲載内容について
本記事に掲載されている内容について一部非公式な情報を含んでおります。
そのため弊社側では記事内容を用いたことによる損害や責任等については負いかねますので、あらかじめ了承ください。
© Copyright 2018, Cognizant. All rights reserved. Cognizant、Cognizant のロゴ、Cognizant Intelligent Test Scripterは、米国Cognizant Technology Solutions Corporationの登録商標または商標です。株式会社ブリリアントサービスは、コグニザントジャパン株式会社の子会社です。本文書に記載されている内容は、予告なく変更される場合があります。また、本書に記載されている会社名、製品名、サービス名などは、各社の商標または登録商標です。


それでは、どのようなシーンで一番Cognizant ITSが活躍できるのか。本記事ではCognizant ITSの特徴を紐解いていきたいと思います。

Cognizant ITSができること

Cognizant ITSはAppiumだけでなく多くのテストツールが統合されています。
まだ確認できていない機能もありますが下記のようなことができると言われています。

  • Selenium/Appiumを使用したマルチプラットフォームなGUI自動テスト
  • 動的テストデータを使用した反復テスト
  • ページオブジェクトとシナリオを分けてテスト設計可能
  • スクリーンショットを比較して行うビジュアルリグレッションテスト
  • iOS、Androidアプリのオブジェクトスパイ
  • カスタムメソッドの登録(要コーディング)
  • BDD featureの作成、インポート
  • Selenium Gridに対応
  • SauceLabs、BrowserStack、Perfectoなどのクラウドプラットフォームでの実行
  • テスト管理モジュールとの連携(QC、JIRA-Zephyr、TFS)
  • 実行後にレポートをメールで自動送信


テストケース作成画面


オブジェクトスパイ


テスト実行画面


テストレポート画面


スクリーンショット比較


レポートメール

Cognizant ITSのメリット、デメリット

テストが自動になるといっても、メリットだけではありません。
SeleniumやAppiumと同じように、テストの作成に時間が掛かるなどのデメリットもあります。

メリット

  • 回帰テストの人件費を減らすことができる
    • 一度ケースを作っておけば、リリース毎、スプリント毎、アップデート毎など何度でも使いまわせる
    • 単調で時間のかかる作業を人が行わなくてよい
    • 自動化した分のリソースをアドホックテストなどに回すことができる
  • テスト手順を明示化できる
    • 手順を共有しやすい
    • 人為的な手順ミスが起きにくい
  • 修正後の想定外のエラーの早期発見ができる
    • 影響範囲の大きい修正を行いやすくなる
  • テストのシナリオ作成、実行、レポートまですべてGUIで行える
    • コードを書かない方でも担当できる
    • 仕様変更によるシナリオの修正がスクリプトよりも楽にできる
  • 画面要素とシナリオが分けて管理されている
    • アプリが出来ていなくても、先にシナリオだけ作ることができる
    • 画面に変更があってもシナリオに影響が出にくい

デメリット

  • Cognizant ITSを使うための学習コストがかかる
    • 公式サイトにほとんど説明がない
  • テスト作成の工数がかかる
    • Seleniumでは初回サイクルは手動の3倍以上かかると言われている
    • 仕様変更の度にメンテナンスをしなければならない
  • 実行に時間がかかる
    • SeleniumやAppiumと同様、一つ一つの動作に間が空いており、手動より時間がかかる
  • アプリ開発側にも協力してもらう必要がある
    • オブジェクトを特定できるような一意のidがついていないと、オブジェクトの指定が難しい

Cognizant ITSの向き不向き

上記で洗い出したメリット/デメリットやCognizant ITSの機能から、Cognizant ITSの導入が向いているケース、向いていないケースは下記が考えられます。

向いているケース

  • リリースの多いプロジェクト
    • 長期間継続的にリリースを行うプロジェクト
    • 毎週リリースしなければならないようなプロジェクト
  • テスト担当者がコードを書く方ではない
  • 修正後、機能や見た目に何か影響がでていないかの確認(リグレッションテスト)
  • 値を変えて何度も同じ機能をテストするケース
  • 複数の端末で同じテストを行うケース

向いていないケース

  • リリースの少ないプロジェクト
    • キャンペーンなど一回で使い捨てのプロジェクト
    • 3回以上テストを回す必要のないプロジェクト
  • UIを使用しない機能単体レベルのテスト
  • アドホックテストのような繰り返し同じ操作を行わないテスト
  • 物理センサー(GPS、加速度、カメラ、NFCなど)を使用したシナリオのテスト
  • 端末の設定(GPS、ネットワークのON/OFFなど)を途中で変更するシナリオのテスト
  • オブジェクトのIDが動的に変わってしまうUIのテスト

まとめ

この通りCognizant ITSは、テストに必要な多くの機能が統合され、しかもGUIで扱える上に、オープンソースで公開されています。
しかし便利な自動ツールと言えどもケースによって向き不向きがあります。そのため、いきなり大半をCognizant ITSに任せようとすると、向いているテスト、向いていないテストを見極めながら運用していかなければならず、逆に工数がかかり、導入が難しくなってしまいます。
まずはテストケースの1つか2つの観点のみ任せてみて、徐々に任せる観点を増やしていくような導入の流れが良いのではないでしょうか。

次回はCognizant ITSのインストール方法を説明していきたいと思います。
→第2回 Cognizant ITSのインストール

参考サイト

文責:梶井祐介

140 180 Cognizant ITS , Quality Control

記載されている会社名、および商品名等は、各社の商標または登録商標です。

0 コメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...