HOME > 開発者向けBLOG > Sencha >  Sencha Test 一般公開版リリースのお知らせ

Technology Note 開発者向けBLOG

Sencha

Sencha Test 一般公開版リリースのお知らせ

こんにちは、ゼノフィseoです。

この記事は、US Sencha社ブログSencha Test is Now Generally Available (2016年2月17日|Subu Baskaran) を翻訳したものです。

Sencha Test チームを代表して、Sencha Test が正式にリリースできたことを誇りに思っております。Sencha Test は既存のお客様と新規の Ext JS を扱うお客様が水準の高いアプリケーションをリリースするための手助けとなる新製品です。Sencha Test を使えば、1つの包括的なソリューションを使うだけでクロスブラウザやクロスプラットホームテストを行うことができます。我々はオープンソース技術やインハウスのテスト専門家を集め、ソフトウェアのリリースサイクルを劇的に削減するであろう、この素晴らしいソリューションを作り上げました。ここで一度、我々のコミュニティに、たくさんのサポートやフィードバックをいただけたことに関し感謝を申し上げたいと思って居ります。

実際に動くところを見てください

なぜ Sencha Test を作ったか

ウェブやモバイルアプリケーションを作るためにExt JS と Sencha Touch を使うお客様は、テストの自動化などのニーズに応えてくれる包括的なテストソリューションを待ち望んでいました。ここ10年でウェブアプリ開発は大きな変化を遂げていますし、テスティングも同じ変化を遂げています。様々なオープンソースなものもあれば、売られているソリューションも市場にはあります。しかし、どこにも Ext JS が提供する様々な個別のコンポーネントを持ったものは存在しません。お客様はオープンソースのソリューションを寄せ集めてテストフレームワークを作り、大きくなれば管理が非常に大変なものとなってしまっています。テストはアプリケーションの開発ライフサイクルの中では、アーリーなステージで行われなければならないものです – より良いテストを書くことに時間を割くべきであり、複雑なサードパーティーテストフレームワークの作成や管理には時間をかけるべきではありません。

Sencha Test がどのように貴方をサポートするか

Sencha Test はJasmine や Istanbul などを含む業界をリードするオープンソーステストフレームワークを、Sencha が作成したコンポーネントと統合することで、1つの包括的なソリューションとなりました。お客様は初期設定なしで、ユニットとエンドツーエンド機能テストを Sencha Test を使って行うことができます。シームレスな統合により、外部ライブラリとの非互換性だったり統合問題などに頭を悩ませるのではなく、純粋に良いテストを書くことに時間を割けるようになりました。開発者やテストオートメーションエンジニアにとって Ext JS コンポーネント用のテストを書くのは非常に簡単な作業となります。Sencha Test を使えば 15分以内でテストを実行できるようになっているでしょう。

Sencha Test がなにを提供してくれるか

ソフトウェア組織は伝統的でもあったコード優先、テストは後回しにするモデルを諦め始め、よりモダンなアプローチを導入し始めています。例えば Test Driven 開発フィロソフィーでは、開発者先にテストをリクワイアメンツに合わせて作り、そのテストをパスするようなコードを後から作成します。こういった変化は産業自体がテストをプライマリーなフォーカスとして認識していて、製品開発ライフサイクルの早い段階でテストを導入する仕組みが出来上がりつつあります。

ユニットテストはソフトウェア開発チームが最初に行うテストアクティビティーとなります。Ext JS コードを書く開発者は、それと並行したユニットテストを作り、開発した機能のコアファンクションを認証します。Sencha Test を使えば、Ext JS 開発者は最小限のユニットを隔離し、テストを作成し、統合されたコードがリクワイアメンツに対してテストされます。

エンドツーエンドテストはウェブアプリケーションテストのもう一つの大事な部分でもあります。隔離されたテストはその一部分のコードが期待通りに動作するかを確かめることができますが、その機能はアプリケーションの他の部分であったり、ランダムなミスを投げてくるブラウザとの相性によって動作しない場合もあります。Sencha Test を使えばテストオートメーションエンジニアや開発者は JavaScript コードを DOM レベルでエンドツーエンドテストを書くことが可能になります。このレベルのテストはコードがアプリケーションの他の部分と上手くマージできたことを保証し、ブラウザ内で正常に動作することを保証します。

Sencha Test の製品概観

Sencha Test Product Overview

Sencha Test はローカルなワークスペースを使用し、既存の Ext JS 開発プロジェクトとそのテスト* をインポートするか、もしくは新しいワークスペースを作成し、ソースコードにアクセスすることなく Ext JS アプリケーション用にエンドツーエンドテストを書く2通りがあります。

Sencha Test の GUI アプリケーションセンターピースでもある Sencha Studio はローカルブラウザを探知し、モバイル端末、バーチャルマシン、ブラウザファームなどで動作するように簡単に設定することができます。シンプルでありながら強力であるインタラクティブテストランナーでは、開発者が1つ以上の設定されたブラウザで並行してテストを行うことができます。

(*記: Sencha Test は Jasmine 2.4.1を実行します。Jasmine 2.0 とそれ以上を使って作られた既存のテストは Sencha Test にインポートして使用することが可能です。もし問題などあればフォーラムに投稿よろしくお願いいたします。)

Sencha Test Studio

また、Sencha Test はコマンドラインインターフェース(CLI)も提供していて、これは 無人な CI(Continious Integration)環境でのテストの自動化のためにあります。キャプチャリングとは別に、CLI は Jenkins や TeamCity などのツールを使ってアウトプッとしたり、CLI はテスト結果を Sencha Test アーカイブサーバーにアップロードして、後ほど Serncha Studio でレビューすることなどもできます。こういった無人実行と強力なレビューツールにより回帰分析時の生産性は非常に高まります。

