Testy manualne vs. automatyzacja

Testy manualne vs. automatyzacja
Czy niedojrzała i nadmierna automatyzacja może prowadzić do pogorszenia jakości lub spowodować opóźnienia w dostawie produktów? Moim zdaniem tak, ale nie ma na to wiarygodnych badań i dobrych eksperymentów.

Ponieważ nie mamy gotowych odpowiedzi, czasami szukamy ich przez analogię. Przyczynkiem do tej analizy jest udostępniony na grupie FB artykuł (https://businessinsider.com.pl/firmy/zarzadzanie/automatyzacja-jest-nieoplacalna-problem-fabryk-tesli/d5d54t5) o procesie automatyzacji wytwarzania samochodów Tesla Model 3 (https://www.facebook.com/groups/TestowanieOprogramowania/permalink/1725449880810916/). Teza w nim postawiona jest oczywista (choć chyba nie dla wszystkich): są duże opóźnienia w dostawie samochodów spowodowane nadmierną automatyzacją (robotyzacją) w procesie wytwórczym.

Same komentarze, pomijając te kompletnie rozmijające się z dyskusją, koncentrują się wokół następujących aspektów.

1. Elon Musk, wizjoner - nikt mu nie powiedział, że się nie da, więc on to zrobił.

Może i tak, ale problemy z produkcją i dostawą Modelu 3 są powszechnie znane. Istnieje więc pewne prawdopodobieństwo, że tym razem podjął złą decyzję. Skoro jest popyt, dlaczego nie ma podaży? Może się okazać, że Musk pokona problemy, dopnie swego i zautomatyzuje cały proces produkcyjny. Trzeba jednak pamiętać, że większość jego działań jest na kredyt, a kredytodawcom w którymś momencie może zabraknąć cierpliwości.

2. Nie da się przełożyć automatyzacji w procesie produkcyjnym na automatyzację testów w procesie wytwarzania oprogramowania.

Oczywiście to, że w IT garściami czerpiemy z Toyota Production System, szerzej znanego jako Lean Manufacturing, którego reguły są jednym z fundamentów zwinnych metodyk wytwarzania to czysty przypadek. Prawdą jest, że w artykule mówi się, że nieudana automatyzacja dotyczy produkcji samochodu, a nie testowania jego jakości. Warto jednak przypomnieć, że ogólnie metodyki zwinne nie uznają testowania jako osobnej dziedziny. Jest wysokiej jakości kod oraz akceptacja oprogramowania przez klienta. Nie ma mowy o testach w Agile Manifesto i Scrum Guide. Udana automatyzacja procesu produkcyjnego prowadzi do wyeliminowania znacznej części testowania. Moim zdaniem można więc dostrzec analogię.

3. Na spadki Tesli na giełdzie wpływa wiele czynników jak m.in. śmiertelny wypadek z udziałem jednego z ich samochodów.

I tu pełna zgoda. Akcji przedsiębiorstw nie posiadają (tylko) inżynierowie, którzy podejmują racjonalne decyzje bazujące na dogłębnej analizie procesu produkcyjnego. Akcje posiadają ludzie i instytucje, które często działają emocjonalnie i często zgodnie z regułą, że jeśli coś rośnie, to kupuj, a jeśli coś spada, sprzedawaj. Gdy pojawiło się wiele niepokojących informacji z Tesli, zaczęli sprzedawać.

4. A co to w ogóle za artykuł? Gdzie są źródła? Itp.

Artykuł można traktować jako publikację popularnonaukową, w której jednak postawiono tezę. Jeden z wypowiadających się analityków pracował w International Motor Vehicle Program - częściowo akademickiej, a częściowo komercyjnej organizacji z siedzibą w MIT. Możemy więc założyć, że wie, o czym mówi. Jeżeli przełożymy to na ogólnie znany problem z dostarczaniem samochodów Tesla, wszystko zepnie się w jedną całość.

 

Wojtek Jaszcz dzieląc się linkiem napisał: "Dość mocna analogia z automatyzacja testów i produkcji za wszelka cenę w software developmencie. Zwłaszcza zwrot z kosztów inwestycji. Jednym słowem do automatyzacji trzeba dojrzeć. Jak? Znając doskonale analogowy (manualny) proces."

Analogia oznacza, że nie jest to dokładnie to samo, ale dostrzegamy pewne podobieństwo. Ja również to podobieństwo dostrzegam. Toyota ma jeden z najbardziej zautomatyzowanych procesów produkcji samochodów i do swojego obecnego poziomu rozwoju dochodzili przez dziesięciolecia. Elon Musk po kilku latach w branży samochodowej dość buńczucznie zapowiada, że to oni będą się od niego uczyć Lean (https://www.forbes.com/sites/joannmuller/2018/02/16/tesla-thinks-it-will-school-toyota-on-lean-manufacturing-fixing-model-3-launch-would-be-a-start/#4646b1ba4c74). Może jednak rewolucyjne zmiany w tym obszarze nie są najlepszym rozwiązaniem? Może nie jesteśmy na to technologicznie przygotowani, tak jak nie jesteśmy jeszcze przygotowani na autonomiczne samochody? Może trzeba zrobić krok wstecz i wrócić do operacji manualnych (również w testowaniu)?

Głęboko wierzę, że jeśli ktoś ma być siłą napędową zmiany, to jest to właśnie Musk. Kibicuję, żeby mu się udało. Jednak na chwilę obecną sytuacja wygląda dość patowo.

Wracam jednak do postawionego na wstępie pytania i braku eksperymentów, które dałyby jednoznaczną na nie odpowiedź. Odwołuję się do wszechobecnego i prawie religijnego przekonania, że automatyzacja GUI zawsze jest opłacalna. Jako tester manualny wyzywam automatyków testów na pojedynek. Stańcie na ubitej ziemi i udowodnijcie w bezpośredniej walce, że pełna automatyzacja jest tańsza, szybsza i skuteczniejsza od testowania manualnego :) Jeden na jednego albo drużyna na drużynę. Będę przyjmował Wasze reguły tak długo, jak będą one uczciwe. Możemy przeprowadzić kilka (kilkanaście?) iteracji, będziemy testować / automatyzuować to samo, każdy z zawodników poświęci taką samą ilość czasu.

Rozstrzygnijmy ostatecznie, kto ma rację!

 

Autor: Radek Smilgin

 

PS. Zachęcam do obejrzenia filmiku „YASKAWA BUSHIDO PROJECT / industrial robot vs sword master”, który jest doskonałym zobrazowaniem współczesnej automatyzacji. Tego, co jest możliwe i co jest jej największą wartością.

 

 

 

 

To powinno Cię zainteresować