エンドユーザーからプログラマーに的確に伝わるバグ報告の書き方 99
ストーリー by nagazou
怒っちゃダメ 部門より
怒っちゃダメ 部門より
さくらインターネットでフロントエンドエンジニアであるダーシノさんが、見つけたバグをプログラマーに分かるように伝えるための報告書の書き方という記事をアップしている(さくらのナレッジ)。それによれば、バグ報告の基本は「1Issue 1Bug」、「事実のみを伝える」、「バグと要望は分ける」の3つあるのだという。
一つ目の「1Issue 1Bug」では、1つのバグ報告に含めるバグは1つまでというもの。報告に複数のバグが存在してしまうと、最後の1個が直らないという理由で修正の完了報告ができず、永遠にクローズできない場合があるためだという。
2つ目は「事実のみを伝える」こと。動きませんだけではなく、どういう状況で動かないかを的確に伝えること。またバグに対する怒りを報告に入れてきても対応できないので、感情と切り離して事実のみを伝達するようにしてほしいとしている。
3つ目は「バグと要望は分ける」という点。発生したトラブルと改善要求は別であると言うこと。仕様を知らない一般ユーザーにはバグと要望を切り分けろというのは無理だが、技術者同士だったり、関係者同士である場合は「仕様」と「こう動くべきだ」を切り分けるべきだとしている。その上で、具体的なバグ報告書の書き方についても解説している。
一つ目の「1Issue 1Bug」では、1つのバグ報告に含めるバグは1つまでというもの。報告に複数のバグが存在してしまうと、最後の1個が直らないという理由で修正の完了報告ができず、永遠にクローズできない場合があるためだという。
2つ目は「事実のみを伝える」こと。動きませんだけではなく、どういう状況で動かないかを的確に伝えること。またバグに対する怒りを報告に入れてきても対応できないので、感情と切り離して事実のみを伝達するようにしてほしいとしている。
3つ目は「バグと要望は分ける」という点。発生したトラブルと改善要求は別であると言うこと。仕様を知らない一般ユーザーにはバグと要望を切り分けろというのは無理だが、技術者同士だったり、関係者同士である場合は「仕様」と「こう動くべきだ」を切り分けるべきだとしている。その上で、具体的なバグ報告書の書き方についても解説している。
これエンドユーザ向けなの? (スコア:2, 興味深い)
エンドユーザ向けだとすれば、たしかに難易度の高い項目もあるけど、
> 仕様を知らないエンドユーザーにはバグと要望を切り分けてくださいというのは
> 非常に難しいですが、例えば社内だったり発注者・受注者の間でバグ報告をする場合は、
> 特にこういった「仕様」と「こう動くべきだ」というのを切り分けて
> 報告する必要があります。
という文からすると、ある程度ITを理解している人向けの内容では?
「エンドユーザーからプログラマーに的確に伝わるバグ報告の書き方」
というタイトルがコメントを誤誘導していると思う。
良いバグ報告に導く「フォーム」 (スコア:2)
この形式で書けば良いバグ報告に導かれる、ような「フォーム」があるといいですよね。
例えば シン覚え書・バグ報告フォーム [famille.ne.jp]とか
ドコドア、不具合報告フォーム [docodoor.co.jp] とか。
フォームの中に「どういう状況で動かないか」の項目を作るとか。
Re: (スコア:0)
そんなの件名に「何もしていないのに動かなくなった」と書いて、
ほかの欄は意味不明な内容で埋めて送ってくるだけだろ。
Re: (スコア:0)
入力項目を増やし煩雑にすればユーザの声をふるいにかけてると批判され、
より多くの声を受け入れようと簡素にすれば意味不明な声ばかり。
エンジニアとはかくも不遇な職業なり。
えっと...どのレベルのエンドユーザー向け? (スコア:1)
上級者編ではない方の
・1Issue 1Bug
・事実のみを伝える
・バグと要望は分ける
についても、コンピュータ技術者は良いとして、いわゆる技術職についている方ならまだ100歩譲ってできると思うが、
それ以外の方にこれを求めるのは無理なんじゃなかろうか。
さらに言えば感情や要望、複数の問題のごった煮で来る問い合わせ対して、一つ一つ分解して上記の3つまでもっていくのが、
いわゆるエンドユーザーを担当する者の仕事の一つで、お金の稼ぎどころだと思うのだが...
Re:えっと...どのレベルのエンドユーザー向け? (スコア:1)
それを踏まえたうえでエンドユーザーの人はオレオレ解釈しないでほしい。
・現状どういう動作をしている
・理想を言えばこういう動作をしてほしい
これだけ教えてくれれば
・現状の仕様の不備なのかバグなのか
・対応可能な範囲順序でどういう対応にするかの改善案
という感じで進められるので。
最悪は「バグっぽいけどこっちをちょっと回避できればなんとか運用できる」って要望で
実装してみたら「思っていたことが出来なかった。実はこういう事をしたい」とか言い出すタイプ。
別に手抜きとかしてるわけじゃなくて、用途が判らないから聞き取れた分しか対応できないんですよ。
Re: (スコア:0)
いわゆる技術職についている方ならまだ100歩譲ってできると思うが、
それ以外の方にこれを求めるのは無理なんじゃなかろうか。
前提の仕様確認が必要ですね
そもそも論理的思考で他者とコミュニケーションが出来る人は
一般人ではなく逸般人ですのでこの場合
逸般的なエンドユーザーについてということになるでしょう
その前提であれば
・1Issue 1Bug
・事実のみを伝える
・バグと要望は分ける
は普通に行えるということになります。
対して一般エンドユーザーの場合は
幼児を扱うようにする必要がありますので
気を逸らさせてあやすことが正解となります。
# OSSのIssue投げ作法の話なんじゃないかな
Re: (スコア:0)
幸いBtoBで分別ある方としか仕事をしたことがないので、バグに対する怒りを報告に入れてくるようなキティに出会ったことがない。
# 社内は除く
Re: (スコア:0)
>についても、コンピュータ技術者は良いとして、いわゆる技術職についている方ならまだ100歩譲ってできると思うが、
>それ以外の方にこれを求めるのは無理なんじゃなかろうか。
IT系に詳しくないエンドユーザーに望むとしたら
・どんな:エラーメッセージなど表示される情報を略さず
・いつ:日時・頻度
・どこで:環境情報、ネットワーク情報、接続IDなど
・どのように:前後の操作も入れてくれると幸せ
この4点をしっかり報告してくれるだけで神ですね
報告フォーム準備してても「○○のした時(広い作業範囲)何かエラーが出てさ治しといてね、エラーメッセージ?なんか出てたけど英語や数字だから判んない」なんて電話が多い事多い事・・・
一番重要なことは (スコア:1)
再現性。
どうやって操作したら起きたのか。それをきちんと書くこと。
可能なら報告者が再現できることを確認してから報告するのがいい。
#再現性なくたまに起きるっていうのが一番困る
Re:一番重要なことは (スコア:1)
> #再現性なくたまに起きるっていうのが一番困る
これはユーザー側からしても一番困る。
実際そういう挙動を見せられると報告にはその通り書くしかない。
再現性なくたまに起きるようなバグは盛り込まないで欲しいなって。
金払っているのはユーザー (スコア:1)
エンドユーザーにどうやったら再現するかまで調べさせるのかい。
テスターじゃないんだよ。
金くれたらやってあげてもいいけど。
Re: (スコア:0)
直んなくていいなら再現性なんか気にせず報告すればよいかと
いや、報告する必要もないか
直ってほしければ再現性も確認して報告すると早く治るでしょう
Re: (スコア:0)
嫌なら報告しなくていいんですよ
そういう人が行く先は覇権取れないので
Re: (スコア:0)
わかる範囲で再現した手順を報告するけど、
すまんけど確実な再現方法と原因の切り分けはメーカーの仕事だと思っています。
だから、ユーザーに確実な再現手順の報告を求めないでないで下さい。
お願いだから、ユーザーをβテスターにしないでくれ!!
過去のトラウマが。。。
仕様とは (スコア:0)
「こう動くべきだ」の集大成が「仕様」ですよね…?
Re:仕様とは (スコア:5, おもしろおかしい)
よくある勘違いですね。
「こう動いている」の集大成が「仕様」です。
Re:仕様とは (スコア:1)
「こう動くように作る予定」の集大成じゃないんだ……。
Re: (スコア:0)
仕様書って、出来上がってから書くもんでしょ?
Re:仕様とは (スコア:1)
出来上がってから余裕があれば書いてもいいかな~
または、PGと仕様書はメディアミックスのごとく別々に進行?
Re:仕様とは (スコア:1)
仕様書に書かれている「こう動くべきだ」は「仕様」です。
仕様書に書かれていない「こう動くべきだ」は「仕様」ではありません。
Re:仕様とは (スコア:1)
リンク先を読むとわかりますが、こう動くべきと言うのは個人の要望の話です。
Re: (スコア:0)
書類上の「仕様」と、実際にどう動くかという「実装」とは残念ながら異なるのです。
顧客が本当に必要だったもの
https://s-jsd.com/entry/1422.html [s-jsd.com]
Re: (スコア:0)
人の数だけ「こう動くべきだ」が有るんですよ。
的確な状況説明が行われていない。 (スコア:0)
エラーが出た。動かない。……それじゃ分からんというの。
「どの画面でどんな操作をしたら、何が起きた。」とか、
「エラーメッセージの○○が表示された。」とかなら、まだ調べようがある。
何が起きていて、何をしたいのか明確に説明して欲しいものです。
Windowsの場合、必要なデータを可能な限りバックアップして、Windowsをクリーンインストールしなおせなんて回答がよくあって、もめる原因になる。でも、コンポーネントストアや、ユーザープロファイル、システムプロファイルあたりが死んでいると、システムの修復ができないことも多い。
Re:的確な状況説明が行われていない。 (スコア:2, すばらしい洞察)
> 何が起きていて、何をしたいのか明確に説明して欲しいものです。
それができないから、それを因数分解する人がフロントSEといわれる人なわけです。はい。
ガチなエンドユーザーは仕事をするためにソフトを使っているだけで、
ソフト自体には興味ないので、そのソフトの挙動についていろいろと求めるには限界がある。
Re: (スコア:0)
>ガチなエンドユーザーは仕事をするためにソフトを使っているだけで、
もしそうだったとしても
・実務上期待される動作(今まで動いていた動作のあらまし)
・実際に起こった挙動
を報告するのは出来ると思うんだよね
Re: (スコア:0)
出来たら苦労しないのよ。
老若男女問わず、情シス経験者でもない限り問い合わせ1回目ではまずその情報は出てこない。
出てきたら感動して1日は他人のことなのに自慢するレベル。
Re:的確な状況説明が行われていない。 (スコア:2)
Bit別冊の「GNU Emacsマニュアル」の障害報告の節を読んだときに目から鱗がポロポロ落ちた記憶があります。
日本語訳はあちこちにありますが、例えば↓
https://flex.phys.tohoku.ac.jp/texi/emacs-jp/emacs-jp_238.html#SEC263 [tohoku.ac.jp]
Re:的確な状況説明が行われていない。 (スコア:2)
Emacsは最新版の和訳文書があるので、それを紹介してくれ
https://ayatakesi.github.io/emacs/27.1/html/Bugs.html [github.io]
52 バグの報告
Emacsでバグを見つけたと思ったときは、それを報告してください。それをfixすることは約束できませんし、それがバグであると常に認める訳ではありませんが、もちろんそれについて知りたいのです。追加したいと考える機能についても、同じことが言えます。以下のセクションは、有効なバグレポートを作成する助けとなるでしょう。
Known Problems 既知の問題とバグについて読む方法。
Criteria 本当にバグを見つけたのか?
Understanding Bug Reporting バグを報告する効果的な方法。
Checklist 良いバグレポートのために従うべきステップ。
Sending Patches GNU Emacsにパッチを送る方法。
52.3 バグレポートの理解
バグがあると判断したときは、それを報告すること、そして有用な方法で報告することが重要です。もっとも有用なのは、Emacsを起動するシェルコマンドから、問題が発生するまでに、何のコマンドをタイプしたかの正確な記述です。
バグレポートのもっとも重要な原理は、事実を報告することです。仮定や口頭の説明は、詳細な生データの代替にはなりません。事実の報告は簡単ですが、多くの人は事実のかわりに仮定の説明をしようと懸命に努め、それを報告するのです。その説明がEmacsが実装されている方法にたいする仮定にもとづく場合、それらは使い道がありません。その一方で事実の欠落により、わたしたちはバグについての実際の情報を得られないでしょう。実際に問題をデバッグして、推定を超える説明を報告したい場合、それは有用です
— しかし、どうか生の事実も同様に含めてください。
たとえば、C-x C-f /glorp/baz.ugh
RETとタイプして、ファイルをvisitしたとき、そのファイルが偶然大きい(とあなたは知っている)ファイルで、Emacsが‘I
feel pretty
today’と表示したとします。バグレポートにはすべての情報が必要になります。あなたは問題がファイルのサイズにあると仮定して、“大きなファイルをvisitしたら、Emacsが‘I
feel pretty today’と表示します”、などと報告すべきではありません。これはわたしたちが“推測説明(guessing
explanations)”と呼ぶものです。ファイル名に‘z’があるという事実が、問題の原因かもしれません。もしそうなら、あなたの報告を受け取ったとき、わたしたちは大きなファイルで問題の再現を試み、それらのファイル名にはおそらく‘z’が含まれておらず、問題を確認できないでしょう。名前に‘z’が含まれるファイルをvisitしてみるべきだと、推測できる方法はありません。
C-x
C-fのではなく、“ファイルをvisit”とさえ言うべきではありません。同様にテキストを入力する方法では、“その行に3文字あるとき”ではなく、“RET
A B C RET C-pとタイプした後”と書いてください。
可能なら、すぐにバグを再現するためにemacs -Q(Emacsは初期のカスタマイズなしで開始されます。Initial Optionsを参照してください)でEmacsを呼び出して、バグを発生させるステップを繰り返してみてください。この方法でバグを再現できたら、あなたの個人的なカスタマイズをバグから除外できます。バグレポートは、Emacsをemacs
-Qで開始したことから始まり、バグを再現させる正確な一連のステップを続けるべきです。可能ならバグを再現するのに必要な、正確なファイル内容を報告してください。
emacs
-Qでは再現できないバグもいくつかあります。結局は再現するのが難しいバグもあります。そのような場合、何を行なったかを報告すべきです —
が、前述したように、どうか最初にバグを発生させた生の事実を固持してください。
報告したい複数の問題がある場合は、どうかそれらを個別のバグとしてそれぞれ報告してください。
52.4 バグレポートのためのチェックリストには、レポートに含めるべき事項と、不要な事項がリスト形式でまとめられている。
https://ayatakesi.github.io/emacs/27.1/html/Checklist.html [github.io]
Re:的確な状況説明が行われていない。 (スコア:1)
Emacsは最新版の和訳文書があるので、それを紹介してくれ
https://ayatakesi.github.io/emacs/27.1/html/Bugs.html [github.io]
情報ありがとうございます。現在まで和訳され続けているとは知りませんでした。ご教示と、そして翻訳をされている方々に感謝します。
Re:的確な状況説明が行われていない。 (スコア:1)
エラーが出た。動かない。……それじゃ分からんというの。
近年はそうとも言えんのですよ
マジもんで
「何もしていないのに壊れた」
が発生しますので
ええ、原因は強制自動アップーデートでございます
# アップグレードしますか はい/後で なんてちゃちなもんじゃねぇ
Re: (スコア:0)
# アップグレードしますか はい/後で なんてちゃちなもんじゃねぇ
コメントアウトにコメントするのはなんだけど、出勤したら画面が黒いままでうんともすんとも言わないって連絡が来るんだよね。
「ずっとくるくるがまわってる」ってのもある。
Re:的確な状況説明が行われていない。 (スコア:1)
元サポートとしては、「そういうやり取り面倒だから情報収集ツール送ってくれ たらすぐ取るよ」と思ってしまう。
基本的にエンドユーザは当然ながら、SEの言うことですら頭から信じてしまうと 調査は迷走する。
表面に出てくる現象は氷山の一角でしかなく、信じられるのはlogのみ!
なので情報収集ツールの実行をお願いされたら、めんどくさがらずに素直に従っ てくだしあ。
Re: (スコア:0)
よくあるのが「エラーが出た。自分は何もしていない」ってやつだな。
何もしてないわけ無いだろ、と。
クローズしまくるべき (スコア:0)
1Issue 1Bugが望まれるレポートなのは同意するとして、厄介な問題が一つ残る場合は専用のIssueを新たに作るだけでいいと思う。
発見者が1Bugだと思っても問題の根源が複数あるケースもある訳だし。
Re: (スコア:0)
発見者が1Bugだと思うなら、それは一つの事象だろうからクローズされなくてもいいんじゃない?
残った問題に対してIssueを発行するのではなく、問題の根源が見つかるたびに発行していった方がいいと思う。
だいたい徒労 (スコア:0)
例えば、windowsに対してなんか自分が変だと思ったこととか
起こっている問題だとか、ちょっと検索するとドカドカ出てくるのに
大して修正訂正されないので、レポートなんか出すのも虚しくなるます。
ニュース報道されたセキュリティホールなんかは流石に即効で治すけど
要望聞いたって大して金になんかならないんだから、積極的に直すわけがない
まあ、流石に誰も使っていない機能なんてのは維持にもカネがかかるからか
止めるみたいな動きもあるみたいですけどね
Re:だいたい徒労 (スコア:1)
流石に数日で対応とかはしてくれないけど言えば直るよ
あなたの報告が軽んじられてるとすれば、まさに要望の書き方が悪いのかもね
> またバグに対する怒りを報告に入れてきても対応できないので、
> 感情と切り離して事実のみを伝達するようにしてほしいとしている。
特にこの辺りで「はいここ感情的。はい対応不要ね。毎度あり〜」とか
これも知りたい (スコア:0)
国民(エンドユーザ)から為政者(プログラマー)に的確に伝わる不満のあげ方(バグ報告の書き方)
Re: (スコア:0)
為政者(プログラマー)にだったら基本的に以下の2項目をメールか何かで直接送れば伝わるんじゃないですかね。
・出来るだけ具体的に書いた不満と相談内容
・対価として支払える金額(政治資金or開発報酬)
Re: (スコア:0)
国民(エンドユーザ)から為政者(プログラマー)に的確に伝わる不満のあげ方(バグ報告の書き方)
ありますよ的確に伝える方法
・パブコメ : だがしかし聴いてくれるくけど効いてくれない
・投票/立候補 : だがしかしまともな人は当選できない
・ロビー活動 : だがしかし金も利権も人脈も必要
# 聞き入れて実践してくれるのをお求めの場合は善人であることをやめましょう
Re: (スコア:0)
「感情と切り離して事実のみを伝達する」ことができてない、っていうのはこういう奴だな
善人であることと金や利権や人脈があることは相反しない
相反していてほしいという気持ちがあなたにあったとしてもそれが事実であるわけではない
これでわかるのは金も権力もない善人でさえないコメ主がいるということだけ
Re: (スコア:0)
これは皮肉あるいはジョークだろうけど、ユーザーの立場を想像するときにこういう考えは重要だと思う。
車のトラブルをディーラーに適切に報告できるか?
食品の異物混入などを感情的にならずに報告できるか?
ゲームに文句を言いたいときトラブル報告窓口を使う誘惑に勝てるか?
多分誰も似たようなレベルではないだろうか。
プログラムに限らない (スコア:0)
特に3つ目。
不具合あったら報告してね、って言ってるのに仕様外の使い方して使いづらいと文句言ってきたり、挙句の果てに壊したり。
他社でも自社でも他にその用途の製品あるんだからそっち使えよ、と。
# そう言えたら楽だよなぁ。
Re: (スコア:0)
そう言えばいいじゃん、自社製品あるなら尚更
なるほど! と思ったのも束の間… (スコア:0)
MozillaのBug writing guidelines [mozilla.org]とほぼ同じだな。
こちらの最終更新は2019年3月23日とある。
こういった「分かってない奴らは読まない」ガイドラインを如何に徹底するかが悩ましいところ。
Google Playストアで、感情に任せて中身のないネガティブレビューしか書かない奴らもなんとかしてほしい。
良い or 悪い (スコア:0)
# 何が良くて何が悪いのかはコメントを差し控えさせて頂きます :)
質問のしかた [texjp.org]とBSD入門の心得 [monobook.org]
Re:えっ、うちの会社、難易度高すぎ (スコア:1)
サポート「だから何がですか」
Re:もうぬるぬる (スコア:1)