こんにちは。新卒2年目のchoreiiです。
最近は会社所有の書籍を読むのが趣味になってきています。
今回のブログはそんな書籍のうちからソフトウェアテストに関する1冊を紹介します。
目次
はじめに
今回紹介するのは「はじめて学ぶ ソフトウェアテストのソフト技法」という書籍になります。
https://www.amazon.co.jp/dp/B00HE8082Q
今まで業務でテストを作成・実施してきましたが、テストの手法などについて意識したことがあまりなく、既存のテスト仕様書に書き方や粒度をあわせて実施することが多かったです。書籍を読むことで、何気なくおこなっていたことがソフトウェアテストの手法の一つであることに気づかされたり、その手法を取った際のメリットなどについて体系的に学ぶことができました。
書籍で紹介されているテスト手法を簡単に紹介していきます。
ソフトウェアテスト手法
ソフトウェアテストの手法には、大きく分けてブラックボックステストの手法とホワイトボックステストの手法があります。
- ブラックボックステスト
- ホワイトボックステスト
- 制御フローテスト
- データフローテスト
今回はブラックボックステストの一部の項目について紹介します。
ちなみに、デシジョンテーブルについてはラクスのエンジニアがすでに解説している記事がありますので、よろしければこちらもご覧ください。
同値クラステスト
同値クラステストとは、期待するテスト結果をグループ分けすることでテストを効率的に行う手法です。
例えば以下のような条件のシステムが存在するとします。
バイトの時給区分を決めるシステム 15歳未満は、雇用不可 15歳以上22歳未満は、学生 22歳以上は、一般
この場合、16歳や20歳の期待値はともに「学生」のはずです。今回のように項目が少なければ全ての歳のパターンをテストすることは可能ですが、これが1500〜1800などのグループで同一のテスト結果が期待である場合、全ての数値をテストすることは難しいですし非効率的です。今回の要件ですと、15〜21の数値のいずれかをテストすれだけで、期待値が「学生」のグループが正しく実装されているかどうかのテストは十分であると言えるでしょう。同値クラステストという名称を聞いたことがない、または普段意識していなくても何かをチェックする時は無意識のうちにこの手法が使われています。
境界値テスト
境界値テストは上記の同値クラステストと関連が深いです。同値クラステストが効率的にテストする手法なのに対し、境界値テストは効果的にテストを行う(バグを見つける)手法になります。上記のシステムですと、「雇用不可」と「学生」の境目は15歳になります。システムの設計者・実装者が少し間違えると境目が16歳になってしまうかもしれません。このようにバグは境界値とその周辺におこりやすいと言われています。この境界値を確認することで効果的にバグを発見することができます。
ペア構成テスト
ペア構成テストは組み合わせテストの一つです。
入力項目(フォーム)が一つであればパターンもそんなに多くはなりませんが、項目が2つ3つとなっていくと入力のパターンは2乗3乗と膨れ上がっていきます。例えば0〜2が入力できるフォームが4つあるシステムを考えてみます。パターンは3の4乗で81パターンになります。これら全てのパターンをテストするのは難しいです。また、システムの欠陥の傾向として2つまでのパラメータによる欠陥が全体の欠陥の9割を占めるという話があるようです。そのためペア構成テストでは全ての入力項目のうち2つの入力値を抜き出したさいに全てのペアを網羅するようなテストパターンを作成します。
パターン | 入力1 | 入力2 | 入力3 | 入力4 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 1 | 1 | 1 |
3 | 0 | 2 | 2 | 2 |
4 | 1 | 0 | 2 | 1 |
5 | 1 | 1 | 0 | 2 |
6 | 1 | 2 | 1 | 0 |
7 | 2 | 0 | 1 | 2 |
8 | 2 | 1 | 2 | 0 |
9 | 2 | 2 | 0 | 1 |
上記の表で全てのペアのパターンが網羅されていることがわかると思います。このペアを作るツールとして、PICT(Pairwise Independent Combinatorial Testing tool)などが存在します。
最後に
このブログを見て、ソフトウェアテストの手法のさわりを理解して興味を持っていただけたなら、是非とも紹介書籍を読んでみてください。今回紹介したようなテスト手法だけでなく、なぜテストをするのかといったテストの意義などの根本から順序立てて説明されているので本当におすすめです。実際の業務でのテストと照らし合わせながら読んでみると気づきや発見が出てくるので中々面白いです。私自身一通り読みましたがさらっとしか読めていないので、今度はじっくりともう一周読んでいきたいと思います。また他にもいい書籍を読みましたらご紹介できればと思っています。