[問題]の検索結果
バグのないソフトウェアはない、というくらいソフトウェアにはバグがつきものですが、ソフトウェアの開発プロジェクトには期間や予算に上限があるため、バグの修正に手間取ると十分なテストを実施することができず、品質が低い状態でリリースされてしまうことになります。テストを円滑に進めソフトウェアの品質の高めていくためには、バグを迅速かつ正確にバグを修正していく必要があります。
しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。
知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。
1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。
2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。
3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。
4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。
5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。
6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。
7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。
8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。
9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。
知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。
1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。
2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。
3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。
4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。
5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。
6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。
7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。
8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。
9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
自民、公明両党の歴史的大敗となった2007年参議院選挙後に、朝日新聞が7月30日夕から7月31日夜にかけて実施した電話による全国世論調査で、安倍首相の進退について「辞めるべきだ」と言う意見が47%と多いものの、「続けてほしい」も40%と、続投を支持する意見が意外と多いことがわかる。
asahi.com:首相は辞任を―47%、続けてほしい―40%
この記事を読むと小沢一郎氏が代表を務める民主党の政策が支持されたわけではなく、政府と与党の政策に対する不満が自民党と公明党の参院選敗北の最大の理由のようですね。まあ、これまでずっと年金は大丈夫ですと言っておきながら、実は記録の管理は滅茶苦茶でしかもそれを隠してましたでは、みんな怒るのは当然でしょう。
それはそうと、安倍首相が続投の理由としマスコミの記事でも「不断の構造改革が必要」などと書かれる構造改革は本当に必要なのでしょうか。もちろん、社会の変化に伴う社会制度の見直しは必要でしょうが、軍事活動に国家予算の多くを費やすアメリカや、経済が市場化されたものの未だに共産党支配が続く中国など他の国々が抱える問題を考えると、日本だけがそれほど急ぐ
必要は無いはずです。社会制度の改革が必要なら具体的な問題点を十分に議論した上で進めても遅くはありません。
私には、現在の自民党や民主党が掲げている改革は、多くの人々が持つ現状に対する不満を利用して、一部の人たちの都合の良い社会に変えようとしているように思えます。
まあ、世の中の動きに色々疑問は感じますが、自民党が圧倒的な有利な状況が崩れて、これからは政治関連の話題が盛り上がりそうな状況になったのは、いろんな意味でいい傾向だとは思います。
asahi.com:首相は辞任を―47%、続けてほしい―40%
この記事を読むと小沢一郎氏が代表を務める民主党の政策が支持されたわけではなく、政府と与党の政策に対する不満が自民党と公明党の参院選敗北の最大の理由のようですね。まあ、これまでずっと年金は大丈夫ですと言っておきながら、実は記録の管理は滅茶苦茶でしかもそれを隠してましたでは、みんな怒るのは当然でしょう。
それはそうと、安倍首相が続投の理由としマスコミの記事でも「不断の構造改革が必要」などと書かれる構造改革は本当に必要なのでしょうか。もちろん、社会の変化に伴う社会制度の見直しは必要でしょうが、軍事活動に国家予算の多くを費やすアメリカや、経済が市場化されたものの未だに共産党支配が続く中国など他の国々が抱える問題を考えると、日本だけがそれほど急ぐ
必要は無いはずです。社会制度の改革が必要なら具体的な問題点を十分に議論した上で進めても遅くはありません。
私には、現在の自民党や民主党が掲げている改革は、多くの人々が持つ現状に対する不満を利用して、一部の人たちの都合の良い社会に変えようとしているように思えます。
まあ、世の中の動きに色々疑問は感じますが、自民党が圧倒的な有利な状況が崩れて、これからは政治関連の話題が盛り上がりそうな状況になったのは、いろんな意味でいい傾向だとは思います。
事務所費問題で追求されている赤城徳彦農相が、閣議後の記者会見に、顔に二ヶ所の傷を負って登場。
赤城農相、傷の理由も“非公開” - 社会ニュース : nikkansports.com
http://www.nikkansports.com/general/f-gn-tp0-20070717-228346.html
理由は「公務ではない」そうだ。まあ、そりゃそうだろうけど・・・。
誰かとケンカでもしたのかね。大臣が勝ったのか負けたのか気になるところ。
赤城農相、傷の理由も“非公開” - 社会ニュース : nikkansports.com
http://www.nikkansports.com/general/f-gn-tp0-20070717-228346.html
理由は「公務ではない」そうだ。まあ、そりゃそうだろうけど・・・。
誰かとケンカでもしたのかね。大臣が勝ったのか負けたのか気になるところ。
「拒否できない日本」で「年次改革要望書」の存在を明らかにし、対米追従政治に警鐘を鳴らした関岡英之氏を中心に各界の第一人者が、国民の目から隠されている日米関係のタブーを明らかにし、格差社会、郵政民営化、...
安全保障や戦争、武器に関するもの。日本国憲法第9条で戦争放棄が規定されていることから、日本では軍事分野に関する議論を行なうことをタブー視する傾向があるが、最大の同盟国であるはずの米国が世界各地で戦争を行...
アクセスランキング
今日のアクセスランキング(上位10件)
- 伝説の男、瓜田純士さんが新宿駅構内で2週間前に割腹自殺を図る (4 PV)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (2 PV)
- [放射能漏れ]福島第一原発2号機、燃料棒が再び完全露出[メルトダウン] (2 PV)
- 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (1 PV)
- 掲示板フリーソフト - 無料で利用できる掲示板CGI (1 PV)
- ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (1 PV)
- PHP、MySQLで動くオープンソース掲示板ソフト (1 PV)
- [Twitter]ツイッター検索のまとめ (1 PV)
- 2chみたいな掲示板「PHP 2chBBS」 (1 PV)
- UseBB(ユースビービー) - フォーラムソフトウェア (1 PV)
今月のアクセスランキング(上位10件)
- 2NN (2ch News Navigator) (341 PV)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (122 PV)
- 小林興起元衆議院議員がタレントの杉本彩さんにキスを迫る (61 PV)
- 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (49 PV)
- ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (27 PV)
- 読売新聞「石井誠」記者変死事件 (24 PV)
- 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (23 PV)
- 掲示板フリーソフト - 無料で利用できる掲示板CGI (19 PV)
- PHP、MySQLで動くオープンソース掲示板ソフト (14 PV)
- UseBB(ユースビービー) - フォーラムソフトウェア (14 PV)
アクセス統計
ディレクトリ
- 59bbs.org - 掲示板
- Amalink - 画像付きamazon商品リンク作成ツール
- Mailform Std - オープンソースライセンス(GPLv2)のメールフォームCGI(Perl)
- ThreadPlus - オープンソースライセンスの(GPLv2)掲示板CGI(Perl)
- 2ちゃんねる掲示板検索
関連サイト
- 語句ログ - オープンソースブログソフト59Trackerを利用した情報共有ブログ
- 株価と為替レート(FX)の掲示板
- CommentPP - オープンソース掲示板システム(PHP/MySQL)のダウンロード
- BBS10 - CommentPP を利用したインターネット掲示板