ローコード開発アプローチでより良いアプリを構築

オプションから、 DevOps 最近ではほとんどの企業にとって必需品になりつつあります。 DevOps 企業は、さまざまな部門横断的なチーム間でシームレスに連携し、機能を迅速に提供し、リリースの失敗を減らしながら、コアとなるリソースを最適化できます。 DevOps 革命、IT、ビジネス、開発、品質の各チームは、同じ方向を向いて取り組むべきです。ローコード開発は、技術系と非技術系の両方のメンバーが協力してソフトウェア開発プロジェクトに取り組み、変化するITニーズに対応できる新しいアプローチです。

ローコード開発の概要

ローコード開発とは、モデル駆動型ロジックによって拡張されたビジュアルユーザーインターフェースを用いて、開発者が手作業でアプリを開発する必要なく、迅速にソフトウェアを構築できる新しいソフトウェア開発手法です。ユーザーは、あらかじめ用意されたテンプレートやコードスニペットを用いて、ドラッグ&ドロップでコードを記述できます。この手法は、開発プロセスを迅速化するだけでなく、プログラミングスキルの異なる人々がシームレスに連携し、コード開発に貢献することを可能にします。

ローコード開発の進化

0と1を扱うアセンブリ言語から、現在の読みやすいコーディング言語に至るまで、ソフトウェア開発は長い道のりを歩んできました。当初は、アセンブリ言語がコンピュータプログラムの記述に使用されていました。これらのプログラムはコンピュータにとっては理解しやすいものでしたが、開発者にとっては0と1を含む2進コーディングシステムを扱う必要があったため、非常に複雑なものでした。

1950年代には、COBOLやFORTRANといったアセンブリ言語がソフトウェアの世界を席巻していました。これらの言語は、システムのアーキテクチャやハードウェアと密接に連携していました。1960年代には、COBOLの拡張であるSNOBOLが導入されました。1970年代後半にはC言語が導入され、非常に人気を博しました。70年代末には、C言語にオブジェクト指向プログラミングシステム(OOPS)が追加されました。また、この時期にSQLが登場し、ユーザーがデータを管理できるようになりました。

1980年代には、FoxProとMATLABが人気を博しました。FoxProはDBMSを扱うのに対し、MATLABはアルゴリズムと可視化に使用されました。1990年代から2000年代にかけては、Java、Python、PHP、Rubyといった人気言語が登場しました。JavaScriptはJavaを拡張してUI要素を管理しました。2000年代に入ると、Webおよびデスクトップアプリ開発においてC#の人気が高まりました。その後、GoやRushといった言語が続きました。2000年代のモバイルデバイスの普及に伴い、Android OSではKotlinが人気を博し、iOS分野ではSwiftが主流となりました。

ハードウェア関連のアセンブリ言語からユーザー中心のプログラミング言語への移行の理由は、コーディングの複雑さを軽減し、コードをクリーンにして、パフォーマンスと生産性を向上させるためです。

アセンブリ言語で書かれたプログラムは複雑なコードを含み、開発者にとって理解するのが困難でした。例えば、アセンブリ言語で書かれた単純な加算プログラムを見てみましょう。

同じコードは Java ではさらにシンプルになります。

プログラミング言語の影響

現在のプログラミング言語は、過去の言語の影響を受けています。例えば、最も人気のある言語であるJavaは、C++とSmalltalkからインスピレーションを得ています。興味深いことに、SmalltalkとC++はどちらもSimulaの影響を受けています。ただし、C++はC言語の拡張です。CとPascalはAlgol 68の影響を受けており、Algol 68は実際にはAlgol 60の影響を受けています。PascalはModulaに影響を与え、MLはHaskellに影響を与えました。

プログラミング言語が成功する理由は何でしょうか?

プログラミング言語が成功するには、問題を解決できることが不可欠です。例えば、C言語は効率的なシステムプログラミング機能を備えていますが、JavaScriptはブラウザ内で動作します。さらに、生産性とパフォーマンスも重要な要件です。インタプリタとコンパイラを備えた優れた環境、影響力のあるデザイナー、そしてセキュリティが求められます。言うまでもなく、移植性も人気の要因です。

コードの視覚化

コーディングを簡素化する方法として、開発者はフローチャートを使用してコードを視覚化するなどのコードレス開発手法を試しました。

2000 年に、Mercury はコードの視覚化を簡素化するキーボード ビュー モデルを導入しました。

「古い」コードレス方式が失敗したのはなぜですか?

