にしさんの主張「テストとは納得してもらうことである」の原点〜「テスト設計コンテスト2013 関西地域予選 招待講演」一部文字起こし〜

はじめに 〜何を文字起こししたのか&なぜ文字起こしをしたのか〜

本記事は、にしさんによる「テスト設計コンテスト2013 関西地域予選 招待講演」の講演の一部を文字起こししたものです。

動画はYouTube上に公開されています。文字起こししたのは25:43あたりから40:40あたりです。

www.youtube.com

この講演は今でも全体的に価値のある話をしているなと感じているのですが、今回文字起こしした部分は、その中でも特に私が共感を持っている部分です。

今回の文字起こしした部分で、にしさんは「テストとは納得してもらうことである」という話をしています。これはにしさんが最期まで主張し続けていた考え方だと思っています*1

この考え方に私も共感しているため、ことあるごとにこの動画を紹介しているのですが、人によっては長い動画を見るのが苦痛という人もいると思うので、そういう人に向けても広く知ってもらいたいと思い、文字起こししました*2

なお、この文字起こしは、以下の1ページのスライドだけの説明をしています。以降、「おわりに」の前までが文字起こしの内容になります。

ソフトウェアテスト技術(関西テスト設計コンテスト予選基調講演)」7ページより

目次

スタンス1:テストとは行動である

ある人は「テストとは行動である」と言っています。昔、偉い先生が言っていたことなんですけど、「テストでは何も証明できない、ただバグを見つけるだけである」まだこんな風に考えている人も、日本にはたくさんいます。まあ、残念ながら私に言わせれば1970年代から何も進化していないと言わざるを得ませんが。

こう言う方がいます。「テストとは行動である」。こういう方は「バグを見つけるためにテストを行う」なんて考えます。こういう方がですね、テスト設計すると何をするかって言うと、行動の内容と結果だけを提示するような、テスト設計をしたりドキュメントを作ったりします。さっきのこの部分「コピー&ペースト&モディファイ法*3」です。

スタンス1の会社と対峙した場合のよくある会話

「どんだけテストしましたか?」

「はい、8人で2ヶ月テストしました。」

「はい、それはどういう意味があるんですか?」

「はい、8000件テストしました」

「そうですか、それにはどういう意味があるんですか?」

「ええと、ええと、ええと、もう少しテストをしてほしいんだったらお金をください」

「いやいや、そういうことじゃなくて。はい、8人で2ヶ月テストしたから、だからなんなんですか?」

「いや、テストをしろっていう仕事じゃないですか。そういう発注ですよね?」

仕様書をもらいました、テストをしました、それで?みたいな会社が山ほどあるんですね。あの、微妙に頷いている方もいらっしゃって、ちょっとドキドキしているんですけど。

でですね、そういう会社は見つけたバグが全てだと思うあまり、「技術を向上しましょう」なんていう話をすると、どこの会社も組織も技術は向上させたいと思ってますから。

スタンス1の会社の探索型に対する理解

でも、このスタンスを取っている会社は、「いやー、今、探索型なんですよ。探索型。」

探索型のノウハウは…探索型って知ってますか?探索型というのは、ソフトウェアの微妙な振る舞いや一貫性のなさ、それからそのソフトウェアの使用やアーキテクチャに起因するであろう過去のバグのパターン、ソフトウェアの作り、そのテストが始まるまでの品質の状況、プロジェクトの混乱状況というか、様々な定量的もしくは定性的なデータを、人間が解釈して、バグの多いところを集中してテストする方法です。

今私は分かりやすく説明しましたよね。今の私の説明だったら、なんか技術が向上している気がするじゃないですか。それはなぜか。私が探索型テストの中身を剥離したからです。

スタンス1の会社で、つまり「テストとは行動である」と認識している会社で、分かってやる探索型テストっていうのは、

「ゴットハンドっているんだよね。ゴールドフィンガーっていうのかな。手から電磁波が出ているんだよ。バグがたくさん見つかるんだよ。なんでかね、ちょっと知りたいんだけどね、なかなか口割ってくれないんだよね。」

手から電磁波出ていません。断言します、出ていません。ごく微量のコンピュータに影響を与えない電磁波はどの人間からも同じように出ています。しかし、ある人が特にバグを見つけやすい電磁波を出すことはありません。論理的に、科学的にあり得ません。

ですから、そこにはなんらかのノウハウが必要ですが、「テストとは行動である」と、とにかくテスト行為をすれば良いんだと思っているような会社組織さんの場合は、残念ながらそこからはもうですね…。

スタンス2:テストとは説明である

ですからもうちょっとマトモな会社さんはこう考えます。「テストとは説明である。」「テストとは仕様通り動くことを実証することである。」なんて会社さんがいらっしゃいますね。その通りなんですよ。その通りなんですけど、じゃあどうやって説明するか。

スタンス2の会社と対峙した場合のよくある会話

まず最初に説明するのは、「我々はこれをやりました。このテストケースをやりました」これは別にスタント1の会社と一緒ですね。

「ここからここまでのテストをしました。」

「それはどういう意味があるんですか?」

「はい、仕様書の要件を100%網羅しました」

「だからなんなんですか?」

「いや、仕様書の要件を100%網羅しました。これで仕様書は全部検証できます」

「もしもバグがあったらどうするんですか?」

「いやだって、仕様書の要件を100%網羅したんだから、それでもバグがあるんだったら、うちのテスト漏れでない限り、それはウチの責任ではありませんよ。」

説明無責任

説明責任という言葉をご存知です?説明責任というのは、自分がやったことを他人に説明しなきゃいけないっていうことだと思われていますよね。しかし、ビジネスもしくは技術の低いビジネスの場合だと、説明責任というのは往々にして、説明無責任という状況を生み出します。説明無責任とはなんなのか。それは、責任を取りたくないがために、「自分たちに責任はないよ」という説明を尽くす現象のことです。これを説明無責任と言います。

