testowanie automotive

Jak zostać testerem oprogramowania w branży automotive?

Pod pojęciem testowania w branży motoryzacyjnej kryje się szeroki zakres – od testów procesorów czy poduszek powietrznych po testy zawieszenia i prędkości. W tym artykule chciałbym ograniczyć się tylko do obszaru testowania oprogramowania. Ponieważ przemysł motoryzacyjny jest związany z oprogramowaniem systemów wbudowanych – to testy oprogramowania często są prowadzone na rzeczywistym sprzęcie i są niejako testem elektroniki z wgranym oprogramowaniem. Czego może się spodziewać tester oprogramowania w swoim projekcie? 

Mirosław Panek
Latest posts by Mirosław Panek (see all)

Wszystko zależy od zakresu danego projektu. Czasy, w których samochody Audi czy Mercedesy powstawały w pełni w Niemczech, a Volvo tylko w Szwecji, dawno minęły. Stopień skomplikowania samochodów i dążenie do optymalizacji kosztów i procesu produkcyjnego sprawiły, że koncerny samochodowe korzystają z podwykonawców zewnętrznych – zarówno mechaniki czy elektroniki – jak i oprogramowania. Dlatego (prawie na pewno) będziesz pracować nie bezpośrednio dla producenta samochodu, ale dla poddostawcy, czyli producenta elektroniki z oprogramowaniem lub wręcz producenta tylko i wyłącznie oprogramowania. 

W zależności od tego, zakres testów projekcie, do którego trafimy może być bardzo różny. Z jednej strony, dla małej biblioteki mogą to być tylko testy jednostkowe realizowane przez 1-2 testerów. Na drugim biegunie możemy mieć skomplikowany system testowany na pięciu poziomach testów przez grupę kilkudziesięciu testerów. Jak więc łatwo się domyślić, umiejętności wymagane przez testera zmieniają się w zależności od bieżącego projektu. W dalszej części przybliżę, jak zacząć swoją przygodę z testowaniem oprogramowania w branży automotive.

Programowanie w pracy testera

Jaki język programowania trzeba znać? Jakikolwiek. Zaczynając przygodę z testowaniem oprogramowania nie wiemy, na jaki projekt trafimy w danej firmie i pracodawca ma tego świadomość. Najważniejsze, by rozumieć, na czym polega programowanie i znać podstawy języka. Gdybym miał wybrać jeden język – to wybrałbym C (albo jakąś jego pochodną). W automotive chętnie używamy tego języka, bo dobrze nadaje się do programowania urządzeń wbudowanych. 

Czy częścią pracy będzie czytanie kodu programistów? Robiąc testy jednostkowe – tak, będziesz to robić. Co więcej, najprawdopodobniej w tym samym języku napiszesz swoje testy. Testując na poziomie systemowym nie będziesz jednak przywiązany do kodu, więc język tworzenia testów wybierzesz według innego kryterium.

Skryptowanie

Prędzej, czy później spotkasz się potrzebą napisania skryptu. Może całe środowisko testowe będzie pisane w języku skryptowym i tym językiem będzie wypełniony każdy dzień pracy. A może trzeba będzie oprogramować zasilacz, wygenerować dane testowe albo zautomatyzować sobie część pracy. Warto znać język skryptowy. Jaki? Podobnie jak z programowaniem – jakikolwiek. Istotna jest wiedza na temat tego, jak poradzić sobie z prostym problemem do rozwiązania przy użyciu skryptu. 

Obecnie najpopularniejszy jest Python, ale używany jest też Perl, Tcl czy Ruby – wszystko zależy od firmy i projektu. A jeśli trzeba zrobić coś tylko na swoje potrzeby – to możesz sam zdecydować i użyć ulubionego języka.

Kontrola wersji

Brak wiedzy o systemach kontroli wersji (albo raczej szerzej: zarządzania konfiguracją) nie przekreśla cię z automatu jako kandydata. Natomiast znajomość tej tematyki potrafi zapunktować: znając podstawy przynajmniej jednego systemu kontroli wersji dużo łatwiej wdrożysz się w projekt i twoja praca szybciej stanie się wydajna. Podobnie jak wcześniej, nie ma dużego znaczenia, który system poznasz. Najważniejsze, że wiesz, do czego służą te narzędzia i jak pracować w kilkuosobowym zespole tak, żeby rozwijać swoje testy nie nadpisując jednocześnie pracy innych osób.