従来のコードレス方式はコードの理解を容易にしましたが、複雑さを軽減することはありませんでした。コードロジックが複雑になると、視覚的なプレゼンテーションも複雑になりました。コードのスケーリングとリファクタリングも課題でした。優れたバージョン管理システムやその他のコラボレーションツールの欠如も、失敗の一因となりました。

ビヘイビア駆動開発

ビヘイビア駆動開発(BDD)は、コードとコードレスの手法を組み合わせて開発プロセスを簡素化する、もう1つの代替アプローチです。Cucumberは人気のBDDツールです。

この方法では、シナリオごとにユーザー ストーリーが作成され、そのシナリオのコード スニペットが記述され、各ユーザー ストーリーが特定のコード スニペットにマッピングされます。

この方法には 3 つの主なコンポーネントがあります。

  • 機能 高レベルの説明を使用して特定の機能について説明します
  • シナリオ 動作仕様を例と正式な手順に変換する
  • 実行可能仕様 Given、When、Thenのアジャイル構文について話す

例えば、あなたが パフォーマンスのテスト デモアプリのログイン機能:Eribankアプリケーション

開発者以外の人は、次のように機能のシナリオを作成します。

  1. @シナリオを追加
  2. シナリオ: Eribank アプリケーションにログイン
  3. 与えられたもの: 入力資格情報
  4. ログインボタンをクリックすると
  5. ログインを確認してください

次に、テスト自動化エンジニアは、プログラミング言語を使用して各アクションのコードを作成し、各アクションを対応するコード スニペットにマッピングします。

モデルベースのテスト

テスト自動化プロジェクトで最高のカバレッジを実現するには、要件の理解と分析が鍵となります。要件収集のための自動化システムがなければ、初期のテスト自動化フェーズは非効率なものになります。モデルベーステストはこれらの課題を解決し、最小限のテストケースでテスト自動化を最大限に活用できるようにします。

モデルベーステストは、ソフトウェア開発ライフサイクルの重要な部分です。このアプローチでは、システムの挙動を捉えるモデルが作成されます。モデルはテスト戦略や環境を記述し、テストケースを生成し、テストの品質を評価します。

まず、テスト対象のシステムの動作を捉えるモデルが作成されます。次に、モデルベースツールがこの動作を分析・解釈し、手動および自動のテストスクリプトを作成します。

MBTアプローチの課題は、モデルの作成と維持にあります。モデルのマッピングも作成する必要があります。例えば、ログイン機能のモデルを作成する場合、次の画面に遷移するためのロジックも作成する必要があります。同様に、変更点も特定する必要があります。

Digital.ai Continuous Testing ローコード開発プラットフォームとの統合

Digital.ai Continuous Testing は、さまざまな地域にあるさまざまなデバイスやブラウザで多様なテストケースを実行できる包括的なクラウドテスト自動化プラットフォームです。 Digital.ai Continuous Testing ローコード開発プラットフォームを統合してモデルベーステストを実行できます

Digital.ai Continuous Testing テスト自動化クラウド プラットフォームは、AI のパワーと人間の入力を組み合わせることで、モデルベースのテストの課題を解決する人工知能 (AI) ボットを提供します。

デモはこちら

ログインすると Digital.ai Continuous Testing アカウントにログインし、[デバイス] をクリックすると、テストに使用できるデバイスの一覧が表示されます。

次に、デバイスをクリックします。

アプリにアクセスし、デモ用銀行アプリケーションERIBANKをインストールします。

アプリをインストールしたら、アプリケーションを起動します。

ログイン ボタンをクリックすると、ユーザー名とパスワードの入力を求めるエラー メッセージが表示されます。

ユーザー名とパスワードを入力すると、次の画面に進みます。


したがって、ユーザー名とパスワードがなければ、ここでテストするものはあまりありません。そのため、より多くのテストを実行する方法を見つける必要があります。

Digital.ai Continuous Testing AI ボット アプリケーションがそのお手伝いをします。

そこで、AI アプリケーション ページを開き、新しいプロジェクトの作成をクリックします。

プロジェクト名を入力し、「次へ」をクリックします。

次の画面で、アプリケーションを選択する必要があります。

アプリをアップロードするか、クラウド リポジトリから選択して、「プロジェクトの作成」をクリックすることができます。

次に、「探索を開始」をクリックします。AIボットがアプリケーションの探索を開始します。

次の画面で、探索の名前を入力し、探索に使用するデバイスを選択します。このデモでは、4つのデバイスが選択されています。

さて、探検が始まりました。

に行くとき Digital.ai Continuous Testing ダッシュボードでデバイスをクリックすると、4 台のデバイスがテストを実行していることがわかります。

次に、AIボットのページに移動し、「ゲート」をクリックします。ボットがすでにゲートを識別していることがわかります。

