icon-test-automation

Get a Free Trial

Creating, executing, and maintaining reliable tests has never been easier.

Get Started

品質エンジニアリングは、ソフトウェア開発チームがより速く、より反復的なスプリントで高品質のソフトウェアを生産するための一連のプラクティスであり、DevOpsパイプライン全体を通して計画、テスト、分析、および監視を行うことができるようにします。その重要な要素になるのが、ソフトウェア開発ライフサイクル全体を通して品質を確保するために効果的に手動テストと自動テストの両方を使用するソフトウェアテスト戦略です。しかし、QAチーム、特にテスト自動化の経験が浅いQAチームは、どのテストを自動化するかをどのように決定すればよいのでしょうか。

テスト自動化と手動テストのどちらを選択するかは、「0か100か」の決断としてイメージされることが多く、QAチームが自動テストを試してみることに消極的になってしまうということがあります。しかし、ほとんどの組織では、この2つを組み合わせることが、より速く、より品質を重視した開発を行うための最良のアプローチであることが多いのです。チャレンジとなるのは、それぞれの手法の長所を生かして最大の効果を発揮するソフトウェアテストの戦略を構築することです。手動テストが多すぎると、QAチームは反復作業に多くの時間を費やし、開発を遅らせてしまう可能性があります。逆に、自動テストに注力しすぎると、テスト自動化の範囲外のエラーを見落とす危険性があります。

手動テスト:未知の領域へ果敢に挑む 

手動テストは、プロダクト構造の知識を蓄積することや、特定の状況でのみ発生するバグの特定、真のユーザーエクスペリエンスを理解するのに欠かせないものです。手動テストに特化したQAスペシャリストは、初めて製品を操作するユーザーに対して、プロダクトの見た目や使い勝手に関する貴重なフィードバックを提供します。

品質エンジニアリングチームが手動と自動のハイブリッドテスト戦略を構築する際、手動テストはテストを拡大し、顧客の視点を理解するための基礎となります。ソフトウェアテスターは、プロダクトに関する専門知識を活かして新機能のテストプランを作成し、開発者と協力して厄介なソフトウェアのバグを解決することができます。

テストの自動化:信頼性、信頼性、カバレッジ 

一方、自動化されたテストは、プロダクトの品質に関する一貫したフィードバックを提供し、継続的な改善と開発のスピードアップを実現します。品質エンジニアリングの初期段階において、QAチームは、ソフトウェアテスト担当者の多くの時間を占める重要なエンドツーエンドテストとリグレッションテストを自動化することができ、テスト戦略の拡大とテストの左遷に注力することができます。組織の品質エンジニアリングの実践が成熟するにつれ、テスト自動化は、製品が期待通りに動作し続けることを保証し、アプリケーションパフォーマンスを監視し、ソフトウェア開発ライフサイクルの早い段階でコードに関する迅速なフィードバックを提供します。

どんなテストを自動化するか?

多くの品質に関する探求と同様に、自動化するテストを決定するプロセスは、一連の質問から始まります。これらの質問は、テストツールの機能を中心にテスト自動化戦略を計画するのではなく、ソフトウェア開発組織がワークフロー、プロダクト、顧客に適合する自動テストを開発するための指針になります。ソフトウェアの品質向上と快適なユーザーエクスペリエンスという最終目標に焦点を当てることで、QAチームはテスト自動化ソリューションを最大限に活用していることを確認できます。

どのようなテストに最も時間がかかるか?
DataRobot のエンジニアリングディレクターである Meghan Elledge は、テスト自動化を導入する際のアプローチについて次のように語っています。「もし私が同じ作業を2回しなければならないとしたら、3回目を自動化する方法について考えるでしょう。」 多くのQAチームは、同じ考え方でテストの自動化を始めることができるでしょう。ソフトウェアの開発組織が、エンドツーエンドテストやリグレッションテストなどの反復テストにテスト時間の大部分を割いている場合、これらはテスト自動化の絶好のチャンスとなります。

リグレッションテストや、最も一般的なユーザージャーニーのエンドツーエンドテストは、主に既存の機能が機能していることを確認するためのものなので、テストの自動化には理想的と言えます。基本的なアプリケーションアーキテクチャが変更されないと仮定すると、これらのテストは比較的安定している可能性が高く、メンテナンスの可能性を最小限に抑えることができます。これにより、QAチームは最大限の時間を節約し、早期にROIを改善することに繋がります。

テストカバレッジを上げるにはどこを改善すれば良いのか?

テストカバレッジは、あらゆるソフトウェアテスト戦略、そして最近では組織の品質エンジニアリングの実践現場において、その成功を測る尺度となっています。正確なテストカバレッジは、チームのテスト戦略が真のカスタマーエクスペリエンスを反映し、テスト対象のアプリケーションの設計と挙動が合致していることを保証するために不可欠です。
テスト自動化の導入先を検討するQAチームは、最も一般的なユーザージャーニーに関するテストカバレッジを理解することから始めると良いでしょう。mablのお客様であるSensormaticの場合、EメールとPDFのテストの自動化が自動テストのカバレッジを40%から80%に増加させるのに大きな役割を果たしました。マーケティング部門の78%が過去12ヶ月間にEメールのエンゲージメントが増加し、99%の消費者が毎日Eメールをチェックしていることを考慮すると、Eメールのようなメインの顧客導線を含むテストカバレッジを拡大することが、テスト自動化の優れた出発点です。 

ソフトウェアテストを製品によりよく反映させるには?
現在、約2億のAPIが使用されています。その数は、より多くの開発者がアプリケーションを構築・管理するためにサードパーティ製ソフトウェアを利用するようになるにつれて急速に増加しています。しかし、APIを手動でテストする便利な方法はほとんどありません。せいぜい、QAスペシャリストが主要なカスタマージャーニーをナビゲートし、その過程で壊れたAPIをキャッチできることを期待する程度です。例えば、Salesforceは警告なしにアップデートを発行することで有名です。しかし、多くのAPIがいかに予測不可能であるかを考えると、手動テストだけに頼っていては、API依存の世界でのリスク管理は十分ではありません。API、その他の統合、オープンソースコンポーネントなど、組織がどのように製品を構築しているかを把握することで、ソフトウェアテストチームは、テスト自動化によってソフトウェアテスト戦略を進化させることができる場所について有益な洞察を得ることができます。

品質エンジニアリングチームによるテスト最適化の支援
手動テストと自動テストの健全なバランスを見つけることで、品質エンジニアチームはソフトウェアテスト戦略を拡大し、顧客体験を綿密に監視し、より迅速なソフトウェア開発をサポートすることができます。多くのQAチームはテスト自動化の取り組みを始めたばかりですが、手動テストとテスト自動化の補完的な役割を理解することは、既存のソフトウェアテスト戦略を監査し、自動化の機会を特定してカスタマージャーニーをより多くカバーし、QAチームがプロダクトの進化をよりよく反映できるよう支援するための強固な基盤となります。

「2022年版 DevOpsにおけるテストの現状」のアンケートに回答して、変化の激しいソフトウェアテストの世界についてmablにご協力ください。
8分間のアンケートで、世界中の品質エンジニアのソフトウェア品質、テスト自動化、アジャイル開発の動向を把握することができます。