皆さん、こんにちは。
今週もソフトウェアテスト、テスト自動化に関するニュース記事をご紹介していきたいと思います。
今回は国内ニュース2記事、海外ニュース2記事をご紹介回したいと思います。
■記事内リンク
「国内ニュース」
・ハイブリッド型ソフトウェア検証サービス「HYBRID QA」が新登場
・テストマトリック社「テスト支援・検証サービス」開始
「海外ニュース」
・ISTQB CTFLトレーニングで15人の認定ソフトウェアテスターを獲得
・ソフトウェアテストの概要
■国内ニュース
□ハイブリッド型ソフトウェア検証サービス「HYBRID QA」が新登場
https://www.value-press.com/pressrelease/275451
こちらのニュース記事は、ProVision社が手動テストと自動化ツールと組み合わせたソフトウェア検証計画を提案するサービス「HYBRID QA」の内容となります。
このサービスは、ソフトウェア自動化プラットフォーム「Autify」を提供するオーティファイ社とのパートナー契約によりできたサービスとのことです。
ProVision社は、マルチデバイス検証サービス、比較検証サービス、ドキュメントチェック、テスト留学サービスなど様々な検証サービスを行われている第三者検証会社です。
今回の「HYBRID QA」サービスでは、手動と自動化を取り入れることで、テストの網羅性を高め、品質を保ちながらユーザー操作による不具合も最小限に抑えられることを強みとしており、経験豊富なエンジニアがクライアントの要望をヒアリングし、納期・予算・求める品質などに合わせて最適なプランを提案するもとなっているようです。
テスト自動化の導入をサポートするサービスとなっており、「Autify」での自動化のノウハウ等も知ることができそうですね。
サービス詳細については、お問い合わせとなっていました。
ProVison社の様々な検証サービスが行われていますので、ご興味のある方はProVison社のサイトにアクセスしてみてはいかがでしょうか。
https://www.pro-vision.jp/service/solution/
□テストマトリック社「テスト支援・検証サービス」開始
https://www.techmatrix.co.jp/nc/news/testservice_20210706_newsrelease.html
こちらのニュース記事は、20年以上テストツール販売実績のあるテクマトリックス社がそのノウハウを生かし、テスト支援サービス、検証サービスの提供を開始した内容となります。
テクマトリックス社については、過去のニュースで、以前APIテスト自動化ツール「Sotest/Virtualize 2020.2」の販売についてご紹介させていただきました。
【News】1/4週のニュース(バルテス社セミナー,ソフトウェアテスト自動化,SOAtest,自動テスターになるには?)
テストマトリック社では、自動テストツールは他にもJavaの静的解析ツール「Jtest」、ソースコード解析ツール「Understand」、テスト管理ツール「TestRail」など、さまざまなテスト支援ツールサービスを行われています。
https://www.techmatrix.co.jp/product/quality.html
今回のテスト支援・検証サービスでは、主に以下のサービスが含まれるようです。
・APIテスト自動化支援・テスト請負
APIのテストスクリプトと構成能なスタブ作成に加え、テストシナリオや自動化範囲の策定、テストツール運用教育などの支援
・負荷テスト自動化支援・テスト請負
ロードテスト・ストレステスト・パフォーマンステスト・スパイクテストといった負荷テストプラン策定から実装、報告のどの支援
・ソフトウェア内部品質分析
構造解析や静的解析など様々な観点から収集したデータをもとにソースコードの内部品質を分析
テスト支援・検証サービスの詳細及び料金等は、お問い合わせとのことです。
https://testservice.techmatrix.jp/
ご興味ある方は、テストマトリック社のサイトにアクセスしてみてはいかがでしょうか。
■海外ニュース
□ISTQB CTFLトレーニングで15人の認定ソフトウェアテスターを獲得
https://www.newtimes.co.rw/featured/rwanda-gains-15-certified-software-testers-through-istqbr-ctfl-training
こちらの記事は「newtimes.co.rw」に掲載されていた内容です。
東アフリカのルワンダで、次世代のITスペシャリストを育成する取り組みで、ISTQB認定テスター財団レベル(CTFL)の証明書を15人が獲得したとのことです。
ルワンダでは、ISTQBのCTFLトレーニングがICTイノベーションセンターで実施され、2021/6/14~2021/6/18までに34人がこのプログラムを受けられました。
4日間という短い期間ではありますが、約半数以上がISTQB 認定(FL)に合格したのはすごいですね。
ルワンダでは、2019年から今回のようなISTQBの認定トレーニングと資格試験の開催を実施されているようです。
またルワンダでは、キガリという首都ではCentrikaと呼ばれれるソフトウェア開発会社もあり、今回のようなソフトウェアテストの認定を受けた方は、ソフトウェアテストの仕事に就くといった雇用もあるようです。
アフリカでのソフトウェアテストのニュースは珍しかったので、取り上げてみました。
□ソフトウェアテストの概要
https://securityboulevard.com/2021/07/introduction-to-software-testing/
こちらの記事は「securityboulevard.com」というサイトに掲載されていた内容となります。
こちらの記事では、「クラウドネイティブアプリケーション」のテストについてまとめられていましたので、ご紹介したいと思います。
◇なぜアプリケーションをテストするのか?
従来のソフトウェア開発の観点から、テストは開発が完了し、ソフトウェア開発者によってテストエンジニアに引き渡された後に行われます。
次に、テストエンジニアがテストを実行し、すべてが正常に機能する場合は、コードが本番環境にデプロイされます。
エラーは、ソフトウェア開発プロジェクトの開発ライフサイクルのどの段階でも発生する可能性がありますしたがって、本番環境などの重要な環境でソフトウェアのバグが発生しないように、ソフトウェアテストを実行することが重要です。
品質保証は、製品コードに機能や設計エラーが発生する可能性を最小限に抑える上で大きな役割を果たします。
ソフトウェアの品質は、開発サイクルの不可欠な部分となったクラウドネイティブ時代のテストによって保証されます。
アプリケーションを所有する開発チームは、次の点でサービス品質を確保する必要があります。
・パフォーマンス
・操作性
・レジリエンス
これらは、ソフトウェアの品質を保証するための最低限の要件です。
ビジネスロジックの要件に応じて、セキュリティ、可用性、使いやすさ、UX / UIなどのテストを検討することをお勧めします。
・パフォーマンス
エンドユーザーが認識するアプリケーションのパフォーマンスは、環境への影響、アクセスパターン、そして最も重要なこととして、処理されるデータの複雑な組み合わせの影響を受けます。
クラウドネイティブアプリケーションのパフォーマンスを向上させることができるテストの概念、パターン、およびタイプはたくさんありますが、開発ライフサイクルに沿ったテスト戦略を構築して従うことが重要です。
例として、ベンチマークテスト は、アプリケーションコードに関するパフォーマンスデータを収集するための最も好ましい経済的な方法の1つです。
また、デバッグおよびパフォーマンス管理ツールは、分散クラウドアプリケーションの問題を検出して理解するために、本番環境で利用できる優れたテスト戦略です。
・操作性
単体テストと統合テストを実行すると、サービスが欠陥なく希望どおりに実行されることを確認できます。
これらのテストでは、通常、サービスから期待される一連の応答を定義して、サービスが正常に正しく動作することを確認します。
ただし、利用できるテストはユニットテストと統合テストだけではありません。
ミューテーションテスト、ファズテストなど、他の多くのテストを利用して、アプリケーションの動作の精度を広範囲でテストできます。
ただし、サービスの運用性と精度が可能な限り完璧であることを確認するために、テスト戦略を本番環境に拡張する必要があります。
また、機能のデバッグおよびトラブルシューティング機能を備えたエラーフィードバックの受信と組み込みにも機敏に対応する必要があります。
ただし、アプリケーションがクラウド上にある場合、本番環境で問題なく動作するという保証はありません。したがって、エンドユーザーが最高のテスターになります。
・レジリエンス
クラウド時代のマイクロサービスアーキテクチャは、アプリケーションに依存関係の概念をもたらし、アプリケーションを脆弱で脆弱なものにしました。
これらの状況により、アプリケーションの復元力が十分にテストされていない場合、エンドユーザーに影響が及ぶ可能性があります。
クラウドネイティブのマイクロサービスアプリケーションでは、サービスと依存関係の間の相互作用を注意深く管理する必要があります。
エラーと遅延の両方が発生する可能性があるため、エンドユーザーのエクスペリエンスに影響を与えます。
依存関係が失敗した場合でもサービスの回復力を確保するには、テスト手順と標準を設定することが不可欠です。
◇テストの概念は何?
・テスト管王開発(TDD)
テスト駆動開発(TDD)とは、コーディング、テスト、設計の3つのアクションサイクルを含むプログラミングスタイルを指します。
TDDでのテストは、主に、コードのリファクタリングに必要なアクティビティを含む単体テストと設計の記述で構成されます。
TDDプロジェクトは通常、問題の解決策に到達するために必要な要件を定義して理解することから始まります。
次に、要件が有効であることを確認するためのテストケースを作成します。
そして最後に、テストに合格したコードを記述します。
ビジネス機能が保証され、満足されるまで、このプロセスはテストケースと必要なコードを完了するために繰り返されます。
TDDは、アプリケーションの実際のコードを開発する前に、開発者に自動テストの開発と実行を強制するため、「テストファースト開発」とも呼ばれます。
・BDD(ビヘイビア駆動開発)
ビヘイビア駆動開発(BDD)は、アジャイル開発の原則とユーザーストーリーを継承するテスト駆動開発のブランチであり、アプリケーションが特定の方法で動作する一連のシナリオとして開発を提示します。
シナリオ、アクション、および条件をソフトウェア開発チームとビジネスチームの間の単純で一般的な用語に置き換えることができるため、ミスの可能性が減り、開発がより明確になります。
◇テストパターンとは?
・A/Bテスト
分割テストとも呼ばれるA / Bテストは、元々、同じ機能を持つ2つの異なるWebページに対するユーザーの応答を検出することを目的としていました。
基本的に、WebページのバージョンAを表示するためにユーザーの小グループが選択され、WebページのバージョンBを表示するために別のユーザーの小グループが選択されます。
ユーザーが特定のバージョンを支持して応答した場合、そのバージョンのWebページが選択されて先に進みます。
このアプローチは、段階的な方法でアプリケーションに新機能を導入するために適用できます。
選択した一連のユーザーに新しいサービスまたは機能が導入され、ユーザーの応答が測定されます。
結果は、アプリケーションの元のバージョンを使用した他の選択されたグループの応答と比較されます。
・テストダブル
テストダブルは実際のコンポーネントを置き換え、その動作を模倣します。
テストダブルは、依存関係や外部のサードパーティである実際のコンポーネントとは異なり、通常、開発チームの管理下にあるコンポーネントの軽量バージョンです。
テストダブルには、ダミー、フェイク、テストスタブ、モックなど、さまざまな種類があります。
ただし、テストダブルを使用することにはいくつかの欠点があります。
・テストダブルは、さまざまなケースに必要なテストにデータを提供するために利用できない場合があります。
・テストダブルの機能は、開発時のテストには適さない場合があります。
・テスト中に実際の依存関係を使用しようとすると、テストが遅くなる可能性があります。
・テストスタブ
テストスタブは事前定義されたデータを保持し、そのデータを使用してテスト中に受信した呼び出しに応答します。
テストで実際の依存関係を使用したくない場合、実際のデータの副作用を排除するためにテストスタブを使用する傾向があります。
テストスタブは、依存関係の応答がテスト中のシステムの動作を変更する場合に役立ちます。
たとえば、外部サービスから入力を受け取るサービスがある場合、その入力によってサービスの応答が決まります。
テストスタブを使用すると、製品サービスの動作に変化をもたらすさまざまなシナリオを模倣できます。
・モックテスト
一方、モックオブジェクトは、システムの動作を記録してから、確認のために記録を提示します。
モックは受信した通話を登録し、期待されるすべてのアクションが実行されたかどうかを確認できます。
アプリケーションコードが実行されたことを確認する簡単な方法がない場合、または単に本番コードを呼び出せない場合は、モックを使用します。
欠点は、戻り値がなく、システムの状態を確認するのが簡単ではないことです。
・Faks
Faksは機能が制限されたオブジェクトです。
基本的に、これらは実際のオブジェクトのように機能しますが、製品コードの簡略化されたバージョンがあります。
通常、Faksを使用して、システムの動作に影響を与えることなく、テストの実装を簡素化します。
◇テストの種類とは?
・ユニットテスト
ユニットテストは、アプリケーションのコードの個々のユニットと機能に使用されます。
クラウドネイティブアプリケーションでは、単体テストの本質的な目的は、アプリケーションの可能な限り最小の部分をテストすることです。
このテストタイプでは、アプリケーションのテストのみに集中するために、モックオブジェクトまたはテストスタブを使用してテストされたサービスの依存関係を分離することができます。
単体テストは、各クラスまたはコードコンポーネントをテストして、期待どおりに機能することを確認することを目的としています。
Javaユーザーの場合、JUnitは人気のあるJavaフレームワークの1つです。
・統合テスト
統合テストの目的は、さまざまなサービスなど、アプリケーションのコンポーネントが正しく実行されているかどうかを確認することです。
マイクロサービスクラウドアプリケーションは、さまざまな開発者によってコーディングされたさまざまなソフトウェアモジュールで構成されています。
このレベルのテストの目的は、これらのソフトウェアモジュールが統合されたときに、これらのソフトウェアモジュール間の相互作用の欠陥を明らかにすることです。
・負荷テスト
負荷テストは、特定の期間内にシステムの需要をシミュレートし、システムに対する負荷のパフォーマンスへの影響(エラー率や応答時間など)を測定するプロセスです。
負荷テストは、パフォーマンステスト、非機能テスト、またはストレステストと呼ばれることもあります。
負荷テストは、アプリケーションチームが実稼働前および実稼働環境で自信を持ってアプリケーションを構築およびデプロイするのに役立つため、クラウドネイティブアプリケーション開発およびDevOpsの重要な部分です。
アプリケーションのビジネスコンポーネントが需要に合わせて拡張できることが重要です。
そのため、アプリケーションの負荷テストが非常に重要です。
アプリケーションで負荷テストを使用しないと、需要が急増したときにエンドユーザーに影響が及ぶ可能性があります。
・回帰テスト
新しい機能が導入されても、アプリケーションの既存の機能が壊れてはなりません。
回帰テストは、コードの変更がアプリケーションの既存の機能に悪影響を与えていないことを確認します。
簡単に言えば、回帰テストは、既存の機能が正常に機能していることを確認するために再実行される、すでに実行されたテストケース(機能的または非機能的)の完全または部分的な選択です。
機能が正常に機能しない場合、これはリグレッションと呼ばれます。
バグ修正を行ったり、構成を変更したり、コードをリファクタリングまたは拡張したりするたびに、回帰テストを実行する必要がある場合があります。
クラウドネイティブアプリケーションに関するテストがまとめられており、とても参考になった内容が掲載されていましたので、ご紹介させていただきました。
■最後に
今回は、国内ニュース2記事、海外ニュース2記事を取り上げてみました。
次週も、ソフトウェアテスト、テスト自動化に関するニュースをご紹介したいと思います。
最後まで見て頂き、ありがとうございました。
サイトトップへ
https://susakiworks.com/