jcunit's blog

JCUnitの開発日誌(ログ)です。"その時点での"JCUnit作者の理解や考え、開発状況を日本語で書きます。

JCUnitに必要なもの。

この三連休は、文献[1][2]を読んだりのんびり散歩していたりしたのだが、PICTの完成度をまずは目指さないとなとの思いを新たにした。
PICTに比較してJCUnitに欠けているものはおおよそ以下の機能だろう。

  1. 「制約(constraints)」機能
  2. 因子の階層
  3. Negative testの生成
  4. 任意強度でのテスト生成

思うに、重要度もこの順。
因子の階層(パラメタを入れ子にする機能。単体テストの範囲ではあまり気にしなくていいかもしれない)とNegativeテスト(異常系用のテスト生成。でも現行の機能でもめんどくさいながらもできる)は実装もそれほど難しくなさそう。で、あると非常に便利。しかし、なんといってもConstraintを実装しないと実用的なシーンではかなり辛い。と、思う。

無論、当初から、「制約」「禁則」と呼ばれる概念を全く意識していなかったわけでもない。"RuleSetBuilder"を用いて、テストの実行時に入力値・出力値の妥当性を検査するRuleを定義する仕組みが実装済みだ。

しかし、現状では生成されたテストを実行する際に評価されるのであって、生成されるべきテストを定義づける(制約を破ったテストを作らないようにする)ために使うことはできていない。

まずはここをなんとか完成させよう。ここを乗り越えれば、視界が大きく開けるはずだ。
そして、

  1. テスト件数の最適化

という一番楽しい部分に取り組むのだ。

  • 参考文献
  1. Pairwise Testing in the Real World: Practical Extensions to Test-Case Scenarios, http://msdn.microsoft.com/en-us/library/cc150619.aspx
  2. Combinatorial test cases with constraints in software systems, http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6221818