AI+機械学習でAPIテストを簡単に

AIを活用したAPIテスト作成ツールに機械学習機能を追加することで、ユーザーの生産性と効率を飛躍的に改善できるようになりました - さらにおまけのメリットも!

先日、 Parasoft SOAtest 9.10.6がリリースされました。業界が自律型テストに向かうのを後押しするためにParasoftが取り組んできたイノベーションの成果をご紹介できるのをうれしく思います。とくに注目に価するのは、Smart API Test Generatorの基礎となるAIにルールを追加し、Parasoft SOAtestの頭脳をトレーニングする新しい機械学習機能です。この機能は、SOAtestがより適切なAPIテストシナリオを構築するのに役立ちます。

自動APIテスト作成に機械学習を追加することのメリット

APIテスターは、APIの機能をテストケースに組み込むため、APIの動作を理解するのに多くの時間を費やしています。SOAtestのSmart API Test Generatorを使用すると、そのような情報をすべて自動的に取得し、テスト対象のソフトウェアとともにSOAtestが成長できるようトレーニングすることで、生産性と効率性を飛躍的に改善できます。SOAtestの新しい機械学習機能は、他にどのようなメリットがあるでしょうか?

  • トレーニング: 特定のAPIがどのように機能し、どのように組み合わせて有意義なテストシナリオを構築するかについて、新しいAPIテスターを訓練するのに多くの時間を費やす代わりに、 SOAtestを使用することができます。SOAtestはすでにAPI間の関係を理解し​​ているので、新しく入ったばかりのAPIテスターでも、時間をかけてすべてをまとめる方法を学習することなく、ただちに既知のAPIのテストを開始し、すぐに付加価値を生み出すことができます。
  • 知識の集約: SOAtestのAI対応APIテスト作成ツールを活用し、段階的にトレーニングすることで、一度何かを定義したら、その知識をスマートテストテンプレートに定着させ、大勢のテスター間でそのテンプレートを共有できます。とくに、チームの他のメンバーに特定の API をテストする方法を伝達するための時間が限られているアジャイル開発では有用です。
  • 一貫性: 要件を検証するには、APIテストを作成するたびに、何が目的かを考えなければなりません。APIごとに接続情報や認証情報、検証情報をすべて事前設定しておくことで、誰もがAPIのテスト方法を了解し、各インターフェイスに対して毎回同じように一貫したAPIテストを構築できます。APIテストがすべて特定のパターンに従っていれば、共通のルールセットが存在するため、どこで失敗する可能性があるかを理解しやすくなり、デバッグにも役立ちます。
  • カバレッジ:ユーザーは完全なAPIインベントリを管理して理解する代わりに、SOAtestの便利なリソースライブラリを利用できます。これにより、どのAPIがテスト済みかをすばやく確認し、まだテストされていないAPI用にルールを追加できるので、APIがシナリオの一部として見つかったとき、可能な限り有意義なテストが生成されます。

機械学習を応用したAPIテスト作成の仕組み

SOAtestは、まずAPIトラフィックを調べ、有意義なAPIテストシナリオを抽出しますこれらのテストシナリオを作成するために必要な動的データ交換を容易にするために、SOAtestの基盤となるAIは、複数のAPI呼び出しにわたって繰り返し使われたデータ値を収集し、それらを接続したり、レスポンスから適切な情報を抽出して自動回帰ツールを作成するなどのアクションを実行します。これらのアクションはすべてルールであると考えることができます。

ルールがAIを動かす

これらのルールは、基本的なテストステップだけにしか対応できないものではありません。たとえば、APIを呼び出してカートにアイテムを追加すると、後でカートのアイテムを見るために呼び出しを行うとき、カートIDは重要な情報になるでしょう。SOAtestはそのような関係の多くを自動的に理解します。しかし、人間はロボットより賢い(失礼、マーヴィン[『銀河ヒッチハイク・ガイド』シリーズに登場するロボット])ので、個々のAPIリソースにコンテキストを追加してルールを拡張することもできます。

上記の例で言うと、カートIDを取得することも重要ですが、カートに追加したアイテム数に関するアサーションを作成することも必要です。SOAtestがまだそれを理解していない場合は、人間が介入して新しいルールを追加します。いったんカート内の数量要素との関係をアサーションとして定義すると、その後APIが使用されるたびに、SOAtestはそのAPIが関連するテストに、アサーション要件に対応するための適切な詳細を自動的に入力します。

