ローソンデジタルイノベーション テックブログ

ローソンデジタルイノベーション(LDI)の技術ブログです

Shirates開発後記(1) - Shiratesとは何なのか -

品質管理部の仙波です。

昨年の10月にオープンソースソフトウェアとしてスマホアプリの自動テストツールであるShiratesを公開しました。

techblog.ldi.co.jp

その後しばらく時間が空いてしまいましたが、スマホアプリの自動テストに取り組むテストエンジニアの方にShiratesを知ってもらうために開発後記として記事を書こうと思います。 何回かのシリーズで書くつもりですが、比較的時間がある時にポストしていきたいと思います。

アプリケーションのテストレベル

一般にアプリケーションのテストは

  • 単体テスト(Unit Test)
  • 結合テスト(Integration Test)
  • システムテスト(System Test)

の段階(テストレベル)を経て、システムの構成要素(部品)を結合する対象を広げていき、テスト観点の抽象度が高くなっていきます。

厳密な線引きは難しいですが、単体テストはテストクラスに対する関数呼び出しのテストがメインであり、結合テストとシステムテストはアプリケーションのGUIに対する打鍵のテストがメインであると言えます。

ちなみに、結合テストは英語のintegrationの翻訳通り統合テストとも言われますが、日本の開発現場では結合テストと呼ばれることが多いと思います。

テストレベルとテストフレームワーク

テストの自動化はテストレベルに対応したツールを使用して行います。

単体テスト用のツールとしてはJUnitがスタンダードな存在として広く利用されています。

結合テスト及びシステムテスト用のツールとしては古くはWindowsのGUIを操作する製品が利用されており、Windowsの自社プロダクトを持っているところでは積極的に活用されています。 また、ここ10年ほどはスマホの普及とともに、スマホアプリをテストするツールが登場し、活用され始めています。

Shiratesとは何なのか

Shiratesはオープンソースソフトウェアです。 github.com

Shiratesは一言で言うとスマホアプリ用の結合テストフレームワークです。スマホアプリのテストコードを書くこと(あるいは読むこと)の苦痛からテストエンジニアを解放し、それを楽しい作業にしてくれます。

Shirates is an integration testing framework that makes it easy and fun to write test code for mobile apps.

Shiratesは製品ファミリ名であり、具体的な2つの製品を提供しています。 開発言語はKotlinです。

  • shirates-core

    • 自動テストコードを作成するためのライブラリ
  • shirates-stub

    • テスト用のデータを供給するスタブツール。テンプレートプロジェクトとして提供

Shiratesは弊社が開発するアプリのテストを効率化するために開発し、実際に業務で活用しつつ、現在も改良を続けています。

自分達のために作ったツールですが、開発当初からオープンソースソフトウェアとして公開することを意識して部品化し、弊社のテスト対象のプロダクトの情報が入らないようにしています。

約3年間ほどの試行錯誤で作っては壊しを繰り返しましたが、現在は製品仕様が安定し、とても完成度の高いものとなリました(自画自賛ではありますが)。そろそろ一般の方々にも使ってみていただきたいと思い、オープンソースソフトウェアとして一般公開しました。

現在スマホアプリのテストの自動化を検討している方、あるいは本記事を読んで興味を持っていただいた方は是非、ShiratesをGitHubで入手し、評価してみてください。

もし気に入っていただけた場合はGitHubページ右上のStarをクリックしていただけるとうれしいです。

関連記事

こちらの記事もオススメです。 qiita.com