2017-02-15

バグが起こる仕組みを説明する

http://anond.hatelabo.jp/20170214114736

 

1.権威を使う

GoogleMSAppleでさえバグを生み出している

 

2.ハードウェアに喩える

車は完璧に近いように作られているが、整備なしに数年後きちんと動いているかどうかは保証できない

整備とはデバッグのことである

 

3.ユーザーを絡める

ユーザーの行動を全て網羅することはできない

いつだってユーザー破天荒な使い方をする

 

4.プラットフォーム説明する

プログラミングという道具を使っているが

道具が完璧である補償はない

我々が完璧仕事をこなしても、道具がミスを起こす可能性はある

 

5.量を説明する

プログラムは数万行、数十万行のコードでできているが

文字ミスするだけでバグ簡単に作れてしま

たとえば小説一冊を1文字の誤字もなく書き上げることはプロでも難しい

 

6.難しさの質を説明する

小説を1冊書き上げることはできるが、全て矛盾なく仕上げるのは非常に難しい

要素や登場人物時系列を複雑にするほどどんどん難しくなる

プログラムも同じだ

 

7.バグ定義

そもそもバグとはどこからどこまでをいうのか

解釈を広げるとどこまでもバグになってしま

 

8.プログラムとはどこまでか

コンパイラコードエラーを指摘してくれるが

仕様エラーを指摘する者はいない

仕様エラーを残すとそれはプログラムバグとなる

 

9.掃除に喩える

バグのないコードというのは、塵1つない部屋のようなものだ 

そのために努力はできるが、物理的に不可能

 

 

個人的には1が好き

考える必要がない

