差分
バグ
,'''バグ'''(英語:bug)とは、[[プログラム]]の[[実装]]時の[[人為的ミス]]により[[設計]]どおりに動かないことである。
== 概要 ==
バグはいかなる[[プログラム]]においても必ず発生するものである。
某社ではバグの発生件数が予定より上回るとや[[プログラマー]]を激怒し、下回ると[[デバッガー]]を激怒するという非常に偉い人が存在している。なお、そのどちらの場合でも[[日本]]の[[システム開発業界]]における[[中間管理職]]である[[システムエンジニア]]は怒られる。
== 関連用語 ==
バグのうち、原因や責任の所在などが不明なものを特定性の低い表現の「[[不具合]]」と呼ぶことがある。一般的に[[不具合]]という場合は、[[プログラム]]自身のみならず、[[ハードウェア]]や[[OS]]、また[[プログラム]]で使用している[[サードパーティ]]製の[[ライブラリ]]などにバグがあり修正が困難な場合なども含まれる。
[[ソフトウェア]]や[[ハードウェア]]の[[開発]]における[[契約文書]]などの法的な[[文書]]ではバグのことを「[[瑕疵]]」と記述する。
バグの原因を探す作業を[[デバッグ]]といい、修正する作業を[[バグフィックス]]という。また、それを支援する[[ツール]]または[[人材]]を[[デバッガー]]という。[[デバッガー]]という場合は[[ツール]]なのか[[人材]]なのか不明瞭なことが多いので文脈から読み取ることが必要である。
バグの発生状況や修正状況などの情報を管理するツールを[[バグトラッカー]]などという。バグの再発を抑制するための再現プログラムおよび管理・自動実行ツールを[[ユニットテスト]]という。これら統合したシステムの総称を[[継続的インテグレーションツール]](通称:[[CIツール]])といい、[[Team Foundation Server]](通称:[[TFS]])や[[Jenkins]](旧:[[Hudson]])などが有名である。
[[CIツール]]を使わない状況化で容易な[[バグフィックス]]を行うと、右を直すと左が壊れるという[[永久ループ]]が発生し、最終的に[[デスマーチ]]に発展するといわれている。ただしCIツールを使うことによる、バグ発生状況を[[キーボード]]で延々と打ち込む作業や、[[ユニットテスト]]を書く作業、[[ナイトリビルド]]や[[インパクトテスト]]の結果をまとめる作業などを、面倒であり工数の増大とみなす者が多いのも事実である。
== 関連項目 ==
* [[仕様]] - バグが発生したときの逃げ文句として「[[仕様です]]」が有名。
* [[スパゲッティコード]] - [[デバッグ]]の難しい[[ソースコード]]のことである。[[ペアプログラミング]]である程度は回避できる。
== 参考文献 ==
{{reflist}}
{{stub}}
== 概要 ==
バグはいかなる[[プログラム]]においても必ず発生するものである。
某社ではバグの発生件数が予定より上回るとや[[プログラマー]]を激怒し、下回ると[[デバッガー]]を激怒するという非常に偉い人が存在している。なお、そのどちらの場合でも[[日本]]の[[システム開発業界]]における[[中間管理職]]である[[システムエンジニア]]は怒られる。
== 関連用語 ==
バグのうち、原因や責任の所在などが不明なものを特定性の低い表現の「[[不具合]]」と呼ぶことがある。一般的に[[不具合]]という場合は、[[プログラム]]自身のみならず、[[ハードウェア]]や[[OS]]、また[[プログラム]]で使用している[[サードパーティ]]製の[[ライブラリ]]などにバグがあり修正が困難な場合なども含まれる。
[[ソフトウェア]]や[[ハードウェア]]の[[開発]]における[[契約文書]]などの法的な[[文書]]ではバグのことを「[[瑕疵]]」と記述する。
バグの原因を探す作業を[[デバッグ]]といい、修正する作業を[[バグフィックス]]という。また、それを支援する[[ツール]]または[[人材]]を[[デバッガー]]という。[[デバッガー]]という場合は[[ツール]]なのか[[人材]]なのか不明瞭なことが多いので文脈から読み取ることが必要である。
バグの発生状況や修正状況などの情報を管理するツールを[[バグトラッカー]]などという。バグの再発を抑制するための再現プログラムおよび管理・自動実行ツールを[[ユニットテスト]]という。これら統合したシステムの総称を[[継続的インテグレーションツール]](通称:[[CIツール]])といい、[[Team Foundation Server]](通称:[[TFS]])や[[Jenkins]](旧:[[Hudson]])などが有名である。
[[CIツール]]を使わない状況化で容易な[[バグフィックス]]を行うと、右を直すと左が壊れるという[[永久ループ]]が発生し、最終的に[[デスマーチ]]に発展するといわれている。ただしCIツールを使うことによる、バグ発生状況を[[キーボード]]で延々と打ち込む作業や、[[ユニットテスト]]を書く作業、[[ナイトリビルド]]や[[インパクトテスト]]の結果をまとめる作業などを、面倒であり工数の増大とみなす者が多いのも事実である。
== 関連項目 ==
* [[仕様]] - バグが発生したときの逃げ文句として「[[仕様です]]」が有名。
* [[スパゲッティコード]] - [[デバッグ]]の難しい[[ソースコード]]のことである。[[ペアプログラミング]]である程度は回避できる。
== 参考文献 ==
{{reflist}}
{{stub}}