Korzyści z TDD w systemach embedded
|

Korzyści z TDD w systemach embedded

Tworząc systemy embedded musimy zmierzyć się z tymi samymi problemami, co przy tworzeniu innych rodzajów oprogramowania, czyli między innymi: Zmieniającymi się wymaganiami. Zaburzaniem działania istniejących funkcjonalności po wprowadzeniu zmian. Napiętymi terminami. Rosnącym z czasem skomplikowaniem systemu utrudniającym jego utrzymanie i rozszerzanie. Poza tym istnieje również cała gama dodatkowych problemów, specyficznych dla systemów embedded. Są one…

Mocki – radzenie sobie z zależnościami w testach
|

Mocki – radzenie sobie z zależnościami w testach

Testowanie kodu, który nie wykorzystuje zewnętrznych zależności jest stosunkowo proste. W większości przypadków testowany moduł współpracuje jednak z innymi elementami systemu.  Stawia to przed testami dwa wyzwania – po pierwsze powinny poprawnie działać, a po drugie sprawdzać poprawność tej współpracy. Nie jest to zadanie proste, a zewnętrzne zależności są jednym z głównych czynników utrudniających testowanie.

|

Jak optymalizować działanie programu?

Ostatnio w pracy miałem za zadanie dokonać optymalizacji pewnego fragmentu kodu. Postanowiłem, że to dobra okazja, aby zebrać trochę porad dotyczących optymalizacji i się nimi podzielić. Część porad odnosi się konkretnie do C, ale większość można uogólnić na każdy język. Entuzjaści wyciskania procesorów do granic możliwości mogą jednak poczuć się zawiedzeni, ponieważ nie będę się…

O elektronice i podstawianiu pułapek
|

O elektronice i podstawianiu pułapek

Ostatnio zrobiłem zwarcie na płytce mojego micromouse i teraz będę musiał lutować wszystko od nowa. Podłączyłem zasilanie z programatora do linii danych i prawdopodobnie uszkodziłem procesor. Już któryś raz zdarzyło mi się coś podobnego. Raz nawet udało mi się zewrzeć układ składający się z samych gotowych modułów tak, że wszystkie zniszczyłem. W takich sytuacjach zawsze…

Jak pisać dobre unit testy
|

Jak pisać dobre unit testy

Często unit testy nie są przez programistów traktowane jak prawdziwy kod. Są dla nich jedynie narzędziem do osiągnięcia określonego celu – sprawdzenia poprawności implementacji. Przez to testy stają się trudne w utrzymaniu albo wykonują się zbyt długo. Przez co uniemożliwiają pracę zgodnie z TDD i nie mają wartości dokumentacyjnej. Istnieją jednak proste zasady tłumaczące, jak…

Kiedy nie stosować TDD
|

Kiedy nie stosować TDD

W poprzednich częściach cyklu skupiałem się na korzyściach płynących z TDD. Jeżeli ta metoda wejdzie nam w krew, te korzyści zachęcą nas, abyśmy pisali w ten sposób zawsze i wszędzie. Motywują nas do tego również eksperci mówiący, że każda linia kodu powinna być przetestowana. Okazuje się jednak, że nie zawsze testowanie wszystkiego na siłę jest…

Wymówki, aby nie pisać unit testów
|

Wymówki, aby nie pisać unit testów

Próbując wprowadzić TDD w projekcie najczęściej spotkamy się z oporem. Argumenty przeciwko tej technice ze strony developerów i osób decyzyjnych, które nie miały z nią do czynienia często się powtarzają. Postanowiłem więc w tym wpisie zebrać te argumenty i je omówić. Krytyka TDD ze strony osób mających doświadczenie w temacie zwykle przybiera inną formę i…

Zalety TDD
|

Zalety TDD

Przestawienie się na Test Driven Development z pisania metodą tradycyjną nie jest łatwym zadaniem. Szczególnie na początku musimy walczyć ze starymi nawykami, a kiedy napotykamy trudności, naturalnym rozwiązaniem jest stosowanie metod, które znamy i rozumiemy. Poza tym początkowo TDD może nam się wydawać nieintuicyjne, a wkład pracy wydaje się większy. Jak to zwykle bywa w…

End of content

End of content