Articles
10/2/2024
10 minutes

第4章: 手動テストの概要

Written by
Esko Hannula
Table of contents

テストは必要不可欠です。しかし、最終的に突き詰めると、大きな疑問が残ります。それは「手動でテストを行うのか、それともプロセスを自動化するのか?」ということです。

はい、その違いは確かにあります。どちらもそれぞれの役割がありますが、この章では手動テストに焦点を当てます。つまり、実際に人間(つまりあなた)がテストを主導する場合についてです。手動テストとは何か、誰が行うのか、そしてそれをどのように整理するかをカバーしていきます。混乱することなく進められるようにしていきましょう。

手動テストとは?

手動テストはその名の通り、人間が行うテストのことです。これは、専用ソフトウェアが主導する自動化テストの対極に位置します。

手動テスト vs 自動化テスト

テストを「手動」と「自動化」に分ける考え方自体、よく考えると少し奇妙です。実際に完全に自動化可能なのはテストの実行部分だけです。テストケースの作成、結果の分析、何をテストする必要があるのかを決定することなど、それ以外の部分は手動プロセスが依然として大部分を占めています。

しかし、AIの進化によりその境界は日々曖昧になっています。将来的には、人間が行う作業がさらに少なくなる可能性があります。でも、それは次の話題にしておきましょう。この章では手動テストに集中します。

手動テスターの種類:プロフェッショナルと一時的なテスター

手動テストを行う人々は「手動テスター」と呼ばれることが多いです。そして手動テスターには、大きく分けて2つのタイプがあります:

  • プロフェッショナルテスター
  • 一時的なテスター

冗談っぽく言うなら、第3のタイプも追加できます。それは偶発的なテスターです。つまり、テスト中に見逃されたバグに偶然出会ったユーザーです。でも、ここまで読み進めているあなたなら、それを未然に防ぐ方法をしっかり知っているはずです。そうですよね?

プロフェッショナルテスターは、テスト手法に精通しており、ソフトウェアのバグを見つけ出すスキルを持っています。彼らにとって「手動」と「自動化」の線引きはあまり意味がなく、どちらにも熟練しています。

一時的なテスターは、通常、自分の仕事で使用するソフトウェアをテストするために招集される従業員です。彼らはそれぞれの業務プロセスのSME(Subject Matter Experts:専門家)であり、「ビジネステスター」と呼ばれることもあります。

手動テストの計画

手動テストを計画する際には、答えるべき重要な質問がいくつかあります。心配しないでください。これらの質問はシンプルですが、詳細が成功の鍵を握っています:

  • 何をテストするのか?
  • テスト計画は何か?
  • テスターは誰か?
  • テスターへの説明やトレーニングはどうするか?
  • テスターがアプリケーションにアクセスできるようにするにはどうするか?
  • テスターが見つけた問題をどう報告するのか?
  • テストの実施方法をどう組織化するのか?

多いように感じるかもしれませんが、心配しないでください。これらの質問は思ったよりシンプルです。真の課題は、これらの質問を全く考慮せずに進めてしまうことです。これが多くの組織がつまずく原因です。しかし、心配無用です。一つひとつ詳細に説明していきます。

何をテストすべきか?

他のテストタイプに取り掛かる前に、開発者がコードに対して単体テストを実行するようにすることが最優先です。これにより、初期段階で些細なプログラミングエラーをキャッチできます。もし反対意見が出た場合には、「シフトレフト」という用語を使って説得しましょう。この専門用語に感心して、反論できなくなるかもしれません。

アプリケーションに新しい機能を追加したり既存の機能を変更したりすると、何かしら壊れる可能性があります。しかし、常にすべてをテストする余裕はないでしょう。たとえそうだったとしても、それは非効率的かもしれません。ここで必要なのは戦略です。手動テストにおける有効な方法を以下に示します:

ポイント1、2、3は比較的簡単です。しかしポイント4と5は少し厄介です。何が壊れるリスクが高いのかを知るための魔法の方法はありません。アプリケーションを十分に使用していれば、変更時に問題が発生しやすい箇所について直感が働くでしょう。しかし、アプリケーションを新しく引き継いだばかりの場合はどうでしょうか?残念ながら、マーベルには「テスト直感」のスーパーパワーを持つヒーローはまだ登場していません。

