パスワードを忘れた? アカウント作成
15204 story

一晩で500万行のコードのバグを自動的に解析 65

ストーリー by mhatta
ほんとに役に立つのかな 部門より

elfbin 曰く

ソースコードの静的解析ツールを提供する 米コベリティが、豊通エレクトロニクスとパートナーシップを締結し、 さらに 9月には東京に日本法人を設立することを発表したとのこと。 コベリティのツールは、C、C++、Javaのコンパイル時にコードを静的に解析し、プログラムの不具合やセキュリティ脆弱性を発見するもの。 「品質欠陥」「セキュリティ欠陥」「並列処理欠陥」の3種類のチェッカーが動作して不具合を発見し、パスの解析やプロシージャ間解析も行えるのが特徴とのことで、 解析速度は500万行程度のソースコードであれば一晩で行えるらしい。やたらに図体がでかいシステムの場合は結構需要がありそうだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 摘要には注意が必要 (スコア:4, すばらしい洞察)

    by pivo (27159) on 2007年04月19日 12時15分 (#1144976) 日記
    500万行を一晩で解析できるのはよいのですが、既存のプロジェクトに摘要するときっと大変なことに・・・

    客   :「このシステムは品質が低いのではないか、このツールで検証して報告を出すように」
    営業  :「はい、わかりました。」
    技術者 :「え、そんなもの使うの・・・(やめてくれ)」
    プロマネ:「結果はどうなった?」
    技術者 :「2万件の障害が出ました・・・」

    開発初期からデイリーで動かさないと、こんなことになるプロジェクトが山のようにありそう・・・

    #ご利用は計画的に
    • by Anonymous Coward on 2007年04月19日 12時27分 (#1144991)
      あるあるww実際にそれ体験したw
      もう何年もやってるプロジェクトじゃ、いまさら修正しろったって無理無理。
      直せっていうなら直してもいいけど、それによって別の問題が起きないとは保障できないぞ?

      #ちなみに、そのときは無理!今後追加するところだけ対応する、という真っ当な(?)結論に落ち着きました。
      親コメント
      • by firewheel (31280) on 2007年04月19日 13時35分 (#1145059)
        >あるあるww実際にそれ体験したw
        以下同文。

        「まあ汚いコードだから」というのは分からなくもないが、
        「(後から決めた)命名規則に合わないから」というのまで
        全部修整しろというプロマネには、本気で殺意を覚えました。

        まあ、あのプロジェクトは納期が大幅に遅れて、大赤字だして、
        少数の鬱病患者と多くの退職者をうんで、プロマネも逃げるように
        辞めていったけどね。

        彼は、いったい今どこで何をしていることだろう。今日も
        どこか別の会社で、元気にデスマーチを量産しているのかもね。
        親コメント
    • Re:摘要には注意が必要 (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2007年04月19日 14時26分 (#1145093)
      まー普及しちゃった頃には、チェッカーをかいくぐるようにバグを仕込む手法が一般化するよね、きっと。
      親コメント
      • Re:摘要には注意が必要 (スコア:4, すばらしい洞察)

        by Anonymous Coward on 2007年04月19日 22時04分 (#1145344)
        > チェッカーをかいくぐるようにバグを仕込む

        チェッカーにかからなくなるまで「適当に直す」手法を繰り返すことで、通常のバグが減っていくかわりに、みつけにくいバグが増殖していきます。

        これら「耐性バグ」が、将来問題になると予想。
        親コメント
    • by Anonymous Coward
      一晩に500もの障害連絡表を書かねばならん

      障害表の発行は発見から24時間以内というSLAなのでAC
    • 問題点を抜き出すのだから摘要でいいのかしらね?
      プロジェクトへは適用だと思うけど
  • あのソフトなら! (スコア:3, すばらしい洞察)

    by 127.0.0.1 (33105) on 2007年04月19日 13時06分 (#1145029) 日記
    WindowsVistaのコードは5000万行ということらしいので
    (ぐぐってみたら、2006年のコンピュータの9月の記事に
    そう書いてあるらしい)、単純計算で昼夜もぶっつづけで
    処理したら5日間。

    #規模が大きくなればなるほど時間が余計にかかるなら
    #この限りではないですが。
    • by takamanohara (33533) on 2007年04月19日 17時21分 (#1145189)
      んなことしたら、二度と新しいOSは出なくなるのでは?

      現行のサポートが続くならそれはそれで嬉しいが。
      親コメント
    • by Anonymous Coward
      こーゆー解析ツールは計算量はO(N)から下手打つとO(N^3)なので、
      間を取ってO(N^2)としても、ソースが10倍なら時間は100倍ですな。
      5M行が一晩で済むなら並列化なんてしとらんでしょうが、
      M$様がお客についてくれるなら気合入れて並列化するかも。
  • PREfast (スコア:3, 参考になる)

    by Anonymous Coward on 2007年04月20日 0時25分 (#1145405)
    だれも書かない所をみると、知られてないのね・・・ DDK [microsoft.com]もしくはVisual Studio 2005の一部 [microsoft.com]で利用可
  • 自分自身 (スコア:2, おもしろおかしい)

    by Anonymous Coward on 2007年04月19日 12時26分 (#1144990)
    もち、自分自身のソースを自分自身で解析はやったんだろうなぁ。

    某メモリリークやバッファオーバラン検出ソフトはよくクラッシュしていた、、、
    他人のソースを指摘する前に自分のソースのバグを直せってーのって思ってたYO。
  • 実行先環境を考慮したものだと嬉しいけど、どうだろ。

    64bit系だと
    uint8_t *buf = NULL;
     
    buf = alloc_xx();
    if(!buf){
        ....
    }
    ...
    これだけでNGなんだもんなぁ。頭が古いだけ?

    # 64bitではNULL = 0 とは限らないそうで... (Binary Hacksの Hack #49)

    むしろ自動で(pointer !=/== NULL)の式に変換すると便利だけど、さすがにやらないよな。

    この手のがカーネル系に上手く適用できなくて泣いたことがあるのでID
    # カーネルに適用できるなら、*BSD/Linuxに常に活用されていたりすると嬉しいんだけどな。(定点評価みたいに)
    --
    M-FalconSky (暑いか寒い)
  • by Anonymous Coward on 2007年04月19日 12時14分 (#1144975)
    既存の静的ツールとの違いは速度なんでしょうか。

    MISRA-Cなり他のコーディング規約等に従って、
    バグを混入させやすい書き方を排除するための
    静的解析ツールなら各所から出ていますよね。

    例えば、QACとか、
    http://www.toyo.co.jp/ss/qac/index.html [toyo.co.jp]
    フリーのものでもなんかあったかと。

    --
    # 僕には小人さんがついてるから問題なし
  • 仕様どおりじゃないコードが出来ても.....
    --

    ------------
    惑星ケイロンまであと何マイル?
  • by nsmrtks (20015) on 2007年04月19日 12時37分 (#1145004) 日記
    Coverity → 「コベリティ」って何だよと思いました。
    公式名なんですかねえ?
    「河馬」の語感が気に入らなかったんだろうか??
  • Coveiryさんは、いくつかのオープンソースプロジェクトのソース検査をしてくれているところですね。

    http://itpro.nikkeibp.co.jp/article/USNEWS/20060112/227134/

  • おねがい。 (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2007年04月19日 13時21分 (#1145045)
    コメント行の解析はやめて。特に意味解析は却下。
    # 恥ずかしいコメントいっぱい書いてるヲレ。
  • 500万行のソースコードですか・・。

    ・・・・・・ただいま解析中・・・・・・

    24時間後にメッセージが出ている!->  「40026行目でエラーがありました」
    とか言って、IEのscriptエラーのように、外部ファイルを取り込んだ結果、行番号
    がずれている とか言うオチは無いですよね・・。

    個人的には仕様書を読ませて、仕様バグを発見してくれるソフトを先に希望します。
    プログラム完了後テスト工程に入って仕様上の問題点で改修になる事が多々ありますので・・。

    • by FeyWong (31707) on 2007年04月19日 14時25分 (#1145092)
      そして仕様書の問題を探すためにチェックツールが出来て
      またその上のチェックツールが出来て

      クライアントのチェックツールが出来るわけですね(ぇー
      --
      暇になれば「忙しい」が羨ましくなり 忙しくなれば「暇」が羨ましくなる。
      親コメント
    • by lumy (27403) on 2007年04月19日 23時34分 (#1145385)
      >個人的には仕様書を読ませて、仕様バグを発見してくれるソフトを先に希望します。
      たぶん希望のものとは違くなってしまうかと思いますが、Alloyなんてものもあります。
      http://alloy.mit.edu/ [mit.edu]

      仕様をAlloyのプログラムで表現するときにバグがのって....なんてことになりかねないけどね。
      親コメント
    • by Anonymous Coward
      そんなのがあったらいいですが、ないよね。

      如何に、改修が無いような設計にするか、
      改修があっても耐えられる実装にするか、
      改修があることを見越した精神状態で作業をするか
      は、会社によってまちまちですね。

  • by shoji12 (14093) on 2007年04月19日 14時18分 (#1145088)
    対応してませんでした。
    コードが違うから?
    行数が少ないから?
  • 『本来「バグ」と報告しなければならないのに「問題なし」と報告してしまう』バグが潜んでいるかもしれないので注意しましょう。

    とはいえ、相対的に品質がよくなるならそれでもいいか。

    --
    MIYAZAKI Yasushi
  • by Anonymous Coward on 2007年04月19日 12時11分 (#1144974)
    1万件程度のダメ出しされたら凹むぞ、構文のゆれまで指摘されても 迷惑甚だしい。一人で一日で書いたソースじゃあるまいし。
  • by Anonymous Coward on 2007年04月19日 14時19分 (#1145091)
    このシステムも同システムでバク取りしてるから安全?
  • by Anonymous Coward on 2007年04月19日 15時00分 (#1145115)
    相当素晴らしい小人さんですね!
    ぜひ,我が社にお招きしたいものです.

    #え,この小人さんはコードを書いてくれないんですか...
    #これで作業が減るかと思ったのに...
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...