手動テストと自動テストの相対的な価値


8

私が働いている組織では最近、手動テストを実行するためにテスト担当者を雇っていますが、開発者としてユニットテストを書く時間を与えられるかどうかを尋ねたところ、手動​​テストの方が費用が大きくなると回答しました。それは私には間違っていると感じているものであり、手動と自動のテストを相互に評価する手段を探しています。手動テストの場所がないと言っているわけではありませんが、自動テストは、少なくとも、繰り返しの多い退屈なタスクのいくつかを取り除くように思えます。いくつかの単体テストといくつかのセレンテストを実行するビルドサーバーがあるので、自動テストのアイデアは無意味ではありませんが、投資収益率が低いと見なされています。

システムの完全なエンドツーエンドテストを誰かに行わせることで最終製品がテストされ、最終的にそれがユーザーの関心事であることが理解できますが、それは時間がかかり、非常に反復的です。手動回帰テストとは、以前のすべてのテストを繰り返し、何も変更されていないことを確認することです。プロセスに4つのパスがある場合、それはそれぞれ5分かかる4つの手動テストです。

それで、自動テストの時間の予算を立てるために使用できる検証可能な事実と数値はありますか?さらに言えば、リンクにあるもの以外の自動テストの欠点は何ですか?


1
締めくくる投票-意味のある回答を提供するためにテストする組織とソフトウェアの詳細に関する十分な情報がありません(おそらくそうすることはできません)。意味のある答えは、一般的なコミュニティには具体的すぎる可能性があります
mattnz

@mattnz完全な回答には組織、文化、財政などの知識が必要であることを感謝しますが、概念的には、より自動化されたテストのケースを作るために使用できる客観的な引数があるかどうか知りたいです。
Simon Martin

回答:


14

投資収益率(ROI)のコンテキストでの「手動」テストと「自動化」テストについて考えるとき、私はまったく注意します。自動化の価値について論じるとき、それは誤った考えの形式です(そのリンクの「Time Machine」セクションを参照してください)。

まとめられたTime Machineの誤解は次のとおりです。テストアプローチのROIを真に決定できる唯一の方法は、未来を訪れ、何が起こったかを確認できるTime Machineを用意することです。あなたは(ほとんどの場合)これを行うことができないため、ROIの推定は、せいぜいヒューリスティックであり、いくつかのハードルールではないはずです。現在の情報を使用して、特定のテスト作業に関する情報に基づいた決定行うと、チームにとって有用かどうかがわかります。

代わりに、テストに関しては、製品のどの領域に最も注意が必要か、どこに最大のリスクがあるかを考えます。おそらく、エンドツーエンドの統合テストでアプリのほとんどの問題が見つかることが確認されています。単体テストがメリットをもたらすとしても、それらのメリットは関連するコスト(開発者の参加、テストの作成と実行など)に見合わない場合があります。同様に、テストのメリット/デメリットではなく、メリット/コストについて考えてみてください。


3
リンクしたポイントの概要を回答に
含める

+1はあなたのものです。:)
vaughandroid 2013

4
私からも+1しました。ただし、OPに「手動テストで費用がかさむ」と言った人も、誤った考えをした可能性が高いと思います。
Doc Brown、

10

まず、単体テスト他の自動テストを明確に区別する必要があります。これらは、目的が異なる2つの異なるものです。

ユニットテストは、コードのごく一部を検証するためのテストです。それらは通常、「テスト中」のソースコードを知っている開発者によって書かれたホワイトボックステストです。TDDでは、テストを記述した後にソースコードを記述する開発者によって、テストが最初に記述されます。これらの種類のテストは、その性質上、「テスト担当者」に転送することはできません。また、組織が完全に見当違いである場合を除いて、上司にそれらを書くことを許可するかどうか、いつ許可するかを尋ねる必要はありません。あなたがあなたのソースコードにコメントを書くことが許されているかどうか、いつ上司に尋ねるか。

統合テスト、受け入れテスト、その他のブラックボックステストは別物です。これらのテストを手動で適用するテスト担当者がいて、彼が同じ種類のテストを何度も繰り返す必要がある場合、自動化の必要性は、あなたではなく、彼から要求されるべきです(もちろん、自動化できるテストの種類と、そうでないテストを彼に透過的にする。彼は、自動化が意味があると思うテストの種類と、そうでないテストについて教えてください。おそらく、彼はいくつかの回帰テストツールを使用して、自分で自動化を行うか、彼のためにいくつかのツールを作成するようにあなたの助けを求めます。

もちろん、彼が経験を積んでいないか、自分で結論を出すのに十分なほど賢くないかどうかを考えるときは、彼と話し合う必要があります(それが役に立たない場合は、おそらく上司に相談してください)。ただし、私見では、テストの自動化が不足しているために、テスト担当者が本番環境のボトルネックになっていると思われる場合にのみ、これを行う必要があります。


3

誰もが常に外部の例や研究を望んでいますが、これらは管理を説得するのにあまり効果的ではありません。手動テストが本当にあなたの会社のボトルネックであるなら、あなたはあなたが必要とするすべての内部の例を手にするでしょう:

バグが誤ってドアから出てしまいます。以前は機能していたと述べ、回帰テストに追加するように要求します。手動テスターは、回帰テストに時間がかかりすぎると述べています。あなたはそれの自動テストを行うことを提案します。手動テスターは、彼が圧倒されていると感じており、より「興味深い」テストケースに集中するためにより多くの時間を必要とするため、このアイデアを歓迎します。怒っている顧客の声がまだ耳に残っているので、経営陣はテストの自動化についてあなたの要点を見始めます。

あなたの会社でこのような会議が行われていない場合、外部からの調査があなたを説得することはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.