なぜテスト会社は工数請負をするのか

皆さんの中で、テスト会社さんはいらっしゃいますかね?もしくはテスト会社さんと付き合いのある会社さんはいらっしゃいますかね?こんなこと思ったことはありませんか?

「なんでテスト会社って格安、安い単価で時間契約するんだとか工数請負契約するんだろう?」

「そんなことしなくて、バグを何件見つけたら、それに応じてボーナスを払われるそういう契約にすれば良いのに」

って思ったことありません?私、テスト会社にいたので分かるんですが、そんな契約怖くてできないんですよ。バグを見つけてたらボーナスをもらえる契約にするということは、同時に、バグを見逃したらペナルティっていう契約になるんです。

そもそも開発の質が悪かったらバグは全部見つけられないんですね。まあ、開発の質が良すぎても見つけられないんですけど。なかなか難しいんですけど。なわけで、テスト会社はテスト漏れがあったときに自分たちがダメージを負うようなリスクを取れない。違う言い方をしますね。テスト会社は品質を保証したくないんです。リスクが高すぎる。だから彼らは何をするか。工数請負をします。

説明責任を目的にすると説明無責任を生み出す

しかし、それでもお客さんに「大丈夫?大丈夫?これで全部?」って聞かれます。お客さんは勝手なもので、自分たちがテスト会社とする契約形態に関わらず、お客さんはお客さんで自分に責任がないようにしたいんですよね。自分の上司に対して、「いや、なんとかっていうなんかテスト会社に頼んだから、もうバグがないと思いますよ。だってあそこ専門家ですし。」ってね。だから、お客さんも説明無責任の連鎖に入る。そうするとテスト会社は、無責任の連鎖の最下層にいますから、責任を被らないために、

「いや、お客様がテストをしろとおっしゃったのはこの仕様書で、この仕様書を一文一文分解すると、これだけの要件になって、この要件はトレーサビリティのある表を使うと、こっからここまでの表で全部なんです。で、この表を全部我々の会社のテスト法では、お客さんが言っている限りないはずです。それに、一つ一つレビューしていただきましたよね。レビューしていただいて、問題はなかったですから、OKなはずですよね。」

けど、お客さんはこう思ってます。

「いや、レビューしろと言われたけど、いきなりなんかこうエクセルのシートで160枚とか送りつけられて明日までとか無理じゃん。OK出すしかないわ、うちも仕事を遅らせたくないし。」みたいな回答になるんですね。これを説明無責任と言います。

説明することが目的になっているテストは、説明無責任を生み出します。そうすると、そこに質の向上というのは現れにくくなる。なぜなら、お客さんの言っていることに従うことがこの説明無責任の最終目標だからです。自分たちに責任を負わないためには、お客さんが言った通りにやるんです。それが最適解なんです。仕事上でやるには。

「テストとは説明である」というスタンスだと創造性のないテストになる

だから、スタンス2を取っている会社さんというのは、いろんな技術を使うんだけど、結局お客さんに従うっていうスタンスになるので、創造性が全然ないテストになるんです。ひたすらなんか表を埋めるんです。表を作って、表を埋めて、表を作って、表を埋めて、表と表の間の関係を1つ1つ潰していって、エクセルのセルを埋めて線を引いて、表を埋めて線を引いて、表を埋めて線を引いて、チェックつけてチェックつけてを繰り返していきます。だからうんざりするんです。できた成果物も表ばっかりです。

スタンス3:テストとは納得してもらうことである

しかしですね、世の中には良いテスト会社、良いテスト組織ていうのもあって、そういうところはスタンス3「テストとは納得してもらうことである」っていう。納得するために、技術と知性とまごころを尽くして説明する。これはどういうことか?スタンス2と何が違うのか。

納得してもらう説明をするためにモデルを作る

さっき、昨年のテスト設計コンテストの成果物の話をしましたね。説明をするだけならこの表で十分です*4。(筆者注:この部分は別のスライドが投影されているので、詳しく知りたい方は動画を見てください)我々、これをやります、この表をお客さんに修正してもらっています。でも彼らはわざわざ、お客さんの仕様書にはないこんなようなモデルを作るわけですね。こんなのを作ったら、スタンス2の場合、リスクを負うことになります。「なんで自分達でこんな勝手になんかやったりしてんだよ。」「こんなのはウチの仕様書にないぞ」と言われたら終わりじゃないですか。でも彼らはわざわざこういうモデルを作る。なぜなのか。こういうモデルを使った方が説明しやすいからです。

これ*5、テスト何種類あるか分かりますよね。この個々の種類、例えば青とオレンジの間の関係、この黄緑の中のえー‥1・2・3・4、5つの箱、5つの箱の関係がパッと見て取れますね。じゃあこっちどうですか?何かがパッと見て取れますか?埋まっているか、埋まっていないか、いっぱいあるかないかしか分からないんですね。結局のところは。「いや、そんなことないよ、よく読み込めば分かるんだよ。」読み込めば読み込むほど、全体が分からなくなりますね。

分かりますか?これが説明と納得の違いです。説明をするというのは、相手がちゃんと納得することを意味していないんです。説明したからと言って、相手が納得するとは限らない。だから大事なことは、相手が納得するようなテスト設計をちゃんとできること。

スタンス3の会社と対峙した場合のよくあるコミュニケーション

「これがテストの全体像です、一緒に検討していただけませんか。」分かりますか、言っていること。「これが僕らの表です、これで良いですね」じゃないですよ。一緒に検討していきたいんです。お客さん時間ないですね、お客さん忙しいからウチに仕事が入って、我々に仕事を下さって。

