waveさんの技術日誌

wave1008の日記の新館です。

Shiratesの特長(README日本語訳)

この記事はGitHubのREADME.mdの日本語訳です。

github.com

Shirates (shirates-core)

Shiratesはモバイルアプリのテストコードを簡単かつ楽しく書くことができる結合テストフレームワークです。 shirates-coreはコアライブラリです。

機能を3行で説明

  1. テストコードを書くためのほぼクロスプラットフォームの便利なAPI、現在AndroidiOSプラットフォームをサポートします。
  2. 強力なロギングとレポート機能を提供します。
  3. テスト環境を設定するための柔軟な設定フレームワークを提供します。

さらに詳しく説明

  • 画面の要素を操作し、その状態を確認するための便利なAPIを提供します。

  • 内部でAppiumを使用し、AndroidiOSアプリのテストをサポートします。画面要素のマッピングファイルを使用して、AndroidiOSのテストコードを統合できます。

  • テストセッションが終了した際に自動的にログ、スクリーンショット、HTMLレポート、MS-Excelワークシートを出力します。

  • MS-Excelワークシートでテスト結果を確認し、手動で追加テストを実行し、結果をワークシートに書き込むことができます。

  • 実際のテストを実行することなく、MS-Excel ワークシートにテスト仕様レポート(Spec-Report)を生成します。Spec-Report は、手動テストやレビューに便利です。そのため、テスト対象アプリが開発中であっても、テストコードを記述してSpec-Reportを出力し、手動テストを行うことができます。

Shiratesという名前の由来

このフレームワークのオリジナルはSHIRATAMA Test Frameworkという名前でした。私たちはこのオープンソース版をShiratesと呼んでいます。 SHIRATAMAは和菓子の白玉団子からとったもので、OKの頭文字のOを白玉団子に見立てました。

テストコード開発環境

ニックネーム指向の自動テスト

ニックネームは、テストコードを読みやすく、理解しやすくする Shirates の重要なコンセプトの 1 つです。画面、要素、アプリ、テストデータアイテムに対してニックネームファイルでニックネームを定義し、テストコードで使用することができます。ニックネームを使ったメッセージは、自然言語として読めるほどユーザーフレンドリーです。特に画面要素については、ニックネームを使うことで要素取得の実装の複雑さを隠すことができ、Android プラットフォームと iOS プラットフォームの違いを吸収することができます。その結果、あるプラットフォーム用のテストコードを書いた後に、他のプラットフォームへのギャップを埋めるための追加や修正をわずかな労力で行うことができます。

手動テストと自動テストの統合

テストエンジニアにとって、テストコードをコンパクトにまとめることは重要です。なぜなら、手動テスト用のドキュメントと自動テスト用のテストコードの両方を管理しなければならないからです。さらに言えば、ドキュメントとコードが 1 つの成果物に統合されているか、もう一方の成果物に変換できると理想的です。

Shiratesでは、テスト対象機能の実装完了に先立ってテストコードを記述し、NLR(No-Load-Runモード)でテストを実行し、ログをSpec-Report(MS-Excelワークシート)に変換し、自然言語でレビューすることができます。機能が実装されたら、まずはSpec-Report を使用して手動でモジュールをテストし、バグを報告して再テストします。並行して、実際に動作するテストコードを実装し、テストコードを実行し、テストコード自体をデバッグすることができます。製品モジュールとテストコードが修正されると、自動化されたリグレッションテスト環境が得られます。実行ログはSpec-Report形式に変換できます。主な結果は、OK、NG、MANUAL、SKIP、EXCLUDEDです。MANUAL は、手動でテストする必要があることを表します。SKIP は、テスト項目が何らかの理由でスキップされたことを表します。EXCLUDED は、そのテスト項目がセッションの範囲外であることを表します。このように、自動テストと手動テストの両方のテスト仕様とテスト結果が 1 つの MS-Excel ワークシートに統合されているため、テスト結果を簡単に集計することができます。

テンプレートコード生成(移行用)

既存の手動テストの仕様を Shirates のテストコードに移行する場合、ゼロから記述することもできますが、テンプレートコード ジェネレータを使用することもできます。テンプレートコードジェネレータは、Spec-Report 形式で記述された MS-Excel ワークシートを、シナリオ、ケース、条件、アクション、ターゲット、期待値のような構造的な関数呼び出しに変換し、Kotlin で JUnit 5 テストコードを出力します。それ以外の手順や記述はmanual関数として出力されます。manual関数を実際に動作する関数に置き換えることで、テストコードを動作させることができます。

Index

自動テストツールShiratesに関するブログ(Index) - waveさんの技術日誌