Mais conteúdo relacionado
Semelhante a STAC2022 ローコード開発におけるテストピラミッド考察 (20)
STAC2022 ローコード開発におけるテストピラミッド考察
- 1. © NEC Corporation 2022
ローコード開発におけるテストピラミッドの考察
2022年12月03日
日本電気株式会社
坂下 聡
ソフトウェアテスト自動化カンファレンス2022
- 4. © NEC Corporation 2022
4
自己紹介
坂下 聡(さかした さとし)
日本電気株式会社
ソフトウェア&システムエンジニアリング統括部
スペシャリスト
テストソリューション、テスト自動化推進担当
◆ 経歴
◼ 1993年入社
◼ システムコンサルティングやインフラ構築、テスト
自動化ツールの開発や導入を経て、現在はテスト
全般のソリューション提供とテスト自動化技術の
普及活動を担当
- 5. © NEC Corporation 2022
5
ローコード開発について
今回はアジャイル開発でのテストについて考察
要件
定義
従来の開発 詳細
設計
コーディング
& 単体テスト
要件定義
&設計
基本
設計
結合
テスト
総合
テスト
ローコード
開発
(工数イメージ)
結合
テスト
総合
テスト
基本的には同じ
自動生成に
より短縮
モデル適用に
より一体的
短期に繰返すことで
精度向上が可能
◼ アジャイル型
リリース
要件定義
~総合テスト
リリース
要件定義
~総合テスト
リリース
要件定義
~総合テスト
…
開発スタイルは
大きく2パターン
基本的には従来と同じ
◼ WF型(プロトタイプ開発)
結合
テスト
総合
テスト
…
要件定義
~単体テスト
リリース
➢ UI開発をイテレーティブに実施
➢ UI開発後は通常のWFと同様
次ページ以降では、下記の表現とします
単体テスト=Unit Tests
結合テスト=Integration Tests
総合テスト=System Tests
- 6. © NEC Corporation 2022
6
(参考)今回利用したローコード開発ツール Mendixについて
各種コンポーネントを活用したブロックプログラミングで作らない開発をサポート
アプリケーションの要件定義から実装までを高速化し、リリースサイクルを大幅に短縮
UMLベースでオブジェクト、属性、関連を定義し
データ設計
アプリのページ構成や表示項目・ボタン等を配置
UI部品を再利用できるUI設計
フローチャート形式のビジネスロジック設計と
カスタムコードによる拡張に対応
•設計要素であるモデルを解釈して
アプリケーションを実行します。
•フローチャートで表現できない処理や、
既存の非Mendix部品の組み込みは、
サーバ側はJavaで、クライアント側は
JavaScriptで記述し、それぞれ
マイクロフロー、ナノフローから
呼び出します。
ユーザインターフェース (ページ)
アプリケーションロジック
(マイクロフロー・ナノフロー)
データ構造 (ドメインモデル)
• ウィジェット
• コネクタ
• モジュール
• デザイン
• アプリサンプル
要件定義・設計・実装の
スピードアップ
Marketplace
- 7. © NEC Corporation 2022
7
テストピラミッド
◆ 一般的に知られているテストピラミッド
https://martinfowler.com/articles/practical-test-pyramid.html
Mike Cohn氏によって広く知られるようになったピラミッド
https://alisterbscott.com/kb/testing-pyramids/
Alister B Scott氏 Testing Cloud
- 8. © NEC Corporation 2022
8
ローコード開発で想定するテストピラミッド
◆ ローコード開発の特性を考慮してテスト
対象を考える
◼ 標準部品は品質が担保され、セキュリティも
確保されたユニットになっている
◼ 上記を考慮にいれると、Unit Testingは減
少するのではないか
◼ ビジネスロジック部分の確認が中心になるが、
Integration TestsとSystem Testsは
スクラッチ開発と同じではないか
変化なし
減る
Unit Tests
Integration Tests
System Tests
テスト項目数
コスト(面積)
- 9. © NEC Corporation 2022
9
ローコード開発でのテスト実績からみたテストピラミッド(実績値n=1)
◆ 想定どおりUnit Testsは減少
フェーズ スクラッチ開発 ローコード開発(測定値) ローコード開発(期待)
System Tests 3,086 3,086 3,086
Integration Tests 4,425 4,425 4,425
Unit Tests 5,351 3,859 1,575
※今回はテスト項目の1項目におけるコストはすべて同じという前提とする
- 10. © NEC Corporation 2022
10
想定したテストピラミッドと比較してみる
◆ 突き詰めていけば、いつかは期待どおりのピラミッドになるときがくるかも
Unit Tests
Integration Tests
System Tests
想定 実測値 期待
Integration Tests
System Tests
Unit Tests
Integration Tests
System Tests
Unit Tests
- 11. © NEC Corporation 2022
11
◆ ローコード開発プラットフォームで自動生成された対象に対し、 Unit Testsは実施
しなくていい。設定の変更による動作検証はIntegration Tests以降で実施する。
◼ 例えば、一覧表を作成した際に、標準の並び替え機能のテストは標準外の設定(連動して別の機能を
呼ぶなど)をしない限りは実施しません。
◆ Unit Testsとして実施するテスト項目はスクラッチ開発と変わらないが、標準部品
で品質担保されている部分は個別にはテスト実施不要。ただ、正しく標準部品の設定
がされているかをレビューで確認することはきわめて重要。
◆ ローコード開発プラットフォーム自身や標準部品、業務機能といった区別において責
任分担(製品、標準化、業務開発プロジェクトなど)を明確にすることが、テスト対象を
明確にすることにつながり無駄なテスト排除につながる。
ローコード開発の特性に合わせてテスト項目を抽出することを考えよう
テストピラミッドから考えるローコード開発でのテスト
- 12. © NEC Corporation 2022
12
(参考)クラウドコンピューティングの進化と新たな責任共有モデル
(参考)09 | 2月 | 2021 | CSAジャパンブログページ (cloudsecurityalliance.jp)
Low-Code-as-a-Service(LCaaS)
- 13. © NEC Corporation 2022
13
◆ 現在はサンプル数が少ないので、ローコード開発が増えてくるころに再度考察。
◆ ローコード開発を始めるPJには、まず下記の点を啓蒙していく。
◼ ローコード開発プラットフォームでは、提供している標準部品は品質を担保しているので、標準提供
部品のテストはしなくていいという責任共有部分が存在する。
◼ ローコード開発プラットフォームの利用者としては、テスト対象が標準部品の設定・標準部品をつな
ぐためのフローの確認・ビジネスロジックの確認を中心にテスト対象として考えていく。
実績値を集計しながら、ローコード開発でのテストを考えていく
今後に向けて