じゃあ、お客さんが一緒に検討してくれるようなそういうドキュメントってどんなドキュメントですか?お客さんが短い時間で全体や我々のやりたいことを把握してくれて、お客さん自身が抜けが気付いて、我々にそれを指摘してくれやすいようなドキュメントってどういうドキュメントですか?160ページのエクセルシートじゃないですね。せいぜいA3 1,2枚の図です。絵です。こういったものをきちんと作るのか。

スタンス3は選択肢を提示する

それから選択肢ですね。テスト会社は「これをやりました、もっとやってほしければお金をください」これがスタンス1です。お客さんがほしいのはそうではありません。

お客さんの仕事をうまくやるためには、

「4つの選択肢があります。1番の選択肢を使うと、お金はもっとかかりますけど、こういうところはきちんと品質を保証できます。2番目の選択肢は予算通りに仕事を終えます。でも、ココとココに抜けがあります。選択肢3は、お客さんの予算より安くできるようにします。お客さんが言ったことは全部網羅しますけど、お客さんが言っていない、こういう組み合わせとか、こういう深い話はちょっとテストできないです。4番目は、お金はかからないんですけど、お客さんが我々に開示しない設計の中身やコードの中身を開示してください。そうすれば我々はより高い技術を使って、予算内でもっと多くの品質を保証してみせます。」

こういう選択肢を提示して、個々の選択肢のメリット・デメリット、およびそれができる理由をきちんと説明する。そうすれば、お客さんは納得して、お客さんが選べますね。

会社のスタンスがテスト設計の質の向上の成果を左右する

こういう仕事のやり方をできるような技術を捉えているか。それが重要になります。自分たちのテストに対するスタンスがきちんと分かっていないと、残念ながらテスト設計の質を向上する取り組みに工数をかけても、スタンス1,2の場合には、3に比べて結果が得られません。

おわりに

今回は、にしさんの講演「テスト設計コンテスト2013 関西地域予選 招待講演」の一部を文字起こししてみました。

講演の中の15分程度の動画の文字起こしをしましたが、全体が興味深い講演になっていますし、何よりもにしさん節が炸裂しているので、本記事を読んで興味の持った方はぜひ、にしさんの動画も視聴してみてください。

*1:本記事のタイトルで「原点」と記載していますが、もしかしたらにしさんはこの講演以前から「テストとは納得してもらうことである」という主張をしているかもしれません。ただし、動画としては最古の発表だと思ったので、今回は「原点」と表記しました。

*2:勝手に文字起こししているので、関係各所に怒られたら非公開にします

*3:質の低いテスト設計成果物の例として言っています。コピー&ペースト&モディファイ法について詳しくは以下の記事をご覧ください。

note.com

*4:おそらく、テスト仕様書から引っ張り出した表が投影されています

*5:テスト設計コンテストの成果物の1つ。テストコンテナが描かれています

JaSST Review'22でのMatt氏の講演をYouTube上に公開しました! #JaSSTReview

目次

何をしたの?

JaSST Review'22でのMatt氏の講演「The secrets of effective collaboration 〜うまくコラボレーションするためのヒミツ〜」をYouTube上に公開しました!

公開した動画はこちらです。

www.youtube.com

どんな講演なの?

公式サイトより引用した、講演の概要はこちらです。

ソフトウェアシステムは、たくさんの人の協力により作られます。そしてソフトウェアシステムの品質は、人々がどれだけコラボレーションしているかを表しています。つまり、調和の取れたチームは、使うのが楽しいソフトウェアを生み出せます。一方、退屈したりストレスを感じたりしている人々のチームは、欠陥だらけのシステムを作り、ユーザーを苛立たせます。

私は、ソフトウェア組織のコーチングにキャリアを費やしてきました。今回の講演では、何が優れたコラボレーションを実現するのか、加えて、優れたソフトウェアを生み出すためにはどのようにすれば良いのかについての洞察をお伝えします。その際、「実例マッピング」のお話をします。「実例マッピング」は、チームのバックログの問題を曖昧にせず明らかにして、テスト可能な例に分解するシンプルな手法です。また、手法の例から自動化した仕様に変える方法を示します。この方法は、日本語を含むあらゆる言語で書かれています!

今回の講演では、ペアプログラミング、アンサンブルペアプログラミング(モブプログラミング)、テスト駆動開発(test-driven development, TDD)、継続的デリバリー、トランクベース開発についても話します。

この講演によって、コラボレーションするヒミツについてチームに共有したくなることでしょう。

講演者のMattってどんな人なの?

公式サイトより一部抜粋

2008年には、立ち上がったばかりのオープンソースプロジェクトだった振る舞い駆動開発 (Behaviour-Driven Development, BDD)フレームワークのCucumber projectに参画し、2011年には、Cucumberの生みの親であるAslak Hellesøyと共著で書籍『The Cucumber Book』第1版を出版しました。

また、実例マッピングの考案者でもあります。

実例マッピングについては次の記事をご覧ください。

nihonbuson.hatenadiary.jp

nihonbuson.hatenadiary.jp

どうしてこのタイミングで公開することになったの?

実は先日、Mattさんが家族で来日し、実際に会う機会がありました。当時のJaSST Review'22はオンライン開催だったので、リアルで会うのはこれが初めてでした。*1

一緒に東京タワーを登った時の様子

その際に、「以前の講演をYouTube上で公開しても良いか?」と聞いたところ快諾いただいたので、講演から2年近く経ったタイミングですが公開する手筈となりました。

講演内容が英語なんだけど?

はい、講演内容は英語です。これは、イベント当日は同時通訳が付いていたのですが、通訳会社との契約の関係で、同時通訳の音声を載せることができないため、英語音声のまま載せています。また、後半の質疑応答部分は、私が日本語で、Mattさんが英語で喋っているため違和感があるかもしれません。

Mattさんの英語は日本人にとっても比較的聞きやすい英語だと思いますので、ぜひ視聴チャレンジをしてみてください。

