ソフトウェアテストの7つの原則でテストをPokémon GOのように楽しもう

バリバリとコーディングをするプログラマの仕事に憧れていた方にとって、テストの仕事の楽しさはなかなか分かりづらいかもしれません。

そんなあなたのために「ソフトウェアテストの7つの原則」をご紹介。これを知っておくとテストに積極的に関わることができるようになり、まるでPokémon GOのように楽しめるようになりますよ!

ソフトウェアテストの7つの原則

1

JSTQB (日本ソフトウェアテスト資格認定委員会)という委員会があります。その名のとおりソフトウェアのテストの資格試験を管理する組織で、JSTQBの資格は世界的に展開するISTQB(International Software Testing Quality Board )が定めた基準に準拠しているので国外でも有効なものです。「ソフトウェアテストの7つの原則」はそのJSTQBに規定されています。

1. テストは「欠陥があること」しか示せない

テストを何百回やっても、どんなに厳しいテストにパスしても、「このソフトウェアにはバグかありません」と言い切ることはできません。他のテストパターンに変えたらバグが発覚するかもしれないからです。テストの結果から言えることは、バグを検出した場合に「欠陥がある」ということだけなのです。

2. 全数テストは不可能

全てのテストパターンを実行することは不可能です。例えば、自動販売機のお釣りを計算するプログラムで、120円のジュースを売る場合を考えてみます。入ってくる硬貨のパターンは、100円が1枚と10円が2枚だけとは限りません。パターンは限られているとはいえ様々な入金ケースがあり、それら全てテストすることは不可能です。

3. 初期テストが重要

ソフトウェア開発では設計段階やコーディングが始まったばかりの初期の段階で不具合を見つけることができれば修正するのは簡単です。ところが不具合が発覚するのが後の行程になると、作る・設計・テストとやり直さないといけない段階が多くなり、後戻りの工数が大きくなってしまいます。開発の早い段階でテストを行って不具合を潰しておくことが重要なのです。

4. 欠陥の偏在

ソフトウェアの欠陥は広い範囲に平均して潜在するものではありません。特定の部分に集中していることが多く、設計が甘いモジュール、複雑なインターフェース、スキルが低いメンバーがコーディングしたプログラム、などに集中しているものなのです。

特定のモジュールを一人のプログラマ個人に任せっぱなしにすると、エラー処理が甘くてそのモジュールで不具合が頻発するということもあり得ます。個人を責めるのはよくないですが、欠陥を探すときは作者を意識することも必要です。

5. 殺虫剤のパラドックス

同じ殺虫剤をずっと使い続けていると、だんだん効かなくなってしまいます。耐性を持つものが出てきてそれ以降はその殺虫剤は効果がなくなってしまうのです。虫も進化するのでしょう。

これと同じことがソフトウェアのテストにも当てはまります。同じテストをなんども繰り返すとそのテストでは新しいバグを見つけられなくなります。これは同様のバグが作り込まれることがなくなるためです。これを「殺虫剤のパラドックス」と呼びます。ソフトウェアテストでは殺虫剤と同じように新しい内容のテストを常に作っていく必要があるのです。

6.テストは条件次第

金融機関のシステムは正確に計算されセキュリティ性が高いことが必須です。一方、ゲームのソフトウェアは画像が止まることなくサクサク動かなくては売れません。
テストもソフトウェアの種類によって観点を変えておこなう必要があります。ソフトウェアの条件次第でテストは変わるのです。

7.「バグゼロ」の落とし穴

そのバグを回避するために大修正をしてバグゼロを実現しましたが、全体の処理速度が30%低下してしまいました。はたしてその修正は本当に必要だったのでしょうか。バグゼロが必ずしもベストではない場合もあることを意識しましょう。

効率的にバグの発見のヒントになる

2

「ソフトウェアテストの7つの原則」は効率的にバグを見つけるためのヒントになり、知っていると、より効果的なにアクションをとることができます。

・初期テストが重要だからコーディング工程と並行して単体テストを開始する
・欠陥は偏在するから1つバグを見つけたらその周辺を徹底的にテストする
・殺虫剤を改良するようにテストパターンをどんどん変えてみる

ソフトウェアのテストするとはいっても、何から始めてどこまでやればいいのか判断しづらいと思います。7つの原則は、テストする内容や範囲を判断するうえで、認識しておくべき事項であるといえます。

守るテスト担当から攻めるテストエンジニアへ

仕様書に書いてある項目を全てテスト項目にしました、というのは最低限のテストです。仕様を網羅して最低限の義務を果たすだけの守るテスト担当のままでは仕事にやりがいを持てません。テストの原則を理解したうえで、積極的にバグを見つけてやろうという攻めるテストエンジニアを目指しましょう。

ソフトウェアにバグは必ずあります。潜在するバグを見つけるのは探偵が事件の謎を解くようなものです。7つの原則と経験と勘を頼りにして探偵のように謎を解く、そんな攻めるテストエンジニアになってソフトウェア開発に大きく貢献しましょう。

次のページ:バグ探しはPokémon GO探しと似ている?

 

この記事を書いた人:あべっかん

abekkan_L

IT企業の組み込みシステムの部門で主にテスト工程を担当するエンジニア。エンジニア向けの記事やコラムの執筆も行っています。また、四人の子どもの父であり、子育て・教育ブログも書いています。http://abekkan.com/

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。