CAT GETTING OUT OF A BAG

What the tester is thinking.

ソフトウェア技術者のためのバグ検出ドリル(問題1:コンピュータ・ゲームのバグ)

この記事は『ソフトウェア技術者のためのバグ検出ドリル』についての思考メモです。本書で問題を解いたことのある人、これから解いてみようかなと思っている人向けです。当然ドリルの問題は載せられないので消化不良を誘発する内容になっています。*1

ソフトウェア技術者のためのバグ検出ドリル

ソフトウェア技術者のためのバグ検出ドリル


昨年の12月に iPad(10.2インチ Wi-Fi 128GB)と Apple Pencil(第1世代)を購入したので練習もかねて手書きしました。GoodNotes 5 というノートアプリを使っています。*2

f:id:miwa719:20200104114053j:plain

1問目から解けなくて大丈夫だろうか…。 

*1:勘の鋭いエンジニアなら問題を逆引きできそう

*2:iPadApple Pencil は自分へのクリスマスプレゼントではありません。12月某日、まったくもっておかしな仕事が降ってきまして、当然抵抗したのだけど分かってもらえず(しかも一緒に抵抗してほしいと思っている人がやってあげようとする側にいて一体何を考えているのだと怒りに震えていた)カッとなってお昼休みに購入したのでした。おとなだから自分の機嫌は自分で直すのだ。しかしわたしの機嫌が直ることとその仕事が本当にやるべきものかどうかはまた別の話しである。結局もっとえらい人に言いつけて(いろんな人のがんばりのおかげで)そのおかしな仕事は1日しかやらずに済んだ。よかった。購入した理由はあれだけど iPadApple Pencil かなり良いです。手書きの文字をくるっと点線で囲み、別の場所にすーっと移動したときは感動しました。オブジェクトの移動なんて当たり前の機能だけど長年愛用しているほぼ日手帳ではできないので。

『ソフトウェア技術者のためのバグ検出ドリル』をやってみることにしました

わたしの中でドリル本と言えば『ソフトウェアテスト技法ドリル―テスト設計の考え方と実際』ですが、昨年11月にバグを検出することに特化したドリル本『ソフトウェア技術者のためのバグ検出ドリル』が発売されました。

ソフトウェア技術者のためのバグ検出ドリル

ソフトウェア技術者のためのバグ検出ドリル

 

さっそく購入してパラパラと眺めたのですが、これは面白そう!

本書は『山浦恒央の“くみこみ”な話 - MONOist(モノイスト)』の内容を大幅に改稿したものとのこと。掲載されているバグ検出問題はぜんぶで31問。どれも著者の山浦恒央さんが体験したバグを元に作ってあるそうです。

monoist.atmarkit.co.jp

わたし自身、これまでバグの生成を含む数々の失敗からたくさんのことを学んできましたが、開発現場で出会えるバグには限りがあります。時間は有限ですし、そもそもバグをなるべく作らないためにチームみんなで尽力しているのでね。だから他人が経験したバグを使い、あたかも自分が出会ってしまったかのような擬似体験ができるのは大変貴重です。ありがとうございます。

6つの開発フェーズ(要求仕様、設計、コーディング、デバッグ、テスト、保守)をカバーしたリアリティのある良質な問題を解き、含蓄に富んだ解説を読みながらソフトウェア開発に必要な4つの能力を鍛えたいと思います。

  1. バグを見つける嗅覚
  2. 他人の作ったプログラムを読む読解力
  3. 必ずバグを見つけるという強靭な精神力
  4. 自分の専門外でも仕様をもとにバグを見つける汎用的な技術力

そうそう、各問題には制限時間(最短は10分、最長は4時間)が設けられています。解けても解けなくても時間がきたらおしまいです。残業しない感じが普段の仕事っぽくていいな。

『なりきりみわキット』をリリースしました

11月29日に福岡市で開催された JaSST'19 Kyushu@m_seki が唐突に告知した『なりきりみわキット』について紹介します。誕生秘話?についても書きました。

