QualityForward Blog

ベリサーブのテストマネジメントクラウド、QualityForward の最新情報、ちょっとした使い方のTipsなどをお届けいたします

【導入事例の紹介】 QualityForwardで手動テストと自動テストを一元管理しよう <後編>

はじめに

この記事は「QualityForwardで手動テストと自動テストを一元管理しよう」というタイトルでお送りしている全3回のシリーズ記事の 第三回、最後の記事になります。

<前編>では手動テストと自動テストを一元管理するメリットと、それを実現するアーキテクチャ等について、 <中編>ではより具体的な自動テスト結果をQFに投入するためのQF上のテストスイート等の設計や、APIリクエストのパラメータについて解説しました。

<後編>では最新の自動テストSaaSとのQFとの連携について、そして僭越ながらQFへの機能提案を述べて、シリーズを締めようと思います。

もくじ

自動テストSaaSとQFの連携

<中編>ではJUnit形式でのxmlレポートをパースするという方針で連携スクリプトを作成しました。 実際、多くのスクリプトベースの自動テストツールはJUnit形式のレポート出力をサポートしていますので、 <中編>とサンプルスクリプトをもとにQF連携を行うことが可能です。

一方、今回は非スクリプトベースの自動テストツールとQFとの連携方法のご紹介として、 近年トレンドとなっている自動テストSaaSとQFとの連携について検討していこうと思います。

結論としては弊社が導入をご支援しているMagicPod・mabl・Autifyは、すべてQFとの連携が可能です。 *1

まずはじめに各サービスを知らない方に向けて、簡単にサービスの特徴を解説した後、 MagicPod・mabl・AutifyとQFのそれぞれの連携方法についてご紹介しようと思います。

各自動テストSaaSの特徴

MagicPod

MagicPodはウェブサイトとモバイルアプリの両方の自動テストをドラッグ&ドロップで作成できることが特徴のサービスです。 SeleniumとAppiumを利用したことがある方であれば問題なく利用を開始でき、 特にモバイルの自動化に関しては現状最も強力なサービスの一つと言えるでしょう。 また課金体系が実行回数単位でなく、テストケース単位であり、コストパフォーマンスに優れる点も見どころです。

www.magic-pod.com

mabl

mablは「開発ライフサイクル全体にわたって信頼性の高いテストを実施できる」ことを特徴としている海外発のサービスです。 UIテストだけでなくAPIテストもカバーできるなど、まさに"mabl駆動開発"の実現に向けて、急速に開発が進められています。 また今年になって日本展開が本格化されており、公式ドキュメントの日本語化や各種イベント開催など、日本ユーザ向けのサポートも充実してきています。

www.mabl.com

Autify

Autifyは「ブラウザで操作を記録するだけでテストがノーコードで誰にでも簡単につくれる」ことを特徴としているサービスです。 日本市場で展開されているテスト自動化SaaSとしては恐らく最大手で、多くのユーザに愛されています。 元々はWeb自動化向けのサービスでしたが、 今年になりモバイルの自動化を実現するAutify for Mobileもベータリリースとなりました。

autify.com

先述のmablとAutifyはブラウザ拡張でテスト手順をレコーディングするという点で一見似ていますが、 mablは「ローコード」(コーディングやコンピュータ知識を背景に、主にエンジニアに向けた効率的なサービスの提供)を標榜している一方、 Autifyは「ノーコード」(誰にでも簡単に自動テストを作成することができるサービスの提供)を標榜しており、 サービスの未来像は大きく異なっています。

MagicPodも含め、ツール採用の際にはどのサービスが自分たちのプロダクトや開発文化に合うか、しっかりと検討することが必要と言えるでしょう。

各自動テストSaaSとQFの連携

では、ここからは各自動テストSaaSとQFとの連携方法を解説していこうと思います。

実行系にどの自動テストSaaSを採用する場合にも、以下の図のアーキテクチャ自体は変化しません。

f:id:qf_support:20210524101720p:plain

焦点となるのはQF連携スクリプトをどう実装するかという点です。

方針として、JUnit形式のxmlレポートが出力できる場合にはそちらで結果取得をしサンプルスクリプトを流用、 xmlレポートを出力できない場合や、xmlレポートには記載されていない情報をQF上に記載したい場合に APIリクエストによる結果取得をするとよいでしょう。

MagicPod

MagicPodはクラウド実行とローカル実行が可能で、その両方でQFに連携が可能です。

