テスト自動化と品質保証
1 テストの自動化と品質保証として使用できるMendixツールは何ですか?
Mendixプラットフォームは、効率的なテスト自動化による品質保証のための広範なツールセットと拡張を提供します。
Mendixアプリは、Mendixによって事前にテストされている標準コンポーネントから構築されます。これらのコンポーネントの上に構築するカスタムアプリケーションモデルは、Mendix Studio Pro によって継続的に整合性チェックされます。開発の初期段階で一般的なモデリングの間違いや問題を見つけることが目的です。
詳細については、以下の「Mendixはアプリの品質をどのように保証していますか?」を参照してください。
Mendix Application Quality Monitor(AQM)は、構築中のアプリケーションモデルの品質に関する情報を提供します。ダッシュボードは高いレベルの詳細を提供し、 Microflow レベルまでドリルダウンできます。
詳細については、品質監視の「品質監視Mendixアプリに使用できるツール」セクションを参照してください。
Mendixでは標準コンポーネントを使用して複雑なビジネスロジックを開発することができます。アプリケーションのビジネスロジックをテストするには、自動化された単体テストと機能受け入れテストを組み合わせて、アプリのテストスイートを作成することができます。
詳細については、「Mendixアプリの単体テストを行う方法」および「Mendixは機能テスト用にどのようなツールを提供していますか?」を参照してください。
Mendixでサードパーティのテストツールとサービスを使用することも可能です。
Mendixが提供する全てのテストツールは、CI/CDパイプラインに簡単に統合することができます。
2 Mendixはどのようにアプリの品質を保証しますか?
Mendixでは、他のほとんどのソフトウェア開発プラットフォームや言語よりも抽象化してアプリケーションの機能が定義されています。これにより、Mendixプラットフォームが自動チェックを実行できるため、不具合の可能性やテスト作業が減少します。
Mendixは、主に次の3つの方法で品質を保障します。
- アプリケーションモデル内での整合性の実施
- アプリケーションモデルの整合性のとれた展開
- Mendix標準コンポーネントのテスト
Mendixプラットフォームが不具合やコストのかかるミスの可能性を減らす方法は他にもありますが、この主な方法は、何をテストして何をテストしないかの理解を深めるのに役立ちます。
これら3つの主な方法について、以下で詳しく説明します。
2.1 アプリケーションモデル内での整合性の実施
Mendix Studio Pro は、アプリケーションモデル全体が内部的に整合性が保たれているかを継続的に監視します。たとえば、定義した Microflow Activity や Page の要素は、 Domain Model と整合性がとれている必要があります。Mendix Studio Pro はエラーを表示し、エラーが発生したアプリケーションのデプロイを防ぎます。
詳細については、モデルの整合性を参照してください。
2.2 アプリケーションモデルの整合性のとれた展開
アプリケーションが起動されると、Mendixプラットフォームは、実際のデータベースの構造がアプリケーションモデルで定義された Domain Model と一致しているか確認します。 Domain Model 内の整合性も保証されているため(上記参照)、デプロイされるデータベース構造は、アプリケーションの全てのデータ構造と一致しています。
たとえば、アプリケーションのテキストボックスには、データモデルの対応する文字列属性だけでなく、基になるSQLデータベースの対応する文字列(同等)フィールドと一致します。
つまり、開発者はMendixアプリケーションでコミットされたデータが実際のSQLデータベースで正しく保存されるかテストする必要がないということです。
2.3 Mendix標準コンポーネントのテスト
Mendixをアプリ構築ツールキットとして想定する場合、ツールはMendixが宣伝する通り機能することに安心することができます。Mendixの品質保証チームは、Mendix標準コンポーネントが意図したとおりに機能するか厳密にテストし、プラットフォームのリリース全体でもテストします。
たとえば、ある最大長の文字列属性に接続されたテキストボックスは、この長さを超える値を受け入れることはありません。
つまり、Mendixコンポーネントをテストするだけでなく、独自のロジックもテスト対象とすることを保証しています。そのため、あなたはツールをテストする必要はありません。ツールで構築したモデルだけをテストする必要があります。
3 Mendixアプリの単体テストを行うにはどうすればよいですか?
Mendixプラットフォームは、単体テストの実装をサポートしています。これらのテストは、 Microflow とMendix Marketplace から入手可能なUnitTestingモジュールを使用して構築します。アプリケーションでビルドが実行されるたびに、またはスケジュールされた時間にテストが実行されます。
4 機能テストとしてMendixが提供するツールは何ですか?
Mendixプラットフォームを使用すると、User Story に対する機能テストを自動化し、テストの総コストをプロジェクト予算の10%未満に削減することができます。Mendix Application Test Suite(ATS)は、アプリケーションライフサイクルにテストを埋め込むためのツールスイートを提供します。これらのツールは、Seleniumベースで構築されています。
ATSはMendixプラットフォームに統合されており、すべての User Story を表示し、それらに対してテストケースを作成することができます。テストケースを作成するためにSeleniumやテストフレームワークの知識は必要ありません。ブラウザから必要なSeleniumスクリプトを生成します。
BrowserstackやSaucelabsを使用して、さまざまなブラウザや複数のデバイスに対してテストケースを実行することもできます。
5 Mendixはサードパーティのテストツールをどのようにサポートしますか?
Mendixプラットフォームは、オープンで拡張可能なツールセットを提供し、いくつかのサードパーティテストツールで拡張できます。Mendixは、SeleniumやJUnitテストフレームワークをサポートしています。他のサードパーティテストツールを使用したテストスイートを構築するMendixのお客様もいます。
6 どうすれば User Story とテストケースをモデルリビジョンにリンクできますか?
アプリケーションに変更を Commit する際に、どの User Story に対する変更か選択できます。その情報はリビジョン情報とともに保存され、監査プロセスで将来使用するために Team Server に保管されます。これはテストのプロセスで役立ちます。
User Story はATSと同期することができ、テスターは各 User Story に対して特定の機能テストケースを作成できます。このプロセスにより、CI/CDパイプライン内の機能テストを自動化することができます。
この方法の詳細については、ATS Guide の How to Link Test Cases & Test Suites to User Stories を参照してください。
ユーザー・ストーリーに取り込まれた要件に対するアプリケーション・モデルの変更のトレーサビリティの詳細については、「バージョン管理とマルチユーザー開発」の「ユーザー・ストーリーとアプリケーション変更コミットの相互参照方法」のセクションを参照してください。
翻訳元:https://www.mendix.com/evaluation-guide/app-lifecycle/test-automation-qa