天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

『ソフトウェアテストをカイゼンする50のアイデア』読書会を聴く会に参加してきた

connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

miwaさん咳さんよしたけさんの3人で、「ソフトウェアテストカイゼンする50のアイデア」の本を読んで、読んでいる様子やその感想を見ていくという会です。miwaさんが一文字一文字音読して、区切りのいいところでみんながそこに対して話し合うというスタイルで進んでいきました。(今日はP51〜を読んでいきました)

会の様子

境界の違反とは

境界を違反するとはそもそもどういうことなのか?という話がありました。(思ったよりも信頼できた場合も違反?)
これは本書だと、複数チームが別々のコンポーネントを作っていて、互いのコンポーネントがアグリーメントなしには信頼できないような場合において、相手の信頼度合いを表しているのかな?というお話がありました。(プログラミングにおけるインターフェースなどがイメージできるがそれだとわざわざ「信頼境界」という言葉を定義する必要がないので違いそう)

また、本のコンテキストとして結合フェーズが存在している前提で説明があるので、アジャイルとは違う話なのかな?という意見も出ていました。*1

信頼に関する問題

本Chapterの冒頭で言われている「信頼の問題」とは何なんだろう?という話がありました。

これは「信頼している場所だからテストしたくない」という思想が前提にありそうだけど、この思想はmiwaさんや咳さんチームの思想とは明らかに異なるもののため、理解が難しいということです(そもそもテストを減らそうとあまり考えない)

境界を違反した場合のトリガーとアラートとは?

P52にあるトリガーとアラートとは具体的にどのようなものなんだろう?という意見がありました。
これは、テストをしないと決めたはずなのにテストをしてしまったみたいな状況があり得るのかな?という話が出ていました。

エラーのスパイクの監視システムを作るとなんでうまくいったのか?

元々はエラーや警告を無視していたチームのはずなのに、エラーのスパイクの監視システムを作るとなぜそのシステムのエラーは無視しなくなったんだろう?という話が出ていました。

元々のエラーはエラー自体が多すぎて、「よくあるエラーなんで見なくてもよいでしょ」となっちゃっていたのかな?という推測がありました。

死人テスト

ログを出しているのに「見ただけ」で終わってしまう話は、行動分析学にある死人テストの話と近しい印象があるという話が出ていました。
行動をただ見るだけというのは誰でもできるのだけど、その後に何かしら分析して行動するというのはなかなかできないよねという考え方ができそうだということです。

ログ

咳さんはAssertは書くけどログは書かないという話が出ていました。
ログは開発者が見たいから入れることが多いので、ユーザー視点のテストから漏れてしまいがちで、ログを入れたが故にログファイルが大量に吐かれてしまったり、結構難しいということです。

組み込み系などではログを吐くことが許されない場合*2もあるので、ログが書ける環境は大分恵まれた環境だと思っていた方がいいということでした。

会全体を通した感想

信頼境界の違反の部分は自分で読んだときにはアイデアを理解できていた気がしましたが、今回の会で色々ツッコミを受けているのを聞いて、全く理解ができなくなりました。

ログの話は、自分はこれまで「危ない機能だからログを入れる」みたいな発想でログを書いていたので、ぜんぜん違う視点が得られて非常に面白かったです。

*1:ここから先はXXチームと決める1回テストしたのでここはテストしませんと決める...みたいなパターン自体がうまくいかないことが多いので、Chapterに書いてあるような施策が取られていないことではなく、そもそもそのようなパターンに陥る状況自体が問題ではないか?という話もありました。ただ、受託開発などで複数会社が関わっているとここまでは自社の責任、ここからは他社の責任...みたいなモデルになってしまうことが多いので、状況としてわかるにはわかるということでした

*2:ログを吐くよりもまず止めろみたいな状況もあるし、うっかり残しちゃいけない情報をログに残してしまう状況...