なりきりみわキットとは?

@miwa719 がよく使う言葉(みわ語録)を2時間おきに通知するiOS向けキットです。たとえばこんな言葉です。

  • 書いてあるテストじゃバグ出ないよね
  • よし!
  • これはダメなやつだ
  • そうなの?

使い方は自由。みわ語録が通知されたら小さな声で音読して安く「みわ」になりきるのもよし、あなたのそばに「みわ」がいるような気分でお仕事するのもよし。言葉の意味、背景を想像してみるのも面白いかもしれません。

設定方法

本キットは iOS のカレンダーアプリ(iCalender)を利用しています。
iPhone → 設定 → パスワードとアカウント → アカウントを追加 → その他 → 照会するカレンダーを追加 → サーバに 719.druby.work を設定して「次へ」を選択。SSL接続できませんと表示されたら「続ける」を選択。以下のような画面になったら「保存」してください。カレンダー(本日)にみわ語録が設定されます。

f:id:miwa719:20191201095058j:plain

解除方法

追加したカレンダーを削除してください。
iPhone → 設定 → パスワードとアカウント → 照会したカレンダー → 追加したカレンダーを選択 → アカウントを削除

f:id:miwa719:20191201184912j:plain

自分の思考を変化させるスパイスアプリが欲しかった

製品開発中にミスや問題は起きるという前提で、わたしはその兆候や違和感(おかしさ)をできるだけ早くつかまえたいと思っています。そのために自分の思考の持っていきかたを意識的に矯正したり"無意識"を意識的に使おうとしています。でも現状に満足していません。ドメイン知識のように学んで覚えていけるものはどうにかなるのでいいのですがこれはちょっと違う。うまく言えないけど自分がそのときに考えてないことを考えたいし思いつきたいのです。自分の思考に一味加えて変化をうながしてくれるようなスパイスアプリが欲しい!と思ったのがきっかけです。

思考を変化させるための言葉(スパイス)をたくさん登録しておきランダムに選んで Apple Watch に通知する。そのときの自分の思考にスパイスをふりかけてテストを動的に変えていくのです。うまくいくかわからないけど面白そうでしょ?

技術顧問が一晩で作ってきた

スパイスアプリの構想を技術顧問*1に話したら一晩で「2時間おきにフレーズを配信するカレンダーのサーバー」を作ってきて自慢されました。自分でアプリを作るつもりで iOS のメモ帳とリマインダーを developer.apple.com でせっせと調べていたので唖然としましたね。しかもわたしには思いつかないかっこいい実現方法だったので二重に悔しい!!

どのような仕組みで動いているかを解説してもらい「スパイスとなる言葉は自分で書いてー」と言われたのですが、動作確認用の言葉として書いてあったのがたまたま「みわ語録」だったんですね。これはこれで面白いのでは!となり『なりきりみわキット』が誕生しました。

で、ソースコードを見たら9時から17時までの間はランダムに言葉を選ぶように作ってあるのですが17時だけは固定の言葉「もうやめなよ」が配信されるようハードコーディングしてある……。これは「みわ語録」ではなく普段わたしが言われている言葉です……。*2リアルタイムでこれを言われている「わたし」になりきれると思います。

おわりに

『なりきりみわキット』について紹介しました。サーバーは現在改良中です。土日は仕事しないので配信しないように直そうと思います。「みわ語録」だけでなく「あのチーム」でよく使うフレーズも登録しておこうかな。設定も解除も簡単なので興味のある方は試してみてくださいね。

*1:@m_seki

*2:17時すぎになってもテストしていると「もうやめなよー」「17時すぎましたよ?(帰らないんですか?帰っていいんですよ?むしろ帰ってほしいという意味)」と言われる

サディスティックミワテスト(ステッカー)を作りました

サディスティックミワテスト(ステッカー)が欲しい!とのご要望があり、自分でも欲しかったので キングプリンターズ で作りました。*1

個人用なので100枚もあれば十分だなと思っていたのですが、200枚でも300枚でも価格がほとんど変わらないんですね。

