バグ盲:なぜ多くの人は同じバグに気づかないのか

Bug Blindness

Dan Luu氏は、自分が他の人より多くのバグに気づく理由を考察する。彼は、多くの人が同じバグに遭遇しながらも気づいていないと指摘し、プログラマーにとって品質に対する「バグ盲」を克服することが有益だと述べる。具体例として、検索エンジンの低品質な結果や、BlackboardやDiscourseのような製品に対する開発者とユーザーの認識ギャップを挙げる。また、LLMを活用してバグの再現性を確認する方法にも触れている。

製品が私にとってひどく欠陥があるように見えるなら、おそらく実際にそうなのである。
  1. bambax

    私たちの脳は効率的な信号処理を目指しており、「不要」と判断した信号を積極的に削除しようとしている。脳は新しく予期しないことだけに気づかせようとする。だから、同じ匂いや繰り返しの騒音は、しばらくすると気にならなくなる。それらは「すでに検出済み/新しくない」として無視されるのだ。

    この理由は進化的なものかもしれない(野生で生き残るためにどの特性が最も効果的だったかはわからないが)。しかし、信号を無視する実用的な理由もある。信号が多すぎるのだ。すべてのセンサーからのデータを処理し、匂い、光、温度、騒音などについて考えていたら、圧倒されて何もできなくなるだろう。

    だからこそ、私たちは通常、物や人を「見る」のではなく「識別」する。顔を見るのではなく、単にアリスやボブを識別する。これは、なぜ多くの人が絵を描けないかを説明している。アリスの概念は描けない。アリスを描くには、実際に彼女の顔の特徴を追う必要がある。芸術家であるということは、その識別プロセスを学び直す(または無効にする)ことができるということだ。

    そして、ほとんどの人がバグに気づかない理由もこれに似ていると思う。彼らは興味がない。ただ何かを成し遂げたいだけだ。簡単な回避策で動くなら、それで十分。他のすべては無関係だ。これは偏見や好意ではなく、効率性なのだ。

  2. sgentle

    ここには正反対の2つの原因があると思う。過度に適合したメンタルモデルか、まったく適合していないメンタルモデルかだ。

    開発者にとって、バグ盲は、自分のメンタルモデルがシステムのモデルに非常に近いため、両者が同じ盲点を持ち、開発者がシステムの外で効果的に考えることができないことに起因する傾向がある(古典的な「QAがバーに入り、ビール0杯、-1杯、0.999杯を注文する」vs「客がバーに入り、トイレはどこかと尋ねると、バーが即座に炎上する」)。

    一方、一般の人がシステムと関わる一般的な方法は、単にモデルを持たないことだ。まったく持たない。つまり、何かをクリックして、それが何をするかを見て、期待通りでなければ肩をすくめて別のものをクリックする。ソフトウェアを使う非技術者を見る恐怖は、彼らが通常、期待される動作と期待されない動作の違いを区別できないことに気づくことだ。なぜなら、彼らはそもそも期待を形成しないからだ。コンピュータは機械というより精霊のようなものだ。

    記事にもこれが見られる。「Google Docsに何らかの遅延が追加され、ドキュメントを開いた直後にタイトルボックスに入力した内容が上書きされる」。これは開発者がシステムのモデルを形成している例だ。素人の代替案は、単に「ボックスに入力するとテキストが表示されることもある。表示されないこともある。表示されなければ、もう一度試す」と学ぶことだ。

    システムが理解されるように設計されているという前提を捨てれば、システムを理解する必要はない。…

  3. gmm1990

    著者が今何を見逃しているのかを考えているのは興味深い。LLMによる文章の質の低下のように思える。過去に著者の投稿を気に入ったこともある。古い投稿と新しい投稿の違いを詳しく調べてみるかもしれない。LLMを文章作成やコーディングに使う際に注意すべき点の良い例になるからだ。

    Google Docsの問題以外に具体的なバグの例はなかった。Blackboardの何がそんなに悪かったのか(私もひどいと思っていたのを覚えている)。検索に関する素晴らしい記事へのリンクはあったが、ここでも具体的な例はなかった。

    言葉は多いが、新しい情報はあまりない。たぶん私がLLMに対して偏見を持っているだけかもしれない。これは私の知る限り、LLMなしで書かれた可能性もある。

  4. encomiast

    著者が「バグ」の最初の例として挙げたのが検索結果だった時点で、読むのをやめなければならなかった。

    「ある場合、人々は実際の検索結果を送ってくれた。どの場合も、検索結果には私が見て取れる良い結果が含まれていなかった」

    期待に応えられないソフトウェア、特に検索のような分野(基本的にSEOと検索エンジンの間の長期戦)でのそれは「バグ」ではない。それは、ランダムに本を手に取ったら、他の人がいいと思うのに、自分にはつまらないからといって、出版業界に「バグ盲」があると言うようなものだ。確かに何かが間違っているかもしれないし、改善できるかもしれないが、「バグ」という言葉はもっと具体的なものに取っておこう。

  5. dusted

    これも逸脱の正常化によるものだと思う。人々はそれに慣れてしまっているだけだ。

    - モデルを構築できない。なぜなら、次のアップデートで全てが変わるからだ。たとえ意識的でなくても、人々はモデルを構築しない。次にアプリを使うときに役に立たないものを学ぶ意味があるだろうか。

    - 基本的に何がどう動くのかわからないので、実際に動いていないのか、単に「使い方を間違えている」だけなのかはコイン投げのようなものだ。

    - ほとんどのものは一貫して期待通りに動かないので、何も期待しなくなる。

    昨夜、保険会社に書類をアップロードしたとき、モーダルが表示された:

    - タイトル: 「ファイルは正常にアップロードされました」

    - テキスト: 「不明なエラーが発生しました」

    - ボタン: 「OK」

    ありがとう。

  6. ghastmaster

    >これは私のコンピュータの使い方に関係があると思っていたが、時間が経つにつれて、人々が同じバグに遭遇しても気づいていないことがほとんどだと気づいた。

    なぜ気づかないのか、私にはわかる気がする。下記参照。

    >よく動くなどと言うが、私が開いて試してみると、かなり直感的でない回避策をいくつか実行しないと動かない状態になっている。

    多くの人はUIの操作がとても苦手だと思う。なぜなら、良いUIでさえ彼らにとって直感的ではないからだ。悪いUIも同様に直感的ではない。彼らはそれがバグだと知らない。なぜなら、すべてが彼らにとってバグだからだ。

    私は新しいUIでも、必要な操作をすぐに見つけることができる。一般の人々と接した経験では、彼らは私より10年長くソフトウェアを使っていても、私が数分か少し調べるだけで使いこなせる機能を理解していないことがある。

    https://grumpy.website/ に敬意を表する。大好きだ。

  7. meling

    興味深い話題だ。個人的に、danluuのブログのテキスト幅とフォントサイズを「バグ」だと考えているのは面白い。狭いテキスト列の方が速く読めることはよく知られている(紙に印刷されていた頃の新聞のコラムを思い出してほしい)。だから、このブログを読むときはいつもAppleのリーダーモードを使っている。リーダーモードでは、より大きなフォントと狭い幅でテキストが表示される。

  8. socalgal2

    私はdanluuに同意する。少なくとも見出しに関しては、詳細は別として。

    私は1日に10〜20個のソフトウェアバグに遭遇する(それ以上のように感じる)。プライベートデータを漏らさなければ、1週間スマホとパソコンの画面キャプチャを撮って、入力データ(キーボード、マウス、タッチパッド、画面)と一緒に、その週に遭遇した100個のバグを投稿したいくらいだ。

    MacOSの件は遭遇したことがある。蓋を開けると黒い画面になる。iOSのカメラアプリが開かないこともあった。iOSのキーボードが画面の幅の80%しか使わないこともある(すべてのキーが小さくなる)。どう直せばいいかわからない。キーボードを閉じて開き直しても直らない。アプリを終了させることもできない。フォームを入力中で、最初からやり直したくないからだ。最近、スマホの画面が頻繁にフリーズし、指のタッチに反応しなくなる。ロックしてロックを解除すると回復する。これは新しい問題だ(1〜2週間前から発生)。

    一般的/非一般的。スマホのカメラで書類やIDをスキャンするアプリは、ほぼ必ず何らかの形で失敗する。認識しなかったり、タイムアウトしたりする。まるでオフィスの完璧な条件でしかテストしていないかのようだ。実際のユーザーで試したことがないのだろう。

この日のほかの記事

2026-08-30