Мои работодатели проводят ежемесячные соревнования по дневному тестированию. Целый день посвящен написанию юнит-тестов - очевидно, что мы проводим больше тестов в течение месяца, но это целый день - и «победитель» конкурса получает приз. Однако мы находим, что трудно определить, кто победитель.
Мы назначали очки для каждого теста. Так что, если вы написали модульный тест, как это ...
for (int i = 0; i < 100; i++) {
assertTrue(i*i, square(i));
}
вам бы дали 100 баллов. Очевидно, это упрощенный пример, но он демонстрирует проблемы с назначением «точек» для каждого теста.
Мы в первую очередь магазин Java и Javascript. Поэтому я предложил подсчитать количество проверенных ветвей кода в качестве метрики. Мы можем легко подсчитать количество ветвей, протестированных с помощью инструмента покрытия кода (например, EclEmma). Однако, не уверен, как мы будем делать это с нашими тестами Selenium и получением покрытия кода из источников Javascript (есть идеи?)
Есть ли у кого-нибудь предложения о том, как мы могли бы лучше определить победителя этого конкурса?
редактировать
Я знаю, как писать модульные тесты, я знаю, как писать эффективные модульные тесты, мне не нужна помощь в определении того, что тестировать. Я не имею никакого контроля над этим соревнованием - соревнование продолжится. Так что я либо добавляю какой-то вклад, чтобы сделать его лучше, либо продолжаю играть в тесты (да, я играю в них. Конечно, я играю в них. Есть призы, которые можно выиграть)
редактировать
Этот вопрос здесь , очевидно, не является дубликатом, хотя он содержит полезную информацию о том, как найти хорошие тестовые примеры, он не предоставляет никаких полезных метрик для оценки конкуренции.