Dzisiaj sprawdziłem zmianę w jakimś kodzie, który okazał się w ogóle nie działać z powodu czegoś głupiego, ale bardzo ważnego. Czuję się z tym bardzo źle i mam nadzieję, że w końcu czegoś się z tego nauczę. Głupie jest to, że robiłem to wcześniej i zawsze powtarzam sobie, że następnym razem nie będę taki głupi ... Potem to się znowu dzieje i czuję się jeszcze gorzej.
Wiem, że powinieneś utrzymywać podbródek i uczyć się na błędach, ale oto rzecz: staram się poprawić, po prostu nie widzę, jak mogę zapobiec tym wydarzeniom.
Więc teraz pytam was: Czy macie pewne podstawowe zasady podczas testowania kodu?
self-improvement
testing
Piotr
źródło
źródło
Odpowiedzi:
Napisz testy przed wprowadzeniem zmian w kodzie.
Jeśli proponowana zmiana polega na naprawieniu błędu, test powinien zakończyć się niepowodzeniem, demonstrując błąd. Następnie upewnij się, że mija po naprawieniu błędu. Jeśli później napiszesz test i tylko go widziałeś, nie możesz być pewien, że poprawnie przetestował błąd.
Jeśli proponowana zmiana ma zmienić istniejącą funkcjonalność lub dodać funkcję, napisz kilka testów, aby zapewnić dobre pokrycie obszaru kodu, który chcesz zmienić. Upewnij się, że testy te przejdą pomyślnie, zanim zaczniesz zmieniać kod, i nadal będą zaliczane po zakończeniu.
źródło
Nie zapomnij przetestować najnowszych modeli! Wiele błędów wynika z przetestowania najczęstszych działań, ale nie tych mniej powszechnych.
źródło
Postępuj zgodnie ze wskazówkami technicznymi zawartymi w odpowiedziach zorientowanych technicznie; to dobre rzeczy. Moja odpowiedź dotyczy bardziej nastawienia.
Czując się źle, popełniając rodzaj błędu, który każdy programista popełnia czasami, jest po prostu absurdalny i nie pomaga ci nie popełnić tego rodzaju błędu w przyszłości. Siedząc tam, czując się źle, kompilacja jest wciąż zepsuta, wiesz? A potem twoja praca polega na unikaniu błędów, które, jak wiem, sprawiają, że wstawanie z łóżka każdego dnia jest ekscytującą przygodą, prawda?
Słyszałem o firmach, w których sprawdzanie uszkodzonego kodu jest powodem do publicznego zawstydzania. Nie potrafię nawet pogodzić się z takim wypaczonym, braterskim chłopcem, myśleniem na wysokim szczeblu, które prowadziłoby do takiego zachowania. Lider zespołu lub menedżer nie może mieć ŻADNEGO efektu przeciwnego do zamierzonego.
Więc nie pobijaj się. Wszyscy to zrobiliśmy. Prawdopodobnie kosztują mnie pół dnia w tygodniu na głupie błędy i robię to od dłuższego czasu (kaszel). Tak wygląda pisanie kodu - nieustannie walczysz z czymś, co wydaje się być Twoją własną niedoskonałością. Tym, co czyni profesjonalistę profesjonalistą, nie jest mityczna cecha, że nigdy nie popełnia błędów (w tym czasem dużych), ale sposób, w jaki ODPOWIADA na popełnione błędy.
Jeśli jest jedna mantra, którą mógłbym zaszczepić w każdym programiście, z którym współpracuję, jest to: Nie jesteś swoim kodem . Piszesz kod. Piszesz to tak dobrze i efektywnie, jak tylko potrafisz. Potem idź do domu. Jeśli utożsamiasz swoją wartość lub poczucie własnej wartości jako osoby z jakością swojego kodu, po prostu brakuje ci łodzi o tym, kim naprawdę jesteś.
źródło
Inną ważną praktyką testowania jest napisanie testu i upewnienie się, że nie powiedzie się przynajmniej raz PRZED napisaniem kodu. Łatwo jest zepsuć i napisać test tautologiczny, który przypadkowo nie testuje sprawdzanego stanu. Fałszywe zapewnienia są prawie (a czasem gorsze) niż żadne zapewnienia.
źródło
Jednym z pomysłów, z którego korzystałem od czasu do czasu, jest:
utwórz gałąź i zepsuj kod, uruchom test i upewnij się, że test wykryje błąd.
źródło
Kilka dodatkowych punktów ogólnych:
źródło