[ソース]の検索結果


バグのないソフトウェアはない、というくらいソフトウェアにはバグがつきものですが、ソフトウェアの開発プロジェクトには期間や予算に上限があるため、バグの修正に手間取ると十分なテストを実施することができず、品質が低い状態でリリースされてしまうことになります。テストを円滑に進めソフトウェアの品質の高めていくためには、バグを迅速かつ正確にバグを修正していく必要があります。

しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。

知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。

1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。

2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。

3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。

4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。

5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。

6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。

7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。

8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。

9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
[1067] Posted by kagahiro at 2007/09/10 05:49:45
1 point | Link (3) | Trackback (0) | Comment (1)

Cygwin(シグウィン)とは、マイクロソフトのOSであるWindows上で動作する無料のLinuxライクな環境の一つで、GNUの開発ツールをはじめとして、UNIX向けのさまざまな標準ツールがWindows上で利用できるようになっている。

Cygwin の開発は1995年から Cygnus Solutions によって始められたが、その後、Linuxディストリビューターとして知られるRed Hatに買収され、現在は Red Hat Software の一部門となっている。

評価 : ★★★★★  (kagahiro  2007/09/06)

Cygwin(シグウィン)のセットアップ方法や使い方を解説しているサイト

Using Cygwin.
Cygwinのセットアップと設定についての日本語による解説。

Cygwin JE
Cygwinに日本語化/国際化されたソフトウェア等を提供するパッケージ集。

Cygwin Translation Library(Cygwin 文書図書館(翻訳館))
Cygwin 本家サイトで公開されているドキュメントの日本語訳など。

Cygwin Information and Installation
Cygwinの本家サイト。(英語)

Cygwinの使い方
Cygwinの使い方を解説しているサイト。

[1064] Posted by kagahiro at 2007/09/06 04:54:35
0 point | Link (5) | Trackback (0) | Comment (0)

発売前にアルファブロガーな方々に献本され話題になった「ウィキノミクス マスコラボレーションによる開発・生産の世紀へ」を読みました。

取引先やユーザーと情報を共有してコラボレーションすればこんなに儲かりますよという事例がたくさん紹介されていました。どちらかと言えばIT企業向けというより、社外リソースの利用に関しては出遅れている趣のある製造業向けに書かれたビジネス書といった感じです。

登録ユーザー数に比べてアクティブユーザーが少ないと言われるセカンドライフが成功事例として紹介されている当たりは微妙な感じもしますが、情報を公開することで正規の社員として雇うことなく、安く(もしくは無料で)仕事をしてもらえるなら利益を追求する営利企業ならやらない手は
無いでしょうね。

ウィキノミクス マスコラボレーションによる開発・生産の世紀へ
ダン・タプスコット/アンソニー・D・ウイリアムズ
日経BP社


最終章では「一緒にこの本を編集しつづけましょう」という呼びかけも行なわれてます。
WIKINOMICS
[1058] Posted by kagahiro at 2007/07/17 22:50:03
1 point | Link (1) | Trackback (1) | Comment (0)

投稿掲示板「59bbs」で使用している「59bbs 1.0」をGPLで公開しました。59bbs 1.0 の特徴「59bbs」はブログソフトウェア「59Tracker」をベースに、掲示板として必要な機能だけを実装したものです。「59bbs」では、ト...
[1055] Posted by kagahiro at 2007/07/02 21:47:21
0 point | Link (5) | Trackback (0) | Comment (0)

Movable Type(ムーバブルタイプ)のオープンソース版(GPL)が今年(2007年)第三4半期にリリースされる予定になっているようです。Movable Type 4 の開発と、ベータテスト、オープンソースについてMovable Type(ム...
[1054] Posted by kagahiro at 2007/06/26 18:44:40
0 point | Link (3) | Trackback (0) | Comment (0)

ブログ等に貼り付けるためのアマゾンの商品リンクを、Amazon ECS のRESTリクエストを利用して、画像付きで生成するフォームを作成しました。商品のASINとアソシエイトIDを入力して作成ボタンをクリックすると画像付き...
(追記あり)
[1053] Posted by kagahiro at 2007/06/22 07:08:00
3 point | Link (3) | Trackback (0) | Comment (3)

オブジェクト指向スクリプト言語「Python」に関する書籍。Pythonの入門書やリファレンス、プログラミング解説書など。Pythonで学ぶプログラム作法プログラミング未経験者を対象に、コンピュータプログラミングの基...
[1048] Posted by kagahiro at 2007/06/16 17:01:30
0 point | Link (4) | Trackback (0) | Comment (0)

経済学者の池田信夫氏がはてなブックマークのユーザーをネットイナゴと罵倒した記事があちこちでちょっとした話題になってますが、「ニコニコブックマーク(仮)」に比べれば、「はてなブックマーク」なんてかわいい...
(追記あり)
[1043] Posted by kagahiro at 2007/06/12 04:42:45
1 point | Link (3) | Trackback (1) | Comment (0)

レンタルサーバーの中には無料で利用できるものもありますが、広告が表示されたり、すぐに利用できなかったり、CGIが利用できなかったりとなかなか思いどおりにはなりません。その点、有料の格安レンタルサーバーなら...
[1037] Posted by kagahiro at 2007/06/02 17:39:28
5 point | Link (16) | Trackback (0) | Comment (2)

アマゾンアソシエイトで個別商品リンクの拡張機能、「商品プレビュー」の提供が開始された。「商品プレビュー」を利用すると、テキスト形式で貼り付けた個別商品リンクにマウスカーソールを合わせた際に、その商品の...
[1036] Posted by kagahiro at 2007/06/01 15:13:57
5 point | Link (1) | Trackback (1) | Comment (1)

|< 先頭へ  < 前へ  20 21 22 23 24  次へ >


アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
  3. 衆議院インターネット審議中継 (2 PV)
  4. ニフティ、ブログにアプリを貼り付けることができるサービスを開始 (2 PV)
  5. 経済指標(けいざいしひょう) #乱高下 #死標 (2 PV)
  6. PINMA FREEの配布は終了しました (2 PV)
  7. Webメールのアドレス帳から勝手に招待状をばら撒くSNS「Tagged」 (1 PV)
  8. Python(パイソン) (1 PV)
  9. トラックワード(track word) (1 PV)
  10. OpenLDAP 書籍 (1 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (30 PV)
  2. FC2まとめ (15 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (10 PV)
  4. StartPage(スタートページ) - 匿名検索エンジン (8 PV)
  5. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (8 PV)
  6. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (5 PV)
  7. 掲示板CGI ThreadPlus 1.2 のリリース (5 PV)
  8. 「Kindle for the Web」 (5 PV)
  9. [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (5 PV)
  10. 2ちゃんねる(2ch) (5 PV)

アクセス統計

ディレクトリ

関連サイト