f:id:miwa719:20191031180144j:plain

価格の一例(円形ステッカー)

100枚だとなんだか損したような気持ちになってしまって、多いよなぁ…と思いつつ200枚作ったら見本用ステッカーが+70枚ついてきました。270枚もどうするんだ!!

というわけで、ほしい方には手渡しでプレゼントします。イベントなどでわたしを見かけたら「ステッカーほしい!」と話しかけてくださいね。

f:id:miwa719:20191027143441j::plain

ステッカーの大きさはこれくらいです(直径50mm)

ステッカーを製作する前に 無料サンプルセット を請求しました。紙の質感や手触りなどを確かめたり仕上がりがイメージできるので安心です。とてもよいサービスだと思いました。今回のステッカーもサンプルのステッカーを参考にしっとりとした質感の光沢を抑えた「マットPP」というもので製作しました。*2

kingprinters.com

miwa719.hatenablog.com

*1:正しくは技術顧問 @m_seki に発注しました!

*2:どうでもいい情報ですが、ステッカーの背景色は愛車のボディーをイメージした色(アマルフィホワイト)になっています。だから真っ白ではないのだ。

若手開発者(プログラマー)と読書会をはじめました

5月に社内の若手開発者(プログラマー)から「テスト設計技法を学びたい。できれば体系的に」と相談されたのをきっかけに、書籍『ソフトウェアテスト技法ドリル』の読書会をはじめました。この記事では読書会をはじめるときに決めたこと(伝えたこと)と、2か月やってみて思ったことをメモしておきます。あと『ソフトウェアテストの練習帳』を使ってみたのでそれの感想も!

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

 

読書会をはじめるときに決めたこと(伝えたこと)

本を読むことを主目的としない

単に本に書いてあることを音読し、わたしがたまに補足して、巻末の演習問題を解くのではなく、テスト設計技法を学びながら実際の開発(テストを含む)について考えたり、話し合う場にしたいと思いました。このやり方だと1冊読み終えるのに半年はかかるのと、読書会がうまくいったらどうなるか?のイメージ(=普段の開発の中で読書会で話したことを思い出し何かのヒントになる)を伝えました。

担当制にしない

章ごとに担当を決めて担当になった人が当日講師役になって進めていくスタイルは、講師になった人が事前に予習しなければならず大変なのでやめました。…というのは建前で、今回の状況だとどうみてもお前が講師だろ!て感じだったのでそれを回避しました。

宿題にはしない

宿題があると時間的にも気持ち的にも負担になりますよね。例えば、章の最後に演習問題が2問あるんですけど1問だけみんなでやって、もう1問は次回までに各自やっておきましょう、ということはしない。

無意識だったけど「しないこと」を決めていたのだなあ。

読書会を2か月やってみて

週1回開催(1時間/回)で8回実施しました。この本は第6章まであるのですが、現在第2章まで読み終えたところです。

  • そうだろうなと思っていたけど、若手開発者(以降、Aさん)も普段の開発の中でテスト技法(同値分割や境界値分析)を使っている
  • Aさんも「自分が普段やっていることに名前がついている」ことが分かってきたみたい
  • 本を読むことで「いつこの技法を使うのか」「どのように考えていくのか、またそれでよいとする理由」を自分の頭の中に取り込むことができる。これまでなんとなくやっていたことが(これでいいんだな)と思えるようになるのは、精神衛生上とても良いことだと思う
  • 区切りのいいところまで音読し、自由にディスカッションしている*1
  • 気になった文章を取り出し「これはどういうことを言っているのか」「この技法の考え方は実際の開発の中だとどこで使われているのか」そこからさらに設計、実装方法にブレークダウンしたり、過去に見た(聞いた)不具合などを話している
  • 結論を出したり章ごとにまとめるようなことはしていない(その場で話したことが全て)
  • この本は技法だけでなく「ソフトウェアテストの7原則」「248日問題」など、知っておいてもよいことがさらっと書かれている。Aさんに聞いたら「知らない」というのでその場で簡単に紹介している*2
  • Aさんとは開発してる製品が全く違うので、同じドメイン(医療機器)であっても原理的、構造的な違いから、似たような機能であっても気にするところが変わってくるのが面白い(自分の思考を広げるネタとして使えるので、こういう話を聞くのが好きです)
  • 1時間やるとかなり疲れるけど、週1回なので続けられそう

