Pracowałem nad dużym systemem transakcji finansowych dla banku, który opiekował się emeryturami i inwestycjami. Po 15 latach zmian funkcji koszt ręcznego testu regresji wzrósł do 200 000 USD na wydanie. (10 mln LOC, transakcje 10 mln USD dziennie). System ten współpracuje również z 19 innymi systemami w firmie, przenoszącymi wiele danych. Ten system został wdrożony w Javie.
Obserwujemy jednak, że im więcej „ponownie wykorzystujemy”, tym bardziej rosną koszty testów regresji. (Powodem jest to, że musisz „przetestować kod, którego dotykasz” - a kod ponownie użyty / udostępniony wpływa na wiele miejsc po jego dotknięciu. Więc pomimo „OSUSZANIA - nie powtarzaj się” - tj. Nie kopiuj i nie wklejaj kodu - obserwujemy zachętę finansową do kopiowania i wklejania kodu. Ma to na celu obniżenie kosztów testów regresji, ponieważ nie chcemy modyfikować kodu, który mógłby być udostępniany, ponieważ spowoduje to duży wpływ testu regresji).
Moje pytanie brzmi, czy istnieje zasada inżynierii oprogramowania, która opisuje związek między ponownym użyciem a kosztami testu regresji?
Powodem, dla którego zadałem to pytanie, jest to, że prawdopodobnie rozkładanie systemu na mniejsze części do przetestowania jest opłacalne.
Założenia:
„Test regresji” oznacza „test akceptacji” - tj. Inną grupę poświęcającą czas na pisanie nowych i ponowne wykorzystywanie starych testów systemu w imieniu firmy, w tym konfiguracji środowiska i danych.
Wiem, że reakcja szarpnięcia kolana na duży koszt testu regresji to „bardziej zautomatyzowane testy”. To dobra zasada. W tym środowisku istnieje kilka wyzwań.
(a) Zautomatyzowane testy są mniej przydatne ponad granicami systemu, chyba że system ten ma również wysoki zakres testów automatycznych. (Sfera wpływu wpływ).
(b) Kiedy Twój system jest już duży i złożony, uzyskanie tempa czasu programisty lub inwestycji kapitałowych w wysoki zakres testów automatycznych jest trudne z kulturowego punktu widzenia.
(c) Koszt utrzymania automatycznych testów jest ukryty w projekcie i dlatego można je łatwo odrzucić na poziomie projektu.
(d) To tylko kulturowa rzeczywistość pracy w banku.
(e) Pracuję nad rozwiązaniem tego problemu w inny sposób (rozkład).