Krótkie wprowadzenie do testów mutacyjnych

W ramach zabawy z lottomatem piszemy bardzo dużo testów. Pytanie, czy testy te są dobre. Jednym ze sposobów sprawdzenia, czy nasze testy są dobre, jest podmienienie fragmentów kodu. Jeżeli testy rzeczywiście coś testują, to taka podmiana powinna zostać wykryta. Testy nie powinny być zaliczone. To podejście nazywamy testami mutacyjnymi od zmian, jakie przeprowadzają one w […]

Jak zacząć zabawę z TDD od strony praktycznej

TDD, czyli programowanie sterowane testami jest jedną z tzw. zwinnych praktyk programowania. Zazwyczaj, niesłusznie, ogranicza się testy do testów jednostkowych. Samo TDD nie definiuje z jakimi dokładnie testami pracujemy. Jednakże testy jednostkowe jako najprostsze do ogarnięcia są też uznawane za kwintesencję TDD. Dziś chciałbym przedstawić wam pewien sposób pracy, który pozwala na lepsze przyswojenie sobie […]

Jeszcze raz o kluczach naturalnych

Tym razem w kontekście wydajności. Jednym z zarzutów podnoszonych przy okazji dyskusji o kluczach naturalnych opartych o typ tekstowy jest wydajność. Można by się spierać czy klucz sztuczny oparty o typ INT jest lepszym rozwiązaniem niż klucz oparty o typ VARCHAR/CHAR/TEXT. Takiego sporu jednoznacznie rozstrzygnąć nie można. Warto jednak przyjrzeć się argumentacji dotyczącej wydajności. By […]

Dlaczego nie piszemy testów – obserwacja

W książkach poświęconych jakości kodu, testowaniu i metodykom zwinnym jako główną przyczynę braku testów wymienia się lenistwo programistów, olewactwo i niechcicę. Pozwolę sobie napisać kilka słów na ten temat. Od pewnego czasu w związku ze zmianą płatnika ZUS przekazuję swoje obowiązki innym programistom. Przy okazji mam możliwość obserwowania tego jak pracują i w jaki sposób […]

Wady użycia mocków z mock-frameworków

Idzie sobie transakcja z banku. Trafia ona ci na moje biurko i muszę ją zwalidować. Biorę ci ja JSR-303 i przepuszczam ci ja transakcję przez tą zabawkę… Rzecz w tym, że mam kilka własnych walidatorów, które korzystają z danych pobranych z bazy. Dane sa pobierane raz i zapisywane w takim pseudo cache, który potrafi odpowiedzieć […]