リスクの高い領域の特定

「新しいものはすべてテストすべき」という考えは、実際には曖昧です。例えば、新しいレポート機能が導入されたとしましょう。レポートを開いて結果を確認し、期待通りに動作するかをチェックします。これで十分だと思うかもしれませんが、実際には違います。

レポートが壊れやすいシナリオを試しましたか?アクセス権を持たないユーザーでもレポートにアクセスできてしまわないか確認しましたか?編集権限がないはずのユーザーがデータを変更できないかチェックしましたか?

これがリスク駆動型テストの出番です。この目的は、壊れる可能性が高いものや、壊れた際に重大な影響を及ぼす可能性があるものを優先してテストすることです。新しい機能は既存機能よりも壊れる可能性が高いですが、それだからといって既存機能を無視してよいわけではありません。特に新しい変更に関連する部分は見逃せません。

要するに、高リスク領域に焦点を当てたテストを常に優先するべきです。新機能や変更された機能はもちろんですが、間接的に影響を受ける可能性のあるコンポーネントや、失敗した場合に大きな問題を引き起こす可能性のある部分も忘れずにテストしましょう。

テスト計画の作成

テストを開始する前に、まず深呼吸して計画を立てましょう。何をテストするべきかが明確になれば、必要な作業量を見積もり、テスターに求められるスキルを決定できます。

DevOpsやアジャイルソフトウェア開発を実践している場合、テスト計画はプロセスに組み込まれているはずです。そうですよね?アジャイルの基本理念は、小規模で頻繁な展開による最小限の混乱を目指すものです。そのため、テストは継続的かつ随時行われるべきです。理想的には、その多くが自動化されているでしょう。

もしまだそこに到達していない場合でも、大丈夫です。ほとんどのチームはそうではありません。ただし、完全にアジャイルを実践していない場合は、DevOpsのメリットを最大限に活用できていない可能性があることを理解しておきましょう。例えば、欠陥を早期に発見し、ソフトウェア開発を加速させる能力などです。

ウォーターフォール、アジャイル、そして実際の多くの企業が行っているもの—それはこの両者の中間地点にあります。「よりアジャイル」または「ややアジャイル」と呼ぶことができるでしょう。現状を正直に評価し、継続的な改善を目指してください。

成功するテスト計画のための重要な質問

アジャイルでは、最初のテストラウンドは開発者に迅速なフィードバックを提供するための手動テストであることが多いです。このテストは、専任のテスターが実行する場合もあれば、テストを兼任する人が行う場合もあります。手動テストは高価に思えるかもしれませんが、頻繁かつ小規模なテストは、大規模かつまれなテストキャンペーンよりも通常は速く、コスト効率が高いです。

新しい機能が手動でテストされた後は、それらのテストを自動化するのが次のステップです。これにより、同じことを手動で繰り返しテストする必要がなくなります。これらの自動化されたテストは必要に応じていつでも実行でき、テスターの負担を軽減します。ただし、完全にパイプラインに統合されるまでの間は、誰かがその「実行」ボタンをクリックする必要があります。

リスク駆動型テスト戦略

ここで、「自動化テストが速いなら、なぜ最初に手動テストをするのか?」という疑問が出てくるかもしれません。その理由は、Salesforceの自動化テストは確かに速いですが、セットアップに時間がかかるからです。その時間を節約するために、まず手動テストを行うのです。

頻繁に展開せず、大きな変更をまとめてリリースする場合は、より大規模なテストキャンペーンが必要です。これはアジャイルの頻繁なテストと比べるとコストがかかるように感じるかもしれませんが、必ずしもそうではありません。違いは、継続的なテストが時間をかけて負荷を分散する一方、「一括型」アプローチはより少ない頻度で、より高い労力が必要になるということです。

それでも、アジャイル環境でも大規模なテストキャンペーンの余地はあります。多くのチームがプレプロダクション環境で頻繁に展開しますが、本番環境へのロールアウトはあまり頻繁には行いません。この場合、ユーザーがシステムに慣れたり、リリースに正式な承認を与えたりすることを目的とした大規模なユーザー受け入れテスト(UAT)キャンペーンが理にかなっています。

アジャイル環境におけるテスト計画の役割

