Powiedzmy, że chciałem rozpocząć projekt open source, który mam nadzieję / oczekuję, że wiele osób prześle łaty i tak dalej. Czy opłaca się stosować ścisłe podejście TDD? Czy mogę / powinienem oczekiwać / zaufać współpracownikom, że będą pisać testy jakości za każdym razem, gdy przesyłają łatkę?
Jedną z rzeczy, o których myślałem, jest pisanie zestawów testów dla poszczególnych raportów błędów i żądań funkcji oraz wymaganie, aby wszystkie łatki / żądania ściągnięcia przeszły pomyślnie testy, ale w tym momencie wydaje się, że lepiej byłoby po prostu napisać właściwość / poprawkę błędu siebie.
O ile wiem, większość dużych projektów open source, które używają TDD (lub przynajmniej piszą testy) wydają się być napisane głównie przez osobę lub zespół, gdzie łatwo jest egzekwować praktyki takie jak TDD.
źródło
Odpowiedzi:
Naprawdę nie można egzekwować podejścia TDD (najpierw testowego) w projekcie open source, w którym poprawki mogą być przesyłane przez ogół społeczeństwa.
Co może wymusić jest to, że wszystkie poprawki musi mieć zestaw testów dla poprawki zawarte w plastrze i że tych przypadków testowych, a także wszystkie dotychczasowe przypadki testowe, musi przejść. Możesz to egzekwować, przyznając uprawnienia do zatwierdzania tylko kilku zaufanym programistom, o których wiadomo, że stosują i zgadzają się z zasadami projektu, oraz publicznie stwierdzając, że zgłoszenia / żądania ściągnięcia zostaną uwzględnione tylko wtedy, gdy otrzymają pozytywny przypadek testowy (z wystarczający zasięg).
Nie gwarantuje to, że test zostanie napisany jako pierwszy , ale gwarantuje, że test zostanie napisany .
źródło
Możesz poprosić ludzi o przesłanie łat tylko do testów, zanim będą mogli pracować nad kodem; zapewniłoby to dodatkową możliwość przejrzenia planowanego projektu przed napisaniem samego kodu.
W praktyce może to zabić entuzjazm ludzi, którzy przyczynili się do projektu - lub może rozpalić ogień u tych, którzy zgadzają się z twoją metodologią.
Recenzenci musieliby jednak bardzo dobrze radzić sobie z szybkim odwracaniem recenzji projektów, aby nie opóźniać rozwoju.
źródło