成功体験ストーリー
一生かかっても終わらないと思っていた
そんなテストも短時間で可能になった
採用案件:医療用モニター向けファームウェア開発
ご担当者:大手モニターメーカー エンジニア
動機 | 単体、結合、総合テスト…もう限界だ テスト工数が、開発全体の54%も占めていた |
---|
活用 | 動かすだけでテスト結果をリアルに収集してくれる 単体テストで59.3%の工数削減を実現! |
---|
効果 | ベテランと若手がコラボ活用 1万回に1回しか発生しない不具合 80時間かかっていた分析作業が3時間に! |
---|
動的テストツールを活用して
テスト工数削減と品質向上を実現したい
動的テストツールを導入したきっかけ
単体、結合、総合テスト…もう限界だ
テスト工数が、開発全体の54%も占めていた
液晶ディスプレイなどのモニタ市場の中でも、特に高い精度を求められるのが医療用モニタです。レントゲン画像など、多種多量の医用画像を表示し、診断に当たる医師に正しい情報を提供するため、濃淡などを正確に再現しなければいけません。あるものはある、ないものはない。当たり前のことですが、モニタの設置環境に合わせて補正を行う必要があり、その補正を行うためのICのファームウェアライブラリの開発を担当しています。
私が開発しているファームウェアライブラリのソースコード規模は約48万ステップ。その開発工数のうち、テストの工数が54%も占めています。品質を維持しつつ、いかにテストの工数を削減するかということに、課題を感じていました。テスト作業の多くは機械的な作業でしたので、自動化で効率化できると考えてはいました。しかし、ツールの多くは自動実行はできても、実行したプログラムの結果までは収集することができませんでした。そこで注目したのが動的テストツールです。テスト作業の効率化、テスト工数の削減、品質の維持、さらには向上を目指し、動的テストツールを導入することに決めました。
なぜ動的テストツールか?
動かすだけでテスト結果をリアルに収集してくれる
単体テストで59.3%の工数削減を実現!
単体テストフェーズにおいて、以前はソースコード1行ごとにステップ実行してテストしていました。しかし、そんな方法では一生かけても終わらない…。動的テストツールを導入してすぐ、まずはここにメスを入れました。関数のパステストを自動実行できるようにしてから動的テストツールでカバレッジを計測します。ツールを使ってテストポイント(実行経路情報を取得するためのマクロ処理。printf文のようなもの)を自動でソースコードに挿入し、関数ごとのカバレッジを計測。DT+では、C0/C1カバレッジを計測しました。また、その計測結果の判定作業も自動化することで、単体テストの工数を59.3%も削減できています。
結合テストでは、シーケンスの可視化に使用しました。シーケンスが設計通りのものになっているかをテストする際、以前はI/Oインターフェースとオシロスコープを使っていましたが、担当者によってテストのバラつきが大きく、結果を承認することができませんでした。そこで動的テストツールを活用し、どの関数が、どのタイミングで動くのかを具体的に可視化。同時に、関数の実行時間や関数が呼び出される周期時間も取得し、結合テストの担当者によるバラつきもなくなり、実行結果にもとづく正確で、リアルなエビデンスを残すことができるようになっています。
動的テストツールを導入してどうか?
ベテランと若手がコラボ活用
1万回に1回しか発生しな不具合
80時間かかっていた分析作業が3時間に!
特に効果が大きかったのが総合テストでの活用です。医療用モニタ起動時にごくまれに発生するエラーの原因解析に活用しました。起動しても画面が表示されないエラーでしたが、1万回に1回程度しか発生しないうえに、検証のためにデバッガをつなぐとエラーは起きないため、解析は難航、迷走状態にハマりました。
従来は原因を推測した上で、実機でエラーを再現し、オシロスコープで確認しながら検証する作業を繰り返しながら問題を特定していました。しかし、推測に頼っているがために原因が簡単にはヒットせず、特定できるまでひたすら繰り返す必要があり、その作業にはベテランエンジニアでも80時間は解析に必要でした。しかもそもそも問題の発生自体が極めてまれなため、エラーを再現すること自体にも多くの時間がかかり、再現作業まで含めると解決までに1カ月近くかかっていたのが実情です。
そこでエラーの原因解析に動的テストツールを活用。しかもテストの実行作業自体は入社2年目の若手エンジニアが行い、解析にはベテランエンジニアが加わるという形のコラボレーション作戦を決行しました。動的テストツールを使うことでテストを行うこと自体は経験の浅い若手エンジニアでも2.5時間で可能となりました。テスト結果の解析にはベテランエンジニアの熟練のノウハウが必要とはなりましたが、それでもなんと0.5時間。電源ONした直後の起動時のエラーでも、リアルなプログラムの動きが可視化できているので、エラーの再現時間を除けば、80時間かかっていた作業が3時間で済むことになり、その工数削減の幅はなんと96.25%にも及んでいます。
動的テストツールは、作業の効率化だけでなく、カバレッジの数値化やシーケンスの可視化により品質向上ももたらしています。今後は夜間のテスト自動実行と自動解析、客先でのエラー発生時の動作ログ取得手段など、ツール活用の幅を広げていく予定です。
すぐ見られるデモンストレーション
DT+の導入手法から実際の解析の様子まで、基本的な使い方をデモンストレーションいたします。
ぜひ実動作をご覧いただき、その効果をご確認ください。