3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Now Assist for Test Creation使ってみた - ServiceNow

Posted at

ATFもAIでつくろう!Now Assist for Test Creation最速レビュー

今回はServiceNowのYokohamaリリースから利用できるようになった「Now Assist for Test Creation」について、ありがたいことに社内で使える環境が整ったこともあり、(自称)最速レビューしていこうと思います。英語の公式の動画と公式(?)のコミュニティ記事はありますが、日本語記事で使ってみた系の記事は見つけてないので、最速を名乗ってみようと思います。

前提として、すでにある公式の英語のYoutube動画とコミュニティ記事はインプットしていただけると、本記事でより理解していただけると思います。

Speed Up Your ATF Tests with Now Assist for Test Creation! -Youtube
AI-Powered ATF Testing: How Now Assist for Test Creation Saves Developers Time

上記動画や記事で紹介されている基本的な考え方や流れは見た頂いたうえでという前提で、本記事では割愛させていただきます。
動画は英語ですが、デモンストレーション中心なので流れの把握は流し見でできると思います。

ビジネス課題と背景

私自身、1月から参画した新しいプロジェクトでATF導入の動きがあり、そこで初めてATFに触れました。
ServiceNow歴4.5年ほどの中で当然存在は知っていたし、ずっとある機能なのでメリットはあるだろうなと思いつつも、どうしてもATFを作る工数やメンテナンスの工数が、自動化されることで上回る価値を出せるのかというところや、そもそも作成がモノによってはとっつきにくかったりと、ATF導入を諦めた経験が以前もありました。
ただ、導入したATF自体はそこそこ効果を出しており、「作成のハードルさえ超えてしまえば、夜間実行で異常検知する/リグレッションテストの負荷を下げる」などのメリットは享受できると体感しております。

そんな中で出会ったのがこのYokohamaリリースによるNow Assist for Test Creationで、最後のまとめに書きますが個人的に良い将来の可能性を感じている機能ということもあり、検証と記載に至ります。

前置きが長くなりましたが、さっそく「使ってみた」の内容に入っていきましょう。

環境の前提

ServiceNowのバージョンはYokohama(Patch3)以降で、Test Generationアプリ(App id: sn_text2test)のVer2.1.0が必要です。
※詳細は割愛しますが、YokohamaPatch1かつTest GenerationアプリVer2.1.0より前のものでも機能は存在しますが、ATF生成エラーとなり進めません。PRBに上がった不具合が解消され、上記バージョンから利用可能になっています。

上記の前提をそろえると、
フィルターナビゲーターからAutomated Test Framework (ATF)>Tests
の画面(sys_atf_testテーブル)に、「Create with Now Assist」のUIアクションが出現します。
image.png

「Create with Now Assist」ボタンを押した後の画面
image.png
右側の入力欄に、プロンプトを入力し、右下の「Generate test preview」をクリックすると生成処理と生成が終わったATFのプレビュー画面に遷移します。

英語の壁を越えよう+基本編

英語の壁を越えよう

めっちゃ簡単に説明すると、「生成AIに指示するように書いてほしいテストのシナリオを入力すればATFを生成してくれる」という機能なので、そんなに詳しい手順の解説は要らないと思ってます。
ただ、この機能は現在(2025/06/24時点)で英語限定です。英語の入力しか受け付けてくれません。

英語ができる方は思いのままに動画の12:08~の、プロンプト作成のベストプラクティスを参考に英語でテストシナリオの文章を記載して生成してみると話が早いです。問題は英検4級の私です。

といいつつ、昨今の技術を応用すれば翻訳も簡単ですね。
私の場合は、生成AIのカスタム指示に
・あらかじめ動画で言及されてるプロンプトのプラクティス
・日本語→英語への文章翻訳
を記載して、日本語でストーリーを書くと英語で出力してくれるプロジェクトを構築しました
今回私はChatGPT(モデル4o)で作成しましたが、他の生成AIでも大差ないと思います。

こんな感じ
image.png

(もし、同じように試してみたい方が居たら以下をコピペして使ってください)
(そしてもっといい書き方がったら是非教えてください)

このプロジェクトは、ServiceNowのNow Assist for Test CreationでATFを作成するためのプロンプト文(Test Pronpt)を作成する際の指示です。
入力は日本語チャットで指示しますが、出力は以下の要領で英語で実施してください。
<出力要領>
・英語のプレーンテキスト(装飾無し)
・箇条書き禁止
・前後のチャットの文脈を含まない
・内部ではJSON形式でデータを受け渡すため、JSONの妨げになる文字列は使わない
・以下に記載の<Good Test Pronpt 1>や<Good Test Pronpt 2>のテイストに倣って自然な文章とする。

<Good Test Pronpt 1>
Write a test to create a new user with name
Isaac Newton, assign the role "itil". 
Create a new incident record, update the short description to
"my new test record", validate the record description. Update caller to Isaac Newton,
impact and urgency categories to "2- Medium" and submit the record. Delete the record and
create a log for the deletion.

<Good Test Pronpt 2>
Write an ATF test, named 'incident record test',impersonate admin, create a new incident record,
then update the record short description to 'test update field from example', delete the record,
then log a message 'record deleted'

<Key points to consider for good test case prompts 1>
1.A clearly defined user role is recommended.
2.Clarification is needed regarding the new user's status (whether to create or impersonate).
3.Further details always help to clarify how the record is handled using the provided name.
4.Always specify how the caller field should be updated.
5.A clearly stated category value is recommended to improve clarity.