ロック解除をクリックすると、ゲートの詳細を確認できます。ここではログイン画面が表示されており、ログイン画面のロックを解除するにはあなたの協力が必要です。

この情報を提供する方法は2つあります。Appium/Seleniumコードを使用してコードスニペットを記述するか、以下の手順でユーザー認証情報をこの小さなフォームに入力してください。

  • ユーザー名=>会社名
  • パスワード=>会社名
  • ログイン=>

次に、「保存」をクリックします。

これで、ゲートのロックが解除されたことがわかります。

次に、「探索」タブに移動し、探索名をクリックします。探索アクティビティがグラフ形式で表示されます。

ボットは情報を取得し、探索を続けます。ユーザーの認証情報を入力すると、ログイン画面を通過し、次の画面に進みます。他のワーカーはこれらの情報を取得し、アプリケーション上で様々なテストアクティビティを実行し、テスト時間を分担します。

ここでは、各デバイスが異なる画面と機能をチェックする異なるテストを実行していることがわかります。

ここで探索のグラフィカル ビューを確認すると、複数のアクティビティを含む大きなグラフが表示されます。


ゲートタブを確認すると、さらに多くのゲートが識別されていることがわかります。(例: MakePaymentActivity、MortageRequestOneActivity)

たとえば、「ロック解除」をクリックして、支払いを行うための情報を入力します。
電話番号=>111
名前=>男
金額=>100
選択=>インド=>
送信=>

「保存」をクリックします。これで、ボットはこの情報を使用して支払いゲートのロックを解除し、さらなる調査を実行します。

次に、「保存」をクリックします。

新しいゲートがロック解除されたことがわかります。探索のグラフ表示を確認すると、グラフが拡張されていることがわかります。

GUIビューでは、画面間の接続とアプリケーション機能の背後にあるロジックをすべて確認できます。また、様々なユースケースにおける実行分析も収集されます。

AIボットのユースケースをテストする 

このモデルベースのAIテスト自動化アプローチは、いくつかの課題を解決します。重要な課題は次のとおりです。

手動および自動化ヘルパー 
アプリケーションナビゲーションヘルパー機能を使用すると、アプリケーションを目的の状態で起動できます。つまり、アプリケーションの任意の画面から起動できます。同様に、オートメーションヘルパーを使用すると、アプリケーションの任意の画面のUIツリービュー(ダンプ)を取得できます。例えば、Appium開発者であれば、モデル全体がここに保存されているため、XPath要素を簡単に見つけることができます。

アプリのクラッシュ識別 
このAIアプリケーションには、アプリクラッシュ識別テストが付属しています。モデルをスケールアップし、バージョン、メーカー、画面サイズ、解像度が異なる数千台のデバイスでテストを実行すると、アプリのクラッシュや異常を特定できます。また、スモークテストも実行できます。

アプリケーションの洞察 
探索が完了すると、ツールはテスト分析も提供します。

ここでは、テストに関するいくつかのインサイトを確認できます。例えば、全体的なUXスコアの概要が表示されます。さらに、パフォーマンスの異常値も表示されます。

このデモでは、

  • バージョン 2.14 ではログインが遅くなります。
  • iOS 14.1 では送金画面の動作が異なります。

もう 1 つの洞察は、バージョン 2.34 で新しいアクティビティが識別されることです。そのため、テスト対象のアプリの画面の変更が自動的に識別されます。

自動化ヘルパー 
Appiumをご利用の場合、このツールを使用すると、モデル内の任意の場所に移動し、その領域からコードを実行できます。これにより、Appiumのナビゲーションコードを大幅に削減し、コード量を削減し、結果としてコードの複雑さも軽減できます。さらに、XPathリスナー機能を使用することで、予期しないポップアップやイベントを効率的に処理できます。

製品概要

モデルベーステストのアプローチを最大限に活用しながら課題を解消するには、 Digital.ai Continuous Testing AIを活用したモデルベーステストツールが統合されています。このアプローチでは、AIボットと人間が協力してテスト自動化プロジェクト用のモデルを構築します。アプリケーションの自律的な探索と高速なアプリケーショングラフ作成により、テストエンジニアはモデル上で自動テストを迅速に生成・実行し、テスト結果を分析できます。探索の大部分はAIボットが行いますが、ログイン画面などの特定のゲートのロックを解除するには人間の支援が必要です。

このローコード開発アプローチを使用して、より優れたアプリケーションをより速く構築しましょう。

詳しくはフル動画をご覧ください ローコード開発のウェブキャストはこちら.

お勧めの関連ガジェット