プログラム実行時の変数値変動履歴からのバグ原因の可能性がある変数の推測
プログラムにバグがあっても、命令文は走ってしまえば終わりでバグの足跡を残さない。一方、バグの足跡は変数に残っていることがある。そこで、プログラム実行時の変数値の履歴をログとして収集し、これを解析することで怪しい変数を見つけ、この変数に書き込みを行った命令文の周辺にバグがあるのではとの目星をつけることができないかと考えた。 そこでまず第一段階として、全ての変数に代入される値をログとして保存し、障害が発生した実行時のログと正常動作したログで異なる値を出力している変数を怪しい変数と判断する手法を考えた。本手法を1つのオープンソースプロジェクトに適用した結果、代入命令 32861 箇所中、怪しい代入命令を 270 個まで絞り込む事ができ、確かにこの中にバグ原因となる代入命令が含まれていることを確認できた。この結果、提案手法によりバグ原因となる代入命令及び変数を推測できる可能性のあることがわかった。