また、YouTubeが用意している機械的な字幕翻訳を設定するだけでも、ある程度は読める形になっています。とはいえ、年数を重ねても色褪せない良い講演だったので、いずれ手動での日本語字幕を用意できればな…とも思ってます。

おわりに〜ASTERソフトウェアテストチャンネルとJaSSTの宣伝〜

今回はMatt氏の講演をYouTube上に公開することができました。

ちなみに、今回のMattさんの講演については、講演直後ににしさんからこんなツイートを貰っていました。おかわり会ではないですが、今回のような形で公開できたのは本当に良かったなと思っています。

他にも、ASTERソフトウェアテストチャンネルでは、ソフトウェアテストに関する沢山の動画を公開しています。そちらも是非ご覧ください。

また、JaSST(ソフトウェアテストシンポジウム)では、毎年10回以上、全国各地でカンファレンスを開催しています。今回のように動画として残らず、現地に参加した方だけ聞ける講演もありますので、気になる方はJaSSTのサイトもご覧ください。

今月末にはJaSST'25 Tokyoもあります。基調講演は書籍『テストから見えてくる グーグルのソフトウェア開発』『探索的テストの考え方』の著者であるJames Whittakerです。当日は同時通訳付きです!

興味のある方は、以下のページからぜひお申し込みください!

https://jasst.jp/tokyo/25-about/

*1:ちなみに、東京タワーだけでなく、一緒に居酒屋に入って食事もしました。その時にこんな会話をしました。

Matt「美味しいな。これって何?」
私「(えっと、マグロだから…)Tunaだよ!」
Matt「これも美味しいな。これって何?」
私「(えっと、カツオだから…)これもTunaだよ!日本語だと『マグロ』と『カツオ』で名前が違うけど、英語だと明確に名前が分かれてはいないっぽいね」
Matt「そうなのか!」

私「そういえば、BDD関連の日本語訳をするにあたって、CucumberとGherkinの訳が難しかったよ。両方とも日本語では『きゅうり』で一緒だからね。」
Matt「Oh…」
Mattの子供たち「(笑い)」
私「CucumberとGherkinの違いってなんだい?」
Matt「えっと、Cucumberはきゅうりそのもので、Gherkinはハンバーガーに入っているやつだよ。ハンバーガーに入っているやつは日本ではなんと言ってるんだい?」
私「それはピクルスだよ」
Matt「ああ、いや、確かにそれ自体はピクルスなんだけど、ちょっと違うんだよ。」

ということで、CucumberとGherkinを日本語訳するのが難しかったということは伝わった気がします。

テスト設計に生成AIを用いるときの注意点(2025年版)

はじめに

「生成AIをテスト設計で用いた事例が出てきてますが、使う際に注意が必要だと思っています。」という言葉から始めた連続ポストをX上に行った*1のですが、しっかりと記録を残した方が良いと感じたので、本記事を書いています。

ちなみに、一昨年にも生成AIのテスト設計への活用について書いてます。

nihonbuson.hatenadiary.jp

本記事で伝えたいこと

結論は以下の2点です。

  • 生成AIはシレッと嘘を混ぜてくるので、それを見極める力が必要
  • 直交表を用いたテスト設計は苦手?

目次

前提

予めお断りしておくと、

  • 生成AIを使うこと自体を咎めたいわけではない
  • 記事にして発信すること自体は素晴らしい

という話が前提です。

そのうえで今回の記事では、とある記事に書いてあった直交表の使い方に疑問があるので言及していきます。

今回の題材

題材となる記事

この記事の記載について言及していきます。

tech.asoview.co.jp

言及の対象部分

以下の部分が言及の対象です。

因子間の組み合わせテスト

チケットの購入パターンを指示してみます。

以下の因子から組み合わせによる購入パターンのテストケースを作成してください。

結果

特に指示はしていませんでしたが、ChatGPTは組み合わせ最適化のアプローチとして直交表を採用した結果を返してくれました。

テストケース作成に生成AIを導入した効果と課題 - asoview! Tech Blog

直交表の特徴

出力内容が直交表だったので、改めて直交表の特徴を挙げてみます。特に、今回採用しているのは強さ2の直交表のようなので、強さ2の直交表の特徴について挙げます。

  • 二因子間の水準の組み合わせが必ず1回以上現れる(オールペア法の特徴)
  • 二因子間の水準の組み合わせが同一個数現れる

よって、直交表はオールペアの中でも限定された特殊形であると見ることもできます。

指摘内容

今回指摘したい内容は以下の2点です。

  • 水準の組み合わせが適切に作成できていない
  • 適切に直交表を使いこなせていない

指摘内容1:水準の組み合わせが適切に作成できていない

1つ目の指摘は、「水準の組み合わせが適切に作成できていない」です。

今回の対象記事の内容をみると、「二因子間の水準の組み合わせが必ず1回以上現れる」が満たせていません。具体的には、「券種」と「決済手段」の組み合わせとして、「大人」かつ「電子マネー」が出現していないことが分かります。(赤囲み部分)*2

「券種:大人」に対して「決済手段電子マネー」が存在していない

かつ、出力結果の最後にポイントとして「ペアワイズ法により、2因子の組み合わせは全て含まれる」と書いていますが、このポイントを押さえられていない(嘘の報告をしている)と言わざるを得ません。

指摘内容2:適切に直交表を使いこなせていない

2つ目の指摘は、「適切に直交表を使いこなせていない」です。

今回の直交表の例は、「2水準、3水準、2水準、2水準」です。(決済手段は3種類、それ以外の券種、ポイント利用有無、クーポン利用有無は2種類ずつの水準になっています)

一方、L8は2水準系の直交表です。つまり、今回のように3水準以上の因子が入っている場合に使うことはできません。*3*4

