皆さん、こんにちは。
今週もソフトウェアテスト、テスト自動化に関するニュース記事をご紹介していきたいと思います。
今回は国内、海外ニュース3記事をご紹介回したいと思います。
■記事内リンク
「国内ニュース」
・バルテス社「PrimeWAF」リリース
「海外ニュース」
・自動化におけるテストシナリオの重要な役割
・APIテスト自動化の実装
■国内ニュース
□バルテス社「PrimeWAF」リリース
https://www.valtes.co.jp/news/2022/202202173393
こちらは、3/1にバルテス社からクラウド型セキュリティ対策サービス「PrimeWAF」がリリースされる内容となります。
近年、コロナ禍によりリモートワークでの業務が増えました。
そのため、VPN接続などの利用頻度が高まり、それを狙ったマルウェアの被害が相次いで発生している事例を耳にします。
昨年では、マルウェアの一種である「ランサムウェア」が話題になりました。
今回、バルテス社ではそのような状況に対応すべくセキュリティ対策のサービス「PrimeWAF」を開始いたしました。
◇PrimeWAFの特徴
PrimeWAFの特徴として、以下があります。
・簡単導入
・クラウド型で導入しやすい
・使いやすい管理画面
・サイトのパフォーマンスを維持しサイト攻撃をブロック
◇PrimeWAFの価格
転送バイト数 | 基本料 | 従量課金(1Gbyteあたり) |
~8Gbyte | 14,500円 | ー |
8Gbyte~80Gbyte | 37,400円 | 440円 |
80Gbyte~1,600Gbyte | 92,400円 | 137.5円 |
1,600Gbyte~ | 429,000円 | 132円 |
◇PrimeWAF導入まで
無料トライアルからの申込みが可能のようです。
①申し込み
②アカウント発行
③各種設定
④トライアル開始
⑤チューニング
⑥本契約
企業の方や個人でサイトを運用されている方など、ご興味のある方はPrimeWAFのサイトページにアクセスしてみてはいかがでしょうか。
https://www.valtes.co.jp/news/2022/202202173393
■海外ニュース
□自動化におけるテストシナリオの重要な役割
https://searchsoftwarequality.techtarget.com/tip/The-crucial-role-of-test-scenarios-especially-in-automation
こちらは「searchsoftwarequality.techtarget.com」に掲載されていた「自動化におけるテストシナリオの重要な役割」についてまとめられていましたので、ご紹介したいと思います。
◇テストシナリオとテストケース
テストシナリオとテストケースは、手動テストと自動テストの両方で、それぞれが異なる役割を果たしていることを覚えておくことが重要です。
テストシナリオは、QA専門家がテストする内容の高レベルのドキュメントです。
これらは、ビジネスおよびシステム要件に従って開発され、機能とユーザーが機能を実行する方法を説明します。
一方、テストケースは、予想されるテスト結果のリストを含む、アプリケーションテスト手順の詳細なステップバイステップのドキュメントを提供する仕様です。
QAの専門家は、テストケースを手動で実行することも、自動化されたスクリプトに開発することもできます。
テストシナリオの選択と開発は、ソフトウェアテスト戦略の重要な要素であり、自動テストではさらに重要です。
テストケースは、QAチームが自動テストスクリプトを作成するために使用するコーディング構造を形成しますが、テストシナリオは、それらのチームが自動化する特定のテストを決定するのに役立ちます。
◇効果的なテストシナリオの作成
通常、チームはユーザーストーリーとユーザー受け入れ基準の組み合わせを使用してテストシナリオを組み立てます。
ただし、テストシナリオは、予想されるユーザーの行動と予想されるニーズの包括的なプロファイルとして機能するペルソナから生じることもあります。
十分に開発されたペルソナは、チームが大多数のユーザーにとって最も重要であると考える機能に焦点を当てたテストシナリオを作成するのに役立ちます。
ビヘイビア駆動開発(BDD)は、もう1つの生産的なアプローチです。
BDDはビジネス側を開発プロセスにループさせますが、それでも予想されるユーザーの行動に焦点を合わせます。
たとえば、Gherkin構文は、ソフトウェア側とビジネス側の両方の担当者が理解できる、わかりやすく読みやすい言語を使用して、 Given-When-Then式を実装します。
Cucumber BDDテストフレームワークのサポートにより、Gherkinは、含まれているテストシナリオから直接自動テストスクリプトの開発を容易にします。
◇テスト戦略の計画
チームがテストシナリオを特定したら、実際のテスト戦略を作成します。
これには、QAチームが手動でテストする特定のシナリオと、自動テスト用にスレートするシナリオを決定することが含まれます。
効果的な意思決定を行うには、この作業を開発プロセスの早い段階で行う必要があります。
このステップでは、テストが行われるドメインを特定することが重要です。
たとえば、特定の規制要件により、チームが選択して実行するテストシナリオのタイプを決定できます。
これには、それらのテスト手順と対応するドキュメントがまとまって、詳細に内容が含まれます。
もう1つの関連する要因は、現在使用されている方法論、およびそれらの方法論の一般的な成熟度である可能性があります。
◇自動テストと手動テストの決定
自動化は今日のテスト戦略の重要な部分になりつつありますが、すべてのテストシナリオが自動化の適切なターゲットになるわけではありません。
自動化された継続的テストプロセスをCI / CDパイプラインにマージする場合でも、QAチームはUXに焦点を当てたGUIテストなどを手動で実行する必要があります。
ただし、これらのチームは手動のテストシナリオを慎重に選択する必要があります。
これを明確にするために、手動テストに適したテストシナリオの例を次に示します。
・UXの検証テスト
・優先度の低い機能の検証テスト
・非本番エッジコンピューティングのケースのテスト
・テストエンジニアの判断に大きく依存するテスト
あるいは、重要な機能が繰り返しテストを必要とし、チームが手動で処理するには難しすぎる場合、テストシナリオは自動化に値します。たとえば、大量のデータや複雑なデータ入力手順を伴うテストは、多くの場合、自動化の法案に適合します。
また、長期間にわたって実行されるテストケースは自動化が複雑になる可能性がありますが、QAプロセスを大幅に加速するのは人件費です。
自動化のテストシナリオの選択は、テストリード、自動化スペシャリスト、SDET(テスト中のソフトウェア開発エンジニア)、開発者、および製品所有者を含むチームの取り組みである必要があります。
製品の所有者は、実際のユーザーワークフローを最も正確にシミュレートするシナリオを指摘する資格があるため、ここでループすることが特に重要です。
開発者は、複雑なコードのコレクションでのテストが必要なシナリオを強調できるため、ここでも大きな重みを持っています。
◇テスト自動化ピラミッド
手動テストと自動テストの決定に非常に役立つ1つの手法は、テスト自動化ピラミッドです。
まず、テスト自動化ピラミッドは、自動化が主にユニットおよびコンポーネントのテストレベルにある必要があることを示しています。
これらのテストは通常、最も複雑でなく、自動化が最も簡単だからです。
さらに、高レベルの単体テストカバレッジは、チームが欠陥を検出し、開発プロセスの初期段階で修正修正を実装するのに役立ちます。
一方、GUIレベルのテストは、テスト自動化ピラミッドの最上位にあります。
GUIなどの機能コンポーネントで実行されるテストは、通常、保守が最も困難です。
したがって、自動化の対象が特に複雑なコンポーネントでない限り、自動化されたGUIテストを最小限に抑えることが最善です。
□APIテスト自動化の実装
https://securityboulevard.com/2022/02/implementing-api-testing-automation/
こちらは、「securityboulevard.com」に掲載されていた内容となります。
APIテストの自動化実装について述べられており、とても興味深かったので、ご紹介したいと思います。
◇APIテストの自動化とは何ですか?
APIテストの自動化は、APIテストプロセスを自動化するプロセスです。
開発者はさまざまな方法でこれを行うことができますが、最も一般的なアプローチは、自動化ツールを使用してテストを作成および実行することです。
APIテストの自動化は、テストプロセスをスピードアップし、すべてのテストが一貫して正確に実行されるようにするのに役立ちます。
◇それはどのように機能しますか?
APIテストの自動化は、手動による介入や人間による支援なしで機能します。
これは、24時間年中無休で実行できることを意味し、あなたとあなたのチームが他のタスクに取り組むための時間を解放します。
◇開発者にとってのAPIテスト自動化の4つの利点
APIテストは開発プロセスの重要な部分であり、各APIと残りのAPIが期待どおりに機能し、それらに依存する開発者とそれらを作成するビジネスのニーズを満たすのに役立ちます。
テストプロセスを自動化すると、時間とリソースを大幅に節約でき、ソフトウェア開発作業の他の領域に集中できます。
さらに、自動テストは手動テストよりも正確です。
新しいコードを作成するときだけでなく、開発期間全体を通してテストを実行するときに、開発者の時間を節約できます。
1.時間とリソースの節約:
自動テストは高速です。
APIをテストし、結果を数分で表示できるため、テスターはより重要なタスクを実行できるようになります。
テストプロセス全体で必要な手動の介入が少なくてすむため、テストを24時間年中無休で実行できるため、チームの追加作業を必要とせずに、より正確な結果を得ることができます。
2.より一貫性のある結果:
これらの自動テストは、全員が同じ方法でテストを実行することを保証するのにも役立ち、不整合が発生したときに異なるテスターの結果を並べて比較するのが容易になります。
これにより、問題が発生した場合のデバッグと解決の作業がスピードアップするため、問題が発生し続けることはありません。
3.精度の向上:
これらのテストは24時間年中無休で実行できるため、人間のテスターがテストを実行するときのような偏見や疲労に悩まされることはありません。
100%エラーのないテストはありませんが、APIテストの自動化により、アプリの結果の精度をより高くすることができます。
4.柔軟性:
APIテスト自動化の最も重要な利点の1つは、その柔軟性と使いやすさです。
プログラミング言語のサポートが強化されたことで、チームの全員が、バックグラウンドやスキルセットに関係なく、これらの自動テストを簡単に作成して実行できるようになります。
つまり、新しいメンバーがチームに追加されたとしても、APIテストの作成をすぐに開始することを妨げる障壁はほとんどありません。
◇APIテスト用の自動化ツール
APIテストの自動化を成功させるには、特定のツールを使用する必要があります。
市場にはさまざまなオプションがありますが、APIテストを自動化するための最も一般的で十分にサポートされているツールのいくつかを以下に示します。
・Mayhem for API
https://forallsecure.com/mayhem-for-api
リクエストのパラメータにファジング手法を適用すると、Mayhem forAPIでAPIの品質と復元力をテストできます。
すべてのプログラミング言語をサポートしているため、チームの誰もが5分以内に簡単に始めることができます。
さらに、Mayhemは詳細な結果とレポートを提供し、APIの問題をすばやく特定して修正するのに役立ちます。
・Postman
https://www.postman.com/
PostmanはAPIテスト用のもう1つの人気のあるツールであり、そのユーザーフレンドリーなインターフェースと強力な機能で知られています。
また、複数のプログラミング言語をサポートし、サーバーとデータのモックのサポートが組み込まれているため、一連の予想される応答を設定することで、複雑なAPIでもテストできます。
・SoapUI
https://www.soapui.org/
SoapUIは、APIテストを自動化するための優れたツールです。
Mayhem forAPIはSOAPではなくRESTAPIをサポートしますが、SoapUIはRESTではなくSOAPをサポートします。
Soap APIには、サーバーとデータのモックのサポートが組み込まれており、一連の期待される応答を設定することでAPIをテストするのに役立ちます。
◇APIテストの自動化を実装するための9つのヒント
APIテストの自動化を実装するときは、次のヒントとベストプラクティスを念頭に置くことが重要です。
1.明確な期待を設定する
何かをコーディングする前に、APIテストの自動化に関係するすべての人が期待と目標について同じページにいることを確認してください。
これは、後で新しいメンバーがチームに参加するときに混乱を防ぐのに役立ち、実装作業の初日からすべてがスムーズに進むようにするのに役立ちます。
2.適切なAPIテストツールを選択する
APIテストの自動化にはオプションを利用できます。
チームのニーズとスキルセットに合ったものを選択することが重要です。
特定のツールに慣れていない場合は、そのツールを定期的に使用する可能性が低くなり、テストプロセスに一貫性がなくなります。
3.小規模から始める
APIテストの自動化を開始するときは、小規模から始めるのが最善です。
インフラストラクチャ全体を一度にテストするのではなく、いくつかの重要なエンドポイントに焦点を合わせます。
これにより、新しいプロセスに慣れ、自動化の取り組みを拡大する前にすべてがスムーズに実行されていることを確認できます。
4.テストを文書化する
他のソフトウェア開発作業と同様に、APIテストの自動化プロセスを適切に文書化することが重要です。
APIが正しく文書化されていない場合、テストツールはそれほど多くのものを見つけることができません。
5.統合テストから始める
APIテストの自動化にはユニットテストが含まれますが、これは通常、単一の「コードのユニット」(通常はオブジェクトまたはモジュール内の関数)に焦点を当てていますが、API統合テストを追加することから始めるのが最適です。
モジュールはグループとして組み合わされ、テストされます。
これらは、事前に多くの労力を必要とせずにプロセスに慣れるために役立つため、より複雑なシナリオに進む前に、すべてがスムーズに実行されることを確認できます。
6.CIパイプラインにAPIテストを含める
API自動テストは、継続的インテグレーション(CI)パイプラインの一部である場合に最適に機能します。
これは、リリース予定日まで待つのではなく、準備ができたらすぐにチームに更新をプッシュする役割を果たします。
これにより、チームは他のタスクから多くのリソースを流用することなく、問題を迅速かつ一貫して修正できます。
7.指標に注意する
テストを追加するときは、速度やカバレッジなどのテスト指標を追跡することが重要です。
これらのメトリックを改善する方法を常に探し、テスト結果の高精度を確保しながら、テストプロセス全体が可能な限り効率的であることを確認する必要があります。
8.誤検知に注意する
APIテストの自動化に関する最も一般的な問題の1つは、誤検知、またはテスト対象システム(SUT)内に実際のエラーがないときに障害が報告される場合です。
これらは、実際には存在しないバグの修正に時間を浪費する可能性があるため、誤検知に注意し、可能な限り迅速に解決することが重要です。
9.テストの轍(わだち)にとらわれない
同じAPIを何度もテストすると停滞するため、以前にテストされていないAPIをテストしたり、統合テストを拡張してより複雑なシナリオを含めるなど、新しいことを試すことが重要です。
これにより、現在の開発の進捗を遅らせることなく、将来に備えることができます。
◇まとめ
ご存知のように、APIテストはソフトウェア開発と品質保証プロセスの不可欠な部分です。
APIの自動テストにより、ソフトウェア開発ライフサイクルの時間とコストを確実に節約できます。
このブログで武装すると、APIテストの自動化計画を策定するのに十分な情報が得られるはずです。
■最後に
今回は、以上の国内ニュース、海外ニュースを取り上げてみました。
次週も、ソフトウェアテスト、テスト自動化に関するニュースをご紹介したいと思います。
最後まで見て頂き、ありがとうございました。