「品質分析」は、ソフトウェアの品質改善に向けた重要なプロセスです。
品質分析にはどのような手法があるのか、どのように進めていくべきか、疑問に感じている方も多いのではないでしょうか。
今回は、ソフトウェア開発で用いられる品質分析の手法について紹介します。品質分析の進め方やポイントも紹介するため、ぜひ参考にしてください。
- もくじ
1. ソフトウェア開発における品質分析とは
1-1 品質分析とは?
品質分析とは、製品やサービスの品質に関するデータを分析して、現状の課題や有用な知見などを見つけ出すことです。
ソフトウェア開発では、バグ数やレビュー指摘件数といった多くの品質データを用いて、ソフトウェア自体や開発プロセスの品質を分析します。
品質分析は、ソフトウェアの品質管理におけるプロセスの1つです。「品質測定」により抽出した品質データに対して「品質分析」を行い、その結果を踏まえて「品質評価」を行います。
なお、品質管理の各プロセスの実施内容については、下記の記事で詳しく解説しているので、ぜひ参考にしてください。
1-2 品質分析の目的
品質分析を包括する品質管理の大きな目的は、ソフトウェアの品質を改善することです。
したがって、品質分析も品質の改善に寄与する活動となります。品質の改善につなげるために、品質分析では主に次の3つを目的とします。
品質の現状把握
品質分析を通して、品質データの傾向や関係性を知ることで、品質の現状を把握できます。品質の現状を知ることは「そもそも品質の改善が必要な状況なのか」の判断に必要です。
品質に関する課題の特定
品質分析では、グラフや表などで品質データの関係性や分布を可視化します。これにより、「〇〇機能にバグが偏在している」といった課題を特定しやすくなり、品質改善の方針決定が容易となります。
品質に関する知見の蓄積
品質分析から得られた有用な知見を蓄積することで、継続的な品質改善につなげることが可能です。新しいソフトウェアを開発する際に知見を活用できるため、開発チームの中長期的な情報資産となるでしょう。
1-3 品質分析で扱う主な品質データ
品質分析を実施するにあたって、前提として品質データの収集が必要です。
ソフトウェア開発では「不具合管理表」や「レビュー記録表」といった文書や、ソースコードなどから品質データを収集可能です。
品質分析で扱う主な品質データをまとめました。
品質データ | 概要 |
---|---|
規模 | ソフトウェアの大きさや複雑さを示す指標。 プログラムの行数(LOC:Lines of Code)やファンクションポイント(機能の数・複雑さ)などで算出できる。 |
バグ密度 | バグの量を示す指標。バグ数/規模で算出できる。 |
テスト密度 | テストの量を示す指標。テストケース数/規模で算出できる。 |
レビュー指摘件数 | レビュー記録表に記録された指摘の件数。 |
作業工数 | 各作業を実施するために要した時間や人数。 |
これらは一部であり、ほかにも多くの品質データが存在します。こうした品質データを収集・可視化・分析して、品質における課題や知見を抽出する作業が品質分析です。
ポイントとして、どの品質データを取得するのはか、計画段階で議論、決定しておく必要があります。
この後に続く分析の前に、データが不足していることが発覚すると、そもそも分析ができません。開発計画、テスト計画それぞれで、収集するデータは定義をしておきましょう。
2. 代表的な4つのソフトウェア品質分析手法
ソフトウェア開発の品質分析では、さまざまな「品質分析手法」を用います。品質分析手法とは、品質分析を効率的・効果的に行うための方法論のことです。
品質分析手法を用いることで、複数の品質データの関係性を整理したり、変化する品質データの傾向を可視化したりできます。
ここでは、代表的な4つのソフトウェア品質分析手法を紹介します。
2-1 ゾーン分析
「ゾーン分析」は、品質データをゾーン分けして分析する手法です。2つの品質データの縦軸・横軸とした散布図を作り、収集した各データを点で表現します。そして、品質データを上下限値や中央値、目標値などでゾーンに分割して、データの傾向を把握することが目的です。
たとえばバグ密度を縦軸、テスト密度を横軸に取った散布図を作り、機能ごとの実績データを点で表現します。
テスト密度の目標値を3.0~5.0と設定した場合、「3.0未満」「3.0以上5.0以内」「5.0超過」の3ゾーンに分割されます。バグ密度も同様に目標値で分割すると、合計で9ゾーンに分割することが可能です。
各ゾーンのデータ分布を見ることで、どのゾーンにデータが偏在しているか、異常値はないか、などを分析できます。
なお、下記の記事では実際に図を用いて、バグ密度とテスト密度の指標を分析する方法を解説しています。より詳しく理解したい方は、ぜひ参考にしてください。
2-2 トレンド分析
「トレンド分析」は、時間経過にともなう品質データの変化を分析する手法です。
縦軸に品質データ、横軸に時間変化する要素(開発サイクルなど)を取った折れ線グラフを作り、データの推移を可視化します。データからは、過去の実績を踏まえた品質の傾向を把握可能です。
たとえば、あるシステムのテストをフェーズ分けして実施している場合、フェーズごとの検出バグ数・テスト消化数を1つの折れ線グラフで表現します。
これにより、バグが収束に向かっているのかを把握できるでしょう。データが細かく増減している場合は、近似曲線化することで傾向を把握しやすくなります。
2-3 層別分析
「層別分析」は、品質データをさまざまなカテゴリーで分類して、それぞれを個別に分析する手法です。
品質データの分析単位をカテゴリー分けすることで、特定の担当者や機能などに偏在する問題を検出できます。
たとえば、開発工程ごとのバグ混入数を開発者別に集計して表にすれば、誰がどのプロセスを苦手としているかを把握できるでしょう。さまざまなカテゴリーで分析することで、思わぬ課題が見えてくることもあります。
2-4 チェックリスト分析
「チェックリスト分析」は文字どおり、チェックリストで品質データを整理して分析する手法です。
チェックリストの各列に分析用の項目を設けて、各行に分析対象のデータを列挙します。チェックリストに沿って、データ単位での細かい分析が可能です。
たとえば、検出されたバグを機能ごとにチェックリスト化して、それぞれの重要度や対応工数などを記載していきます。これにより、どの機能のバグ対応が高負荷なのかを把握できるでしょう。
3. ソフトウェア品質分析の大まかな進め方
ソフトウェア品質分析は、正しい流れで進めなければ、品質改善につながりません。ここでは、ソフトウェア品質分析の大まかな進め方を5ステップに分けて紹介します。
3-1 品質データの収集・整理
品質分析を実施するためには、前提として品質データの収集・整理が不可欠です。
まずは品質データを収集して、分析しやすいように整理しましょう。たとえば、不具合管理表やレビュー記録表から品質データを抽出したり、ソースコードのステップ数を集計したりします。
あわせて、過去の開発サイクルのデータや基準値なども整理しておきましょう。
3-2 品質分析手法の選定
次に、収集した品質データをどの手法で分析するかを決めます。品質データや目的に合わせた品質分析手法を選定しましょう。
たとえば、バグ密度やテスト密度が目標値に収まっているのかを分析したい場合は、ゾーン分析が効果的です。
また、BIツールや表計算ソフトなど、品質分析に用いるツールも決めておきましょう。
3-3 品質分析の実施
各品質分析手法を用いて、実際に品質データの分析を実施します。散布図やチェックリストなどを用いつつ、品質データの傾向や関係性などを明らかにしましょう。
1つの品質分析手法に固執せず、複数手法を用いて多角的に分析するのが理想です。
3-4 課題の特定
品質分析の結果を踏まえて、ソフトウェア品質における課題を特定します。課題を特定する際は、分析で判明した事実を深掘りしましょう。
たとえば「機能Aのバグ密度が全開発サイクルを通して高い」といった事実が判明した場合、その要因を掘り下げて考えます。
機能Aに関連するレビュー指摘件数やテスト密度などのデータも加味して「レビューが不十分ではないか?」「テストが不十分ではないか?」のように課題を探していきましょう。
3-5 分析レポートの作成
品質分析をひと通り実施した後は、分析レポートを作成します。各品質分析手法を用いた分析結果や課題などを整理して、文書化しましょう。
作成した分析レポートは、開発チームや品質保証チームなどの関係者に共有します。以降は分析レポートの内容を踏まえて、品質管理における「品質評価」を進めていきます。
4. ソフトウェア品質分析を行う際のポイント
ソフトウェア品質分析で失敗しないためにも、ポイントを把握しておくべきです。ソフトウェア品質分析を行う際のポイントとして、次の3点を押さえておきましょう。
4-1 定期的に実施する
ソフトウェア品質分析は一度で終わりにせず、定期的に実施しましょう。
なぜなら、品質データは時系列で変化していくからです。
少なくとも、開発サイクルごとの決まったタイミングでは実施すべきでしょう。開発サイクルごとの品質データをトレンド分析などで分析すれば、危険な兆候を早期に検出できるメリットもあります。
4-2 データの母集団を明らかにする
ソフトウェア品質分析では、データの母集団を明らかにすることもポイントです。品質分析における母集団とは、分析のテーマに合致したデータの集まりを指します。
つまり、分析のテーマに合わないデータがあると正確に分析できないため、特異なデータは排除して、必要なデータだけを分析対象として選びましょう。
そうすることで品質分析の精度が高まり、課題を漏れなく特定できるようになります。
4-3 ツールを用いて効率化する
品質分析に必要なデータの収集や可視化などを全て手作業で行うのは、非常に骨が折れる作業といえます。
そのため、データ分析に役立つ「BIツール」など、各種ツールを用いて効率化することが理想です。
なお、当サイトを運営するバルテスでは、品質データの可視化に便利な「QualityTracker」を提供しています。
テストケースをクラウド管理できるツールであり、品質データの中でも重要なテストに関するデータを可視化できます。「テストデータを効率よく収集・管理したい」という方は、ぜひご利用ください。
まとめ
品質分析とは、製品やサービスの品質に関するデータを分析し、現状の課題や有用な知見などを見つけ出すことです。
ソフトウェア開発ではゾーン分析やトレンド分析など、さまざまな品質分析手法が用いられます。
代表的な品質分析の手法は以下の4つです。
- ゾーン分析
- トレンド分析
- 層別分析
- チェックリスト分析
ソフトウェア品質分析は、進め方やポイントを把握したうえで実施することが大切です。
品質分析を適切に行うことで、ソフトウェアの品質改善につなげられるでしょう。ソフトウェア品質分析を取り入れる際は、今回の内容をぜひ参考にしてください。