リグレッションテスト、スモークテストとはどのように分類されるのか

ふと気になった疑問をテストクラスタの方々に問うてみたところ、予想以上に多彩なご回答が得られ、どれも考えさせるものだったため、まとめました。なお、読みやすさのため、文意を変えない程度に順番を入れ替えています。
5
みずのり:jack of all trades @NoriyukiMizuno

@kz_suzuki JSTQBにはテストタイプの1つとしてリグレッションテストが入ってますよねー。混乱の原因。

2015-09-28 13:28:49

きょんさんのご意見。

きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@kz_suzuki 自分の中では、こんなイメージです。つたわるかなぁ。。。リグレッションテストはこのうち、テストの状態の「既存」を使ったテスト全般のことかなぁとか。 pic.twitter.com/D4e6ON7Oaf

2015-09-28 17:34:44
拡大
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@kz_suzuki テスト条件のところはちょっと怪しいのですが、イメージ的にはこんなー。みたいな。

2015-09-28 17:36:11

前田さんのご意見。

🤪まえちょ。ᓚᘏᗢ @nao4G

だからリグレッションテストはタイプでもレベルでもなくて、ただの呼び名な気がする

2015-09-29 12:01:57
🤪まえちょ。ᓚᘏᗢ @nao4G

リグレッションテストて、保守開発や派生開発と同じように、テストの形態を表現したもののように思う

2015-09-29 11:59:25

定義というものに対し、にしさんのご意見。

Yasuharu NISHI @YasuharuNishi

テストレベルとかテストタイプとかテストサイクルとかテストラウンドとかその辺の概念は、技術が成熟してない分野なので、一貫性があって汎用性のある定義は見つからないという前提で考えた方が実り多いと思います。

2015-09-28 13:49:47
Yasuharu NISHI @YasuharuNishi

スモークテストもリグレッションテストも、その定義や設計方法によると私は思います。ある塊のテストをバグ修正後の対象にそのまま実行するリグレッションテストならテストサイクルが妥当だと思います。対象のバージョンが上がった時のテストならテストレベルと呼んでもいいかもしれません。

2015-09-28 13:53:17
Yasuharu NISHI @YasuharuNishi

バグをなんらか分類してその分類ごとに類似のバグの未然検知をしたいなら、テストタイプかもしれません。でもその場合は、そのバグの分類名がタイプ名に含まれるべきでしょう。

2015-09-28 13:55:35
Yasuharu NISHI @YasuharuNishi

ソフトウェアテスト(に限らずあらゆるソフトウェア工学的技術)は進化する技術なので、国際標準や国際的資格試験の用語定義は、定めた時点における定めた人々の能力とスコープと合意と政治的妥協に依存します。そこに常に成立する絶対解はありません。

2015-09-28 13:59:04
Yasuharu NISHI @YasuharuNishi

大事なことは、国際標準に従うことではなくて、自分の理解や定義がどのくらい正しいかというのを理解する手段として国際標準を用いることです。国際標準は、考えるきっかけにすぎません。大事なことは、技術の進化や文脈の変化に合わせて考え続けることです。

2015-09-28 14:01:59

KENさんのご意見。

Kazu SUZUKI @kz_suzuki

KENさんのスライドだとテストタイプになってるな。// テストを分類してみよう! slideshare.net/krsna_crespo/s…

2015-09-28 12:49:15

KENさん(補欠) ‏@krsna_crespo
@kz_suzuki そこではJSTQBの定義ではって話をしただけ。そのあとテストタイプの説明ではリグレッションテストについて除外して説明したよ。
17:49 - 2015年9月28日

Kazu SUZUKI @kz_suzuki

@krsna_crespo そうなんですか! 確かに、○○によれば、って情報が大事になってきますね。

2015-09-28 17:49:42

KENさん(補欠) ‏@krsna_crespo
@kz_suzuki 余談ですがその時のワークで「”インテグレーションテスト”はテストタイプなの?」という質問が挙がりました。その時は「組織の中で開発/テスト工程のマイルストーンとして扱うならフェイズ、でなければテストタイプ」って今考えると雑な回答しました。
18:03 - 2015年9月28日

KENさん(補欠) ‏@krsna_crespo
@kz_suzuki 今考えるとテスト対象の粒度を表現したいとかの理由でテストレベルとして捉える場合もあるかな。同じ理由で回帰テストもフェイズとして扱う場合があると思います。スモークはワカンネ。
18:04 - 2015年9月28日

KENさん(補欠) @krsna_crespo
@kz_suzuki あとね、ビッグバンテストとかリスクベーステストの説明に困りました。苦し紛れに”戦略”というくくりで説明しまし・・・たつもり。どうやって攻めるかねーという話。
18:08 - 2015年9月28日

Kazu SUZUKI @kz_suzuki

@krsna_crespo それは、探索的テストも同じかも。ビッグバンテストと並べて「アプローチ」「スタイル」という、よりふわふわした感じで。

2015-09-28 18:11:50

自分のまとめ。

Kazu SUZUKI @kz_suzuki

意外なほど多彩なご意見いただいたので、帰って机に向かって熟考してみます。衒学的に言葉の定義に拘りたいわけではないのですが、いざ説明しようとして「そういや、リグレッションテストって?」となり、質問させていただきました。ありがとうございます。トゥギャります。#リグレッションテスト

2015-09-28 17:41:04
Kazu SUZUKI @kz_suzuki

リグレッションテストの多くが、過去のテストケースを使いまわすと考えると、その「過去」の時点ですでにテストタイプが定義されていたはずのテストケースが「現在」になるといきなり「リグレッションテスト」というテストタイプに変わるというのは納得がいかないので、タイプではないと考える。

2015-09-28 23:02:36
Kazu SUZUKI @kz_suzuki

手持ちのテストケースのイメージ図を描く際、一つの軸として、新規追加あるいは変更した機能 *そのもの* を確認するためのテストケースと、期待以外の場所に影響を及ぼしていないことを確認するテストケースがあり、後者がリグレッションテストだが、その補集合である前者には名前がないと思った。

2015-09-28 23:06:16