Moi pracodawcy prowadzą comiesięczny konkurs na dzień testów jednostkowych. Cały dzień poświęcony jest na pisanie testów jednostkowych - oczywiście przeprowadzamy więcej testów w ciągu miesiąca, ale to jest cały dzień - a „zwycięzca” konkursu otrzymuje nagrodę. Trudno jednak ustalić, kto jest zwycięzcą.
Przypisywaliśmy punkty za każdy przypadek testowy. Więc jeśli napisałeś taki test jednostkowy ...
for (int i = 0; i < 100; i++) {
assertTrue(i*i, square(i));
}
dostaniesz 100 punktów. Oczywiście jest to uproszczony przykład, ale pokazuje problemy z przypisywaniem „punktów” do każdego przypadku testowego.
Jesteśmy przede wszystkim sklepem Java i JavaScript. Zasugerowałem więc zliczenie liczby gałęzi kodu przetestowanych jako metryka. Możemy łatwo policzyć testowane gałęzie za pomocą narzędzia pokrycia kodu (takiego jak EclEmma). Nie jestem jednak pewien, jak to zrobilibyśmy z naszymi testami Selenium i zasięgiem kodu w źródłach JavaScript (jakieś pomysły?)
Czy ktoś ma jakieś sugestie, w jaki sposób moglibyśmy lepiej określić zwycięzcę tego konkursu?
Edytować
Wiem, jak pisać testy jednostkowe, wiem, jak pisać skuteczne testy jednostkowe, nie potrzebuję pomocy w określeniu, co przetestować. Nie mam kontroli nad tym konkursem - konkurs będzie trwał. Więc albo dodaję jakiś wkład, żeby było lepiej, albo kontynuuj testowanie gier (tak, gram w nie. Oczywiście, że je gram. Są nagrody do wygrania)
Edytować
To pytanie tutaj oczywiście nie jest duplikatem, chociaż zawiera przydatne informacje o tym, jak znaleźć dobre przypadki testowe, nie zapewnia żadnych użytecznych wskaźników do oceny konkurencji.