余談

直交表について、個人的には以下のような見解を持っています。

  • 生成AIと直交表は相性が悪いのではないか
  • (現状の)生成AIの作成する直交表は基本的に信じない方が良いのではないか

この点については、以前に記事を書いた時にいただいたはてブのコメントが的を得ていたので、引用します。

AI駆動開発と現状とのギャップを示す - ブロッコリーのブログ

正しさを担保するところを、正しい結果を出すことが苦手なものに頼るってそもそもどうなんだろうね

2023/02/27 19:27
b.hatena.ne.jp

おわりに:専門家でも生成AIの不備を見抜くことが難しくなっている

最後に「生成AIは解法を示してくるが、その間違いを見抜くことは容易ではない」ことをお伝えします。

生成AIでは単純なケースならばある程度正確に作成することができます。「ある程度正確に」というのが肝で、完璧ではないということを意味しています。つまり、それを見抜く力がより重要になってくるということです。

今回はアソビュー!さんの記事に言及しましたが、テスト設計者が生成AIを用いて作成した直交表に対して言及したのは、実は今回が初めてではありません。

それぐらい、テストを生業としている人でもなかなか見抜きづらい部分であるという理解をお願いします。

以上のことに注意しつつ、生成AIのテスト設計への活用を進めてみてください。

*1:そのポストはここから

*2:ちなみに、対象記事には続きとして直交表(L12)によるケースを書いていますが、そこでも「大人」かつ「電子マネー」が出現していません

*3:もしも今回の例に対して直交表を用いてテストケースを作るには、3水準系の直交表である直交表L9を用いると良いでしょう。そして2水準しかない因子については、3水準目の記入欄に1水準目か2水準目の値を入力します。「二因子間の水準の組み合わせが同一個数現れる」という直交表の特徴は失われてしまいますが、「水準の組み合わせが必ず1回以上現れる」というオールペア法の特徴を活かすことはできます。

*4:3/5追記:akiyamaさんから直交表の作成について指摘をいただきました。

個人的には直交表L9だと無駄(任意の値の部分)が多いなと思っていたので、L8の変形は目から鱗でした!

akiyamaさん、ありがとうございました!

Developers Summit 2025で企画作成&登壇してきました #DevSumi

はじめに

先日のDevelopers Summitデブサミ) 2025にコンテンツ委員として参加し、登壇も2つ行いました。

event.shoeisha.jp

本記事では、当日を迎えるまでのいきさつなどを書いていきます。

目次

節目節目に立ち会うことができたデブサミとの関係

私が今までにデブサミで登壇したのは以下の通りです*1

ということで、コロナ禍前最後のデブサミDevelopers Summit 2020)*2、コロナ禍中のオンライン開催のデブサミDevelopers Summit 2022)、コロナ禍後最初のオフライン開催のデブサミDevelopers Summit 2024)という節目節目で登壇を経験させてもらいました。そして今回は、コロナ禍後最初の雅叙園開催のデブサミで登壇を経験させてもらえて本当に嬉しかったです!

初のコンテンツ委員

今回は縁あって*3、コンテンツ委員になりました。

コンテンツ委員の主な仕事は2つでした。

  • 公募枠で採択するセッションの選定
  • 公募枠、スポンサー枠以外のセッションの企画

今回は両方の仕事に関わらせていただきました。

M-1審査のような公募枠セッションの選定

昨年末に公募枠セッションの選定会議が行われました。詳細な選定内容についてはお伝えできませんが、私は「ひと昔前のM-1審査みたいだ…!」と感じてました。

ここでいう、一昔前のM-1とは、立川志らく師匠などがいた頃のM-1です。この頃は、審査員ごとの好みが今よりもバラバラで、審査員間の点数にブレが発生していました。しかし、それでも優勝者は納得の結果になることが多かった印象です*4

それと同様に、コンテンツ委員それぞれで審査基準が異なっていて、好みが分かれていました。しかし、最終的にはどれも納得して採択できたかなと思っています。結果として、(企画セッションも含めて)非常に多様性に富んだタイムテーブルになっていたと感じています。

自分がやりたい形のセッション企画

今回は自ら企画して2つのセッションを行いました。

event.shoeisha.jp

event.shoeisha.jp

両方とも、納得する形で企画できたかなと思っています。

リーダブルテストコード~メンテナンスしやすいテストコードを作成する方法を考える~

当日の登壇資料はコチラです。

speakerdeck.com

私は以前に「リーダブルテストコード」を題材にしたイベントに登壇したことがあります*5。その時からリーダブルなテストコードには興味関心があったのですが、共に登壇したt_wadaさん末村さんがそれぞれリーダブルなテストコードについて言及していたのを見て、「これはぜひ一緒に登壇したい!」と思い、企画しました。

ちなみに、今回と同じ3人でJaSST Tokyoにも登壇するので、興味のある方はコチラにもきてください!

開発スピードは上がっている…品質はどうする? ~スピードと品質を両立させるためのプロダクト開発の進め方とは~

当日の登壇資料はコチラです。

speakerdeck.com

昨年の夏ぐらいから、登壇者の鈴木雄介さんと「『Agile×品質』というテーマで何か一緒に登壇できたら良いね」という話をしていました。

そこから話したいネタは考えていたのですが、2人が喋る形だとどうしても聴講者を置いてけぼりにしてしまう可能性があると気付きました。

そこで、2人の考えをある程度汲み取りつつ、適度に質問し解説もできる人物として、安達さんにモデレーターをお願いしました。

結果として、とても綺麗な形で安達さんに整理してもらえて本当にありがたかったです!

安達さんによる整理(一部)

整理した内容は公開してありますので、こちらもぜひご覧ください!

雄介さん(左)と安達さん(右)に囲まれての集合写真

スピーカー控室という交流場所

