Dlaczego możesz nie chcieć robić pull request’ów?

Pull request zagościł na dobre w większości projektów. Bez względu na to, czy chcemy wykorzystać go do code review, czy do bezpiecznego wchodzenia na produkcję, stał się narzędziem, które ciężko zastąpić. Czy to jednak nie spowodowało, że trochę go nadużywamy? Osobiście mam dobre doświadczenia z PR’ami, ale znam wiele osób, które chętnie pozbyły by się ze swojego procesu. Tylko co wprowadzić w zamian? Ostatnio na Clubhouse zorganizowałam dyskusję na temat pull requestów i muszę przyznać, że doświadczenia są bardzo różnorodne. Od juniorów, którzy nie znają innej rzeczywistości, przez programistów widzących wady i zalety, po tych którzy pozbyli się zupełnie PR’ów Więcej…

Ludzie Testowania 2020 – jest podium 💥

W grudniu odbyło się głosowanie Ludzie Testowania 2020 organizowane przez portal testerzy.pl. Portal zajmuje się szerzeniem wiedzy na temat testów automatycznych i innych tematów przydatnych w pracy QA. Sama często korzystam z ich materiałów kiedy potrzebuję testerskiej perspektywy. Tym większa była moja radość z powodu tej nominacji, że jestem programistką. Zajmuję się głównie testami jednostkowymi i integracyjnymi. Nie tylko na tym blogu, ale też na YouTubie, Instagramie i cotygodniowym newsletterze. Moim celem od początku prowadzenia Szkoły Testów było zacieranie granic pomiędzy testerami i programistami. Za jakość odpowiadamy wszyscy, mimo, że w trochę inny sposób. Ta nominacja jest najlepszym dowodem na Więcej…

Jak mierzyć jakość testów? Line coverage, branch coverage i testy mutacyjne

Do mierzenia jakości kodu stosujemy różne metryki, od złożoności (cyclomatic complexity), przez ilość błędów na produkcji, po dług techniczny (technical dept). Wiele zespołów dodało do tego również miarę pokrycia kodu testami (code coverage). Z tym podejście wiąże się jednak ryzyko, że testy będą pisane głównie po to, żeby pokrywały więcej linijek kodu, a nie żeby dobrze chroniły przed regresją. To może oznaczać to samo, ale wcale nie musi. Mówi się, że rośnie to, co mierzymy. Jeśli mierzymy procent linijek kodu, dla których istnieje kod testowy, który je wywołuje, to urośnie nam liczba testów. To niekoniecznie musi iść w parze z jakością Więcej…

Co jest nie tak z tym testem?

Testy podobnie jak kod produkcyjny ewoluują. Zmieniają się w czasie. Czasem to dobra zmiana, a czasem niekoniecznie. Wtedy nabierają złego zapachu. Phoebe z Friends’ów śpiewała kiedyś Smelly Cat, Smelly Cat, it’s not your fault, równie dobrze mogłaby zaśpiewać Smelly Test, Smelly Test, it’s not your fault. To nie wina testu, że coś się z nim dzieje, tylko ignorancji zespołu projektowego, który przechodzi obojętnie udając, że wszystko jest ok. Postanowiłam wziąć na warsztat testy, które nie pachną dobrze, żeby pokazać jak małymi krokami można dojść do całkiem niezłych efektów. Weźmy na przykład taki test: @Test void shouldReturnOne() {     int Więcej…

Jak możesz odpicować swoje testy?

Pewnie masz w swoim projekcie takie testy, które niby działają, ale nie są najpiękniejsze? Albo takie, które zostały napisane dawno temu i nie wiadomo do końca co sprawdzają? Jest kilka małych kroków, które możesz przejść, żeby małym wkładem pracy nieco odpicować Twoje testy.   1. Zmień nazwy Raport testowy powinien być dobrą dokumentacją tego co robi system. Jeśli testy nazywają się testGrossPrice albo co gorsza test2112, to średnio wiadomo co w nim się dzieje, prawda? Wystarczy zastanowić się co ten test tak naprawdę sprawdza, jakie są okoliczności i oczekiwany wynik. Nie musisz od razu orać wszystkich testów, ale sukcesywnie upiększać Więcej…

Jak mogłyby wyglądać testy w mBanku?

Sierpień był dość pechowy dla mBanku. Najpierw testy powiadomień push na produkcji, o których już pisałam. Potem znacznie gorsza wpadka, która mocno podważyła wiarygodność oprogramowania tej firmy. Zamiast szukać winnych zastanówmy się co jako rzemieślnicy oprogramowania możemy wynieść z tej lekcji. Co zawiodło? Jak można było temu zapobiec? Jakie testy zwiększą pewność w podobnych przypadkach? Co się w ogóle stało? Ktoś na Facebooku napisał, że dostał SMSa o tym, że jego dane zostały zmienione. Po zalogowaniu się do systemu okazało się, że widnieją tam dane innej osoby. Próba interwencji na infolinii zakończyła się porażką, ponieważ dane klienta nie zostały zweryfikowane Więcej…