CodeZine(コードジン)

特集ページ一覧

メンバー育成にも効果アリ! コードレビューを充実させ、不具合件数を半減させたJVCケンウッドのテストツール活用術

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/03/14 14:00

 ソフトウェア開発の現場では、「高品質」「低コスト」「短納期」が要求され、そのための取り組みが行われている。テスト工程においてもこれらの条件を実現するため、ツールを導入が進んでいるが、思ったよりも効果が出ていないという声も多い。ではどのようなツールをいかに運用すれば、高い品質のソフトウェアを低コスト、短期間で開発できるのか。「開発現場の意識が変わる! 品質向上を実感する『仕組み』作りとは?」と題して、20年以上のテストツール販売実績を誇るテクマトリックス主催のセミナーが開催された。

目次

ツールの導入に加え、メンバーの育成、開発チームの活性化に注力

 テスト工程にツールを導入したものの、品質の向上、開発の効率化が図れていない──。こんな課題を持っている開発現場は多い。そんな課題解決のヒントが得られるセミナーが、静的解析、動的解析の両方をサポートしたC/C++言語対応のオールインワンテストツール「C++test」や、ソフトウェア開発・テスト管理プラットフォーム「Parasoft DTP」を提供するテクマトリックスにより、2月10日、お茶の水ソラシティカンファレンスセンター(東京都千代田区)で開催された。

 最初に登壇したのは、「C++test」を導入し、品質向上において結果を出しているJVCケンウッド 業務用システム事業統括部 プロオーディオ技術部の阿部博己氏。非常用放送システムや業務用放送装置などの開発を担当する阿部氏は「ツールを導入すると早い段階でバグ検出ができるなどの即効性は得られるが、それだけでは完璧ではない。真の品質向上を図るには、メンバーの育成、開発チームの活性化が不可欠だ」と強調する。

JVCケンウッド パブリックサービス分野 業務用システム事業統括部 プロオーディオ技術部 阿部博己氏
JVCケンウッド 業務用システム事業統括部 プロオーディオ技術部 阿部博己氏

 阿部氏の部署では検証専門チームを設置したり要求仕様の早期確定をしたりするなど、仕様面での品質向上に取り組んできたが、開発者のスキルに関する問題は解決できていなかった。そこで静的解析ツールの導入を検討することになったという。各種あるツールの中でもC++testを選択したのは、「他社製品に比較してバグの検出能力が高く、バッチ処理に対応するなど機能も豊富。総合的に見てコストパフォーマンスに優れていたため」と阿部氏は語る。

 開発者のスキルにまつわる問題を解決するため、ツールの導入とともに取り組んだのが、先の阿部氏の言葉で紹介したとおりメンバー育成と開発チームの活性化である。というのも阿部氏の部署の技術者は新人の割合が多く、彼らのスキルアップが品質向上に直結するからだ。

 多くの企業同様、阿部氏の部署でも研修やセミナーなどのOffJTと、OJTを併用して教育を行っていたが、中でもカギを握るのが「実務に直結し、継続的に実施できるOJTだ」と阿部氏は言う。だが、OJTは指導者のスキルに依存する上、推進する体制が整っていないと機能しないという問題点もある。そこで「C++testの検出結果を用いたコードレビューをチームで実施することで、スキルアップを図ろうと考えた」と阿部氏は語る。実のところ以前は、コードレビューがあまり行われておらず、解析結果を担当者が確認、修正するだけ。そのため「修正すれば終わりだったので、なぜバグになったのか、それを追究することがなかった。問題発生の傾向と対策を検討するというロジックを省略してしまい、スキルアップにはつながらなかった」と阿部氏は述懐する。

不具合件数は半減したが、コードレビュー時間は3倍。「これはムダではない」

 現在、阿部氏の部署では検出されたバグに対してチームでレビューを実施している。バグにどのように対応すればよいかを議論し、共有する場を、ソフトウェアの作成完了後、およびソフトウェアの評価プロセスにおいて設けたのである。こういったレビュー時間の確保に大いに役立っているのがC++testであるという。「ツールの導入により、これまでできていなかったコードレビューの時間が増えた。レビューでは、自分一人では気付かなかったことを指摘され、スキルアップにつながるので、楽しくなる。それがモチベーションとなり、コードレビューの活性化につながった」と阿部氏は語る。

 実施したテスト内容についても情報共有ツールを活用し、スキルの共有やレビュー記録の管理を行っている。このような仕組みを作ったことで、「問題点の追究もできるようになり、スキルの共有が図れ、スキル向上のスピードアップ、スキルの継承につながっている」と阿部氏。

コードレビューのやり方
コードレビューのやり方

 実際、コーディングミスによる不具合の件数は、実施前の188件に比較し、96件に半減。一方、コードレビューの時間は51人時だったのが、160人時の3倍増に。コードレビューの時間が増えたことで、「効率化が図れていないのでは」と思うかもしれないが、「これはメンバー育成の大事な時間。スキルアップ向上による効果は、今後の商品開発に生きてくるので、無駄ではない」と言い切る。

 「今では主体的にコードレビューが行われている」という阿部氏。チームの価値観や目標を明確にし、メンバー内で共有すること、リーダーの意識を変え、品質向上に熱い意識を持っている人材を発掘し、任せること、開発プロセスに組み込み、コーディングガイドラインを作成することなど、チームを活性化するポイントについても言及した。

 「今後もソースコード解析などのツール、USDM(要求仕様を記述するための方法)などの手法を導入し、設計者のレベルアップを図り、高信頼性商品を提供していきたい。そのためにも他部門へもこのやり方を伝搬していくことを考えている」こう語り、セッションを締めた。

C++test、Parasoft DTPは「無料」で体験できます

 本記事で紹介しているツールを、下記ページから無料でお試しいただけます。

 製品についての詳しい情報は下記ページからご覧ください。ここでは紹介しきれなかった機能や活用例などもご紹介しています。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 中村 仁美(ナカムラ ヒトミ)

     大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

バックナンバー

連載:イベントレポート

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5