クラウド実行の場合はAPIによる結果取得のみのため連携スクリプトを自作する必要があります。 APIリクエスGET /v1.0/{organization_name}/{project_name}/batch-run/{batch_run_number}/のレスポンスに含まれる"test_cases"を使用するとよいでしょう。

MagicPod APIの詳細は下記を参照ください。

magic-pod.com

ローカル実行の場合はMagicPod Desktopを利用することでJUnit形式のxmlレポートを出力できるため、サンプルスクリプトを流用できます。 MagicPod Desktopによるxmlレポートの出力方法に関しては下記の2つの記事が詳しいです。

www.trident-qa.com blog.trident-qa.com

mabl

mablはクラウド実行とローカル実行が可能で、クラウド実行時のみQFに連携が可能です。

mablではJenkins, CircleCI, Bambooなどといった各種CIツールの公式プラグインが提供されており、 これらを利用するとJUnit形式のxmlレポートを出力できます。これらを使用し、サンプルスクリプトを流用するとよいでしょう。 mablのCI連携については以下のヘルプページが詳しいです。

help.mabl.com

なお、APIによる結果取得もできますので、こちらで結果を取得することも可能です。 mablはサービス内でAPIリクエスト文を生成することが可能です。下記ヘルプページを参考ください。

help.mabl.com

Autify

Autifyは現在クラウド実行のみが可能です。QFとの連携はAutify APIによる実現になるため、連携スクリプトを自作する必要があります。 APIリクエスGET /projects​/{project_id}​/results​/{result_id}のレスポンスに含まれる"test_case_results"を使用するとよいでしょう。 Autify APIの詳細は下記ページをご覧ください。

autifyhq.github.io

QFへの改善提案

さて、ここまで手動テストと自動テストの一元管理、特に自動テストとQFの連携方法について解説してきました。

ここまでの原稿をQFチームにお渡ししたところ、QF開発チームの方々に 「メリットだけでなくQFで管理したときの失敗談やQFへの機能提案も書いていいよ」という寛大なお言葉をいただきましたので、 最後に私が自動テストとQFとの連携を実現してみて、こういうところが改善されるとよいな、と思った点について、 実際にお客様からいただいたご意見を踏まえつつ簡単に触れさせていただこうと思います。

テストケースに長文を書くと縦に長くなる

実はサンプルスクリプトではテストfail時のエラーメッセージに関して、サマリ部分だけをQFに転写し、 エラーの詳細については連携せずに捨ててしまっています。

というのも、エラーの全文をQFに転写すると、妙に縦長になって、テストスイートが縦長になってしまうからです。

f:id:qf_support:20210428165129p:plain
この最右列なんとかならんかなあのお気持ち

自動テスト連携時に限らず、なんらかの理由で長文を記載したいというニーズも一定あると思いますので、 テストケース列は固定長にして、長文は別ウインドウでポップアップできるようにするなど、何らか見やすい方法があれば嬉しいと思いました。

「優先度」列のラベルを変えたい

今回手動テストと自動テストの一元管理にあたっては、<中編>で記載した通り 「優先度(Priority)」列をある種ハック的に「自動テスト・手動テストの種別」として割り当てています。

「優先度」として書いてあると誤解を招くので、この列のラベルを変えられるようにする、 あるいは何らか別のエレガントな手段によって自動テスト・手動テストのグループ分けができるようになると嬉しいです。

APIのドキュメントがどこにあるかわからない & 分かりづらい

最後に、実は実装時に地味に一番辛かったのが「APIドキュメントが分かりづらい」点です。

hackmd.io

OpenAPI(Swagger)で書いてー!!あとリクエストに必要なパラメータどうすれば取得できるか教えてー!! 

おわりに : 自動テストでお困りなら弊社まで

つい心の叫びが出てしまい最後取り乱してしまいましたが、 前編・中編・後編と3本にわたり、QualityForward上で手動テストと自動テストを一元管理する方法を寄稿させていただききました。

私の所属する自動テスト推進課では、このシリーズ記事で解説したQualityForwardと最新自動テストSaaSの組み合わせをはじめとする、 自動テストを効率的に管理・実装・運用する様々なソリューションのご提案、実際の導入をご支援しています。

自動テストでお困りのお客様はぜひ下記連絡先までお問い合わせください。

■自動テスト・本記事の内容に関するお問い合わせ

 研究企画開発部 自動テスト推進課
 e-mail:test-automation-section@veriserve.co.jp

■QualityForwardに関するお問合せ

 e-mail:qf_support@veriserve.co.jp

 公式ページ

*1:APIによる結果取得が可能なSaaSであれば理論上すべてQFと連携可能です。