当日は2つの登壇の準備もあり、基本的にスピーカー控室にいました。

スピーカー控室では、コンテンツ委員の皆さんや他イベントでご一緒した皆さんと久々の再会をして楽しむことができました。

こういう交流ができるのもスピーカー控室ならではだなと感じています。(ぜひ、公募セッションに応募し、当選して、この雰囲気を味わってほしいです!)

次回以降は同じコンテンツ委員のいくおさんのように、みんなと一緒に写真を撮りまくるぞ…!

懇親会を通じて普段は交わらない人たちとの交流を楽しむ

懇親会、2次会にも参加しました。そこでは、普段の私の参加イベント(主にテスト系やスクラム系)では交わらない方々との交流を楽しむことができました。多種多様なジャンルの参加者と交流できるのもデブサミならではだなーと感じました。

また、旧コンテンツ委員のそーだいさんと、公募セッション選定の方法について情報交換をして、以前との選定方法の違いを聞くことができて、大変嬉しかったです!

おわりに

長々と書いていきましたが、デブサミが多様性に富んだ場であったし、多様性をより加速させることができた回になったなと感じています。

また個人的には、今回のDevelopers Summit 2025は「やり切った!」と言い切れると思っています。ただ同時に、燃え尽き症候群にはならず「次回も関わりたい!」と思えています。

次回は今回よりもさらに良い回にしていきたいと思いますので*6、ぜひ参加した皆さんも、次回の改善に繋げるためにもアンケートの回答をお願いします!また、皆さんの参加レポートもまだまだお待ちしてます!

*1:毎年2月頃に行われているDevelopers Summit(無印)のみを記載しており、Developers Summit Summerなどの派生イベントの登壇は記載していません

*2:Developers Summit 2020はコロナ禍の本当に直前。この回の1週間後には続々とイベントがオンライン開催に切り替わっていきました。

*3:過去のデブサミ登壇や、主催の翔泳社さんで講座を受け持っていた関係からか、今回、運営から声をかけられました

*4:例えばM-1グランプリ2021が印象的です。

この回ではランジャタイの点数が

となり、評価が真っ二つに割れていました。しかしこれは、「誰かの評価がおかしい!」ではなく、この評価の割れ方こそが多様性だと思いましたし、その中で、審査員みんなが納得して優勝に至った錦鯉は本当に素晴らしいと思いました。

*5:その時の登壇資料はコチラ。

speakerdeck.com

*6:まだ次回もコンテンツ委員になれるかは不明ですが

2024年の活動をふりかえる

年の瀬です。

昨年末に同様の記事「2023年の活動をふりかえる」を出して、良いふりかえりになったなーと感じたので、今年もふりかえってみたいと思います。

目次

本業

昨年5月から引き続き株式会社10Xで働いています。

10x.co.jp

品質管理チームのメンバーとして手を動かしている一方、今年の途中からエンジニアリングマネージャーも兼務するようになりました。

10Xでやったことについて詳しくは、先日記事を書いたのでそちらをご覧ください。

nihonbuson.hatenadiary.jp

副業

いくつか副業をさせてもらってます。その中で、公開できるものを記載しておきます。

Graat様でのコンサル業

昨年時点では公開できなかったのですが、実は前々からGraat様でもお世話になっていました。Graat様、電通大のにしさん、私で共同研究をしていました。

主にAgileにおけるテスト活動について議論していました。成果については今年のSQiPシンポジウムで発表がありました。

品質保証活動をアジャイルプロセスに溶け込ませるためのテスト活動の再構築と、それを支えるアジャイル・エンジニアリングの活用

MonotaRO様でのコンサル業

今年からMonotaRO様でテストや品質の相談に乗っていました。

テストプロセスやテスト設計に関する勉強会を開いたり、日々の業務の壁打ち相手になったりしていました。

Aidemy Business講師

株式会社アイデミー様のオンラインDXラーニング「Aidemy Business」の中で、ソフトウェアテストに関するオンライン学習コンテンツを提供しました。

aidemy.co.jp

CodeZine Academy講師

一昨年の秋から定期的に、翔泳社様主催の「CodeZine Academy」というセミナーで講師をしています。

event.shoeisha.jp

今年はオフライン開催も行いました。

ありがたいことに、毎回多くの方にご参加いただいており、3,4ヶ月に1回のペースで開催できてます。次回の開催も計画中です。

ASTER標準テキストを用いた自治体主体のセミナーの講師

自治体主体のセミナーでも講師を務めています。千葉で開催しているセミナーの担当です。こちらも3年目になります。

www.aster.or.jp

年2回開催しておりますが、こちらも毎回満席近くのご応募があります。

社内講演

その他、単発での社内講演もいくつか受け持ちました。

運営

コミュニティ活動を中心とした運営をしています。

WACATE

ソフトウェアテストの合宿型ワークショップ形式勉強会であるWACATEに実行委員長として携わっています。

毎年6月と12月に開催しています。最近はありがたいことに実行委員の数も増えまして、よりチーム運営を意識しながら開催しております。

wacate.jp

レビュー研究会

レビューの体系化を目指して、1ヶ月に1回程度集まっています。もう少しで良い感じに言語化できそうなところまで来ています。

www.aster.or.jp

Developers Summit コンテンツ委員

翔泳社様主催のDevelopers Summit(通称:デブサミ)で、次回の2025年からコンテンツ委員を拝命することになりました。

主に、公募セッションの選定や、招待セッションの企画などで関わり始めました。

執筆

いくつか執筆をしました。

雑誌『Software Design』寄稿

技術評論社様が出版している雑誌『Software Design』に2回寄稿しました。

『Software Design2024年2月号』

テスト設計についての記事を寄稿しました。 gihyo.jp

Software Design総集編【2018~2023】』