ソフトウェアテストの練習帳』の感想

ソフトウェアテストの練習帳』はソフトウェアシンポジウム 2019 東北に参加した際にお土産として頂いたものです。一般の書籍ではないので、以降の感想は練習帳を持っている方とこの練習帳の製作に尽力された方々向けになります。

ソフトウェアテスト技法ドリル』の第2章まで読み終えると、この練習帳の同値分割と境界値分析(11問)が解けるようになります。さっそくやってみました!

  • 1時間で2問解きました(1問目:40分、2問目:20分)
  • 問題を解く上で考えなくてよいこと(制約)が書かれているので、考える範囲が適度にしぼられ、その結果、対象にしている技法(今回は同値分割と境界値分析)に注目して解くことができました
  • 問題が文章だけ(構成図や画面例がない)というもの同じで、書いてないことで有効な制約になっていると思いました*3
  • あえて制約をつけないで問題を解いてみるという使い方もできそう
  • 問題を解いてるときに解答例、解説が見えない(次のページになっている)のが良いです(自分で見えないようにするのは案外ストレスがかかるものです)
  • 問題の横に書き込めるように?たっぷり余白があるのですが、何度も使いたいので練習帳には書き込まずホワイトボードを使いました
  • この問題に対する答えはこうだろうというよりは、自分ならどんなテストをしてみたいか、なぜそれをしたいのかを自分の言葉で話すようにしています
  • 自分で出した答えと解答例を比べて同じだと、やはり嬉しい気持ちになりますね
  • 1問目を解いたときに「代表値」について読書会ではそれほど触れなかったのに気づくことができました。そこで「都道府県を選ぶときの代表値」を例題にしてディスカッションしました
  • 解答例だけでなく丁寧な解説もついているので、その答えにたどり着くまでの過程を自分の思考と照らし合わせて確認することができるのがよいですね
  • 1問目と2問目は同じような解説が載っています。対象が同値分割と境界値分析なのでそうなるんですけど、やりようによってはわざと見せ方(解き方)を変えることも可能だと思ったのですが*4、おそらく同じような解説の方が読み手が混乱せず、安心して問題を解くことができるので、正しいことを同じように繰り返すのは大事なことなんだと思い直しました*5
  • 問題を解いていくことで「同値分割と境界値分析とはこういうもの」をより実感することができますね
  • Aさんは本で学んだ通りのお手本になるような解答をしたあと、さらに実装方法をホワイトボードに書きながら、自分ならこの対象としている値の元になるデータはfloat型を使うかもしれない、そうなると値を求める時に差分をとって比較するようなことをすると思う。なぜ差分をとるのかは前に値をそのまま比較して失敗した(丸め誤差と桁落ち)ことがあるので…のような話をしてくれました*6
  • このような話が出てくるきっかけになる練習帳の問題、素晴らしい!
  • 老眼の人にも優しい組版だと思いました(フォントや文字の大きさや行間など)

 

同値分割と境界値分析の問題はあと9問あるので、次回の読書会からしばらく練習帳を使うことになると思います。この練習帳を作ってくださった方々のお顔を思い浮かべ感謝するとともに、これからも楽しみながら解いていきたいと思います。ありがとうございました。*7

note.mu

追記(2021.11.16)

ソフトウェアテストの練習帳』は、JaSST配布版から加筆・校正され、一般書籍『ソフトウェアテスト技法練習帳 〜知識を経験に変える40問〜』として技術評論社より出版されました。

追記(2022.09.29)

来月『ソフトウェアテスト技法ドリル』第2版が発売されるそうです。赤ドリル!