Procesy i teoria testowania

Niezależnie od projektu i tego, jak bardzo będzie zwinny, w automotive nie da się uciec od formalnych procesów. Klienci (producenci samochodów) oczekują wytwarzania oprogramowania zgodnie z ustalonymi procesami i tego samego wymagają od swoich dostawców. Cały czas podstawą jest SPICE (ściślej: ASPICE = Automotive SPICE) – proces oparty na tradycyjnym modelu V. Dobra wiadomość jest taka, że proces ten naturalnie koresponduje z najpopularniejszym w Polsce i na świecie standardem testowania – ISTQB. Znając teorię testowania według Poziomu Podstawowego ISTQB łatwo odnajdziemy się w SPICE.

Czy certyfikat zdania egzaminu jest konieczny do rozpoczęcia pracy? Na poziomie juniora – nie jest potrzebny. Natomiast jeśli rozpoczniesz pracę w tej branży – to najprawdopodobniej w ciągu pierwszego roku pracodawca zorganizuje ci takie szkolenie/egzamin. Jeśli chcesz, żeby z twojej nazwy stanowiska zniknęło słowo Junior to ISTQB będzie potrzebne. Znajomość zakresu Poziomu Podstawowego ISTQB ma jeszcze jedną zaletę: dzięki temu mówisz wspólnym językiem z pracodawcą w czasie rozmowy rekrutacyjnej, czy kolegami w czasie codziennej pracy.

Wiedza domenowa

Jeśli stanowisko Juniora to dla ciebie za mało i chciałbyś od razu zacząć pracę w automotive przez duże „A” – to nie mam dla ciebie dobrych wieści. Niestety, doświadczenie i wiedzę domenową najłatwiej jest zdobyć… właśnie pracując w branży automotive. Co najczęściej się przydaje? Poniżej podam trzy przykłady z różnych obszarów.

  1. Znajomość magistral komunikacyjnych wykorzystywanych w samochodach – cały czas CAN (Controller Area Network) to podstawa komunikacji w samochodach, choć oczywiście jest więcej powszechnie używanych magistral.
  2. Gdybym miał wymienić jedno narzędzie komercyjne, które jest znane każdemu testerowi w tej branży – to na pewno będzie to CANoe produkowane przez firmę Vector, ponieważ w większości projektów i dla większości klientów używa się właśnie tego narzędzia. Testy tworzy się w specjalnym języku bardzo zbliżonym składnią do C (hm… przypadek?).
  3. Jaki jeszcze jest obszar charakterystyczny dla testowania oprogramowania w motoryzacji? Diagnostyka samochodowa. W każdym projekcie jest mniej lub więcej diagnostyki. Zdarzają się nawet projekty, w których główna funkcjonalność zajmuje zaledwie 20% zasobów a diagnostyka to pozostałe 80% – i mam na myśli zarówno pracę przy tworzeniu kodu, jak i testów.

Z tych przykładów widać, że wiedza domenowa jest specyficzna i trudno ją poznać z książki czy kursu – tu zdecydowanie polecam praktykę.

Tak, już pisałem na początku, narzędzia i technologia jest bardzo różna w różnych projektach. Możesz więc pracować w projekcie, którego zakres jest wąski i narzędzi typowych dla automotive przez długi czas nie będziesz używał.

Podsumowanie

Czy łatwo rozpocząć testowanie w automotive? Wymagania dla testera oprogramowania na poziomie Juniora są podobne jak dla każdej innej branży. Więc jeśli lubisz samochody albo ciekawią cię systemy wbudowane to warto spróbować. Bardzo możliwe, że taka praca będzie dla ciebie ciekawsza niż testowanie stron internetowych albo aplikacji bankowych. A jeśli okaże się, że formalne procesy testowania, czy testowanie systemów czasu rzeczywistego to nie twoja bajka – to zawsze będziesz mógł zmienić branżę i poszukać oferty dla testera oprogramowania w innym sektorze. Kto wie – może nawet w ramach tej samej firmy.

Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Michał Ćwiękała
Jak zostałem programistą? Historia Michała Ćwiękały