冊子自体は過去の発行の総集編ではあるのですが、今回の書き下ろし特集として、生成AIとテストについての記事を寄稿しました。

gihyo.jp

Findy Engineer Lab 寄稿

Findy様が運営しているメディア「Findy Engineer Lab」にて2つ寄稿しました。

高速道路の出口案内のようなQAエンジニアでありたい ─自動テストより前にやるべきことがあると気づいた話

私の今までのキャリアやQAエンジニアとしての考え方についての記事を書きました。 findy-code.io

あなたのキャリアに影響を与えた本は何ですか? 著名エンジニアの方々に聞いてみた【第四弾】

オススメの書籍についての記事を書きました。 findy-code.io

Agile Journey寄稿

UZABASE様が運営しているメディア「Agile Journey」にて寄稿しました。継続的テストモデルについての解説と、このモデルから見たシフトレフトなテスト活動/シフトライトなテスト活動についての記事を書きました。

agilejourney.uzabase.com

agilejourney.uzabase.com

登壇

いくつか登壇をしました。

依頼を受けて登壇したもの

運営側として登壇したもの

公募して登壇したもの

Podcast

Podcastも少し収録しました。

10X.fm

私が現在所属している株式会社10XのPodcast「10X.fm」の企画「QA部屋」でモデレーターを務めてます。毎回ゲストを招いて、今までの経歴やテストに関する話をしています。

2024年に出したエピソードは以下の通りです。 open.spotify.com

open.spotify.com

open.spotify.com

おわりに 〜今年のまとめと来年の抱負〜

今回は1年間の活動をふりかえってみました。こうやってふりかえってみると、年々社外活動を増やしているなーと感じてます。また、記事の寄稿が非常に多くなったと感じた年でした。

個人事業主としてのサイトb-testing.netでは、過去の講演実績を時系列順にまとめているのですが、だんだん長くなってきてます。 www.b-testing.net

来年も引き続き、依頼いただいたものは極力受けたいと考えてます。ご依頼は以下でお受けしております。

www.b-testing.net

来年に向けては、今年から継続している内容に加えて、まだ公開できない仕事もいくつかいただいているので、もう少し公開できると良いなーと思ってます。

あと、ここまで来ると法人化しといたほうが良いかもと感じている今日この頃です。

それでは2024年、お疲れ様でしたー!

河野大臣(当時)のポストから西暦のテストについて考える

はじめに

本記事はソフトウェアテストの小ネタ Advent Calendar 2024で投稿することを忘れていたが、2024年に起こった出来事なので、今年中に公開しようとした記事となります。

本記事執筆のキッカケ

当時、デジタル大臣だった河野太郎氏がこんなポストをしていました。

このポストから学べることがいくつかあるので、考えてみたいと思います。

目次

学びその1:上の役職の人が声をあげると最優先課題になる可能性がある点

今回の場合は直属の上長では無いですが、デジタル大臣が声をあげた結果、その課題の優先度が最優先となってしまうかもしれません*1

このような事象は度々発生します。

課題自体は解決できるかもしれませんが、そこにかける工数によって、他の課題解決に割ける時間が減ってしまうことこそが問題です。

学びその2:主観で課題を述べている点

今回のようなUI面での指摘は、主観で述べていることが多いです。その結果、優先順位を付けるのが難しくなる可能性があります*2

今回の場合、どうすれば良いのか

QAや専門家が今回の点を指摘する場合は、今回の事象のどのような点が問題なのか/どのような部分をテストすべきか言語化するところから始めるべきかもしれません。

テスト条件

「何をテストすべきか」を示すものをJSTQBでは「テスト条件」と呼びます。*3

今回の場合、生年月日の選択肢に対してのテスト条件を考えてみます

現実的な選択肢を提示しているか

この方が述べている通り、最高齢の方(1908年)よりも昔の西暦を選択肢にする必要はないかもしれません。特に日本の場合は戸籍がしっかりしているので、さらに昔の西暦に更新される(最高齢の方が発見される)ことはないでしょう。また仮に発見されたとしても、その選択肢を使うのは1人だけですので、例外的な運用で処理しても良いかもしれません。

利用者のボリュームゾーンあたりを選択肢としているか

この方が述べている通り、利用者のボリュームゾーンあたりから選択肢が始まっているかを考えてみるのも良いかもしれません。

デフォルトの選択肢を空欄にしているか

より多くの利用者が操作しやすいということを考えると、最初から一番多いボリュームゾーンの西暦を選択した状態で始めるのが良いと考えるかもしれません。しかし、空欄にしていないと、選択するという意図をせずとも次に進めてしまうという別のトラブルが考えられます。

必須項目であり、確定申告という公的書類を作成することを考えると、元々の実装通り、デフォルトの選択肢は空欄であることが好ましいように思えます。

おわりに

今回は河野大臣(当時)のポストを元に、確定申告の西暦選択におけるテストについて考えてみました。

今回の事例には直接当てはまらないかもしれませんが、先日行われたWACATE 2024 冬にて、ユーザビリティの作り込み方についてのワークショップがあったため、参考として貼っておきます。特に資料後半の「人間中心設計によるライフサイクル」が参考になるかと思います。

speakerdeck.com

*1:なお、個人的には全く興味を持っておらず見ていないよりは、河野大臣のように見てもらっている方がありがたいと思います。問題はそれが伝え方によって最優先になってしまう点です。

*2:これは「河野大臣の指摘の仕方が良くない!」と伝えたいわけではありません。専門家でもない一般ユーザーが指摘をすること自体は否定されるものではありません。ただし、専門家が同様の指摘の仕方をしていた場合は改善点がありそうな気がしているので、今回話題にしています。

*3:JSTQBではテスト分析の成果物として定義されています。JSTQBの最新版シラバスISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02)には以下のように書かれています。

