Help us understand the problem. What is going on with this article?

テスターのメンタル・ライフ

More than 3 years have passed since last update.

はじめに

この記事は、ソフトウェアテスト Advent Calendar 2016 10日目の記事です。

ここで書くこと

前職の同僚から教えてもらったテストに対する考え方を紹介します。
システムの品質とUTについて | アライドアーキテクツ エンジニアブログ

テスターのメンタル・ライフ

出展: Software Testing Techniques, 2nd Edition

Phase Mental
Phase 0 There’s no difference between testing and debugging. Other than in support of debugging, testing has no purpose.
Phase 1 The purpose of testing is to show that the software works.
Phase 2 The purpose of testing is to show that the software doesn’t work.
Phase 3 The purpose of testing is not to prove anything, but to reduce the perceived risk of the software not working to an acceptable value.
Phase 4 Testing is not an act. It is a mental discipline that results in low-risk software without much testing effort.

Phase 0

There’s no difference between testing and debugging. Other than in support of debugging, testing has no purpose.

『テストとデバッグには何の差もない。デバッグ以外にはテストに目的はない。』

Phase 1

The purpose of testing is to show that the software works.

『テストの目的は、ソフトウェアが動くということを示すことである。』

Phase 2

The purpose of testing is to show that the software doesn’t work.

『テストの目的は、ソフトウェアが動かないということを示すことである。』

Phase 3

The purpose of testing is not to prove anything, but to reduce the perceived risk of the software not working to an acceptable value.

『テストの目的は、何かを証明することではなく、ソフトウェアが動かないことによって発生するリスクをある許容範囲にまで減らすことである。』

Phase 4

Testing is not an act. It is a mental discipline that results in low-risk software without much testing effort.

『テストは活動ではない。そもそもテスト以前に品質の高いソフトウェアを作るための精神的な訓練である。』

おわりに

テストの目的は「バグがないことを証明するため」と考えている人が多いのではないでしょうか?
これはメンタル・ライフでいうと、Phase 1の『テストの目的は、ソフトウェアが動くということを示すことである。』の段階にとどまっています。

そもそも「バグがない」と言える状況にまで持ってくるのは、めちゃくちゃ大変です。
正常系の処理は問題なくても、以下のような要因に左右されてバグは発生してしまいます。

  • アクセス負荷の状況
  • ブラウザ・OSの種類
  • ネットワークの状態
  • 連携外部サービスの状態

また、このAdvent Calendar 7日目のプログラマーも手動テストしようぜ 〜 忍者式テストのすすめ 〜では以下のように述べられてます。

  • プログラマーはあらかじめ知っている不具合しか見つけられない
  • 自分のプログラムに不具合があるとは思いたくない

この指摘はとても刺さりました。自分もメンタル・ライフでいうとまだまだPhase 1の段階なので、バグは存在するという現実に向き合って、メンタル・ライフのPhase 2 ~ Phase 4に成長できるように頑張りたいところです。

massa142
Programming / Perfume / Lacrosse
http://massa142.github.io/
squeeze-inc
「価値の詰まった社会を創る」をビジョンに掲げ、民泊・宿泊チャネルの全物件情報・予約情報・顧客情報を一元管理できる『suitebook』を運営しています。
https://squeeze-inc.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away