記事への反応 -
  • バグは人のミスなんだから、理屈的には正しいような気がする だけど未だかつて人類はこれを達成できていないという観測的事実がある、何故そうなるのかを説明することは可能だろう...

    • http://anond.hatelabo.jp/20170214114736   1.権威を使う GoogleやMSやAppleでさえバグを生み出している   2.ハードウェアに喩える 車は完璧に近いように作られているが、整備なしに数年後きち...

    • 「Googleだってバグ出しますよ」

    • 一休さん方式: 判りました。ではバグの無い仕様を用意してください。

    • ダイクストラが、1952年から20年間PGやって思うことがエッセイになってる。 The Humble Programmer https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html Humble 謙虚な   後半部 管理可能...

    • ないことの証明はおそろしく難しい。 悪魔の証明という話をしてやるといい。

    • バグのないプログラムを書くためには、すべての仕様とプログラム全体を記憶したうえで、実際に起こり得る可能性を全て列挙できる必要があるんです。 膨大な仕様とプログラムを記憶...

      • PM「バグのないプログラムを書くことはできないかもしれないが、バグをバグじゃないように運用することはできるだろカス。そのためのフェイルオーバーさせるためのロジックを書けゆ...

    • 組合せ爆発のおねえさんの動画を見せた上で ソフトウェアの複雑さも爆発するとしたうえで 全てをテストしてバグがないことを証明する為には宇宙の歴史を超えるほどの計算量が必要で...

    • だからといって、今多発しているバグを今後も生み続けていいというわけではない。

    • 人間の脳みそが信用できるのは一度に扱う変数がせいぜい4〜7個の時だけじゃハゲ。 と言うてやれ。

    • 正しいでしょ。例えば、二桁の整数の和を返すプログラムなら簡単に完璧に作れる。それが複雑になろうが原理的には可能。

    • 「可能ですよ。十分に気を付けるにために相場の100倍をお支払い頂くことになりますけど。」

    • バグではなく、仕様だ。全ては仕様の通り動く。

    • ここまでテストの話一切無し。日本の技術者のレベルって低いね。 バグを0にするのは難しいが、テストを書いて、ある程度の動作保証を行うことは出来る。普通はこれで十分。 テスト...

    • 校正で一つも赤が入らない文章を一万字書くのって難しいですよねって言えばいいと思うよ。

    • 「誤字・脱字・構成ミス1つせずに万年筆で原稿用紙400枚の論文を書くことはできないのか? 難しいかもしれないが、十分に気を付けていれば防げるのではないか?」 誤字・脱字・構...

      • その喩えはわかりやすい気がする

      • ブコメでも似たようなのが複数あったがバグって誤字・脱字じゃないんだよ。つーか誤字脱字ぐらいそれこそ気を付けてれば比較的容易に防げるでしょ、リーズナブルな作業時間で。実...

        • 誤字脱字が容易に防げるなら校正なんて仕事はいりません

        • 頭の中が事故ってるから事故を起こすんでしょうよ それをどうやって防ぐのかが問題なわけで 気をつければ防げる? 頭の中が事故ってる人間が、気をつけただけで事故を防げると思う...

        • うはすげー 誤字脱字をしたことが無い、いいねー バグの無いOffice作ってくれよ

          • ごめん、よく読んだら手書きの話か。手書きなら無理だわ。でも手書きで長文を書く機会なんてもう完全にないし、PC使っていいなら誤字脱字は基本なくせるだろ。 そして、バグは誤字...

    • 確率的な問題で、複雑なコードを何百行も書いてたら絶対バグは出るでしょ。 個人的には、その確率をどこまで減らせるかだけで、ずっと書いてたらそれだけ出るバグの数は増え続ける...

    • 極論をいえば、整数の和をだす1行のコードだって、バグを含んでしまう可能性が0.001%(適当)くらいある。 慎重に時間を費やすことでその可能性をちょっと0に近づけることができるだけで...

      • そういや新聞とか本の場合は、書いた本人の目だけだと思い込みとかクセとかがあって万全を期すのはかなり難しいので、別人の目で校閲を複数回通すけど、 プログラムの仕事ってそう...

        • コードレビューがある テストも 単体テスト(プログラマがやることが多い) システムテスト(他人がやることが多い) 受け入れテスト(基本的に発注者がやる) と段階がある

          • ありがとう そういうシステム整ってるのにバグが多いとかなんとかみたいな文句がでるのはよくわからんけど 文章と違ってバグは直すのが面倒だからか 基本的な文法からしてクソ、み...

            • やっぱり文章と違って動的なものだからな。

            • 「こういうものを作ります」って最初の要件定義が途中で変わったりして、 でも予算や期間は増やせなくてテストを削るパターンとか。 あるいは、文章と違って、ソフトは使い始めて...

          • ありがとう そういうシステム整ってるのにバグが多いとかなんとかみたいな文句がでるのはよくわからんけど 文章と違ってバグは直すのが面倒だからか 基本的な文法からしてクソ、み...

    • こういう証明はどうだろうか? if文による条件分岐(TRUEかFALSEの2通り)が1つの小さなソフトウェアでも1万か所くらいある。(switch/caseやfor文などもアセンブラレベルでは条件分岐だとみな...

    • 数学そのものにもバグがあるのでそれはどうすれば?

    • もーちょっと感心させてよインテリ高収入集団のはてなーさんたち。w この辺とか https://ja.wikipedia.org/wiki/%E8%A8%88%E7%AE%97%E8%A4%87%E9%9B%91%E6%80%A7%E7%90%86%E8%AB%96 この辺とか https://ja.wikipedia.org/wik...

    • totoBigで不正発覚したぞ

    • http://anond.hatelabo.jp/20170214114736 「理論上最速のゲームクリア」を目指すTASをプログラマに例えて、「理論上バグのないプログラム開発は可能」かどうか検証する思考実験。 時をさかのぼ...

    •  http://d.hatena.ne.jp/shi3z/20170216/1487200968 定理証明の支援ができても――、 ・定理の間違いは正せない。 ・証明自体もプログラムにはできない。 ・それ以前に支援プログラム自体の間違い...

    • バグのないプログラムを書くことは理論上は可能である(http://anond.hatelabo.jp/20170214114736) なにいってんだこの人は。ドヤ顔で知性があることをアピールでもしたいのか。 「バグのないプ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん