「TDDのテストはテストとは違う」は詭弁だ。という立場もあるという話。

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

TDDで言っているテストはテストとは違うっていうの、だいぶ詭弁だというのが私の見解なのですけど、みんな違ってみんないいみたいな感想ですね。

2018-09-30 11:32:11
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

アジャイルはソフトウェア工学じゃないみたいな言説と似ていると思っている。視野が狭く、自分が語る言葉を持っていない時の認知負荷がかかっている人間が「それはとは違うから、こっちに寄ってくんな」っていうのを言うための言説だと思うんだよね。まぁそれであなたの安寧がくるんだろうしいいけど。

2018-09-30 11:35:37
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

こういったことの問題点は、教えてもらった側に影響がでることなんだよなー。基本は教えている側の責任なんだよ。だから、学習とは対等な場で行われるといいんだけど、自分も別にそういうの体現できていないしなかなか難しいと思う。

2018-09-30 11:38:21
あきやま🍠 @akiyama924

@kyon_mm 私はTDDのテストって2種類あると思っています。 1つ目は「仕様とか設計パラメータの確定」を目的としたテストです。 2つ目は「欠陥の検出」を目的としたテストです。 で、1つ目のことをテストと呼ばないのは理解できますし、品質を管理するためのメトリクスに使われたくないのもわかります。

2018-09-30 11:52:35
あきやま🍠 @akiyama924

@kyon_mm はい。仕様の確定はテストではないと思っています。

2018-09-30 11:55:32
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@akiyama924 なるほどです。秋山さんの中では目的とセットでテストがあるんですね。僕の中では、いろんなものって、ある目的のために手段が構築されて、その手段に名前がつき、その手段が別のために使えてもその手段の名前は「とりあえず変えなくてもいい」という感覚なので、テストと呼んでもいいなって感じです

2018-09-30 11:58:59
Yasuharu NISHI @YasuharuNishi

その組織のコンテクストとそれによるフォーカスによって、目的としてのテストと手段/技術としてのテストを区別することが必要なのだと思っています。 RT @kyon_mm: TDDで言っているテストはテストとは違うっていうの、だいぶ詭弁だというのが私の見解なのですけど…

2018-09-30 11:59:25
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@akiyama924 別の目的にも使える同様の手段があるとわかったときには、その新しい具象化対象について別の名前をつけるほうがいいとは思いますけど。

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

@akiyama924 でも、僕はそれできるのいわゆる圏論とかそういうレベルの話だと思っていて、僕には難しいからある具象化において同樣の手段をとっているのであれば、実質同じ名前でいいだろうという考え方です。それが「は?ふざけんなよ」って言われることもあるんでしょうけど。

2018-09-30 12:02:09
Yasuharu NISHI @YasuharuNishi

例えば仕様書をプログラミング言語に翻訳する悪癖のある組織が上手にコーディングできるようになる目的で、テストという手段を使うのが(きっかけにするのが)TDDだと思います。 RT @kyon_mm: TDDで言っているテストはテストとは違うっていうの、だいぶ詭弁だというの

2018-09-30 12:02:11
Yasuharu NISHI @YasuharuNishi

一方、不確実性の高い開発において変更ごとに容易にテストする目的でTDDを行うこともあります。RT …悪癖のある組織が…上手にコーディングできるようになる目的で、テストという手段を使うのが…TDDだと思います。 RT @kyon_mm: TDDで言っているテストはテストとは違うって

2018-09-30 12:05:31
あきやま🍠 @akiyama924

@kyon_mm 言われてみたらそうなのかもしれません。 用語については(出来るだけ一般的な)定義に従うようにしています。 テストならISTQBが「テストは4つの目的を持つ」と定義していて、それが一般的と思うので、それに沿うようにしています。 で、その中に「仕様の確定」はないので。

2018-09-30 12:07:28
Yasuharu NISHI @YasuharuNishi

論評してる人のコンテキスト、テストという言葉を目的として使うのか手段として使うのか、などが合わないので論争が起こることがありましたね。私も昔乗ってました。理由はきょんくんの言う通りだね。

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

@akiyama924 秋山さんのおっしゃることは最もで、私もテストの定義を話す時にはまずそれらは紹介するのですが、一方で私の定義はこうですって話すようにしています。こういった話をするときにポジショントークなんだよっていうのを前提に話せるのがいいことだと最近思っています。

2018-09-30 12:12:48
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@YasuharuNishi まぁそうですね。でも、みんな日常生活では出来ているのになーって思うんですよね。健康のために散歩をする人もいれば、景色を楽しむために散歩をする人もいて、別に散歩するって言葉だけでいいのに。みたいな。なんか自分が主体的にやればやるほど、認知負荷がかかるんだろうなって気がします。

2018-09-30 12:15:42
あきやま🍠 @akiyama924

@kyon_mm なるほど、仮に私が書いたように「TDDには目的が異なる2種類のテストがある」のだとしても、どちらも技術的にみたら同じものを使っているのだから、どちらもテストと呼びたいということかな。 そういう教え方をした方が良いのかもしれませんね。

2018-09-30 12:15:50
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@akiyama924 ですです。僕としてはそういうイメージです。そのほうが技術転用とかも気軽にできる感じがするんですよね。そのほうがエンジニアリングとして楽しいじゃないですか。(これは趣味の話

2018-09-30 12:16:40
Yasuharu NISHI @YasuharuNishi

何かを変えたい時には多くの場合論理的な話の通じない抵抗勢力がいて、それに感情的に接しているうちに、それ以外にも感情的に接するようになるんだと思う。 RT @kyon_mm …みんな日常生活では出来ているのになーって思うんですよね…自分が主体的にやればやるほど、認知負荷がかかるんだろうな…

2018-09-30 12:21:52
あきやま🍠 @akiyama924

@kyon_mm 技術的にどう呼びたいかのお互い(きょんくんと私)のポジショニングは明らかになったとして、もう1つの件はどう考えますか? もう1つの件とは「TDDのテストを“テスト”って呼ぶと余計な仕事が増える」と開発者が心配している件のことです。

2018-09-30 12:22:21
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@YasuharuNishi 人間が認知負荷かから逃れる方法を発見できると幸せになれそうですね。最近は多元主義、多様性、ダイバーシティという言葉で少しずつ広まってきて入るけど、まだまだどころの話じゃないですしね。

2018-09-30 12:24:21
Yasuharu NISHI @YasuharuNishi

公平に見て、WF文化(という表現は嫌いだけど)を変えたかった、もしくはプログラマの復権という文脈を使ったアジャイル界隈と、 虐げられたテスターの復権という文脈が残っていたテスト界隈の両方の問題じゃないかな。だからお互いがお互いを理解するまで時間がかかった。不幸だったね。

2018-09-30 12:25:26
Yasuharu NISHI @YasuharuNishi

最初はテスターの復権という文脈を僕も使っていたことは認めるけど、○○の復権というのは人々を非論理的にするという点で麻薬なんだと思うに至り、ある時僕の講演からその臭いはすべて消した。でも心の中にこだわりがあって、僕は「テスター」とは呼ばない。だからまだ麻薬が抜けきっていない。

2018-09-30 12:27:07