MasaoApril's Library.

Software Testingなネタを書いてみた。

JaSST'13東海SIG(26) 探索的テストの5要素:第4要素『経験則によるテスト』

 今回は、JaSST13'Tokai SIGで(時間不足で)触れなかった「探索的テストの5要素」の第4要素『経験則によるテスト』です。

第4要素:経験則によるテスト

 経験則は、どう実施かを決めることを手助けする経験的常識またはガイドライン

(1)経験的常識

・産業機械など

 電源用ランプが消灯状態でボタンを押下後、電源ON。

 電源用ランプが消灯時に電源ボタンを押下後、電源ランプが点灯して電源が供給されてマイコンやメモリといった回路周りが動作してから、ファームウェアでメモリチェックや内部データの初期値格納といった初期化処理が実行されます。
 私は電源ランプと初期化処理に着目し、電源ランプ点灯直後に電源断/電圧低下/瞬停(数10msの停電)を発生させ、初期化処理完了後の機能テストを考えていました。テスト結果から、電源ランプ点灯から電源断までの時間をms単位で変えたり、電圧低下のパターンを変えたり、瞬停時間をms単位で変えたりすることで、バグを見つけるための条件を探索するのもよいかもしれません。

・エレベータ

 [↑]ボタンを押下すると、下の階から上昇したカゴが停止。

 例えば、エレベータのかごが地上1階から30階へ上昇しているとき、25階のフロアから[↑]ボタンを押下してかごを停止させますが、押下時にかごが通過している階によっては「かごが停止」or「かごの停止が間に合わず通過」のどちらかの結果に至ります。
 以前、首都圏の高層階ビルでエレベータの到着待ちしたとき、とある階から"[↑]ボタン押下時にかごが通過している階"が○○階を通過していなければ「かごが停止」し、○○階を通過していれば「かごの停止が間に合わず通過」するか気になったことがあり、移動階の表示を見ながら[↑]ボタン押下のタイミングを変えたりしていましたが、エレベータのかごの挙動を観察してどのように入力するか考えてみると、テストケースが見えてくるかもしれません。

(2)ガイドライン

・社内開発規約「MISRA Cの規約に沿って実装すること。」

 組み込み系でおなじみの方もいらっしゃると思いますが、ソースコードに対して某静的解析ツールを実行すると、MISRA Cの規約違反の一覧が出てきますが、担当者により規約違反の傾向に気付くことがあります。過去のプロジェクトで、特定の担当者の某静的解析ツールの結果ファイルを見たとき、型変換の誤用の警告が目立っていたので、型変換の誤用しそうな設定値を入力してテストしてみたら、バグが検出したことがありました。
 静的解析ツールや開発に関わるメトリクス(※間接メトリクスも含む)を収集し、統計処理を施すことで欠陥の傾向が見えてきたら、欠陥を検出できそうなテストを試してみることも作戦の1つかもしれません。

次回は、「探索的テストの5要素」の第5要素『見直し可能な結果』を書きます。