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

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

わかりづらい文章だな・・・。

2015-09-28 23:06:48
Kazu SUZUKI @kz_suzuki

なので、リグレッションテストとその補集合は、既存の軸と直交しているように感じる。秋山さんのおっしゃる「開発に対応して位置づけられているテストであればどちらもテストレベル」は納得できるが、リグレッションテストを毎回流すような環境だと、違う気もする。

2015-09-28 23:12:40
Kazu SUZUKI @kz_suzuki

既存と直交するというのは、きょんさんのこのイメージに近い。「テストの状態」という言葉は、まだするっと入ってこないけれど。 pic.twitter.com/0RmqKLn6iB

2015-09-28 23:15:34
拡大
Kazu SUZUKI @kz_suzuki

スモークテストがテストレベルというのは、腑に落ちる。特定のテストレベルのサブレベルという感じもあるけど。

2015-09-28 23:16:58
Kazu SUZUKI @kz_suzuki

元々の疑問はリグレッションテストの位置づけだったので、みなさんのご意見を伺って、自分の意見も整理することができました。感謝いたします。

2015-09-28 23:17:49

ところで、リグレッションテストって・・・。

Kazu SUZUKI @kz_suzuki

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

2015-09-28 23:06:16
あきやま🏓 @akiyama924

@kz_suzuki あれ? 再テストって名前ではなかったっけ? JSTQB の用語集に載っていたような???

2015-09-28 23:19:58
Kazu SUZUKI @kz_suzuki

@akiyama924 こ、こんな言葉がっ!? 「是正処置が成功したことを検証するために、前回不合格に終わったテストケースを再実行するテスト。」

2015-09-28 23:24:40
あきやま🏓 @akiyama924

カズさんの話や昨年のSQiP研第五分科会の回帰テスト(東芝の回帰テストの改善)の話を聞いていると、回帰テストは過去に実行して合格したテストケースを流してデグレードが無いことを確認するテストに位置づけられています。

2015-09-28 23:35:58
あきやま🏓 @akiyama924

けど、私がテスターしていた頃にやっていた回帰テストは、バグが直ってきたら直し方を確認してその影響分析をして新たにテストケースを設計して作っていたんだよなあ。 今はそんなことしないのかな。JSTQBにもそんな話ありませんし。

2015-09-28 23:39:00
Kazu SUZUKI @kz_suzuki

いえ、僕のところでもそれはあります。先ほど「過去のテストケースを概ね流用」と書いたのはそういう含みでした。あるいは同じテストケースでも、前提条件をより精緻化したり、ということがあると考えます。 twitter.com/akiyama924/sta…

2015-09-28 23:43:40
あきやま🏓 @akiyama924

@kz_suzuki そうですか。ちょっと自信が持てました。 自動化してたら過去にPASSしたテストケースも流すけど、自動化していなかったら修正内容に着目して作ったテストケースしか実行しなかったな。←おすすめしているわけではありません。

2015-09-28 23:48:14
miwa @miwa719

@akiyama924 してますよ。その結果、既存のチケットに新しいテストケースが追加されるときもあります。どんな修正を入れたかはチケットに書いてあるので、それを読みながら、朝会やチーム内での日常会話で仕入れた情報も含めて、影響のありそうなところ、心配なところをテストします。

2015-09-29 01:37:26
miwa @miwa719

@akiyama924 またそのチケットに関して気になるキーワードで過去の膨大なチケットを全文検索し、ヒットしたチケット群から新たなテストのインスピレーションを得るときもあります。テストしている最中に新たなキーワードを思いついたらまた検索して…というような感じです。

2015-09-29 01:39:16
miwa @miwa719

@akiyama924 あ、普段わたしが実際にやってるテストのやり方のひとつを書いてしまいました。リグレッションテストとか再テストとか元の話題からはズレてしまいましたね。ごめんなさい。

2015-09-29 01:41:14
あきやま🏓 @akiyama924

@miwa719 ありがとうございます。私は、チケットとか朝会とかはしていませんでしたが、ソースコードを読んだりレビュー会に参加したりチャットしたりしてネタを拾っていました。

2015-09-29 08:08:19

KENさん(補欠) @krsna_crespo
@akiyama924 自分周辺ではそれを修整周辺テストって呼んでて回帰テストとは分けてますね。
0:45 - 2015年9月29日

KENさん(補欠) ‏@krsna_crespo
フェイズとしての回帰テストはこれまでのバグ傾向とか何らかのメトリクスを利用してテストを選択するアプローチをとるので修整確認(再テスト)とは別物。
1:18 - 2015年9月29日

リグレッションテストの分類について辰巳さんより。

Keizo Tatsumi @KeizoTatsumi

@akiyama924 リグレッションテストの最初の体系化の論文では5分類しています。1)Reusable(無変更部分のテスト)、2)Retestable(変更部分のテスト)、3)Obsolete(不用)、4)New-structural、5)New-specification

2015-09-29 13:22:09
Keizo Tatsumi @KeizoTatsumi

@akiyama924 秋山さんのは4のNew-structural場合だと思います。あと、旧バージョンでのテスト不足を認識した場合はテストケースを追加しするかもしれませんが、これは2のRetestableだと思います。

2015-09-29 13:24:57
Keizo Tatsumi @KeizoTatsumi

@akiyama924 1,2,3は既存テストケースがある場合、4,5は既存テストケースが無い場合です。

2015-09-29 13:34:50
Keizo Tatsumi @KeizoTatsumi

@akiyama924 論文は Leung & Whiteの”Insight into regression testing" (ICSM 1989) です。入手はIEEE Xplore(有償サイト)でできそうです。私は Yoo & Harmanの論文を参照しました。

2015-09-29 14:38:02
Keizo Tatsumi @KeizoTatsumi

@akiyama924 Yoo & Harmanの論文はRegression Testing Minimisation, Selection and Prioritisation - A Survey です。 www0.cs.ucl.ac.uk/staff/mharman/…

2015-09-29 14:39:14