メインコンテンツまでスキップ

「技術コラム」タグの記事が2件あります

全てのタグを見る

· 約8分
田島 慶一

はじめに

Next Design カスタマーサクセスチームの田島です。

Next Desgin に興味を持たれた方々の中には、「設計情報をデジタル化する嬉しさはわかった。けれど、それを活用するための手段となるエクステンション開発は難しそう。」と尻込みしている方も多いのではないでしょう。今回はそんな方に向けて、エクステンション開発が意外と簡単にできてしまうことを、具体例を交えてご紹介しようと思います。

よくある作業

テスト設計の場面で仕様通りに動作することを確認するような定型的なテストケースを作成することはよくあると思います。一例としてGUIアプリケーション開発の場合を考えてみましょう。

次のようにアプリケーションのUI仕様としてボタン操作に対する動作が定義されています。

画面イメージ

ログイン画面イメージ

操作仕様

画面要素操作動作
ログインボタン押下アカウント認証を行い認証されればスタートアップ画面が表示される。
キャンセルボタン押下画面を閉じてアプリケーションを終了する。

これに対するテスト設計では、ボタン操作による動作結果が仕様通りかを確認するために、テストケースを機械的に作成することがあるでしょう。 Next Design では、テスト設計の入力であるUI仕様がモデル化されておりAPIで操作できます。そのため定型的なテストケースを機械的に作成する作業は簡単に自動化できます。 そのようなエクステンションの具体例をメタモデルと対応づけて紹介します。

メタモデル

次の図は先のUI仕様とテスト仕様を表すメタモデルの例です。

メタモデル

画面要素を操作時の動作を表す [操作仕様] と、その仕様を確認するための [テストテストケース] があり、それらが導出関連で結ばれています。

エクステンション

実装方法

エクステンションの処理は Next Design 標準搭載のスクリプトエディタで作成・実行しながら実装できます。 拡張コンテンツとしてプレビュー公開している ”ScriptEditor”(標準搭載のスクリプトエディタの機能強化版)を利用すれば、強力なインテリセンス機能でAPIも簡単に見つけられます。

ScriptEditor

処理の流れ

次の流れで操作仕様からテストケースを自動作成します。

  1. UI仕様からUI部品の操作仕様を抽出します。
  2. 操作仕様に基づいてテストケースを作成します。
  3. 操作仕様とテストケース間にトレース関連を結びます。

実装コード

ここでは 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画面中の操作仕様に対して定型的なテストケースが漏れなく自動作成されます。
操作仕様とテストケース間の関連(トレース情報)もエクステンションで追加されます。

<実行前>

入力となったUI仕様

<実行後>

自動生成されたテストケース

まとめ

今回はエクステンション開発のイメージを掴んでもらうために、具体例としてテストケースの自動作成を取り上げてご紹介しました。 Next Design で提供されている豊富なAPIを利用すれば、エクステンションによる既存資産のインポートや現場固有のルールに沿った整合チェックなども実現できます。

エクステンション開発のチュートリアルやAPI利用の How To などを掲載したエクステンション開発マニュアルも公開しております。エクステンション開発の詳細についてはそれらをご参照ください。
Next Design を90日間無料でお試しいただける評価版もご用意しております。ぜひこちらからお申し込みください。

· 約8分
平田 昌宏
前提知識
  • メタモデリング

はじめに

Next Design サポートチームの平田です。

さて、突然ですが、トレーサビリティ情報って効果的に使えていますか自信を持って使えていると言える方は、なかなか多くないのではないでしょうか。

ここでは、Next Design のトレーサビリティに対する考え方を、主な効果の1つであるトレーサビリティ情報を利用した設計変更点の影響範囲の特定について、例を交えてご紹介します。

トレーサビリティについての現状

ソフトウェア開発におけるトレーサビリティは、システムやソフトウェアの設計・開発過程を可視化し、品質を保証するためのものです。 ソフトウェアが大規模・複雑化している昨今、品質確保のためにトレーサビリティの重要性はより大きくなっています。

トレーサビリティの主な効果として次の3つが挙げられます。

  1. 設計・検証の抜け漏れ確認による不具合予防
  2. 設計変更や不具合改修時の影響範囲特定
  3. 安全に対する説明責任履行

いずれも開発者にメリットがある効果ばかりですが、実際の開発現場では次のようなアンチパターンが起こっていることがしばしばあります。

  • トレースのために設計 +α の工数を要するため、トレース自体がされていない(後回しになっている)
  • 多数の成果物を跨いでトレース情報を集める必要があり、影響範囲が見える化できずに利用が上手くできない

アンチパターン解消へのアプローチ

Next Design では、ツールの持つ特性や、開発した機能から、前述のアンチパターンを解消するために次のようにアプローチしています。

  • トレースのために設計 +α の工数を要するため、トレース自体がされていない(後回しになっている)

Next Design のコンセプトの一つに、設計のデジタル化とデータの一元管理があります。 そこで、一元化した設計データ間で簡単に関連を結べるようにすることで、1つ目のアンチパターンの解消を試みています。

  • 多数の成果物を跨いでトレース情報を集める必要があり、影響範囲が見える化されず、利用が上手くできない

Next Design のコンセプトの一つに、1つの設計情報に対して複数のビューを切り替えて設定でき、用途に応じて表示できるというものがあります。 そこで、関連を一覧視可能なビューを提供することで、2つ目のアンチパターンの解消を試みています。

以降、解決方法を Next Design の実際の操作を交えて、紹介していきます。

一元化した設計データ間で簡単に関連を結べるようにする

Next Design では、設計情報のデジタル化のために、設計データの構造をメタモデリングします。 設計要素に対して関連を引けるようにメタモデリングすることで、設計要素間にトレース関係を結べるようになります。

メタモデル

まず、メタモデルとして設計要素を定義して要素間に関連(トレース関係)を定義します。
実際の操作は、次の通りです。

メタモデル

次に、このメタモデルを基にインスタンスとなるモデルを作成してトレース関係を追加します。
実際の操作では、トレース元とトレース先のモデルを、それぞれビューに表示して、トレース元からトレース先へドラッグ&ドロップすることで、モデルの作成とともにトレースが取れます。

トレース

ご覧いただいたように設計とトレース設定の操作が一体となっているので、コストを理由としたトレースの不足(後回し)というアンチパターンは解消できます。

関連を一覧視可能なビューを提供する

上記で設定したトレース関係の見える化のために、専用のトレースビューを提供しています。 次のように、ツリー形式やマトリクス形式での表示ができます。

トレースビュー

また、ツリー形式ではトレース関係のある要素を複数並べることで、要求とテストなど設計を介して間接的にトレースされている要素まで見れるようになっています。

間接トレース

こちらについても、ご覧いただいたようなトレースが見える化され、影響範囲の特定が容易なため、利用が上手くできないといった2つ目のアンチパターンも解消できます。

まとめ

Next Design のトレーサビリティに対する考え方を、「設計変更点の影響範囲の特定」というユースケースを交えてご紹介させていただきました。 開発チームでもご紹介の方法でトレースを取ることで、設計変更の影響範囲だけでなく入出力情報の確認などに利用しています。

既にご利用の方は、本機能についても是非お試しください。
また、本内容についてより詳細なセミナーなども開催しております。ご要望の際は お問い合わせフォーム からご連絡ください。

未利用の方でご興味を持たれた方は、こちら から評価版ソフトのお申し込みもできますので、お気軽にお問い合わせください。