テストレベルについて

テストレベルについての議論をまとめました。 2012.1.17 お昼の議論を追加しました。
10
Tsuyoshi Yumoto @yumotsuyo

成熟度が最高だと、開発とテストが対になって両輪のように動く。最低は、開発とテストがまるで別。なので緩やかでも依存して行くように改善するのではないでしょうか。

2012-01-17 09:06:22
Tsuyoshi Yumoto @yumotsuyo

開発するときに、どういう段階を踏んで細かくしてコーディングするかがないといけないです。それこそアーキテクチャの設計です。なのでアーキテクチャの設計によって詳細化の仕方はかわります。テストもその段階に合わせて入れて行くようにすべきです。

2012-01-17 09:09:06
Tsuyoshi Yumoto @yumotsuyo

開発がどういう段階を踏んでいるかがまるで見えない状態でテストしろ、となったらそれはテスト側が本来の段階を考えるしかない。ただ、それはあるべき姿とはほど遠い。それに段階が見えないってことは開発者だって見えていないことが多い。つまり要求からコードの間がブラックボックス状態

2012-01-17 09:13:20
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@yumotsuyo テストエンジニアとプログラマーのペア作業(ペアプロしたり、プログラマーが実装完了したものをすぐさまとなりで品質保証のテストをする)についてどう思いますか?

2012-01-17 09:13:36
seki at druby.org @m_seki

@yumotsuyo わかってるなあ。段階はレベルでなくてステップな感じする。

2012-01-17 09:14:33
Tsuyoshi Yumoto @yumotsuyo

何の品質を保証するか、つまり目的が何かでよいか悪いかは変わる。RT @kyon_mm: @yumotsuyo テストエンジニアとプログラマーのペア作業(ペアプロしたり、プログラマーが実装完了したものをすぐさまとなりで品質保証のテストをする)についてどう思いますか?

2012-01-17 09:16:12
Tsuyoshi Yumoto @yumotsuyo

けど、経験上で言うと楽しいよ。私は開発者の隣にすわってテストを一緒にやるのが好きでした。RT @kyon_mm: テストエンジニアとプログラマーのペア作業(ペアプロしたり、プログラマーが実装完了したものをすぐさまとなりで品質保証のテストをする)につい...

2012-01-17 09:18:15
Tsuyoshi Yumoto @yumotsuyo

なので、ちゃんと設計をして開発を進めているのに、単体テスト、統合テスト、システムテストの3つだけのレベルでテストをしようとするのはテストに問題がある。RT @m_seki: @yumotsuyo わかってるなあ。段階はレベルでなくてステップな感じする。

2012-01-17 09:22:47
Tsuyoshi Yumoto @yumotsuyo

テストっていうのは開発を映す「鏡」みたいなものです。鏡が良いほど、正確に映す。それが良いテストです。曇ってて割れたような鏡にならないようにするのがテストとして大事。あとは鏡で見るところを間違えないようにしないと。全身を確認するのに手鏡で顔だけ見ても洋服のバランスはわからないし。

2012-01-17 09:26:32
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@yumotsuyo ペアプロTDDで不具合モードに対するテストコードを追加したり、隣でテスト戦略でたてたテストを実施したり。っていう場面を想定していました。まだ実践したことがないので未知の領域ですが、とても楽しそうだなって思っています。

2012-01-17 09:28:16
Tsuyoshi Yumoto @yumotsuyo

昨日みっきーさん、増田さんからも話があったけど、フェーズというかマネジメントの話としてのテストフェーズと、テスト対象を特定するテストレベルの話は違う。それは完全に同意。ただ、マネジメントするにはレベルの話とフェーズの話を同一化した方がやりやすいのでそう開発してたという歴史がある。

2012-01-17 09:30:53
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

この辺の話が「単体テスト/結合テストなんて存在しない」に結びつくんだよね。。。

2012-01-17 09:32:55
あきやま🍠 @akiyama924

そっか、「テストレベル’」=「テストバスケット」と考えるとすっきりするのか。

2012-01-17 09:34:59
Tsuyoshi Yumoto @yumotsuyo

@kyon_mm レベルとフェーズでしょ?今時の開発の仕方が昔と変わってきているから、レベルとフェーズの単純な同一化はやめないと逆に混乱するようになってきたということだと思います。

2012-01-17 09:37:22
Tsuyoshi Yumoto @yumotsuyo

あと、それは開発というか設計の段階の考え方でも一緒です。RT @yumotsuyo: @kyon_mm レベルとフェーズでしょ?今時の開発の仕方が昔と変わってきているから、レベルとフェーズの単純な同一化はやめないと逆に混乱するようになってきたということだと思います。

2012-01-17 09:39:25
Tsuyoshi Yumoto @yumotsuyo

開発のコミュニティでは、設計のレベルの話とフェーズの話で盛り上がってないのでしょうか?

2012-01-17 09:40:27
あきやま🍠 @akiyama924

@krsna_crespo このTLの文脈では「開発行為の技術的な側面に着目した段階」という意味す。コンポーネントを作ってそれを段々とつなげていってという2つの開発段階(開発レベル)があれば、それぞれに対応したコンポーネントテストレベル、統合テストレベルが考えられます。

2012-01-17 11:54:55
鈴木三紀夫 @mkoszk

湯本さんの言っているレベルというのは、次の階層のこと。 □ ↓ □ ↓ □ ↓ □ 段階的詳細化していくレベルとテストレベルを合わせるべきという意見。

2012-01-17 12:04:27
鈴木三紀夫 @mkoszk

僕が言うテストレベルはこんな感じ。 □→□ □→□→□ □→□→□→□ □→□→□→□→□ 徐々に繋げて大きくしていく前提で、大きさの単位が違うのでレベルが違うと言っています。

2012-01-17 12:06:48
鈴木三紀夫 @mkoszk

意見の違うところは、例えば、湯本さんの4階層目に相当するレベルで、 □→□ □→□→□ の2つのテストを実施しなければいけないとします。 湯本さんは第3階層と第4階層の詳細化のやり方が適切ではなく、テストの改善に取り組む前に開発を何とかすべきだろうというものです。

2012-01-17 12:09:54
鈴木三紀夫 @mkoszk

もういちどチャレンジ □ ↓ □ ↓ □ ↓ □ の違いと □→□ □→□→□ □→□→□→□ □→□→□→□→□ の違い。

2012-01-17 12:12:31
鈴木三紀夫 @mkoszk

@krsna_crespo 設計の段階的詳細化のことだよ。

2012-01-17 12:13:34
弦音 @tulune

@mkoszk 横のひとかたまりがそれぞれレベル

2012-01-17 12:28:11
弦音 @tulune

?が、抜けた。。。

2012-01-17 12:29:20
鈴木三紀夫 @mkoszk

@tulune はい、その単位でレベルと見なしていました。湯本さんは、縦の階層をレベルと呼んでいて、僕は横の繋がり度合いをレベルと呼んでいました。同じことを言っているようですが、実際の現場では、差異があるので論点になりました。

2012-01-17 12:30:53