SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「テストプロセス改善」をしてバグを削減しよう

ソフトウェアの「バグをなくせ」と言われたら? テストプロセス改善でバグを削減しよう【方法論を解説】

「テストプロセス改善」をしてバグを削減しよう 第1回

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

 皆さまの中にはバグが多発しており、再発防止策を講じなければならないと悩んでいる方がいらっしゃるのではないでしょうか。または、上司に言われて会社全体のバグ数の削減をしなければならない方や、夜を徹してバグ修正して精も根も尽き果てたという方もいるかもしれません。筆者はテスト専門会社で品質の専門家として仕事をしている関係上、バグの削減を相談されることが多いです。最近では、ある金融系の会社の社長に、「市場バグが頻発しており困っている」と相談を受けました。そこで、弊社がテストプロセスを改善したところ、市場バグが93件/年から翌年10件/年に89.2%改善しました。本連載では、バグ削減の1つの方法として、テストプロセス改善のやり方を3回にわたりご紹介します。第1回となる本記事では、テストプロセス改善がなぜバグの削減につながるのかを考察した後、テストプロセス改善の方法論を解説します。

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

対象読者

  • システムの品質が悪く、テストの質を改善したい方
  • 人によってテストの質にバラツキがあり、テスト品質を安定させたい方
  • プロセス改善の中のテスト部分をどのように改善したらいいか知りたい方
  • テストプロセス改善とはなにかを知りたい方
  • 自社でテストプロセスを改善したい方

はじめに

 バグを削減するのに、なぜテストプロセス改善が有効なのでしょうか。筆者は、主に2つの理由があると考えています。1つ目は、プロセス(テストプロセスを含んだプロセス全般)がソフトウェア開発・保守・運用を支える三要素の1つだからです。

 情報処理試験などを実施しているIPA(独立行政法人 情報処理推進機)が発行している「プロセス改善ナビゲーションガイド―なぜなに編 (SEC BOOKS) 」では、プロセスのことをソフトウェア開発・保守・運用を支える三要素の1つとして紹介しています(図1)。このソフトウェア開発の重要要素であるプロセスを直に改善することで、バグの削減を狙います。ちなみに、これらの三要素を、PPT(Process, People, Technology)フレームワークと呼ぶこともあります。

図1:ソフトウェア開発・保守・運用を支える三要素(出典:『プロセス改善ナビゲーションガイド―なぜなに編(SECBOOKS)』P63)
図1:ソフトウェア開発・保守・運用を支える三要素(出典:『プロセス改善ナビゲーションガイド―なぜなに編(SECBOOKS)』P63)

 プロセス改善の効果ですが、同じく『プロセス改善ナビゲーションガイド―なぜなに編(SEC BOOKS)』が参考になります。データは、テストプロセスだけでなく、開発プロセスを含んだ全体のプロセス改善ですが、品質に48%の効果があったというカーネギーメロン大学ソフトウェアエンジニアリング研究レポートが紹介されています(図2)。弊社の事例では、テストプロセスを改善し、市場バグを93件/月から翌年10件/月に89.2%改善されたので、効果があると言えそうです。

図2:プロセス改善の効果(報告例)(出典:『プロセス改善ナビゲーションガイド―なぜなに編(SECBOOKS)』P25)
図2:プロセス改善の効果(報告例)(出典:『プロセス改善ナビゲーションガイド―なぜなに編(SECBOOKS)』P25)

 2つ目は、バグを顕在化させるのはテストだからです。人はミスをしてしまう生き物です。なので、どうしてもシステムにバグを混入させてしまいます。ただし、バグを混入させてしまったとしても、混入したバグをテストによって検出することができれば、バグを除去することができます。よって、バグの削減にテストは最も重要な役割を担っていると言えます。

 そのテストのプロセスを改善し、効果的なテストを実施することができるようになれば、バグの削減につながります。なお、本連載ではレビューも、テストとして扱います。国際的なソフトウェアテストの資格であるISTQB(日本ではJSTQ)では、レビューを静的テストの1つとして定義していますが、本連載ではその定義を採用します。

テストプロセス改善とは?

 筆者は職業柄、出版されているプロセス改善関連の本や記事を多く読んできました。しかし、個別手法の説明が多く、テストプロセス改善全体を俯瞰した本や記事は、なかなか見つけられませんでした。それが数年前、「International Software Qualification Bosrd Expert Level Syllabus Improving the Testing Process(Implementing Improvement and Change)2011(以下、ISTQB Syllabus)」が、見事にテストプロセス改善の手法を整理していることに気づき、感動したのを覚えています。

 そこで、本連載ではISTQB Syllabusの分類にもとづいて解説していきます。残念ながら、ISTQB Syllabusは英語のみで、日本語訳は今のところありません。そのため筆者が適宜、日本語に訳して話を進めるので、厳密性を求める場合は原文に当たってください。なお、各方法論の説明では「テスト技術者資格制度Advanced Levelシラバス日本語版テストマネージャVersion 2012.J03」も適宜、参照します。

テストプロセス改善の分類

 ISTQB Syllabusによると、テストプロセス改善は以下の4つに分類されます。

  1. モデルベースドアプローチ(Model-based Approaches)
  2. 分析的アプローチ(Analytical Approaches)
  3. ハイブリッドアプローチ(Hybrid Approaches)
  4. その他のアプローチ(Other Approaches)

 モデルベースドアプローチは、大学や研究機関、企業などが作成したモデルに沿ってテストプロセスを改善していくアプローチになります。モデルは、ベストプラクティスから作成されたもので、どのような手順でテストプロセスを改善していけば良いかを示しています。中には、具体的な作業やフォーマットまで落とし込んだモデルもあります。モデルベースドアプローチは、トップダウンでプロセス改善することが多いことから、トップダウンアプローチと呼ばれることもあります。

 分析的アプローチは、メトリクスの監視や問題発生時の分析などから改善点を見つけ、テストプロセスを改善していくアプローチです。分析的アプローチは、現場主導でボトムアップ的にプロセス改善することが多いことから、ボトムアップアプローチと呼ばれることもあります。

 ハイブリッドアプローチは、モデルベースドアプローチと分析的アプローチを組み合わせてテストプロセス改善をしていくアプローチ方法です。その他のアプローチは、開発者のスキルによる改善、ツールを使用した改善、別のテストアプローチによる改善、規格や規定の適合による改善、特定リソース優先による改善の5つがISTQB Syllabusで紹介されています。

 ISTQB Syllabusでは、4つの分類の中からモデルベースドアプローチと分析的アプローチの2つのアプローチをメインで扱っているので、本連載でもこの2つを考察してきます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
モデルベースドアプローチ(Model-based Approaches)(1)

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
「テストプロセス改善」をしてバグを削減しよう連載記事一覧

もっと読む

この記事の著者

高木 陽平(VALTES ADVANCED TECHNOLOGY INC.)(タカギ ヨウヘイ)

  東京理科大学大学院 技術経営修士(MOT)卒業。バルテスのフィリピン子会社であるVALTES ADVANCED TECHNOLOGY INC.の取締役。今まで、多数のソフトウェアテストやテストプロセス改善の業務に従事。大学でソフトウェア工学の研究室に入り、プロセス改善を研究。そのこともあり、CM...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/14729 2021/09/14 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング