テストタイプはテスト目的なのか?!

このエントリーをはてなブックマークに追加
こんばんは。
inomata@QAです。

今日は停止リリースの日なので、深夜作業をしています。
ただ私の出番はあまりないので、深夜テンションでブログを書くことにしました。
あと、なんとなくライブ感を出したいので書いてる時間を乗せています。

今回はテストタイプというものについて掘り下げて考えたいと思います。
それではスタートです。


1:48
よいテストケースというのは、必ずテスト目的が明示されていて、後から見直しても何をテストしているかがわかるようになっています。
しかし、実際の現場で使用されるテストケースというのは、テストの実行手順しか書かれていなかったり、組み合わせの表しかなかったりします。
これでは、後から見直したときに何をテストしているかがわかりません。具体的にいうと、ソフトウェアを改修したときに、テストケースの再利用ができません。
これはもったいない。
一方、テストタイプという用語があります。JSTQBが公開している用語集によると以下のようにあります

***
テストタイプ(test type): コンポーネント又はシステムをテストするためのテスト活動をまとめたものであり、たとえば機能テスト、使用性テスト、回帰テストなどのように特定のテスト目的に焦点を当ててい
る。テストタイプは一つ又は複数のテストレベル又はテストフェーズで行なわれる。

ソフトウェアテスト標準用語集(Version 2.2.J01)より
***

ここでは”機能テスト”という単語がテスト目的として扱っていますが、これが本当にテスト目的になりえるのかを考えたいと思います。
と、その前に疑問が。そもそも機能テストとはどういうテストか?みんなが機能テストと呼んでいるものはみんなの想像通りのものか?テストタイプって定義されてるのか?

先日のJaSSTではえらい人たちが、テストタイプは特に誰かが決めているものはなく、自分たちの組織で定義してよいものといっていました。
××テストといったら、○○を使って△△を見るんだな。という理解を各組織全員が持っていればよいのです。
たしかに、その業界でしか行わないテストというものはあるだろうし、きっと細分化されています。

2:10
で、話を戻しますが、それらのテストタイプはテスト目的になっているのでしょうか。
機能テストの目的は何でしょうか。"機能が仕様通りに動くことを確認するテスト"でしょうか。これはおおむね正しそうです。
では非機能テストの目的は何でしょうか。"性能要求が達成できていることを確認するテスト"でしょうか。これはあってそうです。
"ユーザーにわかりやすい画面を提供しているかを確認する"というテストはどうでしょうか。これは使用性のテストなので、非機能テストです。あってます。
こまった。非機能テストというテストタイプで複数の目的が産まれてしまいました。
そもそも非機能というのはISO9126によると機能以外の要求のことで、これは信頼性、使用性、効率性、保守性、可搬性を含みます。
非機能テストというテストタイプはこれらのテスト目的を含んでしまいます。

2:24
じゃあ非機能の5つを分けてテストタイプにすればいいのか?
例えば信頼性には、エラーが起きた場合にユーザーにエラーを知らせる、ロールバックするなどの仕組みが必要で、これらにもそれぞれの目的を持たせたテストが必要になります。
ということは、"信頼性テスト"というテストタイプはテストの目的にはなりません。

2:42
うーん。どうやらテストタイプはテスト目的ではなく、もう少し抽象化されたテストのグループという程度のものみたいです。
もしくは機能テスト、使用性テストという区分がテスト目的としては少し雑な感じです。
テスト目的はテストタイプより具体的であり、一つ以上のテストケースをもつものであることが分かってきました。
一つ以上というのは例えばある機能の動作保障のためにデシジョンテーブルを作ったら、テストケースが4つできた。という場合は機能Aの動作保障という目的に対してテストケースが4つになるからです。



図にするとこんな感じです。


テストケースを再利用するという観点から言えば、この構成のようにテスト目的はテストケースのすぐ隣にあるのがよいと思います。

2:54
じゃあテストタイプはいらないのかといえば、そうではなさそうです。
このテストタイプというのはテスト設計の取っ掛かりとしては大変有効です。
例えば使用性テストを考えて見ましょう。といったとき、わかりやすいUIなのか。使いたくなるようなUIか。操作性は問題ないか。というような観点を探し出してテストを設計していくことになります。
少なくとも、組織でテストタイプを共有しておけばテストを設計しやすいし、レビューもしやすいです。あるいは製品の仕様をつめる材料にもなりそうです。

3:26
少し話がずれましたが、以上をまとめると

・テストタイプはテスト目的にしては抽象的である。(テスト目的にはなりえない)
・テスト再利用の観点からはテスト目的はテストケースのすぐ隣にあるほうがよい。
・テストタイプは設計の材料としては役に立つ。

というようになりました。
深夜テンションの割にはなかなか興味深い記事になりました。
テストケースの設計に関する情報というのはあまり多くないので、技術向上のためにも面白い記事を書いていけたらと思います。
それでは、また!

3:50
おわり
次の記事
« Prev Post
前の記事
Next Post »
Related Posts Plugin for WordPress, Blogger...