<Key points to consider for good test case prompts 2>
1.Always ensure that it is clear whether the model is to establish a new user or take on the identity of an existing one.
2.It is advisable to provide more information about how the name for the description should be defined.
3.Clearly indicating where the name for the description starts would improve understanding.

このカスタム指示をセットした状態で、日本語でプロンプトを入力します。
今回は例として、シナリオ内でテストユーザーを作成し、インシデントを起票する流れで実施します。
image.png

出力された英語文章をコピーして、ServiceNowへの入力プロンプトにします。
ServiceNowの画面に戻りいざATF生成をしてみましょう。

基本編

前述の英語のプロンプトを入力欄に貼り付け、「Generate test preview」をクリックすると生成が始まります。
この量であれば1分もかからない処理時間でした。
image.png

生成されたプレビューがこちら
image.png

Callerがemptyになってしまっている以外は想定通りですね!
emptyになってしまう対処は後述しますが、これだけ自動で作ってくれるのであれば、
1度セーブしてあとからこの部分だけ手動で設定しても効率は良くなると思います。

プレビューで問題ないことを確認したら、ここで「Save and open test」をクリックします。
このボタンで、sys_atf_testテーブルに生成したATFが保存されます。

Save後はATFのレコード画面に遷移します。上部にNowAssistで生成された旨の注釈も表示されてますね。
image.png

こっから先は通常のATFと同じです。Run Testボタンからテスト実行など、思いのままにテストしましょう。

現時点の制約(?)応用小技

Reference型フィールドの値を取得するにはプロンプト側をsysidにせよ

見出しで結論言っちゃってますが、先ほど基本編でCallerフィールドが空になっていた件、現時点の検証での回避策は、「プロンプトに参照先の対象レコードのsysidを入力せよ」になります。
検証中、なんでだろうな~と思ってふと気づいて、やってみたらうまくいった形です。

image.png
プロンプトの「abel.tuter」を「abel.tuterのsysid(sys_userテーブル)」に変更したらうまく生成できた例

テストでよく使うReferenceのsysidは覚えておきましょう

項目が多いとsysid入力するとめんどくさいし、それこそ自然な文章で書けるというメリットを失うので、今後なんかうまいこと改善されることを期待します。

サービスポータル画面は現時点で対象外

公式動画の18:56~でも言及されている通り、「Not Supported yet」の対象に「Service Catalog in Service Portal」とあり、このATF自動生成はまだポータルからのカタログ操作に対応していません。
これまでの手動でのATF作成ではポータルのメニューがあるのでワンチャンプロンプトに入れちゃえばうまくいくのではと思ってやってみましたが、しっかりとはじき返されました。
image.png

回避策として、sc_cat_itemテーブルの各カタログのレコードのフォーム内にある「Try It」のボタン(日本語だと「試行」ボタン)でカタログ操作のテストを生成することはできました。カタログのUIは自動生成はできませんが、ビジネスロジックのテストでOKであれば、これはこれで効率よく生成できるかも?!
image.png
私が経験してきたプロジェクトは現在も、これまでもやはりカタログ多めのプロジェクトだったので、願望としてはNow Assist for Test Creationでサービスポータルとカタログがサポートされることを願いつつ、ロジック中心のリグレッションテスト目的で大量生産するならこの回避策も選択肢の1つかなと思います。

おまけ 日本語はやはり対象外

Short Descriptionに紛れ込ませてみてもだめでした。英語大事。
文章じゃなくて入力のValueとしてならイケると思いました。浅はかでした。
image.png
The user question is not relevant to ATF tests because it includes non-English text ...厳しい
and the input language is not supported as per the guidelines. ....はい.......

まとめ:プロンプト(ストーリー)が書ければATFが作れる時代が近付いてきた

今回例に挙げたステップ数より多いテストや、より複雑なステップ(Assert on Text Pageなど)も今後の検証のやりがいがあるなと思いました。

私がこの機能に可能性を感じてるのは「ストーリーが書ければ同時にATFも作れる」という可能性があるところです。

それこそ、これまでのATF作成もローコード/ノーコードでの作成ではあるものの、1手順ずつテストステップをポチポチ設定していくのは長ければ長いほど(少なくとも私は)気が滅入るし、冒頭に記載した「作成する工数>自動化のメリット」となってしまうハードルを下げてくれる機能なのではと思っています。

また、プログラムや技術にはそこまで自信がないけど、業務プロセスやビジネスアナリスト的にストーリーや文章を書くのが得意、プロンプト作成が得意、なんて人もテストの効率化や作成を(いい意味で)やってしまえる役割を担えるので、できる業務の幅も増やしてくれる側面もあるかなと考えました。

サービスポータル(カタログ)のサポート対応や今後の機能拡張に期待しつつ、現時点でもより効率的に使えるメリットを模索していきたいと思います。

まだまだ検証の数が少ないので、私は今後もアップデートがあればこのテーマの記事の続編を書いていきたいと思っています。
カスタム指示やATF生成の入力プロンプトも、公式動画以外にも検証した生身のプラクティスを集めていきたいです。もしこの記事をご覧の方で他の検証結果やアイディアがある方はぜひコメントやX(旧Twitter)等でシェアしていただきたいです!なにとぞ!

それでは。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?