バグとの向き合い方
2022/07/29
こんにちは!米岡です。
今日はプログラマーとは切っても切り離せない関係のバグについて考えたいと思います。
バグとはなにか
バグという文字の意味を調べると
バグ(Bug)は「悪さをする虫」の意味。本来はソフトウェアの不具合(エラー)のことを指すが、現在ではエラーだけでなく、プログラムが作成者の意図した動きと違う動作をする原因を総称して「バグ」という。
語源は虫だったりするわけなんですが、要するに私達の解釈でいうと「仕様と違う箇所」という意味合いです。
なぜバグが起きるのか
バグというと不具合、悪のように聞こえますが実はそうではありません。
バグというのは上で書いたように「仕様と違う箇所」という意味、つまり自分達で決めたルール通りの動きをしていないだけなので
私達が使うプログラミング言語の動作としては「正しい」動作になります。
※言語の動作として正しくないバグはプログラムが警告を出してくれるのですぐ気付けます。
プログラム上は正しい動作をしているため、この場合はプログラムにはバグだと認識する事が出来ません。
つまり基本的にはプログラマーが「プログラムの動作としては正しいけど、仕様とは違う」コードを書いてしまったために
バグというものが発生します。
バグを100%失くすことは可能なのか
結論からいうと、難しいです。
プログラマーは目標としてはバグ0を掲げていますが、実際はほぼ不可能だと思います。
理由としては
1.人間が作るものなのでどうしてもミスは出る
2.現時点ではバグでないものが時間経過でバグとなる事がある
などがあります。
特に2に関しては難しい問題で、プログラミング言語、サーバー、その他使用したソフトなど
常にアップデートが行われています。
そのアップデートの影響で既存のプログラムがバグを起こすという事がよくあります。
バグの見つけ方
バグというのは受託開発の場合、ほぼクライアントからの報告で発覚します。
この際に気を付けたい事が「クライアントの報告を100%で受け取らない」という事です。
これはもちろんクライアントを信用しないという事ではなく、やはりどうしてもプログラムを知らない方が多いので情報にノイズが多い事がかなりあります。
なので同じ現象を自分の環境で再現し、冷静に原因を特定することでバグの特定につながります。
ある程度バグの箇所が確認出来たら、あとは追い込み漁のように特定、修正することになります。
実はこの作業はプログラマーとしてはかなり勉強になり、楽しい部分でもあります。
もう1点注意したいことは「表面だけ修正しない」という事です。
正直にいうと表面だけ修正してもクライアントには分かりません。ですがバグというのは根本的に解決しない限り、必ずまた発生します。
クライアントから分からないからこそ、プログラマーそれぞれの意識が求められ部分かなと思います。
まとめ
今回はバグについて記述させていただきました。
バグはなにかと僕達を悩ませる種ではありますが、これからもうまい事付き合っていこうと思います。
ありがとうございました!
----------------------------------------------------------------------
株式会社AQUARIZE
〒531-0072
大阪市北区豊崎3-6-8 TOビル404
電話番号 : 06-7777-2927
----------------------------------------------------------------------