はじめに
Next Design カスタマーサクセスチームの田島です。
Next Desgin に興味を持たれた方々の中には、「設計情報をデジタル化する嬉しさはわかった。けれど、それを活用するための手段となるエクステンション開発は難しそう。」と尻込みしている方も多いのではないでしょう。今回はそんな方に向けて、エクステンション開発が意外と簡単にできてしまうことを、具体例を交えてご紹介しようと思います。
よくある作業
テスト設計の場面で仕様通りに動作することを確認するような定型的なテストケースを作成することはよくあると思います。一例としてGUIアプリケーション開発の場合を考えてみましょう。
次のようにアプリケーションのUI仕様としてボタン操作に対する動作が定義されています。
画面イメージ
操作仕様
画面要素 | 操作 | 動作 |
---|---|---|
ログインボタン | 押下 | アカウント認証を行い認証されればスタートアップ画面が表示される。 |
キャンセルボタン | 押下 | 画面を閉じてアプリケーションを終了する。 |
これに対するテスト設計では、ボタン操作による動作結果が仕様通りかを確認するために、テストケースを機械的に作成することがあるでしょう。 Next Design では、テスト設計の入力であるUI仕様がモデル化されておりAPIで操作できます。そのため定型的なテストケースを機械的に作成する作業は簡単に自動化できます。 そのようなエクステンションの具体例をメタモデルと対応づけて紹介します。
メタモデル
次の図は先のUI仕様とテスト仕様を表すメタモデルの例です。
画面要素を操作時の動作を表す [操作仕様] と、その仕様を確認するための [テストテストケース] があり、それらが導出関連で結ばれています。
エクステンション
実装方法
エクステンションの処理は Next Design 標準搭載のスクリプトエディタで作成・実行しながら実装できます。 拡張コンテンツとしてプレビュー公開している ”ScriptEditor”(標準搭載のスクリプトエディタの機能 強化版)を利用すれば、強力なインテリセンス機能でAPIも簡単に見つけられます。
処理の流れ
次の流れで操作仕様からテストケースを自動作成します。
- UI仕様からUI部品の操作仕様を抽出します。
- 操作仕様に基づいてテストケースを作成します。
- 操作仕様とテストケース間にトレース関連を結びます。
実装コード
ここでは API の使い方を掴んでもらえるよう、実装コードの一部をピックアップして説明します。
実装コードの全体は こちら からご参照ください。
操作仕様の抽出
まずは、UI画面モデルの中からテストケース作成の入力となる操作仕様モデルを特定します。それには、操作仕様モデルを表すモデルのクラス名: OperationSpec
を条件に、API : IModel.FindChildrenByClass() メソッドを使用して該当モデルを抽 出します。
// UI画面の中からUI部品の操作仕様を抽出します。
var operationModels = uiWindow.FindChildrenByClass("OperationSpec", recursive: true);
...
テストケースの作成
次に、抽出した操作仕様モデルに対するテストケースモデルを新規追加します。それには、API : IModel.AddNewModel() メソッドを使用します。AddNewModel() メソッドの第1引数にはテストケースモデルを保持する「テストケース」フィールドのフィールド名:TestCases
を、第2引数にはテストケースモデルのクラス名:TestCase
を指定します。
新規追加されたモデルは名前も未設定の初期状態のため、API : IModel.SetField() メソッドを使用して名前を設定します。SetField() メソッドの第1引数には「名前」フィールドのフィールド名:Name
を、第2引数にはそのフィールドに設定する値を指定します。
同様に、テストケースの期待値も SetField() メソッドを使用して設定します。
// 操作仕様に対応したテストケースを作成します。
var testCaseModel = testGroupModel.AddNewModel("TestCases", "TestCase");
...
testCaseModel.SetField("Name", testCaseLabel);
testCaseModel.SetField("ExpectedValue", expectedValue);
操作仕様とテストケースの関連付け
そして、操作仕様モデルとテストケースモデル間のトレーサビリティを確保するために、入力となっている操作仕様モデルと自動作成したテストケースモデルを関連付けます。前述のメタモデルを見てみると、操作仕様クラスとテストケースクラスの間には導出関連が定義されています。テストケースクラス側からは「操作仕様」フィールドのフィールド名:input_OperationSpec
でその関連を辿ることができます。
メタモデルのクラス間で関連性が定義済みのモデルを互いに関連付けるには、API : IModel.Relate() メソッドを使用します。Relate() メソッドの第1引数にはテストケースクラスの「操作仕様」フィールドのフィールド名:input_OperationSpec
を、第2引数には関連付ける相手先の操作仕様モデルを指定します。
// 操作仕様とテストケース間にトレース関連(導出関連)を結びます。
testCaseModel.Relate("input_OperationSpec", operationModel);
実行結果
UI画面中の操作仕様に対して定型的なテストケースが漏れなく自動作成されます。
操作仕様とテストケース間の関連(トレース情報)もエクステンションで追加されます。
<実行前>
<実行後>
まとめ
今回はエクステンション開発のイメージを掴んでもらうために、具体例としてテストケースの自動作成を取り上げてご紹介しました。 Next Design で提供されている豊富なAPIを利用すれば、エクステンションによる既存資産のインポートや現場固有のルールに沿った整合チェックなども実現できます。
エクステンション開発のチュートリアルやAPI利用の How To などを掲載したエクステンション開発マニュアルも公開しております。エクステンション開発の詳細についてはそれらをご参照ください。
Next Design を90日間無料でお試しいただける評価版もご用意しております。ぜひこちらからお申し込みください。