[円]の検索結果
バグのないソフトウェアはない、というくらいソフトウェアにはバグがつきものですが、ソフトウェアの開発プロジェクトには期間や予算に上限があるため、バグの修正に手間取ると十分なテストを実施することができず、品質が低い状態でリリースされてしまうことになります。テストを円滑に進めソフトウェアの品質の高めていくためには、バグを迅速かつ正確にバグを修正していく必要があります。
しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。
知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。
1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。
2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。
3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。
4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。
5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。
6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。
7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。
8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。
9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。
知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。
1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。
2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。
3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。
4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。
5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。
6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。
7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。
8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。
9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
日米欧の金融当局が協調して大規模な資金供給を行なったにも関わらず、日本ではあまり大きなニュースにはなっていませんが、世界同時株安が発生しているようです。
米国のサブプライムローンに関連して、米投資銀行大手ゴールドマン・サックス傘下のヘッジファンドが多額の損失出したり、仏BNPパリバ銀行傘下のファンドが営業停止に追い込まれるなどかなりやばそうです。
サブプライムローン問題とは
サブプライムローンは、一般の「プライムローン」より金利が高めに設定された、信用力の低い個人や低所得者向けに融資する住宅ローンで、証券化され投信などの金融商品に広く組み込まれているが、米国で不動産ブームが発生していた2005年頃に組まれたローンの返済額が急増する2008年にかけて、延滞率が上昇し焦げ付き問題が本格化するとみられている。
欧米、連日の資金供給 世界同時株安収まらず
サブプライム問題の本質
グローバルな取り付け騒ぎ
このサブプライムローン問題の影響で既に円高になっているため、外貨で資産運用している資産家の方々は損失の発生は避けられないようです。なぜか、円高は外貨投資の格好のチャンスといっている金融の専門家もいますが・・・、
[ゴーログ] 日銀の利上げはない:キャリートレードは死んだ?
ドルバブルで将来ドルが暴落するのが確実なので、ドル建てのファンドを組んで日本人の投資家から資金を調達(円高になった場合の差損は日本人の投資家がかぶる)し、円建てで日本の株式などの資産に投資する(円高差益はファンドが受け取る、もちろんドル建てでは高利回りになる)ことで、ファンドが大儲けできる格好のチャンスですというのならまだ理解できるのですが、日本人の個人投資家がこれから外貨投資というのでは大損確実なのではないでしょうか。既に逃げ遅れたとか言ってる人もいるわけですし。
逃げ遅れた件
米国のサブプライムローンに関連して、米投資銀行大手ゴールドマン・サックス傘下のヘッジファンドが多額の損失出したり、仏BNPパリバ銀行傘下のファンドが営業停止に追い込まれるなどかなりやばそうです。
サブプライムローン問題とは
サブプライムローンは、一般の「プライムローン」より金利が高めに設定された、信用力の低い個人や低所得者向けに融資する住宅ローンで、証券化され投信などの金融商品に広く組み込まれているが、米国で不動産ブームが発生していた2005年頃に組まれたローンの返済額が急増する2008年にかけて、延滞率が上昇し焦げ付き問題が本格化するとみられている。
欧米、連日の資金供給 世界同時株安収まらず
サブプライム問題の本質
グローバルな取り付け騒ぎ
このサブプライムローン問題の影響で既に円高になっているため、外貨で資産運用している資産家の方々は損失の発生は避けられないようです。なぜか、円高は外貨投資の格好のチャンスといっている金融の専門家もいますが・・・、
[ゴーログ] 日銀の利上げはない:キャリートレードは死んだ?
ドルバブルで将来ドルが暴落するのが確実なので、ドル建てのファンドを組んで日本人の投資家から資金を調達(円高になった場合の差損は日本人の投資家がかぶる)し、円建てで日本の株式などの資産に投資する(円高差益はファンドが受け取る、もちろんドル建てでは高利回りになる)ことで、ファンドが大儲けできる格好のチャンスですというのならまだ理解できるのですが、日本人の個人投資家がこれから外貨投資というのでは大損確実なのではないでしょうか。既に逃げ遅れたとか言ってる人もいるわけですし。
逃げ遅れた件
(追記あり)
土用の丑の日が近づくなか、中国産うなぎから使用が禁止されている抗菌剤が検出され話題沸騰の「うなぎ」ですが、某牛丼チェーンのうな丼は値段から考えて間違いなく中国産だろうと言われていますが、国産うなぎの相場は一体いくらぐらいなのかと調べてみたのですが、あまりよくわかりませんでした。近所のスーパーでは愛知産や鹿児島産のうなぎが一尾800円程度で売られてましたが、国産うなぎの値段はそんなものなのでしょうか?
産地偽装の噂もあるので国内産と書いてあっても油断はできません。まあ、中国産うなぎを輸入しているのは商社ですから、商社から食材を仕入れているような大手食品会社のうなぎが中国産なのは確実でしょう。
中国の鰻蒲焼事情(1)
中国の鰻蒲焼事情(2)
中国産食品の危険性 都内のうなぎ屋ですが、こっそり中国産うなぎを使ってます
マスコミの風潮に納得できないので、あえて中国産鰻を取り上げてみました
うなぎネット,シラスウナギ,活鰻,鰻蒲焼,鰻情報
ウナギ情報館
もっとも、いろいろ調べてみると日本産のうなぎが一番美味しいというわけでもないようです。国産よりも中国産や台湾産のうなぎの方が美味しいという評価もあるようです。
産地偽装の噂もあるので国内産と書いてあっても油断はできません。まあ、中国産うなぎを輸入しているのは商社ですから、商社から食材を仕入れているような大手食品会社のうなぎが中国産なのは確実でしょう。
中国の鰻蒲焼事情(1)
中国の鰻蒲焼事情(2)
中国産食品の危険性 都内のうなぎ屋ですが、こっそり中国産うなぎを使ってます
マスコミの風潮に納得できないので、あえて中国産鰻を取り上げてみました
うなぎネット,シラスウナギ,活鰻,鰻蒲焼,鰻情報
ウナギ情報館
もっとも、いろいろ調べてみると日本産のうなぎが一番美味しいというわけでもないようです。国産よりも中国産や台湾産のうなぎの方が美味しいという評価もあるようです。
GMOアドネットワークスが運営するRSS管理サービス「FeedBurner (フィードバーナー)」が、RSS広告配信サービス「FeedBurner広告ネットワーク」を開始。「FeedBurner広告ネットワーク」の商品ラインナップ第一弾は、ギ...
Amazon(アマゾン)がエレクトロニクス ストアの商品(テレビ・ビデオ、デジカメ、ポータブルオーディオなど)を対象に、最大8000円割引となる夏のボーナスハッピーセールを開催している。期間は2007年6月5日から200...
2007年6月5日、シックス・アパートがブログソフトウェア「Movable Type(ムーバブルタイプ)4 日本語版」を2007年7月18日から出荷すると発表、同時に公開ベータテストを開始した。「Movable Type 4 日本語版」は、シ...
レンタルサーバーの中には無料で利用できるものもありますが、広告が表示されたり、すぐに利用できなかったり、CGIが利用できなかったりとなかなか思いどおりにはなりません。その点、有料の格安レンタルサーバーなら...
「WordPress(ワードプレス)」は、スクリプト言語である「PHP」とデータベースシステム「MySQL」を利用して開発されたサーバーインストール型のブログソフトウェアで、オープンソース(GPL)で配布されており商用でも...
緑資源機構主導による総額270億円に上る農地・森林整備事業の談合疑惑で、2007年5月24日に東京地検特捜部が公正取引委員会の告発を受け、独禁法違反(不当な取引制限)容疑で緑資源機構の理事及び受注法人の担当者ら...
(追記あり)
Mozilla Japan が、2007年6月16日(土)に「拡張機能」をテーマとする開発者向けイベント「Firefox Developers Conference Summer 2007」を開催する。午前中は、米国 Mozilla Corporation の Mike Shaver による基調講...
アクセスランキング
今日のアクセスランキング TOP 10
- [PR]noteで販売しているEAの使用期限を無期限にして価格を改定します。 (1 PV)
- テンプレートエンジン (1 PV)
- ブログの口コミ情報を比較・検索できる情報サイト「クチコミサーチWiPi」 (1 PV)
今月のアクセスランキング TOP 10
- 2NN 2ちゃんねるニュース速報+ナビ (3325 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (712 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (124 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (108 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (91 PV)
- 無料のMT4向けナンピンマーチン爆益(爆損)EA「Jipangu(ジパング)」 (81 PV)
- Million Dollar Ver 1.09向けの収益性を重視したゴールド(Gold、XAUUSD)ロングセットファイル (74 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (67 PV)
- [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (56 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (54 PV)
アクセス統計
ディレクトリ
関連サイト