
上記をクリックして頂けると応援になります。
組込ソフトウェアは開発中に様々な問題が頻繁に生じます。その
中でもうまく動かない、違った動作をする、時々変な動きをする
などのソフトウェア、ハードウェアに問題がありそうな場合は、
原因を突き止めるのに苦労する場合が少なくありません。
こういう場合にまず問題になるのが、再現性があるかどうかと言
う事です。頻繁に再現すれば、その状態が起きる条件を注意深く
観察していれば、原因の範囲が絞れてデバッガや各種測定器など
を利用すれば原因は比較的見つけやすいと言えます。それでも、
こんなはずは..と思っている事があると簡単な事でもなかなか
見つからない事は良くあります。そのためにも、運良く再現性が
ある時は時間節約のために、一旦頭をリセットし、全ての可能性
について同じ扱いをして勝手に可能性の範囲から除外しないよう
にすれば必ず見つけることができます。
再現性が少ない場合は原因を探すのは非常に困難です。それでも
ある程度再現してくれれば、少し時間さえかければ再現出来るの
で同じように何とかなりますが、めったにとか殆ど再現しない場
合は普通にやっていたのでは原因を探ることは難しくなります。
こう言う場合は再現してくれた時を千載一遇のチャンスとする様
な考え方が必要になります。滅多にないチャンスですから、現象
が起きた時、その時の1回で確実に原因を掴める様な工夫が大事
になります。
幾つか方法がありますが、良く行われる方法としてソフトに追加
のトラップや状態確認の極わずかな機能を追加することが行われ
ます。どのような機能をどこに追加するかは、起きている現象に
よって相当考える必要が有りますが、経験を積めば比較的短時間
で決められると思います。出来れば、予めこの機能を最初から組
み込んで置いておくと例え1回しか現象が起きなくても原因を掴
める確立がずっと高くなります。作る時から不具合に対する勝負
は既に始まっていると言えます。