私の雇用主は、毎月の単体テストの日の競争を実施しています。1日は単体テストの作成に専念します。明らかに、1か月を通してより多くのテストを行いますが、これは1日であり、コンテストの「勝者」には賞が与えられます。しかし、勝者が誰であるかを判断するのは難しいと感じています。
各テストケースにポイントを割り当てていました。したがって、このような単体テストを作成した場合...
for (int i = 0; i < 100; i++) {
assertTrue(i*i, square(i));
}
100ポイントが与えられます。明らかにこれは単純な例ですが、各テストケースに「ポイント」を割り当てる際の問題を示しています。
私たちは主にJavaとJavascriptのショップです。そのため、テストしたコードブランチの数をメトリックとしてカウントすることをお勧めします。コードカバレッジツール(EclEmmaなど)を使用して、テストしたブランチを簡単にカウントできます。ただし、Seleniumテストでこれをどのように行い、Javascriptソースのコードカバレッジを取得するのかわかりません(アイデアはありますか?)
このコンペティションの勝者をどのように決定できるかについての提案はありますか?
編集
私は単体テストの書き方を知っています。効果的な単体テストの書き方を知っています。何をテストするか決めるのに助けは必要ありません。私はこの競争をコントロールすることはできません。競争は続きます。それで、私はそれを改善するためにいくつかの入力を追加するか、テストをゲームで続けます(はい、私はそれらをゲームします。もちろんそれらをゲームします。賞品があります)
編集
この質問ここでは、明らかに重複していない、それは良いテストケースを見つける方法に関する有用な情報が含まれているものの、それが競争を評価するための任意の有用な指標を提供していません。