Tdd - test / code ratio

Jakie jest ‘przeciętne’ oraz zdrowe test/code ratio .
np mam 300 linii kodu w modelu i 900 linii testów. Daje to ratio 3.0.

Pytam bo się spotkałem z różnymi informacjami, jedni mówią około 2.5, a od jednej osoby usłyszałem 6.0 (LOL) co mnie z deka przeraziło.

Edycja:
A i jeszcze o ile mniej więcej procent się wydłuża czas pisania projektu w stosunku do kodu bez testów. 30-50%?

Ja celuję w 2.72

A na poważnie, who cares?

Dla jednej aplikacji będzie to 50x, a dla innej wystarczy 2x. Te liczby nie powinny być jakimś wyznacznikiem, powinieneś sam się zastanowić jakie części Twojej aplikacji są najważniejsze i tam dać najwięcej testów, a przy ich pisaniu rozpisywać jakie przypadki powinieneś testować, żadna liczba Ci tego nie powie, bo możesz mieć test to code ratio 6, a i tak mieć kiepskie testy w tych miejscach, które Cię najbardziej interesują.

Bezmyślnie liczone test/code ratio służy wyłącznie masturbacji, więc dobierz sobie takie, z którym będziesz się najlepiej, teges, czuł :wink:

@Tomash
Nie chodzi mi o pedantyczną dokładność że zawsze musi być tyle i tyle. Po prostu oszacowanie mniej więcej.
Temat może i bez sensu, ale po prostu byłem ciekaw. :stuck_out_tongue:

A co jak stosujecie TDD to wam tyle samo zajmuje pisanie projektu co ‘na pałę’ bez testów? :stuck_out_tongue:

[quote=Matthias]@Tomash
Nie chodzi mi o pedantyczną dokładność że zawsze musi być tyle i tyle. Po prostu oszacowanie mniej więcej.
Temat może i bez sensu, ale po prostu byłem ciekaw. :stuck_out_tongue:

A co jak stosujecie TDD to wam tyle samo zajmuje pisanie projektu co ‘na pałę’ bez testów? :P[/quote]
Napisanie i sprawdzenie kodu zajmuje 2 razy mniej w dniu jego powstawania i 10 razy w całym cyklu życia średniej aplikacji.

A to ciekawe. :slight_smile:
Mój obecny pracodawca stwierdził, że tdd zajmuje zbyt dużo czasu czyli około 130-150%.

Moim zdaniem testów powinno być tyle, żeby:

  • zapewniały że kod działa jak oczekiwano, czyli wychwytywały dowolną regresję
  • dokumentowały wszystkie napotkane-i-załatane bugi
    ni mniej, ni więcej :wink:

Jeśli potrzebujesz test/code ratio na poziomie 2.0 żeby to zapewnić – proszę bardzo. Jeśli wystarczy Ci 0.5 – jeszcze lepiej. W aktualnym projekcie mam test/code ratio na poziomie właśnie 0.5-0.6, i wszystko co trzeba (aplikacja po prostu udostępnia json API, żadnego klikalnego frontendu) jest przykryte w całości.

http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf Badanie o wpływie TDD na projekt. W skrócie: TDD wydłuża o kilkadziesiąt % czas powstania, ale też zmniejsza liczbę znalezionych bugów. Dokładne liczby w tekście.

To zależy. Głównie od projektu.

Miałem projekty, gdzie pisanie testów byłoby tylko stratą czasu i miałem projekty gdzie nawet test/code ratio w okolicach 8-10 niespecjalnie uspokajało.
Poza tym, liczy się jakość, a nie ilość.

Z ciekawości… Jakiego typu to były projekty?

Proste CMS-y i prototypy.

Ok zdziwiłbym się gdyby ktokolwiek testy do prototypów próbował pisać;)

Znam takich co piszą. Zresztą, „prototyp” dla różnych ludzi oznacza różne rzeczy.