Słuchaj, nie chcę być tutaj pedantyczny. Cóż, może i jestem. Ale czasami nie ma w tym nic złego. Nieprawidłowe użycie niektórych słów może wydawać się drobnostką. Mam na myśli, co jest najważniejsze, prawda?

Cóż, to jest wielka sprawa. Zwłaszcza jeśli mówimy o dyscyplinie inżynierskiej. Lub tworzenie oprogramowania (co czasami nazywamy inżynierią, ale wszyscy wiemy, że tak naprawdę nie jest).

Teraz rozumiem, że menedżerowie i inni nie-programiści nie będą na bieżąco ze wszystkimi żargonami, których używamy my, programiści. Kiedy jednak zaczną wielokrotnie powtarzać pewne terminy, a następnie używać ich w niewłaściwy sposób, tworzy się luka w komunikacji, ponieważ programiści mają inne pojęcie o tym, o czym się mówi. I tak, nawet wielu programistów też nie rozumie odpowiednich warunków.

Dlatego przedstawiam wam prawdopodobnie niekompletną listę najbardziej irytujących terminów, które, jak widzę, są używane nieprawidłowo. Cieszyć się.

Testy jednostkowe / integracyjne / funkcjonalne / regresyjne

Święta kurwa. Trudno nawet wiedzieć, od czego zacząć. Nigdy nie robią tego dobrze i wszystkie są wymienne. Dla nich oznacza to po prostu „posiadanie dowolnej firmy na stronie internetowej, dopóki coś się nie zepsuje”. Jeszcze bardziej szalone jest, gdy w ogóle nie masz działu kontroli jakości.

A co powiesz na to, że zewnętrzna firma, z którą współpracujesz, zapyta Cię o testy jednostkowe. A oni odpowiadają: „O tak, przeprowadzamy testy regresyjne przy każdym wydaniu”. Ale deweloperzy wiedzą, że nie mamy żadnych testów jednostkowych.

Wyjaśnijmy więc:

  • Test jednostkowy

Jest to test niskiego poziomu kodu napisanego w kodzie, mający na celu przetestowanie kodu na poziomie funkcji, klas itp. Nie jest to coś, co można zrobić ręcznie ręcznie i nie przez nieprogramistę. Jeśli masz testy jednostkowe, otrzymujesz także testy automatyczne, ponieważ można je uruchamiać wielokrotnie za każdym razem, gdy cokolwiek zrobisz, dzięki czemu problemy są natychmiast zgłaszane. Testy jednostkowe są fajne. A ludzie rzadko to robią (z mojego doświadczenia)

  • Test integracyjny

Test integracyjny jest wyższym poziomem niż test jednostkowy i stara się przetestować interakcję pomiędzy różnymi modułami kodu, w tym ewentualnie danymi i systemami zewnętrznymi. Oznacza to, że testuje współpracę wszystkich większych ruchomych części.

  • Test funkcjonalny

Następnym poziomem jest test funkcjonalny, który, jak się domyślacie, testuje od początku do końca pewną funkcjonalność systemu, na przykład pojedynczą funkcję. Jest to bliższe temu, co użytkownik końcowy uważa za ważne. Czy ta funkcja działa? Może zawierać wiele modułów w systemie oraz wiele funkcji i klas niskiego poziomu. Przecina wszystkie te rzeczy i koncentruje się na poszczególnych funkcjach, niezależnie od sposobu ich wdrożenia.

  • Test regresji

Prawdopodobnie najbardziej niezrozumiany i najczęściej używany nieprawidłowo. Słyszę to cały czas. Jest używany całkowicie powszechnie przez wszystkich. Chociaż spójrz tylko na nazwę. Co znaczy regres? To oznacza powrót. Jeśli więc testujesz oprogramowanie i znajdziesz problem, musisz WRÓĆ do kodu, aby znaleźć miejsce, w którym działało, a następnie porównać kod. To jest bardzo specyficzne. Są do tego nawet narzędzia, takie jak git bisect. Oczywiście widziałem kilku programistów, którzy wiedzieli, co to jest. Wielu programistów nawet tak naprawdę nie rozumie, czym jest wyszukiwanie binarne, a tym bardziej to.

Wniosek

Cóż, tak się zdenerwowałem używaniem terminów testowych, że myślę, że muszę ochłonąć i odłożyć inne błędnie użyte terminy na inny dzień.

PS.

Jeśli źle zrozumiałem którekolwiek z tych terminów, proszę poprawnie i brutalnie…