メールマガジン

MAIL MAGAZINE

Automotive SPICEにおけるプロセスの解釈について ②ソフトウェアユニット検証プロセス

今回は、3月号「Automotive SPICEにおけるプロセスの解釈について ①構成管理プロセス」に続いて、ソフトウェアユニット検証プロセスを対象に、PAMの理解を深めるための内容をご紹介します。

ソフトウェアユニット検証プロセスには、「ソフトウェアユニット検証戦略の策定」についての基本プラクティスがありますが、戦略というのは、馴染みが無くピンとこないという方も多いのではないでしょうか。アセスメントで弱みとして観察されたという話も意外に多く耳にします。また、日頃、様々な企業の方と接していますが、やはり、ソフトウェアユニット検証戦略をきちんと定義されているプロジェクトとそうでないプロジェクトでは、前者の方がより体系的に活動を実施されており、その活動を他者に説明する上でも長けていることが多いように感じています。

そこで、重要な基本プラクティスと言える「ソフトウェアユニット検証戦略の策定」について、改めて考えてみたいと思います。
Automotive SPICEにおけるソフトウェアユニット検証は、静的、動的の両面からソフトウェアユニットを検証することが期待されています。戦略とは、どのような検証をどの程度まで実施していくのか、目指すゴール(目標)を達成するためのアプローチを決めることです。開発プロジェクトには、コスト、納期、品質視点などの目標がありますが、これらを同時になかなか満たせないことが現実であり、捨てること、違いを作ることにあると聞いた時に私はシックリきました。戦略を定義することにより、何を行い、何を行わないのか、どのような箇所に厚みをかけるのかが明らかになります。例えば、私たちはお金の制約のもと生活しています。大きな家と高級車を購入して、子供たち全員に特別な教育を受けさせ、さらには毎年旅行しようという目標があったとします。もしお金に余裕があれば、考えつくことをすべて計画にして実行すれば良いですが、現実的には難しいわけです。その場合に、現在及び将来の自分の給与と貯金状況などを考慮した上で何かを選択して何かを諦める(妥協する)ということを決めます。例えば、中古の家にして、夫婦共働きに切り替えることで世帯収入を増やしつつ子供の成人後に車を購入するなどです。それこそが戦略と言えます。

では、皆さんのプロジェクトではどのような戦略を基にソフトウェアユニット検証が行われていますでしょうか。その戦略が明文化されていなかったとしても、普段、テストリーダが成果物の確認時に結果的に抑えられている内容、チーム内で意見を出し合い浸透している内容、あるいは既存プロジェクトのやり方を参考にしつつ何となく自然に実施されている内容がその戦略に相当するのかもしれません。
例えば、以下のようなものです。
•ソースコードの品質を担保するための観点を集約したセルフチェックシートを運用
•品質上問題がありそうな注意すべきソースコードに絞った上でコードレビューを実施
•ツールによるコーディングルールとの適合性確認は除外ルールが反映された設定ファイルを使用して実施
•範囲の判定条件については境界値をテスト(±1LSB)
•あるサンプルフェーズにおけるカバレッジ基準はMCDC90%以下を許容
•コード行数やサイクロマチック複雑度がある基準を超えるものは先に工数をかけてテスト
など
これらのように、限られた期間やコスト、人的リソースなどの条件のもとで効果的・効率的に静的検証と動的検証をするためにはどうすべきか、その工夫を整理した内容がソフトウェアユニット検証戦略と言えます。プロジェクトに求められている内容や状況は様々なことからプロジェクトによって取るべき戦略に色が出るはずです。回帰(リグレッション)検証戦略、使用するツール・機材などの検証環境の調達を目的にした計画などと共にテスト計画書に定義されることが一般的に良く見受けられます。

アセスメントの観点から見ても、その定義されたソフトウェアユニット検証戦略に基づいて、静的検証と動的検証を行う必要があります。つまり、戦略策定のプラクティスの評定が下がってしまっている場合は、それに基づいて行われる後続の活動に関連するプラクティスの評定にも芋づる式に影響を及ぼす可能性があります。例えば、動的検証として期待されている秩序ある活動というのは、場当たり的な活動ではなく、明確な戦略に基づいてテスト仕様やテストケースを作成してそれに基づいてテストを実施することですので、戦略が明確ではない時点でその一連の活動が成立しないということになります。また、Automotive SPICEのアセスメントは記録をベースに確認します。つまり、きちんと検討されていても、その記録がなければ検討されていないのと同じ扱いになってしまうことがあります。今回ご紹介したソフトウェアユニット検証戦略も、もちろん明文化されている必要がありますのでご注意頂ければと思います。メンバーに戦略を伝える上でも大切なことです。

弊社では、Automotive SPICEに含まれるプロセスを対象に実施担当者およびプロジェクトの管理の視点を中心に必要な活動や作業成果物の観点を習得いただくためのトレーニングを実施しております。アセスメントで見かけた事例なども織り交ぜながらお話をさせて頂いております。詳細につきましてはWeb(https://biz3.co.jp/publictraining_category/automotivespiceengineer)にて案内をさせて頂いておりますので、興味がある方は是非ご受講をご検討頂ければ幸いです。
2022/6/1  山下 祐太朗