BT

複雑度を測定してソフトウェア品質を改善する

| 作者: Ben Linders フォローする 27 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2014年11月20日. 推定読書時間: 2 分 |

原文(投稿日:2014/10/24)へのリンク

複雑度の測定は、開発とテストのための見積もりや、品質向上と問題防止のためにリファクタリングが必要なところの判断に使うことができる。QA&Test 2014カンファレンスで、IntelのShashi Katiyar氏がソフトウェア品質改善のための複雑度メトリクスの効果的な利用についてプレゼンテーションを行った。

複雑度とは、ソフトウェアのさまざまな要素のインタラクションを測定したものだ。Shashi氏によると、ソフトウェア複雑度はソフトウェアの品質とコストの直接的な指標だ。コードの複雑度が高ければ、そのコードの品質は低くなり、それを管理するコストは高くなる。

Shashi氏は、ソフトウェア製品のコードが複雑になると、組織は次のような問題に直面することになると話した。

  • 欠陥のリスクが高まる
  • 新しい機能を追加するのが困難になる
  • コードを理解/保守するのが困難になる
  • 検証するのが困難になる

複雑度の測定には、たとえばMcCabe循環的複雑度を使うことができる。これはコード中の線形的に独立した経路の数を与えるもので、そのソフトウェアのテストの難しさと信頼性の指標になる。これを使うことで、開発と保守に要する労力を見積もることができる。

複雑度データに基づいて、あなたは全ての経路をカバーするのに必要な最小限のテストケース数がわかる。複雑度データは次のような面で役に立つ。

  • 複雑なモジュールに集中する
  • 最も効率の良いテスト技法を見出す
  • テストのやめどきを知る
  • ソフトウェアのテスト可能性を高める

Shashi氏は、(複雑度を測定することで)あなたはソフトウェアシステムの保守の予測可能性を高めることができると説明する。

ソフトウェア製品に取り組む前に、もしそれが複雑なモジュールだということがわかれば、見積もるときに追加の時間を割り当てることができます。あらかじめ複雑度がわかかることは、プロジェクトチームが開発中により注意を払うよう、そして製品の品質が損なわれないようにテストするよう、見積もるのに役立ちます。

Intelでは、複雑度の測定とモジュールの変更数のデータが収集されており、データは顧客から報告されたバグと結びつけられている。モジュールが複雑で、バグにより何度も変更されている場合には、リファクタリングするという判断がなされた。そして、リファクタリングする前には、コードをカバーするテストケースがあることを確かめた。こうすることで、リファクタリングのROIが高められたそうだ。

Shashi氏は、複雑度と品質に関連して、ソフトウェア開発の現場で直面した課題について次のように話した。

非常に競争と動きの激しい環境において、企業はユーザにより多くの機能を提供することで、サービスを差異化しようとしています。その結果、コード行数と複雑度はますます増大しています。これは大きな課題です。製品の複雑度を管理すべく適切な予防策をとらないと、すぐに保守できない製品になってしまうでしょう。依然として、多くの企業が古いコードと古い技術を使っています。時間とともにシステムが複雑になりすぎて、新しい技術への移行が極めて困難になっているためです。

「非常に競争の激しい環境では、イノベーティブになって、品質の高いソフトウェアを開発することが非常に重要です」Shashi氏は言う。「組織はソフトウェアの品質を改善するために、頻繁に変更される非常に複雑なプログラムの複雑度を下げるのを目標に設定するとよいでしょう」

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT