Wpis z mikrobloga

Tyle się naczytałam o #tdd #bdd, trochę widziałam jak to działa w praktyce, ale że zespół dopiero zaczynał, to powiedzmy, że nie wyszło to książkowo ( ͡° ͜ʖ ͡°)

Pracuje ktoś w zespołach, w których podejście test-first rzeczywiście działa i się sprawdza - przyspiesza delivery, zmniejsza ilość błędów, pomaga wypuszczać lepszy soft? Od czego zależy powodzenie - dobrych wymagań, zrozumienia wśród managementu, umiejętności technicznych zespołu, czy czegoś jeszcze?

Jakby był ktoś z #krakow i miał doświadczenia z pracą w takim podejściu do pisania kodu, to nawet chętnie się spotkam posłuchać, kawa na mój koszt ( ͡ ͜ʖ ͡)

#testowanieoprogramowania #programowanie #programista15k #pracait
  • 11
  • Odpowiedz
Najbardziej w tdd chodzi o to, żeby oddac się refleksji "jak zaprojektować klase / metode w klasie" zeby dalo rade to sensownie przetestowac.
Ktos moze powiedzieć, że to bez sensu, bo projektujemy kod pod kątem testu, ale w większości przypadków to jak wywołamy metodę w teście a wczesniej jak skonstruujemy obiekt da nam dużo wiedzy czy nie robimy jakiegoś grubego fackupu.

Ogólnie ksiązkowe podejście test-first sprawdza się w sumie dość rzadko, ale
  • Odpowiedz
@Snuffkin:
IMHO:
- tdd jest przereklamowane i przehypowane,
- testy integracyjne do testowania/monitorowania produkcji na okrągło są jedynymi koniecznymi testami,
- unit testy tylko do jak jest jakiś konkretny algorytm LUB test jest trywialny do napisania,
- naturalne jest, że unit testy się wyrzuca jak się zmienia api,
- niedoceniany temat to testy property-based – żyją w projekcie dłużej i jest znacznie większa szansa, że wyłapią pomyłkę na którą nikt nie
  • Odpowiedz
@Snuffkin: robię przy LTE. u mnie się to stosuje bo klient to narzuca, ale w praktyce wygląda to tak że testy i kod piszę się równolegle. czasami ciężej nam jest napisać test niż sam kod, więc gdybyśmy tylko testy jako pierwsze mieli pisać byśmy w życiu niczego nie dostarczali. w TDD plusem jest to że jeżeli rozumiesz jak masz testować daną rzecz to oznacza że wiesz jak ma działać dany ficzer
  • Odpowiedz
@Snuffkin: Według mnie najlepsze podejście to podejście zdroworozsądkowe, adaptowanie tego co jest użyteczne i minimalnie wystarczające. Pewnie nie mam tak dużego stażu jak koledzy powyżej ale odnoszę wrażenie że skuteczność tdd nie rekompesuje wkładu pracy, chociaż jak się chce to i można dowodzić matematycznie poprawność algorytmów. Mi się bardzo podoba programowanie funkcyjnego, zmiana podejścia też może ograniczyć ilość błedów :)
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Snuffkin: @DlugoMyslalemNadNickiem: @tehshy: @mapache: @epsilon_eridani: @fifny_szczun:
Prawdziwe TDD używa specification by example, bo to z z biznesowych kontraktów wynika to, że my wszyscy mamy pracę.
Prawdziwe TDD to jest wymaganie klienta napisane w naturalnym języku, a klient generalnie ma w dupie czym jest klasa i obiekt, bo i po co mu to.
Dlatego powstała składnia gherkin - bo ludzie zawsze chcieli pisac czy gadać do komputerów
  • Odpowiedz
  • 1
@Snuffkin TDD zwykle robi się na odwal byle było. To jest bardzo fajna rzecz ale kosztowna więc należy wybierać gdzie zastosować. Bo w całym projekcie na 100% to się opłaca tylko w bibliotekach,.frameworkach itd.
  • Odpowiedz
@plushy: Kosztowna jak się robi to na pół gwizdka. Wtedy pisanie testu, debugowanie i konfigurowanie środowisk jest tak samo czasochołonne jak gdyby ktoś kazał napisać ci coś w nowym frameworku którego nigdy nie dotykałes.

W momencie gdy wszyscy pisza testy, połowa kodu w PR to właśnie kod testowy, w firmie rozwija się kultura budowania kodu ktory jest "testowalny" to nie jest to dużo bardziej czasochłonne niż pisanie samego kodu produkcyjnego.
  • Odpowiedz
@Snuffkin: Z własnego doświadczenia widzę, że TDD pomaga w wielu kwestiach. Nie tylko sprawia, że kod, który naklepiemy będzie testowalny (no bo w końcu od testu wyszliśmy). Ważniejsze jest to, że zmienia się nasze podejście do pisania aplikacji i naturalnie zauważamy pewne zależności. Nie twierdzę, że to się sprawdzi wszędzie i zawsze. Ale jak tylko mogę i tworzę coś nowego – staram się pisać to TDD.

Ale tak jak mówię, z
  • Odpowiedz