バグの巣 にはバグが集まって住み着く

2017年12月8日

バグの巣って何でしょう

バグ・・・嫌な言葉ですね、バグの巣 なんて言われるとなんか恐ろしげな気もします。バグはソフトウエアエンジニアにとっては全力で戦うべき敵です。バグはどこにでも潜んでいるのですが、よくバグが生息している領域というのは確かに在ります。バグは均一に存在するのではなく偏在しているのです。ソフトウエアは全て人が作っているので、誰かが間違える場所は私も間違える可能性が高いという事ですが、逆に言うと他人が間違えた箇所は私も注意が必要とも言えます。

バグはソースコードの森に潜み、ある時は大挙して押し寄せ、ある時はヒッソリと潜んで背後から襲い掛かり、いりいろな手段で攻撃してきます。ソフトウエア開発の半分以上、場合によっては8割から9割がこのバグとの闘いです。バグを無くすために、要求仕様書や設計書をレビューし、ソースコードをレビューし、様々な種類のテストを大量に行い、それでも市場に漏れだしたバグについては、発見次第修正し、、、バグとの闘いはそのソフトウエアが使われなくなるまで続きます。

バグはソースコードの森に潜んでいるのですが、どこにで満遍なく潜んでいる訳でもありません。バグ達にも潜みやすい場所があるようで、割と固まって潜んでいたりします。そのような場所を、グータラ親父はバグの巣と呼んでました。 まあグータラ親父が勝手にそう呼んでいただけで、世間一般ではそんな言い方はしません。でもまあ、そんなバグの巣がどんな所にあるのか、グータラ親父の経験を元に紹介してみましょう。

どんな所に バグの巣 があるのでしょう

バグの巣はバグが入り込み易い部分なので、要するに設計者や実装者が間違えやすい部分ですね。ぶっちゃけとても簡単なお話です。作るのが難しい箇所だと人は間違いを起こしやすいので、バグが入り易くて、そんな所がバグの巣になるという事です。

では、どんな所が作るのが難しい箇所なのでしょうか? これは、ソフトウエアの種類によって変わってきます。情報システム部門が開発する企業の基幹系のソフトウエアと機器を制御している組み込みソフトウエアとでは、バグの巣の場所は違ってきます。グータラ親父は長年組み込みソフトウエアの世界で仕事をしてきましたので、ここでは組み込み系ソフトウエアを主体にバグの巣について紹介します。バグの巣については、特に分類方法があるわけでも無いので、思い付くままに書き出していく事になりますので、時間のある方や興味のある方は、そんな考えもあるな~程度でご覧くださればと思います。

で、、、まだ記事があまり書けていません。

この後に、時限爆弾バグとか、タイミング依存バグとか、キュー溢れバグとか、FROMバグとか、配列バグとか、データ同期バグとか、状態遷移ロックバグとか、いろいろなバグについての記事を書いていく予定でいるのですが、、、少しずつ記事を書き溜めていきますので気長にお待ち下さい。

  •   メモリリークがソフトの機能停止を起こす仕組み
  •   メモリリークのバグが入り込み易い2つのパターン
  •   メモリリークとタイマ・カウンタ問題は時限爆弾 バグ
  •   フラッシュロムはバグの巣窟
  •   プロセスIDは一意じゃない
  •   バグの巣 にはバグが集まって住み着く
  • Posted by グータラ親父