00:07
皆さん、こんにちは。B-Testingのブロッコリーです。 この B-Testing.fm は、QAエンジニアである私、ブロッコリーが、テストや品質に対する私なりの考えを、約10分間で語っていくポッドキャスト番組です。
ということで、今回の放送で多分1月分が最後になるかなと思うんですけれども、
初めてやってみて、ちょっと1ヶ月、どうかなと思ったんですけど、やっとここまで来ることができました。
まだ1ヶ月しかやってないですが、これは引き続き継続していきたいですね。
今日はですね、前回は告知会だったので、その前ですね、テストは何のために行うっていう話の続きにもわたるんですけれども、
何のために行うのかっていう話を、いろいろな方が話しているんですけれども、その中でも西さんですね。
伝通大で講師をされていた西さんという方、西安原先生と言いたいところなんですけれども、
ご本人が先生っていうのやめてくれって言っているので、西さんとここでは呼ばせてもらいますけれども、
西さんが以前に語っていた内容、講演で語っていた内容からちょっと抜粋して、すごいいい話なので紹介したいなと思っています。
ということで、今日もbtesting.fmスタートです。
ということで、先ほど言った通り、西さんが以前語っていた講演の内容から抜粋して紹介という話なんですけれども、
どの講演かというと、テスト設計コンテストというものがあります。
テスト設計コンテストっていうのは何かというと、同じお題に対して参加者、参加チームがそれぞれでテスト設計を作って、
そのテスト設計の良さについて競い合うコンテストがあるんですね。
そもそもテスト設計って何っていう話は今後のエピソードでまた話せればと思っているんですが、
そのテスト設計コンテストの2013年ですね。もう10年以上前ですね。
その関西地域予選の中での招待講演で西さんがしゃべっていた内容から抜粋して紹介します。
結構長い動画もYouTubeに上がっているんですけれども、その中から自分が今回紹介したいところ、ちょっとタイムスタンプ入りでリンクを概要欄に貼っておきます。
自分なりにこの動画の部分聞いて文字起こしして記事にも書いているので、詳しく知りたい方、動画で見たい、実際に西さんの講演聞きたい方はYouTubeの方から。
03:01
動画を見るのはちょっと時間がかかるとかっていう方は、ぜひ文字起こしの記事を見ていただければと思います。
今回このポッドキャストの中ではそこから概要を抜粋して、自分が特にいいなと思ったところを紹介していきます。
西さんはですね、この招待講演の中でテストって何でやるのかっていうのに対して3つのスタンスを唱えていました。
スタンス1つ目がテストとは行動である。2つ目がテストとは説明である。そして3つ目がテストとは納得してもらうことである。
どういうことなのかちょっと1つずつ紹介していきます。
まず1つ目テストとは行動であるという場合、これってどういうことかっていうとテスト、特に自分自身で開発者が自分自身でテストするのではなくて、他の人がテストを行う。
他の開発者であったりとか、もしくは他のQAエンジニアであったりとか、はたまた第三者検証と呼ばれる他の会社の人がテストをするっていう場合のことを思い浮かべてほしいんですけれども、
そこでテストとは行動であるというスタンスをとっている場合、こんな会話があります。
今回テスト8人で2ヶ月テストしましたとか、あとは8000件テストしましたみたいな、実際にテストした期間であったりとかやった係数とかで話したりします。
これが行動としてテストをしているっていう話ですね。
これに関してそれを聞いた人が、なるほど、じゃあこのテストにどういう意味があるんですかって聞くと、それを言われた側はテストこれだけしたのに足りないって言うんですか。
もっとテストしてほしいんですか。だったらお金くださいみたいな返答になるわけですね。
テストをすることが目的であって、それがどういう意味があるんですかっていう意味を聞きたいんだけれども、足りないと思われてるの。
じゃあもっとやるからお金くださいっていう。
このスタンスは結構言い方は悪いですけれども、人売りになっていく可能性があります。
これだけやるから、これだけお金ください。
じゃあ本当にそれってテストしたことに意味があるのかっていうのはちょっと明確に答えられないことが多いかなと思います。
2つ目のスタンスですね。テストとは説明である。
これどういうことかっていうと、例えばテストっていうのは使用通りに動くことを実証することですよとか。
そうすると会話の中で、今回このテストをやることで使用書に書かれている要件100パーセント網羅しました。
これで使用書は全部検証できます。言ったりするんですね。
そうすると、じゃあその後バグ、欠陥、不具合とかが出てきたらどうするんですかっていうふうに聞いてみたら、
06:02
テストをやっていた人は、それでもバグが見つかったらこれはうちがテストを漏らしていた。
テスト漏れでない限り、それは我々の責任ではないですよ。
使用書をちゃんと書かなかったあなたが悪いんです。あなたたちが悪いんですみたいな、そういう会話になる可能性を秘めています。
これってまさにテスト、説明するためにテストを作成する。
100パー網羅できたでしょ、これでいいでしょっていうふうな話をすることによって、
この部分のテストはやったっていう説明責任をちゃんと果たせるんですね。
使用書のこの部分をちゃんと網羅しましたよっていう説明ができる。
これはさっきのスタンス1の行動に比べて、どうしてこのテストをやったんですかっていうのに対してある程度の意味合いを説明できてるんですね。
この説明責任を果たせるっていうのはいいことなんですけれども、
それとともにこの部分は使用書いてないからバグが出たとしても、
うちは知らないよっていう説明無責任が発生するっていうふうにNISAは唱えてるんですね。
ここはちゃんとやるっていう説明責任を果たすとともに、
ここは書いてないから知らないよっていう説明無責任が発生するっていうふうに言ってます。
個人的にはこういう説明のためにテストをするっていうふうなスタンスを持っていると、
結構細かいテスト手順書を大事にする傾向にあるなと思っています。
手順書をしっかり書くことで、ここはちゃんと使用として、
使用を満たしているっていうふうに書いたりするみたいなことが多くなるかなと思っています。
そうすると、けどうちは知らないよっていうふうになっちゃうと、
溝ができちゃうわけですよね。お互いハッピーな状態で先に進めなくなる可能性を秘めています。
それがスタンス2のテストとは説明であるっていう話。
最後スタンス3ですね。テストとは納得してもらうことである。
これはどういうことかっていうと、例えば会話の中で、これがテストの全体像です。
我々が考えている全体像がこういう感じなので、一緒にこれでいいかどうか検討してもらえませんかっていうコミュニケーションになるんです。
これってさっきの説明であるやつと似ているようでちょっと違っていて、
例えばこれが僕らが書いた表です。これでいいですねっていう押し付けではなくて、
一旦自分たちで考えてみたんだけれども、検討してもらいたいっていうふうに一緒に考えるっていうところですね。
お互いに納得して先に進めるっていう話ですね。
先ほどのスタンス2と違うのは、説明を一方的にしたからといって、それで相手が納得するとは限らないわけですね。
大事なのは、相手が納得するようなテスト設計をちゃんとできる。
そのためには、これってこういうことが全体像ですよって見える状態にするっていうのが大事で、
09:05
そうするとテストの手順として細かく、このボタンを押すとかそういう話、手順書ではなくて、
まずはモデリングなどを始めとしたテスト設計する力、テスト設計力っていうのがすごい大事になってくるんですね。
そうすることによって、今回まだこのポッドキャストの中では話せていないですが、
ディシジョンテーブルを使いました。状態遷移図を使いました。
それによってこういうふうに表現できました。これでどうでしょうっていうふうに投げかけて、
そうすると開発者が、あ、けどこのパターンのこと忘れてないですか。
あ、そこ漏れてましたね。すいません。じゃあそこ追加して、これだったらいい感じですかね。
これなら良さそうですねっていうふうにお互いに納得して先に進める。
その結果、もしバグを見つけてしまって、その後にリリースした後にバグを見つけた場合にも、
別に開発者に責任を押し付けるとかではなくて、お互いにちゃんと検討しあったんだけれども、
そこで見つからなかったねっていうふうにお互いが責任を持ってリリース後のバグに対処するっていうふうな形に持っていけると思います。
っていうのがテストとは納得してもらうことであるっていう話でした。
このスタンスを持っていないと、例えば今回のこのテスト設計はAIに作らせましたとかだと、
これってどうでしょう。誰も納得しないんじゃないですかね。
開発者にとってはAIで作ってもらっても別に人が作ってもいいけれども、
それってどういうことなのっていうの意味を気になりますよね。
別にAIに作らせちゃダメだとは思ってません。
AIに作らせるのはいいんだけれども、それを元に例えば叩き台として使うみたいな感じで、
それを元にこれ抜けてるよねみたいなことを一緒に検討できる形にしないといけないかなと思っています。
ということで、今回はNissanがもう10年以上前に紹介しているテストに対するスタンス。
スタンス1、テストとは行動である。スタンス2、テストとは説明である。
そしてスタンス3、テストとは納得してもらうことであるっていう3つのスタンスについて紹介しました。
個人的にはこのスタンスの3つ目ですね。
納得してもらうためにテストを作るっていうのを心がけていきたいなと思っています。
ということでエンディングです。
btesting.fmではリスナーさんからのお便りを募集しています。
エピソードの感想とか、私に聞いてみたい質問とかテストのお悩みなど、どんなことでも構いません。
例えば今日の話聞いて納得してもらうことであるっていうの。
なんとなく分かったけどどういうことなんだろうとか、そういうようなちょっとした疑問でも構いません。
12:07
ぜひ、XでハッシュタグBテスティングでツイートをお願いします。
Xで直接発信しづらいという方は、私にDM送っていただいても構いませんし、
投稿フォームも用意しておきますので、そこに投稿をお願いします。
もしもこれからも聞きたい、今回1ヶ月これでPodcast配信は終了になりますけれども、
2月以降の回も聞きたいという方は、ぜひお手元のPodcastのアプリでこの番組のフォローもお願いします。
ということで以上で、今回の回btesting.fmは終了となります。
それではまた次回。バイバイ。
btesting.fm