社内業務に関するシステムを一元化して運用・管理できるクラウドサービス「ServiceNow」。
株式会社KYOSOでは、これまでの豊富な運用経験をもとに、ServiceNowの企画立案から運用・保守、内製化までトータルでサポートしています。
このブログでは、ServiceNowの自動テストを実行および作成するためのツール「Automated Test Framework(以下、ATFと呼ぶ)」について紹介しています。
情報量が多く一見難しそうに感じるATFですが、実は意外とシンプルで、ATFをマスターすることにより様々なメリットが得られます。
そこで今回、ATFに関する情報をシンプルにブログにまとめてみましたので、皆さんのATF学習やプラットフォームでの活用に少しでも役立てていただけますと幸いです。
ATFとは?
機能の概要
ATFは、ServiceNowの非本番インスタンスにて使用される再利用可能な自動テストを実行および作成するためのツールです。ベースシステムとカスタムアプリケーションの両方をテストすることができます。
ATFを使用するメリット
1.生産性の向上
- ATFはほとんどの手動テストケースに対応している為、自動テストへの置き換えによりインスタンスの検証に必要な時間が削減できます。
- クイックスタートテストの使用と自動テストの再利用可能性により、テストの作成時間自体を短縮できます。
2.高い利便性
- ATFはノーコード、ローコードのソリューションを対象としているため、プログラミング経験が少ないユーザーも簡単にテストが設計できます。
- テストをテストスイートと呼ばれるひとまとまりの単位に整理し、スケジューリングして実行できます。
- デフォルトで標準的なテストステップ構成が豊富に用意されています。しかし、テスト管理者による追加のカスタムテストステップ構成により、さらにテスト範囲を拡大することができます。
- テストの実行後には変更が自動的にロールバックされる為、インスタンスが常にクリーンな状態に保たれます。
3.テスト精度の向上
- 手動テストの削減により、ユーザーエラーを回避することができます。
プラグインの有効化
デフォルトでは、テストが誤って実行されることを防ぐ為に、自動テストを実行するプロパティは無効になっています。そのため、自動テストの実行にはプロパティを有効化する必要があります。
※データの破損やインスタンスのパフォーマンス低下を避ける為には、テストは開発、テスト、およびその他の非本番インスタンスでのみ実行しましょう。
STEP 1.
非本番インスタンスにアクセスし、フィルターナビゲーターより[Automated Test Framework] > [Administration] > [Properties] を選択してATFプロパティに移動します。
STEP 2.
次の①と②のプロパティチェックボックスをオンに設定し、有効化します。
①Enable test/ test suite execution.
(テストとテストスイートを非本番インスタンス上でオンデマンドで実行できます。)
②Enable scheduled test suite execution.
(非本番インスタンスにて、テストスイートをオンデマンドで実行するだけでなく、スケジュール設定し実行できるようになります。 )
ATF操作の為に必要なロール
ATF操作の為に必要な3つのロールについて解説します。
1.テストデザイナー(atf_test_designer)
すべての重要なカスタマイズに対して、 ATF テストを作成する必要があるため、ほとんどのアプリケーション開発者がこのロールにアサインされます。そのため、atf_test_designerは最も一般的なATFロールです。
テストデザイナーは以下の操作を実行できます:
- 既存のテストステップ構成を使用した、テストへのテストステップの追加
(テスト管理者のみがカスタムテストステップ構成を作成できます) - テストとテストスイートを実行する
- テスト結果を表示する
- ATF システムプロパティを表示する
- テストスイートまたはテストの作成、編集、削除
必要なコーディングスキル: ローコードまたはノーコード
2.テスト管理者(atf_test_admin)
ATFシステムプロパティの設定、テスト結果保護ポリシーの定義、カスタムテストステップ構成の作成を行います。
カスタムテストステップ構成はスクリプトを使用して作成する必要があるため、テスト管理者には高度なコーディングスキルが求められます。
テスト管理者は、テストデザイナーの全操作に加え、次の操作を実行できます:
- ATF システムプロパティを編集する
- カスタムテストステップ構成を作成する
必要なコーディングスキル: プロコード
3.Webサービステスター(atf_ws_designer)
Web サービステスターは、Web サービステストを構築します。 このロールは、テスト開発を促進するために必要な Web サービスモジュールへのアクセスを提供します。 一般的に、Web サービステストは REST 統合を使いますが、 SOAP のようなテクノロジーをスクリプティングで使うこともできます。 必要な Web サービステスターの数は、実装される Web サービスインテグレーションのカスタマイズの量によって異なります。
Web サービスインテグレーションではスクリプトの使用が必要となる場合があるため、Web サービステスターには高度なコーディング経験が必要です。
Now Learning – Automated Test Framework Essentialsコースより
Web サービステスターは、テストデザイナーの全操作に加え、次の操作が実行できます:
- Web サービステストの構築
必要なコーディングスキル: プロコード
ATFの要素
ATFは大別して、テストスイート、テスト、テストステップの3つの要素で構成されています。以下ではそれぞれの構成要素について詳しく紹介していきます。
1.テストスイート
1 つ以上のテストまたは他のテストスイートのグループを表します。 テストスイートの下に子テストスイートやテストを配置し、任意のレベルの階層構造にすることができます。ただし、1 つのテストスイートに対して割り当てられる親テストスイートは 1 つのみです。また、テストスイートはスケジューリングして実行することが可能です。
※テストスイートの作成:
フィルターナビゲーターから、[Automated Test Framework] > [Suites]を選択し、 [New]ボタンをクリックします。手動またはフィルター機能によりテストスイートに動的にテストを追加することができます。テストのほかに子テストスイートを追加する事も可能です。
※テストスイートのスケジューリング設定:
フィルターナビゲーターより[Automated Test Framework] > [Schedules]に移動します。[New]ボタンからテストスイートの実行をスケジューリングすることができます。
2.テスト
ATFテストは、期待される最終結果を検証するための一連のアクションとアサーションを表します。 テスト内の各アクションまたはアサーションは、個別のテストステップによって構成されます。 1 つのテストには制限なくテストステップを追加できますが、小規模で焦点を絞ったテストを作成する方が適しています。
テストの作成には2種類の方法があり、必要に応じて選択することができます。
①クイックスタートテストをコピーして構成する
※クイックスタートテストの詳細についてはServiceNow公式ドキュメント – クイックスタートテストをご参照ください。
②ゼロからテストを作成する
3.テストステップ
ユーザーの代理操作、フォームを開く動作、フォームを送信する動作など、テスト内の単一のアクションまたはアサーションを表します。 各タイプのテストステップは、アクションまたはアサーションの動作と特性に応じて分類される「テストステップ構成」を使用して作成されます。テスト管理者はサーバー側のアクションとアサーションに対してのみ使用できるカスタムテストステップ構成を作成することができます。
↓テストステップ構成の例
↓テストステップとテストステップ構成の関係図
テストランナーの3つのオプション
ATFテストまたはテストスイートの実行場所を、以下の3つのテストランナーオプションから選択することができます。
1.Cloud Runner
Cloud Runner はTokyoのファミリーバージョンより登場した最新のテストランナーです。 ローカルマシンではなく、ServiceNow のクラウドサーバーインフラストラクチャで ATF テストを実行します。Cloud Runner を使用することにより、テストやテストスイートがバックグラウンドで実行されます。そのため、テスト実行中に他の作業に取り掛かることが可能です。一方で、政府機関などの機密性の高い情報を扱う組織には適さない場合があります。
2.クライアントテストランナー
Now Platform ユーザーインターフェース内のクライアント側のテストステップを実行するブラウザタブです。テストデータが組織のファイアーウォール外に出せない場合や、テストの実行を段階的に確認しながらトラブルシューティングを行う場合に適しています。また、特定のブラウザでのクライアントテストにも効果的です。
3.ヘッドレスブラウザー(GUIを必要としないブラウザのこと)
ATFユーザーインターフェーステストを処理するブラウザの作成を自動化することで、テスト中にブラウザを手動で開く手順がスキップされます。
各テストランナーにはそれぞれ、使用に最適なタイミングがあります。以下の画像よりご確認ください。
※〇印がついている箇所=適している場合
テスト結果の管理と保護
時間の経過とともにインスタンスに蓄積されていくテスト結果を適切に管理し、インスタンスをクリーンな状態に保つ必要があります。ATFでは以下に示す3つの方法によりテスト結果を管理することが可能です。
1.テスト結果を本番環境にインポートする
テスト結果の一部またはすべてを本番環境にインポートして保持できます。非本番環境から本番環境へのテスト結果のインポートを行う際には、インポートセットの使用が推奨されます。
※インポートセットに関する詳細情報はServiceNow製品ドキュメント – Import Setsをご参照ください。
2.準本番環境にテスト結果を保持する
テスト結果の一部、またはすべてを準本番インスタンスに保持する場合、インスタンスのクローン作成時に結果が上書きされないよう、データプリザーバーの作成が推奨されます。
※データプリザーバーの詳細については、ServiceNow製品ドキュメント – クローン作製ターゲットインスタンスのデータ保持をご参照ください。
3.テストを自動的に削除する
デフォルトでは、ATFデータ保護ポリシーにより、テストとテストスイート結果の作成後から30日後に自動的にレコードが削除されます。ATFデータ保護ポリシーは必要に応じてカスタマイズすることも可能です。また、長期間保管する必要があるテスト結果レコードは、フラグを設定することによりATFデータ保護ポリシーによる自動削除を回避できます。
さいごに
ATFの活用により、効率アップ、エラーの削減など、たくさんのメリットがあるということを実感して頂けましたでしょうか。このブログを通じてATFの基礎を理解し、より一層、ATF知識を深めることに役立てていただけましたら幸いです。
最後まで閲覧いただき、ありがとうございました。
あなたにとって有益な情報を提供できたのであれば、大変嬉しく思います。
参考文献
- ServiceNow – Now Learning “Automated Test Framework(ATF) Essentials[日本語]“
- ATFを使用したアプリのテスト(ServiceNow製品ドキュメント Vancouver)
- Automated Test Framework | Overview (YouTube)
投稿者プロフィール
- 2023年6月からServiceNowに関する学習を開始しました。
保有資格
・ServiceNow Certified System Administrator
・ServiceNow Certified Application Developer
・ServiceNow Certified Implementation Specialist - IT Service Management