「ソフトウェアテスト 最初の一歩」セミナーに行ってきた。

「ソフトウェアテスト 最初の一歩」セミナーに行ってきました。主催はハンゲームのNHNJapanさん。ソフトウェアテスト関連でいくつか本も出してる鈴木三紀夫さんが講演を行ってくださいました。グループワークを中心にした参加型の勉強会で非常に面白かったです。

講演内容をざっくりまとめると、

「効果的にテストを行う手法」ではなく、「テストというテーマで上手くコミュニケーションがとれない問題」に焦点を当てる。そのために、テストをテーマに議論をするための軸を身につけよう。

というお話でした。

テストの4つの軸

テストの軸は以下の4つに分類されます。

  1. テストフェーズ(工程名称) 単体テスト、結合テスト、システムテスト、運用テスト、など開発工程における名称
  2. テストレベル 組織的に管理されるテスト作業のグループ。コンポーネントテスト、統合テスト、システムテスト、受入テストなど。
  3. テストタイプ 特定の目的にフォーカスしているテスト。信頼性テスト、回帰テスト、など。
  4. テスト技法 デシジョンテーブル、同値分割、境界値分析など、効果的にテストを行うための手法。

テストフェーズとテストレベルの違い

テストフェーズとテストレベルの違いがわかりづらいですが、例えば受入テストを どのテストフェーズで行うかは開発現場によって違うでしょうし、画面のテストは単体テストフェーズで行うものとしていても、実質的にはアクションとビューを統合しないとテストが行えない、というケースもあると思います。

これは僕の解釈ですが、以下のように分類すると違いがわかりやすいのかな、と。

  1. テストフェーズ When: いつテストするのか
  2. テストレベル What: なにをテストするのか(ユニット/コンポーネント/システム全体etc...) Which: どこでテストするのか(開発環境/試験環境/ステージング環境/本番環境etc...) Who: だれがテストするのか(開発者/QA/顧客etc...)
  3. テストタイプ Why: なぜテストするのか
  4. テスト技法 How: どのようにテストするのか

テストフェーズはあくまでWhenであり、What/Which/Whoをプロジェクトの共通認識として結びつけておかないとおかしなことになります。またすべてのテストはWhyがないと始まらず、Whyが明確になることで有効なHowを考えることができます。

テスト技法を学ぶ前に

テスト技法を学びたい、つまり効果的にテストを行いたいというのは、テストタイプという目的があって初めて成り立つものです。プロジェクトで必要なテストタイプを整理して、それからテスト技法を学んでもいいんじゃない。というお話でした。

感想

実際に今年から品質管理というものをやってきましたが、テストレベル・テストタイプという考え方が欠落していたような気がします。あと1年早くこの話が聞けてたらいろいろ違ったかもしれない。

 


マインドマップから始めるソフトウェアテスト