連載
猫でも使えるソフトウェアのテスト網羅(4):C1カバレッジの弱点とエンジニアの信念:山浦恒央の“くみこみ”な話(87)(1/4 ページ)
ソフトウェアにおけるホワイトボックス・テストの代表格がパス網羅です。パス網羅にもいろいろありますが、条件文の結果が「真」「偽」になる両方をテストする「C1」が広く利用されます。今回はC1パス・カバレッジの長所と短所を確認します。
1. はじめに
高品質が求められる組み込み業界で、単体テストの役割は非常に重要です。本シリーズ「猫でも使えるソフトウェアのテスト網羅」では、単体テストのホワイトボックス・テスト技法の王様であるパス網羅を取り上げています。
パス網羅は、プログラムの命令文やパスに着目したテスト手法で、テスト量やテストの進捗を定量的に把握できることが非常に大きな利点です(*1)。今回はC1カバレッジについて復習し、その長所と短所を整理します。C1カバレッジの短所は、エンジニアの信念やセンスと深くつながります。
*1:私はペンネームを使って、全く別のガチガチ文系の仕事もしています。ある意味、理系と文系の両極端の人生を歩んでるのですが、両者の違いを明確に感じるのが、「どこまで仕事が進んだか」のいわゆる進捗管理です。
文系仕事での翻訳や原稿執筆で、編集者からどこまで終わったか聞かれると、「(実際は2割程度なのに)だいたい3分の1はできてます」「(3割少し越えた時点で)ほぼ半分完成ですよ」と言えば、編集者から「おお、そうですか。残りも頑張ってください」と褒めてもらえますが、ソフトウェア系の理系の場合、「コーディグは、本日17時19分の時点で全2万5915行分の7003行終わりました」と具体的な数字で報告しないと管理者は不安でたまらないようです。
理系では、「だいたい」「ほぼ」「おおむね」という形容詞を絶対に使わず、何が何でも具体的な数字で表現するのが基本と思います。一方、文系関係の仕事の素晴らしいところは、大きなトラブルがあっても非常に臨機応変に柔軟に対応して、締め切りに間に合わせてしまうところでしょう。
「北原さん、事故で入院したの? そりゃ困ったね(と言いながら、大して困っていない)。じゃあ、足りない原稿は赤沢さんと本多さんにお願いして、編集作業は山野さんにやってもらおう。みんな忙しい人ばかりだけど、まあ、何とかなるでしょう」とササッと決まり、すぐに助っ人にお願いの電話をかけるなんてよくある話です。
理系のプロジェクトでは、キーパーソンが事故で入院すると、下手をするとプロジェクトが潰れたりします。それぞれの「文化」といえばそれまでなのでしょが、長い年月をかけて育ってきた「進化の形」だと思います。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 猫でも使えるソフトウェアのテスト網羅(3):無料ツールで単体テストを楽に実行しよう
組み込み開発の大規模化により、プログラムテストの重要性が高まっています。パス網羅をベースにする単体テストは困難な作業ではありませんが、ツールを導入することで効率化できます。今回はGcovを用いたテスト手法を紹介します。 - 猫でも使えるソフトウェアのテスト網羅(2):パス網羅の種類と内包する問題点
趣味ならとにかく、ビジネスとしてのプログラミングに「網羅的なテスト」は欠かせません。網羅的なテストの代表的な手法である「制御パス・テスト」の手法について、解説していきます。 - 猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ
ソフトウェアのバグが全て取れたか?は開発における最大の関心事でしょう。網羅的テストはもちろんですが、その前に単体テストが必要です。代表的な手法である「制御パス・テスト」の基礎を紹介していきます。 - 統計の食わず嫌いを直そう(その11)、5分で残存バグ数を予測する方法
「回帰分析」は統計分析の有力な手法であり、Excelさえあれば5分で統計的に根拠のある数字を出せます。今回はExcelのツールを使って簡単に残存バグ数を予測する方法を解説します。 - 統計の食わず嫌いを直そう(その10)、ワインを飲まずに品質を予測する方法
統計アレルギーの解消には、身近な分野で考えてみることも大切です。今回は「ワインを飲まずに、ワインの品質を予測する方法」を例に統計に触れてみましょう。