*1:読書会ではなんでも話してほしいので、率先してわたしがなんでも話すようにしている。Aさんもなんでも話してくれるようになってきた。自分の仕事で解決できなくて困っていることとか。

*2:その後、Aさんは自分でボーイング787の248日問題、497日問題、36時間問題などを調べていた。

*3:うっかり画面例を書いたらいろいろ気になってしまい大変なことになった。

*4:思ったというか期待しちゃった…!JaSST Tohoku 実行委員のみなさんに対する期待値がものすごく高いんだわ。

*5:3問目以降の問題は見ないでこれを書いてます。

*6:こういう話が好きです。

*7:練習帳の表紙にもなっている仙台『蔵の庄』のごぼう天、美味しかったのでまた食べたいなあ。

「無効にする」という言葉は案外むずかしいのかもしれない

「無効にする」という仕様でプログラマーとテスターが違うものを想像した話です。開発中の些細な出来事ですがツイートするには長すぎるのでこっちにメモしました。

 

ある日のこと 

ある画面に表示しているスライダーコントロールを触っていたら、おかしな現象に気づきました。Trackの部分をマウスの中ボタン(ホイールボタン)でコロコロしたら、値の増減が正しく行われる時と行われない時があるんですね。

 

https://docs.microsoft.com/ja-jp/dotnet/media/genericslider.png?view=netframework-4.8

説明上、スライダーコントロールの部品の名称を載せたかったので docs.microsoft.com .NET.Framework の Slider Class の図を直接リンクしました(わたしたちが開発してる製品とは無関係です)

 

担当のプログラマーTさんとFさんにその現象を見せて、そのあとチームでどうするか話し「中ボタンは無効にする」ことになったのですが、翌日修正したものを触ったらなんかおかしい。

  • Trackの部分を中ボタンでコロコロしても値は増減しない。無効になっているのでOK
  • Trackの部分を左ボタンで長押しすると連動して値が増減する。元からあった仕様でこれもOK
  • 左ボタンを長押ししたまま(マウスダウンしたまま)中ボタンをコロコロすると値が戻ってしまう。あれ?

例えば、値が10の時プラス方向に長押しすると11、12、13、14と増えていきマウスボタンを離したときに増加が止まります。これは良いのですが、長押ししながら中ボタンをコロッとすると10(長押しする前の値)に戻ってしまう。

中ボタンは無効にすることになったので、長押ししながら中ボタンをコロッとしても何もせずに無視するが、わたし(テスター)が期待した動作でした。直しきれてないコードがあって中ボタンのイベントが発火したのかなと思いました。…にしてもどう作るとこうなるんだろう。

さっそくプログラマーTさんとFさんにその現象を見せたら「そうなるように作ってます」と衝撃の言葉が!えっえっどういうこと?と聞いてみたら「中ボタンは無効にすることになったので、中ボタンが押されたら前の状態に戻してます」とのこと。無効=取り消し=それまでの操作を取り消す意味で捉えたのか!なるほどー。*1 

結局、中ボタンを押しても無視する(何もしない)ことになったのだけど「無効にする」という言葉は案外むずかしいのかもしれない。今後「無効にする」が出てきたら無効とはどういうことか、どう動くのか(どう動かないのか)を具体的に話そうと思います。

*1:前の状態に戻すにはある時点での状態をどこかに記録しておく必要があるので作るの大変だったのではなかろうか…

バグが報告されたときにわたし(テスター)がやってること

こちらのツイートですが、思いがけずたくさんの方に見ていただきソフトウェア開発(特にテスト駆動開発)への思いやご意見を伺うことができました。ありがとうございます。


この記事では「バグが報告されたときにベテランプログラマーSさんではなくわたし(テスター)がやってること」をメモしておこうと思います。

自分以外の誰か(以降、同僚)がバグを見つけたときにあなたは何をしていますか。個人的に大変興味深いテーマですが、バグを見つけるための手法やプロセス、バグを見つけたあとの報告の仕方(バグ票の書き方など)と比べて取り上げられることが少ないように思います。もしかしたら当たり前すぎて話題にならないのかもしれませんが『当たり前にやってることに価値がある』と聞いたことがあります(これを書くモチベーションにしよう!)。

