Technical Capabilities Tech Blog

#機能紹介 GXtestワークショップ(1日目)

2023年08月10日

こんにちは、植田です。

先日、GeneXus Japanさんのご厚意でGXTestのワークショップを実施して頂き、
非常に有意義なお時間を頂戴いたしましたので、その時に気が付いた事を記事にしていきたいと思います。

GXTestとは

参考:GeneXus Wiki【GXtest v4】

Wikiの冒頭にもあるように、GXtestはGeneXus ベースのアプリケーション用のテスト自動化ソリューションです。
つまり、GeneXusで生成したアプリケーションに対し、テストの自動化を行えることになります。
しかも、Docker 対応コンテナで行われ、Jenkins などの CI/CD サーバーで実行できるように設計されているため、環境を選ばずに実施できるところが強みともいえそうですね。

今回のワークショップの内容

今回のワークショップではHandsOnによる実践形式となっており、以下の内容を実施して頂きました。

  • ユニットテスト機能の実装(プロシージャオブジェクトのテスト用として)
  • DBモッキングの方法、実践

その中で個人的に気づいた点について簡単ではありますがあげていきたいと思います。

ユニットテスト機能について気づいた事

GeneXusで生成したアプリケーションのテストを自動化するための1つの方法として
UnitTestオブジェクトによる実装方法があります。

参考:Unit Testオブジェクト

この記事では詳しい実装方法まではお伝えしませんが、少し驚いた点として、
作成したプロシージャオブジェクトから簡単にUnitetestオブジェクトや部品が生成できる
ことでした。
自動テストとはいっても、「どのようなデータを使って、どのようなテストをするのか」
に関しては手動による定義が必要です。ですのでテストのために必要なオブジェクトを1から定義していくのは
それなりの手間がかかります。
今回のワークショップでそれが簡単に(右クリックメニューで可能)できることは正直驚きました。
生成されるものとして、

  • UnitTestオブジェクト ※チェック内容のサンプルコードも自動生成

 

  • DataProviderオブジェクト ※テストデータの定義、こちらもサンプルテストデータを自動生成

 

  • SDTオブジェクト ※テストデータの受け皿

これらが全て自動生成されます。
テスト対象ごとにゼロから定義することを考えれば相当な工数削減になっていると思います!

DBモッキング機能

GeneXusには、DBモッキング機能が存在します。(※要GXtestライセンス)
DBモッキングにより、ある時点のテストデータの状態を保存しておくことができます。

DBモッキングによる利点として

  • レギュレーションテストにおいて、同じデータで反復的にテストが可能

という点が挙げられると思います。
プログラムへの紐づけも行えますので、ファイルをまとめて保管したい場合は活用の場面が増えると思います。

まとめ

今回のGXtestワークショップでは主にプロシージャオブジェクトに対するテスト自動化についてご教示頂きました。

現在私が携わっている案件の中でも中々触れる機会のない機能でしたが、こちらの方もバージョンアップに従い
様々な進化をしていることが実感できました。

貴重なお時間を頂きワークショップを開催して頂きましたGeneXus Japanスタッフ様に感謝申し上げます。

最後までご覧いただきありがとうございました!

Tech Blog一覧