Sencha Studio と CLI 両方の中のテストランナーはブラウザとアプリケーションサーバー間のプロクシとなり、どのページもテストする権限を与えることができます。CLI 内のテストランナーは WebDriver を使ってブラウザを起動し、このプロクシに案内します。WebDriver を使えば、開発者はインハウスのブラウザリソース(カスタムハブを経由して)に接続したり、サードパーティーのブラウザファーム(Sauce Labs を含む)に接続したりと柔軟に対応することができます。

Sencha Studio も WebDriver に対応していますが、それとは別にカスタムハブを使ってローカルにインストールされたブラウザを起動することもできます。この機能により、開発者はテストラン中にアプリケーションコードをデバッグしたり、テストけーししたり、両方をブラウザ内で行うことができるようになります。また、開発者は他のブラウザを(例えば仮想マシンだったりモバイル端末であったり)Sencha Studio プロクシで指し示したりすることができます。これらの追加されたブラウザは Sencha Studio インタラクティブテストランナーでリスト化され、他のローカルブラウザと同じように使用することが可能となります。

Sencha Test は 「Futures API」と呼ばれるテスト開発用の新しい強力な API を提供しています。Futures API を使えば、開発者とテストオートメーションエンジニアはExt JS コンポーネントや生のエレメントと相互作用するコンパクトで表現豊かなテストを書くことができるようになります。例えば、以下のコードをご覧下さい:

    ST.grid('#mygrid').
        rowWith('firstName', 'Bill').cell('lastName').
            reveal().
            textLike('Preston');

上記のコードはグリッドを選択し(Component Query セレクターを使用して)、その後に行を選択します。これはフィールドをカラムid を与えられたセルとマッチされることでです。結果のセルは表示され(そこにスクロールされ)求められたコンテンツであるかチェックされます。

Sencha Test は完全に統合されたテスト環境であり、簡単に扱え、かつ包括てきなソリューションを提供します。

Sencha Test コンポーネント

最小限の労力でユニットとエンドツーエンドテストを行うことができる4つの大きなコンポーネントが Sencha Test にはあります。

Sencha Test Components

Test Authoring: Studio

  • ビルトインのテキストエディターを使ってJavaScript(Jasmine)でユニットと機能テストを書くことができます。
  • 強力な Sencha Test Futures API を使ってコンパクトで表現豊かなテストを書くことで、Ext JS コンポーネントと DOM エレメントと関わることは非常に簡単になります。
  • Event Recorder を活用することで、アプリケーションのUIとインタラクトするために必要なコードを最小限にとどめることができます。
  • 様々なロケーター戦略を使うことで、ダイナミックなアプリケーションでも、今まで一番強力なテストを作成することができます。
  • 既存のソースコントロールメカニズムを使用して、テストをストアし、設定に合わせて IDE と Studio 間を切り替えましょう。

Test Execution: Test Runner

  • 選択されたテストをどんな、もしくは全てのローカルマシンもしくはリモート仮想マシンのブラウザで実行する。
  • Sauce Labs、BrowserStack、WebDriver hub などのブラウザファームとの統合により、テストを同時に複数のブラウザで行うことができるようになり、それによりテスト時間を大幅に削減することができます。
  • 瞬時にマニュアルテストの結果をレビュー。
  • テストを並行して行うことで、特定のテストからのフィードバックの時間を削減できます。
  • Istanbul(Test と統合されています)を使うことで、コードカバレージオプションを使ったテストを実行し、テストが行われていない部分のコードを探しましょう。

Test Automation: Command Line Interface

  • コマンドラインからテストを実行するか、エンドツーエンドプロセスを CI システムを使って自動化し、既存のテストを実行時のマニュアルタスクを最小化する。
  • 何百、何千というテストを最小限の時間で実行できます。これは Sencha Test が CI 環境と相性が良いからです。
  • CLI と CI を効果的に使うことで、テストを使うための既存のIDE を活用できます。

Results Archiving: Test Archiver

  • CLI と CIによって行われたテスト結果をストアし、履歴トレンドを理解しましょう。
  • アーカイブサーバー内にストアされたテスト結果に基づき、現在のテストランとヒストリカルランのためにStudio 内の失敗したテストと詳細のロールアップサマリーを手に入れる。
  • Studio を使ってアーカイブサーバーにストアされている結果を取得し、マトリックス形式で解析することができます。
  • アクセスコントロールを使って正しい情報が正しい人に共有されているかを確かめる。
  • アーカイブされたスクリーンキャプチャを比較することで、ビジュアルスクリーン比較テストを自動化できます。

対応しているブラウザとプラットホーム

Browser Desktop (PCs & Laptops)
Browser Mobile (Tablets & Smartphones)
Test Framework Integrations
Supported Sencha Applications
Test Automation Integrations
Internet Explorer 8+ IE 10+ on Windows Phone 8+ Jasmine 2.4.1 Ext JS 4.2+ Browser Farm – Sauce Labs+
Microsoft Edge Chrome / Stock Browser on Android 4+ Istanbul 0.4.1 Sencha Touch 2.0+ Continuous Integration – Team City, Jenkins
Chrome Safari iOS 6+
Firefox
Safari 6+
Opera 15+

大きな感謝

コミュニティの皆様への感謝をもう一度述べたいと思います。皆様からの提案、フィードバック、バグレポートのおかげで今回のリリースのゴールに到達させることができました。我々は Sencha Test を簡略化するために全力を注いだのでぜひお試しください。我々は皆様が長期にわたって管理し、維持できる複雑なテストの作成をお手伝いしたいと思っております。

30日間無料トライアルをダウンロードし、皆様の体験とフィードバックをフォーラムに共有してください。入門価格を活用して – 私たちのウェブストアにアクセスしてください。

PAGETOP