状態遷移行列を用いて実行パスの数式表現を得る方法について
ソフトウェアの動作を状態遷移図で表すことができる場合は、状態遷移図を簡単化することで数式表現にすることができ、網羅性の確保が大切なテストケース作成においてこの数式表現を参考にすることができます。 数式表現は、 著者のブログ「ソフトウェアの実行パスの数式表現について 」で記述しているような手順で得ることができますが、ソフトウェアの構造が複雑で状態数が多くなると、手作業でこの手順を行うのは現実的ではない場合があります。数式表現を得るもう一つの方法として、状態遷移図から状態遷移行列を作成して行列計算を繰り返すことで得る方法があります。この方法について記述します。
続きを読むソフトウェアの実行パスの数式表現について
ソフトウェアのテストでは、ソフトウェアの動作の適切性を、実行パスの実行の結果が妥当であるかによって判断しています。 著者のブログ「ソフトウェアのバグ摘出モデルとバグの収束性、テストの網羅性について 」で記述しているように、 稼働後にバグを出さないためにはテストでの実行パスの網羅性が非常に重要になります。網羅性を表す尺度として網羅率がありますが、実行パスの数がソフトウェアにどのくらい存在するかはソフトウェアの構造が複雑であるため把握することが困難な場合があり、網羅率を実際に計算することは難しい場合があります。このような実行パスを分析するために実行パスの表現方法として数式表現(正規表現)について考え、実行パス数や実行パスの選択について検討してみました。
続きを読むテストで「バグが収束している」と簡単に判断してはいけない理由
ソフトウェアのテストでは、x軸を日付、y軸を累積バグ数にしてバグ収束曲線のグラフを作成し、グラフが収束傾向を示しているかによって、ソフトウェアの品質が十分良好なレベルに達しているかを判断したりしてます。著者のブログ「 ソフトウェアのバグ摘出モデルとバグの収束性、テストの網羅性について 」で記述しているように、ランダムにテストを実行する場合は累積バグ数は収束曲線を描きますが、テストケースを順に実行する場合は累積バグ数と実行パスの累積数(累積テストケース数に相当)は直線的な比例関係であるため、一般に累積バグ数のグラフは収束傾向を示しません。そのためテストでは累積バグ数が収束傾向を示すグラフになっても直ちに「バグが収束している」と判断してはいけません。この点について少し詳しく説明します。
続きを読むソフトウェアのバグ摘出モデルとバグの収束性、テストの網羅性について
ソフトウェアから摘出されるバグの累積件数は、なぜ収束曲線を描くのだろうか? またバグの累積件数が収束曲線になるには、どのような条件が必要なのだろうか?
ソフトウェアの稼働後のバグ数は開発時の何と関係があるのだろうか? テストの網羅性とどのような関係があるのだろうか?
ソフトウェアの実行を簡単なモデルで表して、このような疑問への答えについて考えてみました。