テスト計画は、全体的な開発プロセスによって異なります。アジャイルを採用している場合は、小規模で頻繁なテストを継続的に行っているでしょう。アジャイルが少ない場合は、より大規模なテストキャンペーンを組織化している可能性があります。どちらの場合でも、目標は同じです:欠陥を迅速に発見して修正し、生産性を向上させ、リスクを軽減することです。

テスターは誰ですか?

テストに利用可能な人々は、手動テストの実施方法に大きな影響を与えます。業務ユーザーがテストを行う場合、テストを一から設計することを期待するのは現実的ではありません。そのため、テストを作成する役割を持つプロフェッショナルが必要です。業務ユーザー向けには、主に以下の2つのアプローチがあります:

  1. スクリプトベースのテスト
  2. タスクベースのテスト

スクリプトベーステスト vs. タスクベーステスト

スクリプトベースのテストでは、テスターに詳細な手順を提供します。「これを入力して、これをクリックして」といった指示に従うだけです。一方、タスクベースのテストでは、テスターに広範なタスクを与えます。例えば、「新しいリードを作成する」や「最近開いた商談のレポートを実行する」といった内容です。

タスクベースのテストは、現実的なシナリオを模倣する点で優れています。テスターがタスクを完了する際に直面する問題や不具合を明らかにしやすくなります。たとえば、アプリが技術的には機能しているが、特定のボタンのラベルが曖昧でユーザーを混乱させる場合など、使いやすさに関する問題を特定できます。

探索的テストの役割

探索的テストは、タスクベースのテストをさらに発展させたものです。テスターは具体的な指示を受け取るのではなく、業務プロセスの一般的な概要を伝えられ、それを基に「探求」します。この方法では、アプリケーションが期待通りに機能するかどうかを確認するだけでなく、どのような問題が潜在的に発生するかを積極的に調査します。

探索的テストは非常に効果的ですが、再現性に欠けるという欠点があります。問題が発見されても、どのようにそれを再現すればよいのかが分からない場合があります。このような課題は、後の章で詳しく説明します。

テスト担当者にどのように指示を出すべきか?

テスターのスキルレベルは、どのような指示を出すべきかを決定します。大まかに以下の3つの方法があります:

  • スクリプトを割り当てる
  • タスクを割り当てる
  • 目標を設定する

これらの方法は、以下の3種類のテスターに対応しています:

  1. テスト手法に関してほとんど知識がない人
  2. 業務プロセスを理解しているが、テストに詳しくない人
  3. テストを理解しているが、業務プロセスには詳しくない人

業務プロセスとテストの両方に精通している人は「ユニコーン」のような存在で、非常に希少です。もしチームにそのような人がいれば、大いに活用しましょう!

ステップバイステップのスクリプト割り当て

「何も知らない」テスターには、各タスクの詳細な手順を提供する必要があります。例えば:

  1. Salesforceをブラウザで開いてください。
  2. メニューバーから「レポート」をクリックします。
  3. レポートビューが開くのを待ちます。
  4. 「先月開いた商談」という名前のレポートを検索してください。
  5. そのレポートを開きます。
  6. 最初の3列が「商談タイトル」「顧客」「価値」であることを確認してください。
  7. フィルターボタンが無効化されていることを確認してください。
  8. レポートを閉じます。

このようなスクリプトベースのテストでは、業務プロセスに詳しい必要はありません。ただし、このような詳細な指示を作成する時間があるなら、テストを自動化する時間もあるはずです。

現代のテスト自動化ツール(特にAIベースのもの)では、自動化されたテストを作成するのは、人間が読めるスクリプトを作成するのとほとんど変わりません。

タスクベースおよび目標ベースのテスト割り当て

業務ユーザー向けには、タスクベースのアプローチが最適です。具体的な手順ではなく、目標を設定します。例えば:「新しいリードを作成する」や「最近開いた商談のレポートを実行する」などです。

プロフェッショナルテスターや高度なスキルを持つ業務ユーザーには、目標ベースのテストが理想的です。たとえば:「新しく追加された商談レポートを探索する」などです。

この種のテストは、抽象的ではありますが、テスターに自由な裁量を与え、アプリケーションのリスク領域をより深く探ることができます。

まとめ

