Skip to content

不具合報告に求める基準

shogo4405 edited this page Dec 26, 2024 · 12 revisions

良き不具合報告は、次の条件を満たしている必要があります。良き不具合報告は、コミュニティにとって良き資産と考えます。どなた様からの起票を歓迎いたします。

  1. 問題解決を目的としていること
  2. 3要素「①観測事象」「②期待挙動」「③再現手順」が簡潔に記載されていること
  3. 第三者であるメンテナに伝わるような文章であること

これらの条件を満たしていない報告は、私たちの問題ではなく貴方の問題です。ご自身で対応をお願いします。

対応方針

著者からの対応は、次の表の通りに対応します。

分類 内容
ユーザー 上記の情報が過不足なく提供されることを要求します。基準に満たない場合はクローズします。
貢献者 著者からの追加の質問や、こちらのデバッグなどを実施して問題解決できるように努めます。

良い不具合報告をするためには

満たすべき基準

1. 問題解決を目的としていること

Issueは問題解決を目的としたコミュニティ的活動です。バグのないプログラムはないと同様にバグのない不具合報告もまたありません。メンテナーの追加の質問があったり、同様のトラブルを抱えた人からの質問があるかもしれません。起票者自身も積極的に情報提供をしていくことが求められます。手間だとは思いますが質問には返答するようにお願いします。 ときに文句を言う目的・ただ報告するだけの目的でIssueを起票する方がいますが趣旨にそぐわないため起票は不要です。貢献活動しても認められません。

2. 3要素「①観測事象」「②期待挙動」「③再現手順」が簡潔に記載されていること

不具合報告には求められる3項目を含めます。3点のうち1点でも欠けるとメンテナにとって良くわからない不具合報告になります。質問テンプレートにも項目としてはありますので記載をお願いします。情報が欠けていると問題解決率も良くありません。

① 観測事象

何が起きたのかを伝えてください。「うまくできない。」と言われてもクラッシュするのか。再生できないのか。なんなのか分かりません。

② 期待挙動

あなたが期待することを伝えてください。よく「うまくできること!」のように「観測事象の論理否定」の期待挙動を書く方がいますが、本当に期待していることを書いてください。以下のような残念なコミュニケーションになりがちです。

あなた「不具合報告起票したで。ライブ再生時にクラッシュしないこと!対応よろ」
わたし「修正しといたで」
あなた「あれなおってないやで」
わたし「そんなはずは...クラッシュしないですよね?」
あなた「再生できないですよね?」
わたし「うーん。コーデックそのそもOSレベルで対応してないから無理やで。仕様」
あなた「えぇ!」
わたし「最初からいうてや。」

③ 再現手順

HaishinKitは、ライブラリーであり利用方法は色々あります。利用の仕方で不具合が発生する場合があります。

不具合が発生した時、どんな操作を行ったのか。どのような設定を利用しているのか、最低限の操作手順および再現可能な最低限のコードをお願いしています。こちらで再現するのが難しい場合、解決に至ることは少ないです。エンドユーザー環境で情報が不足している場合で再現手順が100%わからないということもあると思います。その場合でも、再現手順を書かないではなく。発生する傾向の提供をお願いします。

3. 第三者であるメンテナでも理解できるように記載されていること

第三者でも理解しやすいということを意識してください。社内用語で書かれていたり。ストリーミングというように配信や視聴とも取れる説明が見受けられ解釈に苦慮します。企業活動のなかで利用されるケースが多いと思います。同僚に第三者でも分かりやすいかという視点でレビューを受けてもらってから投稿をしてください。

不具合報告の事例

いくつかの過去の不具合報告を見ながらどういう報告だと良いのか解説をしていきます。

不具合報告に求める「再現手順」がないため解決は難しいと思って様子見していたIssueです。最終的に再現手段の提示がやはりないためクローズしました。問題解決のためのコミニケーションが取れずに残念です。

  • 著書は、再現提示を求めているが有効な回答を得られていない
  • わたしも同様の問題を抱えていますと擁護する人がいるが問題解決の情報が増えてなくノイジー
  • 回避方法を提示する人もいるが、そもそも発生原因が分からないのであっているか分からないので採用できない
  • 普段議論に参加していない人がたくさんでてくると不信感がつのります。同僚同士なら会社チャットでやって愚痴って欲しいです

添削結果

- Does Don't
観測事象 ビルドエラーの発生 ビルドエラーの発生
期待挙動 コンパイルでき。アプリが起動できること。 アプリが普通に起動する。
発生手順 1. Xcode16.Xを起動する
2. Xcodeの新規プロジェクト作成
3. Projectに対してPackage Depenciesを追加
4. ビルドを実行する
Package.swiftのコードの提示
  • もっとも、上記手順では試しており。いまだに、どうやって再現できるかわかっていません。

第三者に分かりやすいという観点に欠けるためクローズしました。その後の同僚と見受けられ方のコメントも「事象の報告」であり。著者からの「再現方法」質問の回答になっていなく不満です。

  • ストーリーミングとは、視聴、配信どちらの意味か判断つかない。おそらく視聴と推測はしました。
  • RTMP、SRTなのか判断つかない。
  • 視聴系の不具合を見る場合は、配信側の情報。主に映像コーデック。音声コーデックが必要など付加情報がない。
  • 自身で書いたコードなのか、テストコードなのか判断つかず。
  • ログが整形されておらず見づらくて辛いです。

添削結果

- Does Don't
観測事象 SRT経由でライブを視聴するとクラッシュが発生します ストリーミングするとクラッシュする
期待挙動 クラッシュせずライブを視聴が継続できること クラッシュしないこと
発生手順 前提として
サーバーはXXXを利用
配信側は、OBSを利用しており。映像はH264。音声はOpusを利用

手順として
1. サンプルアプリ(iOS)を起動
2. 視聴タブへ遷移
3. 視聴ボタンをタップ
数秒ストリーミングすると発生する

容認できない行動の事例

行動規範に従って厳密に対応していきます。

「発生事象」「期待挙動」「再現手順」が不足しており。また、第三者に理解できるように書くという意識が感じられずクローズしました。次の行為は、許容できずブロックしています。

  • 同一の内容を連投するスパム行為を行なっている
  • 他人を罵倒する発言する