ソフトウェア開発201の鉄則 原理109:テスティング:自分のソフトウェアを自分でテストするな

要旨

* デバッグやリグレッションテスト、確認のための単体テストといったもの以外の、本格的なテストをソフトウェア開発者は自分で行ってはならない
* テストというのは、バグが見つかって欲しくないと願う開発者に対し、バグを見つける、という行為なので、自分で行ったら正しくできるはずもないからだ
* そして、テスト担当者は、発見したバグを皆の前にさらして、開発者の面子を潰すようなことをしてはならない
* テスティングというのは、バグがでないことを期待する開発者に対し、精神的に追い打ちをかけるような仕事であることを開発者もテスターも認識しよう

解説

こう書いてあると、そっか、自分じゃやったいけないのか、と思うだろう。

自分でやるべきテストも、ある。それは、自分が設計・実装した機能が基本たたしく動作するかを確認するための単体テスト、それと、バグを修正した時、本当にちゃんと修正されているか、別のバグを発生させていないか、を確認するリグレッションテスト。

これは、ソフトウェア開発者が「自分が正しい仕事ができたのか」を確認するためのものなのだから、それは、自分でやろう。

それ以降の本格的なテスティング、ストレステストとか統合テストとか、ロングランとか。

テスティングというのは、バグがないことを示すためにやるのでは、「ない」。

全く逆で、「バグを見つけるために」やるものである。

一方で、ソフトウェア開発者は、決して、自分が開発したものにバグがあることを望んだりは、しないだろう。

そのような、自分が作ったものに対して、出てくることを望まないバグを見つける。それがテスティング。

自分でできるわけが、ない。

どうしても、自分でやると、甘〜〜くなるだろう。本格的にテストしているようで、どうしても特定の優しい状況を作り出して実行していることが往々にある。

十分確認した、と自信満々で持ち込んで、テスターに一撃でバグを見つけられた、という経験は、誰しもお持ちだろう。

「バグがない」というのは、開発者にとって、成果を出した証。

「バグを見つけた」というのは、テスターにとって、成果を出した証。

お互いの仕事を尊重して、仲良くやりましょう。


この記事が気に入ったらサポートをしてみませんか?