手動テストは、どんなテスト戦略においても重要な役割を果たします。特定の状況では、自動化よりもコスト効率が高い場合もあります。

計画は必須です。たとえ簡単なテストであっても、計画を怠ることは避けてください。シンプルな機能にはシンプルな計画で対応できますが、計画そのものを省略してはいけません。

人間のリソースは貴重です。彼らの時間を尊重し、慎重に計画を立てましょう。これにより、強力で関与度の高いテスターのチームを維持できます。

次の章では、AIがどのようにテストを変革し、自動化のROI(投資対効果)を向上させるかを探ります。

次の章へ進みましょう!

Book a demo

About The Author

SVP, Product Management

Esko Hannula is an experienced software executive with a life-long interest in the connection between software quality and business performance. He’s known for insightful and often provocative ideas. Prior to joining Copado, Esko has collected 30+ years of leadership experience in software, IT, telecom, and services industries.

ビジネスアプリケーション向けのDevOps(デブオプス)って何?
セールスフォースエコシステムにおけるDevOpsの卓越性
セールスフォーステストにおけるAI活用のベストプラクティス
6 testing metrics that’ll speed up your Salesforce release velocity (and how to track them)
第4章: 手動テストの概要
セールスフォース向けAI動作テスト
Chapter 3: Testing Fun-damentals
Salesforce Deployment: Avoid Common Pitfalls with AI-Powered Release Management
Exploring DevOps for Different Types of Salesforce Clouds
Copado Launches Suite of AI Agents to Transform Business Application Delivery
What’s Special About Testing Salesforce? - Chapter 2
Why Test Salesforce? - Chapter 1
Continuous Integration for Salesforce Development
Comparing Top AI Testing Tools for Salesforce
Avoid Deployment Conflicts with Copado’s Selective Commit Feature: A New Way to Handle Overlapping Changes
From Learner to Leader: Journey to Copado Champion of the Year
Enhancing Salesforce Security with AppOmni and Copado Integration: Insights, Uses and Best Practices
The Future of Salesforce DevOps: Leveraging AI for Efficient Conflict Management
A Guide to Using AI for Salesforce Development Issues
How to Sync Salesforce Environments with Back Promotions
Copado and Wipro Team Up to Transform Salesforce DevOps
DevOps Needs for Operations in China: Salesforce on Alibaba Cloud
What is Salesforce Deployment Automation? How to Use Salesforce Automation Tools
Maximizing Copado's Cooperation with Essential Salesforce Instruments
Future Trends in Salesforce DevOps: What Architects Need to Know
From Chaos to Clarity: Managing Salesforce Environment Merges and Consolidations
Enhancing Customer Service with CopadoGPT Technology
What is Efficient Low Code Deployment?
Copado Launches Test Copilot to Deliver AI-powered Rapid Test Creation
Cloud-Native Testing Automation: A Comprehensive Guide
A Guide to Effective Change Management in Salesforce for DevOps Teams
Building a Scalable Governance Framework for Sustainable Value
Copado Launches Copado Explorer to Simplify and Streamline Testing on Salesforce
Exploring Top Cloud Automation Testing Tools
Master Salesforce DevOps with Copado Robotic Testing
Exploratory Testing vs. Automated Testing: Finding the Right Balance
A Guide to Salesforce Source Control
A Guide to DevOps Branching Strategies
Family Time vs. Mobile App Release Days: Can Test Automation Help Us Have Both?
How to Resolve Salesforce Merge Conflicts: A Guide
Copado Expands Beta Access to CopadoGPT for All Customers, Revolutionizing SaaS DevOps with AI
Is Mobile Test Automation Unnecessarily Hard? A Guide to Simplify Mobile Test Automation
From Silos to Streamlined Development: Tarun’s Tale of DevOps Success
Simplified Scaling: 10 Ways to Grow Your Salesforce Development Practice
What is Salesforce Incident Management?
What Is Automated Salesforce Testing? Choosing the Right Automation Tool for Salesforce
Copado Appoints Seasoned Sales Executive Bob Grewal to Chief Revenue Officer
Business Benefits of DevOps: A Guide
Copado Brings Generative AI to Its DevOps Platform to Improve Software Development for Enterprise SaaS
Celebrating 10 Years of Copado: A Decade of DevOps Evolution and Growth
Copado Celebrates 10 Years of DevOps for Enterprise SaaS Solutions
5 Reasons Why Copado = Less Divorces for Developers
What is DevOps? Build a Successful DevOps Ecosystem with Copado’s Best Practices
Scaling App Development While Meeting Security Standards
5 Data Deploy Features You Don’t Want to Miss
Top 5 Reasons I Choose Copado for Salesforce Development
How to Elevate Customer Experiences with Automated Testing
Getting Started With Value Stream Maps
Copado and nCino Partner to Provide Proven DevOps Tools for Financial Institutions
Unlocking Success with Copado: Mission-Critical Tools for Developers
How Automated Testing Enables DevOps Efficiency
How to Keep Salesforce Sandboxes in Sync
How to Switch from Manual to Automated Testing with Robotic Testing
Best Practices to Prevent Merge Conflicts with Copado 1 Platform
Software Bugs: The Three Causes of Programming Errors
How Does Copado Solve Release Readiness Roadblocks?
Why I Choose Copado Robotic Testing for my Test Automation
How to schedule a Function and Job Template in DevOps: A Step-by-Step Guide
Delivering Quality nCino Experiences with Automated Deployments and Testing
Best Practices Matter for Accelerated Salesforce Release Management
Maximize Your Code Quality, Security and performance with Copado Salesforce Code Analyzer
Upgrade Your Test Automation Game: The Benefits of Switching from Selenium to a More Advanced Platform
Three Takeaways From Copa Community Day
Cloud Native Applications: 5 Characteristics to Look for in the Right Tools
Using Salesforce nCino Architecture for Best Testing Results
How To Develop A Salesforce Testing Strategy For Your Enterprise
What Is Multi Cloud: Key Use Cases and Benefits for Enterprise Settings
5 Steps to Building a Salesforce Center of Excellence for Government Agencies
Salesforce UI testing: Benefits to Staying on Top of Updates
Benefits of UI Test Automation and Why You Should Care
Types of Salesforce Testing and When To Use Them
Copado + DataColada: Enabling CI/CD for Developers Across APAC
What is Salesforce API Testing and It Why Should Be Automated
Machine Learning Models: Adapting Data Patterns With Copado For AI Test Automation
Automated Testing Benefits: The Case For As Little Manual Testing As Possible
Beyond Selenium: Low Code Testing To Maximize Speed and Quality
UI Testing Best Practices: From Implementation to Automation
How Agile Test Automation Helps You Develop Better and Faster
Salesforce Test Cases: Knowing When to Test
DevOps Quality Assurance: Major Pitfalls and Challenges
11 Characteristics of Advanced Persistent Threats (APTs) That Set Them Apart
7 Key Compliance Regulations Relating to Data Storage
7 Ways Digital Transformation Consulting Revolutionizes Your Business
6 Top Cloud Security Trends
API Management Best Practices
Applying a Zero Trust Infrastructure in Kubernetes
Building a Data Pipeline Architecture Based on Best Practices Brings the Biggest Rewards
CI/CD Methodology vs. CI/CD Mentality: How to Meet Your Workflow Goals
DevOps to DevSecOps: How to Build Security into the Development Lifecycle
DevSecOps vs Agile: It’s Not Either/Or
Go back to resources
There is no previous posts
Go back to resources
There is no next posts

Explore more about

セールスフォーステスト
Articles
October 31, 2024
ビジネスアプリケーション向けのDevOps(デブオプス)って何?
Articles
October 15, 2024
セールスフォースエコシステムにおけるDevOpsの卓越性
Articles
October 11, 2024
セールスフォーステストにおけるAI活用のベストプラクティス
Articles
October 4, 2024
6 testing metrics that’ll speed up your Salesforce release velocity (and how to track them)

AIを有効活用しDevOpsを加速

より速くリリースし、リスクを排除し、仕事を楽しんでください。
コパードDevOpsをお試しください。

リソース

リソースライブラリを使用して セールスフォースDevOpsのスキルをレベルアップしてください。

今後のイベントと
オンラインセミナー

さらに詳しく

電子書籍とホワイトペーパー

さらに詳しく

サポートとドキュメンテーション

さらに詳しく

デモライブラリ

さらに詳しく