[kagahiro]の検索結果


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

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

ワーキングプア格差社会の元凶として社会的な批判が高まる偽装請負ですが、比較的労働者に渡る金額が多いIT業界でもこの問題とは無縁ではありません。

アルファブロガー「切込隊長」として知られ、イレギュラーズアンドパートナーズ株式会社の代表取締役である山本一郎氏が自身のブログで、

派遣業界(請負含む)がヤバい件
最近になって使ってる派遣元数社から、ほぼ内容が共通した変な「お願い」が来るようになって、たぶん他の派遣社員使ってる会社にも同様のことをやってるんだろうけど、要するに「いままでやっていたことはひょっとしたら違法かもしれませんが、品質には問題ありません」みたいな話だろう。
労働者の押し込み先である企業にさえ妙な書類送りつけてくるということは、何か別のややこしくてもっと酷いことが起きてんのかと思ってしまうな。

などと、自社と派遣元企業との取引が違法であった可能性をほのめかしているように、偽装請負は以前からIT業界でも一般的に行なわれています。

もっとも、偽装請負では派遣元だけでなく派遣先の企業も処罰の対象になるので、派遣元が違法行為をしているのであれば、当然、派遣された労働者を使っている企業も違法行為を行なっていることになるので、多数の読者を抱える自身のブログにこのような自爆記事を書くとは驚くしかありません。まあ、「自爆と実現の連鎖」を掲げるイレギュラーズアンドパートナーズのトップとしてはこの程度の自爆発言はさほどのことではないのかも知れないですが・・・

偽装請負とは
職業安定法第44条で禁止されている、書類上は請負契約もしくは業務委託契約であるにも関わらず、開発や運用を担当する労働者を実質的に派遣労働者として働かせて利益を得る行為のことで、労働者供給事業者から供給された労働者を使うことも禁止されているため、派遣元の企業だけでなく、ユーザー企業や元請け企業などの受け入れ先の企業も処罰の対象となる。

IT業界のタブー「偽装請負」に手を染めてませんか
偽装請負問題〜派遣と請負の区別
あなたの使用者はだれですか?〜偽装請負ってナニ?
(追記あり)
[1066] Posted by kagahiro at 2007/09/08 08:46:18
5 point | Link (2) | Trackback (5) | Comment (0)

FC2ブログに参加者がトピックを自由に作成し掲示板のような使い方ができる新機能「コミュニティ機能」が追加された。ただし、コミュニティ機能は新管理画面でのみ利用可能。

コミュニティの作成はコミュニティTOPページ上部の「コミュニティ作成」をクリックし、コミュニティ名、参加する際に必要な情報、カテゴリを選択して確認ボタン押下で簡単に作成できる。

コミュニティ機能
FC2ブログにコミュニティ機能を追加!

ということなので、より良い人生を実現するために日常生活や仕事のやり方を改善・向上させるテクニック「LifeHack(ライフハック)」についてのコミュニティを作成してみました。

トピックの作成やコメントの書き込みを参加メンバーに限定した掲示板といった感じですね。匿名のコメントを受け付けられないのがちょっと残念ですが。
[1065] Posted by kagahiro at 2007/09/07 03:10:33
0 point | Link (2) | Trackback (0) | Comment (0)

Cygwin(シグウィン)とは、マイクロソフトのOSであるWindows上で動作する無料のLinuxライクな環境の一つで、GNUの開発ツールをはじめとして、UNIX向けのさまざまな標準ツールがWindows上で利用できるようになってい...
[1064] Posted by kagahiro at 2007/09/06 04:54:35
0 point | Link (5) | Trackback (0) | Comment (0)

かなり話題になっている記事ですが、内容的には、「そういう風に考えていた時期が私にもありました」という感じです。Geekなぺーじ : 勝者と敗者の違い現実にこの教訓の通りに行動するのはかなりの実力と勇気が必要で...
[1063] Posted by kagahiro at 2007/09/04 04:51:29
0 point | Link (1) | Trackback (0) | Comment (0)

「広報・宣伝(PR)の父」といわれているエドワード・バーネイズ(Edward Bernays)の著書を「ジャパン・ハンドラーズ」の著者である中田 安彦氏が翻訳。プロパガンダを「大衆と、大企業や政治思想や社会グループとの関...
[1062] Posted by kagahiro at 2007/08/27 06:02:32
0 point | Link (2) | Trackback (0) | Comment (0)

バージル・グリフィス氏によって開発されたIPアドレスからWikipediaの編集履歴を調べるツール「Wikiscanner」によって、アメリカ政府機関やローマ法王庁を始めとする世界各地の政府機関、国際組織、大企業などがWiki...
[1061] Posted by kagahiro at 2007/08/23 03:57:38
0 point | Link (1) | Trackback (0) | Comment (0)

日米欧の金融当局が協調して大規模な資金供給を行なったにも関わらず、日本ではあまり大きなニュースにはなっていませんが、世界同時株安が発生しているようです。米国のサブプライムローンに関連して、米投資銀行大...
(追記あり)
[1060] Posted by kagahiro at 2007/08/16 03:28:24
1 point | Link (2) | Trackback (1) | Comment (0)

自民、公明両党の歴史的大敗となった2007年参議院選挙後に、朝日新聞が7月30日夕から7月31日夜にかけて実施した電話による全国世論調査で、安倍首相の進退について「辞めるべきだ」と言う意見が47%と多...
[1059] Posted by kagahiro at 2007/08/02 04:28:11
1 point | Link (1) | Trackback (1) | Comment (0)

発売前にアルファブロガーな方々に献本され話題になった「ウィキノミクス マスコラボレーションによる開発・生産の世紀へ」を読みました。取引先やユーザーと情報を共有してコラボレーションすればこんなに儲かります...
[1058] Posted by kagahiro at 2007/07/17 22:50:03
1 point | Link (1) | Trackback (1) | Comment (0)

|< 先頭へ  < 前へ  220 221 222 223 224  次へ >


アクセスランキング

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (15 PV)
  2. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (5 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (4 PV)
  4. SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) (3 PV)
  5. MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (2 PV)
  6. SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (2 PV)
  7. 時間指定で仲値トレードも簡単にできる無料EA「NAKANE3 Ver 2.02」 (2 PV)
  8. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (2 PV)
  9. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (1 PV)
  10. 「SQLite」に深刻なセキュリティ上の脆弱性 #データベースエンジン (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (176 PV)
  2. オープンソースの掲示板ソフト (93 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (61 PV)
  4. FC2まとめ (54 PV)
  5. StartPage(スタートページ) - 匿名検索エンジン (47 PV)
  6. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (30 PV)
  7. 「SQLite」に深刻なセキュリティ上の脆弱性 #データベースエンジン (28 PV)
  8. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (27 PV)
  9. SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (26 PV)
  10. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (25 PV)

アクセス統計

ディレクトリ

関連サイト