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

2020年1月31日バグの巣

 

バグの巣ってなにでしょう

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

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

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

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

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

少しずつ記事を書き始めました

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

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