見出し画像

誰でもわかるテスト技法

初心者が使えるソフトウェアテストにおけるテスト技法(個人見解)

ソフトウェアテストは、ソフトウェアの品質を確保するための重要なプロセスです。
初心者でも使えるテスト技法を理解することは、テストの効率を高め、効果的なテストケースを設計するために非常に役立ちます。
この記事では、国際ソフトウェアテスト資格委員会(JSTQB)に定められたテスト技法について簡単に書いてみました。

1. 同値分割(Equivalence Partitioning)

同値分割は、入力データをいくつかのグループ(パーティション)に分け、それぞれのグループから代表的な値を選んでテストする技法です。各パーティションは、内部で同じ動作を引き起こすと仮定されます。この技法は、テストケースの数を減らしながらも、効率的にテストを行うことができます。

例: 年齢を入力するフィールドがある場合、0-17歳、18-65歳、66歳以上の3つのパーティションに分け、それぞれの代表値(例えば、10歳、30歳、70歳)をテストします。

2. 境界値分析(Boundary Value Analysis)

境界値分析は、同値分割とよく組み合わせて使用される技法で、境界付近の値をテストすることで、バグを発見しやすくします。境界値はエラーが発生しやすい場所であるため、特に注意が必要です。

例: 同じく年齢のフィールドで、0歳、17歳、18歳、65歳、66歳の値をテストします。

3. 決定表テスト(Decision Table Testing)

決定表テストは、複数の条件とその組み合わせによる出力を整理するための表を使用する技法です。複雑なロジックが絡む場合に有効で、すべての条件組み合わせを網羅することで、抜け漏れを防ぎます。

例: ユーザーがオンラインショッピングサイトで購入する際、会員登録の有無、クーポンの利用、送料の計算などの条件と、それに応じた結果を決定表にまとめてテストします。

4. 状態遷移テスト(State Transition Testing)

状態遷移テストは、システムの状態とその遷移をモデル化し、各遷移に対するテストを行う技法です。システムが異なる状態を持ち、それらの間で遷移が発生する場合に有効です。

例: ATMの操作フローを考えた場合、カード挿入、暗証番号入力、取引選択、金額入力、現金引き出しなどの状態遷移をテストします。

5. ペアワイズテスト(Pairwise Testing)

ペアワイズテストは、テストする変数のすべてのペアを組み合わせてテストする技法です。これにより、組み合わせの数を大幅に削減しながらも、重要なインタラクションをカバーすることができます。

例: WebブラウザとOSの組み合わせをテストする場合、Chrome、Firefox、Safariの各ブラウザと、Windows、macOS、Linuxの各OSのペアをテストします。

6. 探索的テスト(Exploratory Testing)

探索的テストは、事前に計画されたテストケースではなく、テスターの経験と直感に基づいてシステムを探索しながら行うテスト技法です。新しいバグを発見しやすく、システムの深い理解を得るために有効です。

例: 新しい機能が追加されたアプリケーションを、テスターが自由に操作してバグを探します。

まとめ

初心者が使えるソフトウェアテスト技法を理解することは、テストの品質と効率を向上させるために不可欠です。
同値分割、境界値分析、決定表テスト、状態遷移テスト、ペアワイズテスト、探索的テストの各技法を活用することで、より効果的なテストケースを設計し、ソフトウェアの品質を確保することができます。
これらの技法を実践に取り入れて、テストスキルを向上させることはできるかもしれません。

ただ、上記はあくまで技法であって、不具合を見つけるためというよりも定められた仕様が正常に動くよね?大丈夫だよね?という確認をするための手段であり推察を助ける方法です。(※探索的テストだけ違うけど)
どれだけ技法を使って、どれだけテストしても見つからないときはみつからない。
でも、ふとしたとき「あれ?これ不具合じゃん」ってなる発見をしたときが初めてテストしていて楽しく感じられる瞬間かもしれません。
だって、だれも見つけられない方法で見つけたらうれしくない?
っておもう私はちょとひねくれているかもしれません。


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