バグが報告されたときにやってること

以下にざっと列挙しましたが(★)は自分でバグを見つけたときにもやってることでした。消すのもなんなので載せておきます。(だいぶ書いてから気がついた)

  • どのようなバグなのかを知る(★)
  • どうやってそのバグを見つけたのかを教えてもらう
  • バグを再現させてみる
  • 自分ならそのバグを見つけられたかどうかを考える
  • どんな風に作るとそのバグが起きそうかを考える(★)
  • そのバグが起きるなら…(他のバグを探しに行く)(★)
  • バグを見つけた同僚を褒める

どのようなバグなのかを知る(★)

うちのチームは面白いバグや重大なバグが見つかるとザワつくことが多く(何かが起きたらしいぞ)を感知したプログラマーやテスターが発生源に集まってきます。そこで見つけたてのバグを再現方法も含めて披露してもらうのですが、バグそのものの現象を知るには一番早くて確実な方法ですね。

朝会の中で(昨日そんなバグが見つかったのかー)とはじめて知るものもあります。現象自体はなんとなく想像できるものが多いのですが、分からなかったらその場で聞いて教えてもらいます。嫌な現象は起きてないけど今の実装だとまずい(いつかアプリケーションがクラッシュする)というものも報告されます。

これらのバグを修正していく過程でどんどん明らかになっていく「バグの原因(どこをどう間違ったのか)」「何を実装したときにこのバグが入ってしまったのか」「どこをどのように直すのか」に耳を傾け、またそれに伴うディスカッション(その修正方法だとこういうケースでダメなのではないか etc )も合わせ聞いたうえで、徐々に「こういうバグなんだな」が分かるようになります。*1

どうやってそのバグを見つけたのかを教えてもらう

これは操作手順のことではなく、なぜそんなことを試してみようと思ったのか、何を見ておかしいと思ったのかです。思考側(きっかけ、動機)ですね。

  • 前に開発していた製品でこんなバグを見たことがあったので
  • 画面の更新が一瞬遅くなったからあれ?と思った
  • 処理が遅すぎて(退屈で)やることがないので押せるものを押してた
  • チケットを ”クラッシュ” で全文検索して気になるものをやってみた
  • いつも同じデータで試していて問題を見つけられなかったことがあったので
  • 見た目はこんな画面構成だけど、内部的にはデータを二重管理しているから…

これを教えてもらうと、同僚が知っていることや経験してきたことや考えていることを(断片的ではありますが)自分のものにすることができます。例えば、これまで見てきたバグや自分自身の失敗談、いま何に注目し、何を心配しているのか、テストのやり方や得意なこと、こだわりや癖など。それを自身の開発(テスト)に活かすのです。これはオススメです。*2

ただ、実際に自分で経験したことではないので揮発性というか時間の経過と共に忘れてしまうことが多いです。そのことに気づいてからは専用のメモ帳に書いておき、ときどき読み返しては自分の脳にせっせと書き込んでいます。

バグを再現させてみる

先ほど ”朝会ではじめて知るバグも現象自体はなんとなく想像できるものが多い” と書きましたが、バグが直ったことを確認するときのために(このバグは自分の手で再現させて自分の目で見ておかなきゃ!)と思うものがあります。

  • タイミングを狙うような操作が必要なもの
  • 操作手順が複雑なもの
  • 現象自体が分かりづらいもの

これらのバグは練習して確実に再現できるようにしておきます。例えば「この処理の一瞬の隙間を狙ってボタンを素早く二回押す」といった操作です。”現象自体が分かりづらいもの” というのは「動作がもっさりする」「画面がパシャパシャする」「ボタンが一瞬チカッとする」のようにオノマトペで表現されるものが多いです(うちのチームだけの特性かもしれませんが)。自分で再現させる前にバグを見つけた同僚に目の前で再現させてもらったり、どこがどうおかしいのか説明してもらうこともあります。パシャパシャとはこの現象を言ってるのだな、とかね。プログラマーが優秀で翌日にはバグが直ってしまうこともあるので(見ておかなきゃ!)と思ったらすぐやるようにしています。