テスト分析の作業成果物には、(優先順位を付けた)テスト条件(例えば、受け入れ基準など、4.5.2 項参照)、およびテストベース内の欠陥についての(直接修正しない場合の)欠陥レポートが含まれる。

10Xに入って1年半でやったこと・感じたこと

はじめに

10X 2年目のブロッコリーです。この記事は10X アドベントカレンダー 2024の9日目の記事です。

昨日はAnalytics Engineerのtenajimaさんが「入社エントリからの差分、入社1年9ヶ月目の現在地」という記事を公開しています。

10Xの推しポイントは、案件受注前の状況から問い合わせ内容まで、なんでもSlack上で見える状態になっていることです。

本記事では、2023年5月に入社して1年半経った私が、今までどんなことをやってきたのか書いていきます。いわゆる在職エントリーです。自分にとっても良いふりかえりになるかなーと思っています。

目次

在職していてどう感じているのか

最初に、現在在職していての感想を書きます。

入社時に期待していたこと

前職までよりも小さい組織で、開発者やビジネスチームと協働して仕事を進められそうだったからです。また、シフトレフトなテスト活動を目指している点も期待していました。

入社してどうだったか?

入社時に期待していた通りでした!

1人のエンジニアとして見てもらえている

「QAさん」ではなく、「ブロッコリーさん」として、開発者やビジネスチームと協働して進められている気がしています!実際に進めた結果については、本記事の後半部分をご覧ください。

プロダクトをどのように使ってもらえているのか気にしながら開発できている

プロダクトで新しい機能を開発している際、それがどのように使われることになるのか気にしながら開発できています。ただ単に作るだけでなく、「それが機能として使われていることを確認するためにはどういうログを仕込めば良いか」を開発時点で議論して進められているのは非常に良いなと思ってます。

経営陣ともフラットに話せている

経営者ともわりかしフラットに会話できているかなと思ってます。10X アドベントカレンダーの初日を担当したCFOの山田さんとは、日ハムの話題で盛り上がったりしました。もちろん、雑談だけでなく仕事の話もします!

最近は、新規事業関連でCEOのyamottyさんと会話する機会も増えてます。

情報の透明性が高い

冒頭の推しポイントにも書いている通り、様々な経過状況がSlack上で逐一見えている透明性はすごい良いなと思っています。開発するに至った背景情報を知る上で非常に助かってます。

仕事に集中できる環境が整っている

福利厚生も満足しています。特に、子供が病気になったときに、病児保育の費用補助が受けられるのは、仕事に集中できて非常に助かってます。

10Xから転職したい気持ちはあるか

以前の記事で書いている通り、「転職意向が無くてもどんどんカジュアル面談を受けるべき」というスタンスでいるので、転職サービスからのスカウトを受け取ったりもしているのですが、いただいたメッセージと10Xを比較して、改めて10Xで働き続けようと感じています。

ということで、総じて満足して働いてます!

在職中にどんなことをやったのか

上記で在職した感想を書きましたが、ここからは1年半で実際にどんなことをやったのか書き連ねてみます。

テストプロセスを観察した

入社して最初にやったこととして、どんなテストプロセスを経てテスト活動を行っているか観察しました。そしてプロセス改善を試みました。

詳しくは記事にしていますので、そちらをご覧ください。

nihonbuson.hatenadiary.jp

新機能のQAに明け暮れた

テストプロセス改善を行った後は、リリース予定だった新機能のQAを行っていました。開発者やPdMとの距離が近く、分からないところはすぐに聞けたのが非常に助かりました。

実際にリリースした機能はこちらです。切り替え対象となっている「シングルピッキング」の機能開発のQAに携わっていました。

prtimes.jp

パートナーの現場に行ってアプリの利用状況を観察した

2023年10月10日。それは私にとって、10Xに入ってから最も印象に残った日の1つです。

実際に店舗に行き、我々が開発しているアプリを使っている様子を観察しました。

この経験によって、

  • 我々が開発している内容が本当に役に立っているのか
  • 現場での運用上の工夫は何か

などを自分の目で見ることができました。

この経験について詳しくは、カンファレンスの登壇資料に記載しました。

speakerdeck.com

Feature Flagを活用するようになった

2024年に入って、Feature Flag(Toggle)を積極的に活用するようになりました。

できるだけmainブランチとの差分を少なくするためにRelease Flag(Toggle)として活用したり、少しずつ計画的にパートナーへ適用するためにOps Flag(Toggle)として活用したりしました。

詳しくは、以下の執筆記事にまとめたので、そちらをご覧ください。

agilejourney.uzabase.com

QAのEMになった

2024年の下半期には、QAチームのEMにもなりました。

普段の業務もこなしつつ、どうすればQAチームメンバーが良い方向で進めていけるかを考えていきました。

詳しくは先日12/4にイベントで発表したので、その資料をご覧ください。

speakerdeck.com

新規事業のQAも担当した

現在は、新規事業のQAも担当するようになりました。

こちらについてはまだまだこれからなので、何も示せるものがないのですが、日々新しくなっていくアプリに対してのQAを考える毎日です。

実際に新規事業の開発をしているみんなでワイガヤしている様子は以下の記事内の写真にあります。

product.10x.co.jp

Podcastのホストになった

10Xが運営しているPodcast「10X.fm」の企画の1つ「QA部屋」のホストになりました。

QA部屋の最新エピソードはこちらです。

open.spotify.com

おわりに

今回は入社して1年半でやったことをつらつらと書いてみました。

こうやってふりかえってみると、業務はどんどん行いつつ、やったことに対してアウトプットを示してきた1年半だったなーと思えました。

10Xではソフトウェアエンジニアを募集しているので、今回の内容を見て「興味がある」「一緒に働いてみたい!」と思った方は、ぜひ採用ページもご覧ください。

ソフトウェアエンジニア(SWE) / 株式会社10X