MendixAppFactoryでの品質の実装
AppFactoryとは何かを理解するとき、”マルチ “という言葉を思い浮かべてください。AppFactoryとは、ビジネスの複数の部分をまとめて、多数のプロジェクトを生み出すために設計された、多角的な開発機能です。
中央集権的であろうとなかろうと、AppFactoryにはいくつかの共通項があります。すべての AppFactory が取り組む必要のある主な共通点の 1 つは、品質保証です。QAチームは、ビジネスユニットや分野に関係なく、すべてのプロジェクトが組織のコンプライアンス、ブランディング、パフォーマンス基準を満たすことを保証します。
QAをどのようにAppFactoryに導入すればよいか、ご不明な点はありませんか?私たちの本を参考にしてください。Mendixでは、自社でMx AppFactoryを運営しています。ここでは、私たちがどのようにQAに取り組んでいるかをご紹介します。
Mx AppFactoryとは何ですか?
Mx AppFactoryは、Mendixを使用してMendix用のアプリケーションを構築するMendixの内部ユニットです。その結果、MendixとSiemens内のさまざまな部門や利害関係者のために多数のプロジェクトに取り組んでいる学際的な開発チームがあります。
品質チームについて
品質チームは、MxAppFactoryチームの成果物の品質を向上させるのに役立つクロスファンクショナルアクセラレータです。2020年12月に開始されたチームは、1人のメンバーから4人の品質専門家のチームに成長しました。チームは、「品質はチーム全体の責任である」という明確な声明で工場ラインにアプローチします。テストエンジニアは、品質の専門家 として、チームの品質活動を指導および推進します。
私たちの使命
AppFactoryチームがクラス最高のソフトウェアを提供し、Mendixと顧客の品質のアンバサダーになることを可能にします。
私たちの使命をどのように推進するか
以下のホイールを使用して、AppFactoryラインに沿った品質を確保します。
品質評価
新規プロジェクトの準備として、構築する製品の技術的・機能的な側面を理解する必要があります。次に、収集した情報を使ってプロジェクトを評価し、プロジェクトに必要な品質活動を導き出します。このようなプロジェクトを評価するために、私たちは簡単なチェックリストを定義し、各チームがそれを記入できるようにしました。この回答は、プロジェクトのニーズとスコープに応じたものになります。
評価チェックリストの重点分野:
- アプリケーションを使用するエンドユーザー/ペルソナ
- プロジェクトの期間
- ドメインとテクノロジーに関するチームの知識
- プロジェクトに関連する技術的側面
- アプリケーションで処理されるデータの種類と品質
- アプリケーションの非機能的側面(例:パフォーマンス、セキュリティなど)
- すべてのプロジェクトに共通する一般的な品質関連の活動
評価結果は文書化され、プロジェクトの次の段階で使用されます。
品質戦略
評価の結果、以下の側面をカバーする高レベルの品質戦略が定義されます。
- プロジェクトの品質専門家から必要なサポート
- テスト中に考慮されるペルソナ
- 必要なテストの種類(API / Web /ネイティブ)
- コードの品質、セキュリティの脆弱性、その他の側面をチェックするためのツール
- 必要なテスト自動化の取り組み
- 必要なデータ品質チェック
- 非機能テスト(例:パフォーマンス、セキュリティテストなど)が必要
- 必要な一般的なテスト作業
この品質戦略は、プロジェクトのライフサイクル中に進化する生きたドキュメントです。
コード品質ツール
定義された戦略に基づいて、ツールを使用してコードの品質を監視および検証します。品質の専門家は、これらのツールのセットアップと実装を容易にします。
以下は、主に使用するツールです。
- ACR –Mendixプロジェクト用の自動コードレビューツール
- Snyk –既知の脆弱性と考えられるライセンス上の警告についてMendixプロジェクトの依存関係(サードパーティライブラリ)をスキャンするためのツール
- Veracode –リスクと脆弱性を特定するためにMendixコードをスキャンするためのツール
テストエンジニアリング
品質戦略の一環として、必要なテストの種類とレベルも定義されています。この入力により、品質の専門家は、開発サイクル中のさまざまなテスト活動の設定と推進を支援します。
ストーリーの定義と開発中
- ストーリーのテストの容易性を検証し、テスターノートを追加するためのストーリーの改良
- チームによって開発された単体テストのレビュー
- ストーリーの受け入れ基準のレビューと検証(一部のチームは、参照用にJira X-Rayでテストも管理しています)
- ストーリーを完了に移動する前に、完了アイテムの定義が閉じていることを確認する
リリース前の検証
このフェーズで実行されるアクティビティは次のとおりです。
- リリースに追加されたすべての機能がエンドツーエンドで機能しているを検証する
- 既存の機能が影響を受けていないことを検証する(回帰テスト)
- プロジェクトの要件に従って、非機能テスト(パフォーマンス、侵入テストなどを含む)を実装する
- リリースの完了の定義が満たされていることを確認する
リリース後の検証と本番モニタリング
チームは本番環境でいくつかのテストを設定し、展開後にアプリケーションを検証できるようにします。検証タスクには次のものが含まれます。
- リリースに追加された新機能の検証は、展開後に機能する
- アプリケーションのコア機能が期待どおりに機能していることを検証するためのサンプルスモークテスト
さらに、監視を設定して以下を確認できます。
- アプリケーションの使用法
- アプリケーションのパフォーマンス
- アプリケーションの品質
- アプリケーションのビジネス価値
テスト自動化
テストの自動化は、プロジェクトのニーズに基づいて行われます。
- REST APIを含むアプリケーションの場合、ストーリーの開発中にテストが自動化される
- APIを使用しないアプリケーションの場合、コア機能テストはUIレベルで自動化されます。これは、アプリケーションのUIが手動でテストされ、安定している(大きな変更は計画されていない)場合にのみ推奨される
すべての自動化テストは、ビットバケットパイプラインで実行されます。
テスト自動化に使用するツール/フレームワークは次のとおりです。
- APIテスト自動化のPostman
- Web(UIレベル)テスト自動化のためのロボットフレームワーク
進捗状況の追跡
品質活動の進捗状況は、ダッシュボードで追跡および監視されます。
ベストプラクティス
Mendixおよびその他のアプリケーションのテストからチームメンバーが得た経験に基づいて、ベストプラクティスが定義され、文書化されています。
ドキュメントで言及されているいくつかの重要な領域は次のとおりです。
- 品質に対するチームの考え方
- さまざまなテストタイプ
- Mendixアプリケーションの分岐およびテスト戦略
- テスト自動化のベストプラクティス
継続的改善
私たちはチームとして、回顧と詳細なセッションを実行することにより、継続的な改善を信じています。Mendix内の他の部門と頻繁に同期して、作業方法に関するアイデアを理解および交換し、AppFactoryに最適なものを適応させています。
課題
上記の実装にも課題があります:
- 品質チームのメンバーは、従来のテストエンジニアではなく品質の専門家であるという考え方を変えました。
- チーム全体に「質の高い考え方」を浸透させます。
- ローコード以外のバックグラウンドから来た品質の専門家は、チームにより良いサポートを提供するためにMendixアプリケーションがどのように開発されているかを理解する必要がありました。
- テストまたはテスト自動化の経験がないチームにテスト自動化を実装します。
重要なポイント
これまでの経験からのいくつかの重要なポイント:
- チームのプロセスと現在の品質活動を理解することから始めます。(すべてのチームに1つあります)
- 製品の品質はチームの責任です。
- チームの専門知識と作業方法に応じてツールを選択してください。
- ストーリーとリリースプロセスの完了の定義に質の高いアクティビティを追加します。
- 最後になりますが、非常に重要なのは、品質を設定することです。そのためには忍耐が必要です。
翻訳元:https://www.mendix.com/blog/implementing-quality-in-the-mendix-appfactory/