[ライブラリ]の検索結果


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

しかし、オブジェクト指向プログラミング(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)

オブジェクト指向スクリプト言語「Python」に関する書籍。Pythonの入門書やリファレンス、プログラミング解説書など。

Pythonで学ぶプログラム作法
プログラミング未経験者を対象に、コンピュータプログラミングの基本理論を解説する入門書。プログラミングの定義、歴史、プログラミングによって問題を解決するための基本テクニックが紹介されている。

みんなのPython
日本人によるオブジェクト指向スクリプト言語「Python」の入門書。インストールからコードを書く方法まで詳しく解説している。

初めてのPython 第2版
オブジェクト指向スクリプト言語「Python」の入門書。Pythonの特徴の解説から、プログラム実行方法、文法解説やプログラミングなど、Pythonプログラミングに欠かせない情報が網羅されている。

Pythonクィックリファレンス
オブジェクト指向スクリプト言語「Python」の文法、モジュールの利用方法がまとめられたリファレンス。

Pythonテクニカルリファレンス―言語仕様とライブラリ
プログラミング言語Pythonのリファレンス。Python言語仕様、Pythonライブラリ、Python拡張APIについての正確な情報が簡潔に記載されている。

PerlユーザのためのPython移行ガイド
Perlとの比較をベースにPythonについて解説。関数や例外処理など基本的な部分から、組み込み関数、OSとのインタフェース、データ操作、ファイル操作、ネットワーク等、開発上必要となる項目が網羅されている。

IronPythonの世界
Pythonをマイクロソフトが.NET Frameworkで動くようにしたオープンソースのスクリプト言語「IronPython」の解説書。

Python for 702NK/702NK2プログラミングブック
Nokia製S60端末上でのPythonプログラミングを解説。基本的な使い方や、702NK及び702NKIIに実行環境をインストールする方法、携帯端末上で動作するアプリケーションなどが紹介されている。
[1048] Posted by kagahiro at 2007/06/16 17:01:30
0 point | Link (4) | Trackback (0) | Comment (0)

スクリプト言語「Ruby」に標準で添付されているCGIライブラリ(cgi.rb)にDoS脆弱性が存在することが発表された。

cgi.rbを利用して作成されたWebアプリケーション(CGI)に対して特定のリクエストを送信すると、Webアプリケーションが動作しているマシンの CPU資源を消費させられてしまい、リクエストが集中した場合はDoS状態が引き起こされる。

脆弱性が存在するバージョンは、1.8系が「1.8.5以前の全てのバージョン」、開発版(1.9系)が「2006-12-04より前の全てのバージョン」で、Ruby の配布元ではアップグレードによる対策を行うことを推奨している。

もう一つのCGIライブラリのDoS脆弱性について
JVN#84798830
[928] Posted by kagahiro at 2006/12/04 21:53:27
0 point | Link (1) | Trackback (0) | Comment (0)

ベクターが、ベクターの「ソフトライブラリ」作者に限定して提供していた多機能ブログサービス「Vector maglog(ベクターマグログ)」のオープンβサービスを開始した。オープンβサービスへの移行によって誰でも無料...
[883] Posted by kagahiro at 2006/10/24 22:40:21
0 point | Link (1) | Trackback (0) | Comment (0)

ソーシャルニュースサイト「newsing」が、これまでの新着ニュースのRSS配信に加え、毎日(昨日、今日)のニュースの中で特にポイントが高いニュースや今週、今月のニュースの中で特にポイントが高いニュースのRSS配信...
[818] Posted by kagahiro at 2006/08/11 11:46:30
1 point | Link (1) | Trackback (1) | Comment (0)

Mac Fan Mac OS X v10.3“Panther”マスターブック最新Mac OSである「Panther」の基本機能から、インターネット&メールの活用、付属アプリケーションの使い方、カスタマイズ、ネットワークまで網羅。Mac OS X Server...
[787] Posted by kagahiro at 2006/07/27 20:56:04
0 point | Link (2) | Trackback (0) | Comment (0)

スクリプト言語PHPに関する書籍。プログラミングの基礎から解説された入門書やサンプルコードが掲載された解説書など。PHP5徹底攻略PHP5へのバージョンアップに合わせて内容が一新された、PHPの定番解説書「マンモス...
[753] Posted by kagahiro at 2006/07/15 20:26:11
0 point | Link (11) | Trackback (0) | Comment (0)

新プログラミング環境C#がわかる+使えるC#をどのように利用するべきかを、言語仕様のトピックごとに詳細に解説。C#によるプログラミングWindows 上Windowsフォーム(Windows.Forms)を有効活用するノウハウを詳解。上巻...
[744] Posted by kagahiro at 2006/07/13 04:00:29
0 point | Link (1) | Trackback (0) | Comment (0)

オブジェクト指向スクリプト言語Rubyに関する書籍。Rubyの入門書、リファレンス、Ruby on Railsを使ったWebアプリケーションの開発手法など。たのしいRuby 第2版 Rubyではじめる気軽なプログラミングRubyを基礎から学...
[741] Posted by kagahiro at 2006/07/12 06:55:08
0 point | Link (5) | Trackback (0) | Comment (0)

プログラミング言語C++に関する書籍。基礎的な知識からC++プログラミングをマスターする入門書や実践的な解説書、リファレンスなど。Visual C++ (1)クラスの機能やMFCを使わずに、Visual C++のC言語機能だけを使用。...
[683] Posted by kagahiro at 2006/06/27 22:57:21
0 point | Link (6) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  1 2 3 4 5  次へ >


アクセスランキング

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  2. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (4 PV)
  3. [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (3 PV)
  4. 裁量トレードで出来た「くそポジ」を「PositionKeeper」の全決済機能を使って解消する (3 PV)
  5. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (2 PV)
  6. インターナショナルSEOの11の鉄則 | SEO Japan (2 PV)
  7. [携帯電話]SIMロックの解除に関するガイドライン (1 PV)
  8. MOONGIFTが自作オープンソースソフトのリリースの受け付けを開始 (1 PV)
  9. The Complete Guide to Google Wave: How to Use Google Wave (1 PV)
  10. [FX]裁量ポジションを簡単に管理できるMT4向け無料EA「PositionKeeper」 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (61 PV)
  2. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (18 PV)
  3. [FX]相場の上げ下げに応じて自動売買するMT4向け高勝率無料EA「IKEIKE」 #システムトレード #指標トレード (6 PV)
  4. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (5 PV)
  5. 「xVideoServiceThief」無料の動画ダウンロードツール (5 PV)
  6. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (5 PV)
  7. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (4 PV)
  8. [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (4 PV)
  9. 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (4 PV)
  10. Google News (グーグルニュース)日本版 (4 PV)

アクセス統計

ディレクトリ

関連サイト