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をテストするコストは時間の経過とともに低下する可能性があります。

SOAVirt

セミナー開催中!

ハンズオンセミナー開催中!

SOAVirt_solution
SOA-top
Virt-top
previous arrow
next arrow
SOAtest/Virtualize 製品ページへ >


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

コンピューターをトレーニングしてやらせることのできるアクションを人間が何度も繰り返さなければならない理由はありません。しかし、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年の今、ツールはユーザーの役に立つべきです。面倒なことはツールに任せてしまいましょう。

Parasoft SOAtest/Virtualizeについて

>

APIのテスト自動化とサービス仮想化を1ツールで

SOAtest/Virtualizeは、APIの開発者/利用者に向けてテストの自動化とテスト環境の仮想化の2つの側面から開発を効率化します。SOAtest/Virtualizeは、APIのテストドライバーを提供し、開発中のAPIのテストを自動化する機能と、APIを利用するアプリケーションが必要とするAPIをスタブとして仮想化する機能を同梱して提供します。




Top