AIは、APIがどのように機能すべきか、したがってAPIをどのようにテストすべきかに関する認識を蓄積することによって、ユーザーがこのようなアクションを繰り返し実行するのを支援します。これは、ツールを使用するだけで、特定のAPIで実行される必要があるすべてのアクションをAIが学習することを意味します。その結果、APIをテストするコストは時間の経過とともに低下する可能性があります。

なぜ自分を痛めつけ続けるのですか?

コンピューターをトレーニングしてやらせることのできるアクションを人間が何度も繰り返さなければならない理由はありません。しかし、APIテストを行うテスターは毎日そうしています。APIの仕組みを理解し、適切な部分を検証するテストを構築し、データ接続、アサーション、認証などを理解し、作成する…等々の作業に多大な時間を費やしています。

あなたはひそかにこんな疑問を抱くかもしれません ―「それはたしかにすごそうだけれど、今度はAPIをテストする方法を機械に教えるのに時間をかける必要があるんじゃないの?ワークフローの負担が増えるだけでは?」と。ありがたいことに、答えはノーです。まず、既成のAIがあり、最初から接続を多数作成してくれます。次に、手動でトレーニングする必要はありません。(なにしろParasoftの製品であり、Parasoftは何でも自動化するのが好きなのです)。SOAtestには便利なコネクターが付属しているので、すでに行った作業の成果を活用することができます。SOAtestはワンクリックでテストケースを受け取り、それを解釈してルールに変換し、頭脳に組み込むことができます。これは、単一のテストケースでも、テストファイル全体でも、どのレベルでも実行できます。

このように、SOAtestはユーザーのテスト作成作業から学習し、学習結果を自動的に応用して、その後のテストシナリオでAPIを操作するとき、同じことを行うテストを作成します。作業しながらAIをトレーニングできるということは、段階的に機械学習にアプローチできるということであり、誰もが戦力になれるということです。そして、1日の終わりには、APIをテストするときに必ず行う必要があるアクションを正確になぞった膨大で詳細なリソースセットができていることになります。

SOAtest 9.10.6のその他の新機能

このリリースで追加されたのは機械学習だけではありません。SOAtest Smart API Test Generatorの以下のような更新も、ユーザーには待ち遠しいものでしょう。

自動アサーション

対象を絞ったアサーションを追加し、よりピンポイントにペイロードを検証する方法が増えました。diffツールは、レスポンスペイロードのスナップショットと考えることができます。これにより、データが変化しているかどうかがすぐに分かります。以前の呼び出しで変化した動的データに加えて、タイムスタンプなどの動的値をパラメータ化することで、Diffツールが使いやすくなりました。さらに、特定の要素だけを検証したい場合は、新しいスマートな自動アサーションの出番です。SOAtestはリクエストとレスポンスのパターンと関係を分析する機能を備えているため、キー要素の値が重要かどうかをチェックし、重要であればその特定の要素をターゲットとするアサーションを自動的に作成し、値をパラメータ化します。したがって、他のノイズを無視することにより、より戦略的な検証手法を取ることができます。

ドメインの包含と除外

UIには非常に多くの機能が組み込まれているため、簡単な操作でも、必要なテストの範囲外であるか、単にノイズでしかない多数のAPI呼び出しが行われることがあります。今回のリリースでは、特定のシナリオに関連するドメインを指定することで、特定のドメインからの呼び出しをテスト範囲に含めたり除外したりできるようになりました。さらに、逆のアプローチとして、APIテストに表示したくないドメインをブラックリストに載せることもできます。

ツールはユーザーの役に立つべき

ここ数ヶ月の私たちのイノベーションはすべて、先進的な技術を取り入れ、不可欠のテストプラクティスを簡単にするためのものでした。私たちの新たな技術により、ユーザーがAPIテストの対象範囲を広げ、新たな意欲を持って有意義なAPIテストスイートの構築に向かえるよう願っています。2018年の今、ツールはユーザーの役に立つべきです。面倒なことはツールに任せてしまいましょう。

Top