SHIFTのGUIテストツールRacineとその開発プロセス

こんにちは。自動化エンジニアのtmshfです。
SHIFTでテスト自動化を担当している私の部署ではお客様からソフトウエアテストの効率化や品質改善について、さまざまなご相談をいただきます。

ツールの提案や導入もソリューションの一つになるわけですが、その中でもGUIテスト自動化ツールは花形です。

SHIFTでは2018年頃から「Racine(ラシーヌ)」という独自のGUIテスト自動化ツールを使っています。

Racine(ラシーヌ)とは

Webアプリケーションのテストを自動化するオープンソース技術であるSeleniumをベースにしたGUIテスト自動化ツールです。

Selenium以外にも、モバイルアプリのテストを自動化するAppiumや、SelenideAllureといったテスト自動化にまつわるオープンソース技術と、SHIFT独自で開発した機能を組み合わせています。

Racineでできること

Racineではさまざまな技術を組み合わせることで、Seleniumだけでは本来できないことを実現しています。

主な機能は以下のとおりです。

・スクリーンショットの現新比較
・メール受信テスト
・PDFの現新比較
・データバリエーションテスト
・API呼び出しテスト
・クラウドテストサービスとの連携

画像3

Racineでできないこと

・ブラウザ操作のキャプチャ&リプレイ
(Selenium IDEのように操作を記録して再生する機能)
・Windows/MacOSのクライアントアプリの操作自動化
・機械学習エンジンによるエビデンスやテスト結果自動判断

Racineのアップデートとメンテナンス

現在、RacineはSHIFTが手がけるWebのGUIテスト自動化のほとんどすべての案件で使われています。

それぞれの案件で定期的にヒアリングを行い、お客様やエンジニアからの現場の要望を吸い上げて、新しい機能の追加を検討しています。

月に1回ほどのペースでのアップデートを行っています。
また、日々更新されるOSやブラウザ、オープンソースのバージョンアップにも対応します。

リリースの際には、専用の検証用WEBサイトや、専用のiOS/Androidアプリを使います。

管理コストのかかるモバイル環境については、クラウドテストサービスであるSauceLabsを利用して、最新のOSやブラウザで検証します。

クラウドテストサービスついては日本国内のお客様の認知度はまだまだなので、これから普及していくのではないかと睨んでいます。

画像2

教育とナレッジ

それぞれの案件では導入時にアーキテクトと呼ばれる基盤構築を担当する役割のエンジニアが入り、お客様のテスト環境でRacineが使えるように整備をします。

次にスクリプターと呼ばれる、RacineのためのテストスクリプトをJavaで書く役割のエンジニアが現場に入ります。

アーキテクトは約5日間のテスト自動化教育を受けてRacineの環境を、スクリプターは約3日間のテスト自動化教育を受けて、Racineのテストスクリプトを作成できるようになります。

『えっ、5日でSeleniumの環境構築?3日でテストコードが書けるって?本当に!?』

皆さん、きっとそう思われますよね。はい、私も最初、思いました(笑)。

まずスクリプターになる条件としてJavaなどのプログラム言語の経験年数3年を前提としています。

Racineはプログラム経験者ならば直感的にコードを書きやすいような工夫がされています。

そしてRacineは教育コンテンツが充実しています。

これらの条件のおかげで、教育を終えたスクリプターは現場に入ってもバリバリとテストコードが書ける

と、残念ながら...世の中はそんなに簡単ではありません。

よしんばテストコードを定石どおりに書けたとしても、エラー時のトラブルシューティングは大変です。

Seleniumをさわったことがある方は特にわかると思いますが、GUIテストはその性質上不安定な要素が多く、落とし穴やハマりどころがたくさんあります。

Racineはそのあたりをクリアできるような仕組みを取り入れていますが、さすがに3日間の教育だけでは難しい場合もあります。

そこで活用されているのが社内QA~ナレッジベースです。

案件の現場(SHIFTでは「オンサイト」と呼びます)で課題が発生すると、SHIFT本社(「オフサイト」と呼びます)の相談窓口に連絡します。

SHIFTでは社内コミュニケーションにMicrosoft Teamsを使用していますので、Teamsのチャットまたはチャンネル経由で連絡します。

チャットベースなのでレスポンスは早く、容易なものであれば数分で解決することもあります。

内容によっては原因調査を含めて数日にまたがる場合もありますが、これらについてはトピックを作成してナレッジベースに残します。

こうすることで同じ問題にぶつかった未来のエンジニアはナレッジベースから回答を得て、より早く問題を解決できるようになります。

画像3

オンサイトで通常は別々の場所にいる何十名ものSeleniumエンジニアが、ナレッジベースをハブとしてつながり、一つの集合知のようなものになれば、単なるツールを提供するだけではなく、高度に平均化されたSHIFTの自動化チームとして、お客様に大きな価値を届けられるのではないかと期待しています。

今後の課題としては、価値の高いナレッジを教育資料の一部へと昇格させるフローや、検索効率の高いナレッジベースツールについて考えていく予定です。

――――――――――――――――――――――――――――――――――

執筆者プロフィール:森川知雄
中堅SIerでテスト管理と業務ツール、テスト自動化ツール開発を12年経験。
SHIFTでは、GUIテストの自動化ツールRacine(ラシーヌ)の開発を担当。
GUIテストに限らず、なんでも自動化することを好むが、
ルンバが掃除しているところを眺めるのは好まないタイプ。
さまざま案件で自動化、効率化による顧客への価値創出を日々模索している。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/