自分ならそのバグを見つけられたかどうかを考える

同僚が見つけたバグを「自分なら見つけられたかどうか」を考えます。

  • 自分ならその操作を試そうとしただろうか
  • 自分ならその状況を思いついただろうか
  • 目の前にそれ(バグ)が現れたときにおかしいと思えただろうか
  • 設計や実装を想像できただろうか

遅かれ早かれ「自分でも見つけられたかな」と思うものはそれでよしとします*3。そうでないものは、そのバグを見つけられないのはなぜか、自分でも見つけられるようになるにはどうすればよいかを考えます。

  • これから開発(テスト)するときに注目すべき点(観点)としてXXXを自分の中に取り入れよう
  • バージョンごとにそんな複雑な仕様になってることを知らなかった → その仕様に詳しいNさんに教えてもらう
  • この特殊な画像データを使うとおかしさに気がつきやすいのか! → 使う
  • 設計や実装を知らないとそこが怪しいなんて絶対想像できない → プログラマーSさんに説明してもらう*4

どんな風に作るとそのバグが起きそうかを考える(★)

これは自分でバグを見つけたときにもやってることなので省略します。

そのバグが起きるなら…(他のバグを探しに行く)(★)

これも自分でバグを見つけたときにもやってることなので省略します。

バグを見つけた同僚を褒める 

「これはいいバグ!」「よく見つけたなー」と思ったら褒めます。わたしも誰かに褒められたら嬉しいですもん。最近だと入社2年目のエンジニアKさんが「丁寧にテストしないと見つからないバグ」を報告していたので褒めました。Kさん「だんだん慣れてきたらこんなに(丁寧に)テストしなくなるかもしれません」と馬鹿正直に言うので「10年後もその丁寧さを忘れないでーーーー」とお願いしました。

同僚じゃなくても褒めてますね。

おわりに

バグが報告されたときにわたし(テスター)がやってることをメモしました。同僚がバグを見つけたときって今の自分には無いものに気づいたり、足りないものを学習したり、他人の経験(暗黙知を含む)を自分のものとして取り入れることができる良い機会だと思っています。

 

テスト駆動開発

テスト駆動開発

 
ソフトウェア・テストの技法 第2版

ソフトウェア・テストの技法 第2版

  • 作者: J.マイヤーズ,M.トーマス,T.バジェット,C.サンドラー,Glenford J. Myers,Todd M. Thomas,Tom Badgett,Corey Sandler,長尾真,松尾正信
  • 出版社/メーカー: 近代科学社
  • 発売日: 2006/08/01
  • メディア: 単行本
  • 購入: 7人 クリック: 267回
  • この商品を含むブログ (47件) を見る
 
ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

 
ソフトウェアテスト293の鉄則

ソフトウェアテスト293の鉄則

 
新装版 達人プログラマー 職人から名匠への道

新装版 達人プログラマー 職人から名匠への道

 

*1:分かったことが「本当に正しいかどうか」は気にしすぎないようにしてます。もちろん正しいのが理想なんですけど、自分で(こうなんだな)と思えればまずはよし。あとから分からないことが出てきたり疑問に思ったときにまた調べたり誰かに聞いたり、間違いに気がついたときにエラー訂正します。

*2:自分でバグを見つけたときも、なぜそんなことを試してみようと思ったのか、何を見ておかしいと思ったのかを話すようにしています。

*3:見つけられたとは思うけどそのバグはもうすこし早い段階で見つけたかったな…と思うものがあります。何かの順番が間違っているのでしょうね。

*4:Sさんにもどのようなバグを見つけられるようになりたいのかを伝えます。Sさんはそれを踏まえてどう作られているのかの種明かしや秘密を暴露してくれるはずです。