Moja odpowiedź? Być może nie .
Testy EOE są dobre, gdy są bardzo proste. Jeśli planujesz objąć podstawowe scenariusze, możesz uzyskać przewagę dzięki testom EOE. Ale jeśli masz naprawdę złożoną i dużą aplikację (o znaczeniu krytycznym lub nie), te testy EOE będą kosztowne w utrzymaniu i musisz znać swój scenariusz, aby wycenić, jeśli warto.
Kilka lat temu blog testowy Google omawia ten temat. Mogę tylko zgodzić się z autorem. Dobry test musi być szybki , niezawodny i izolować awarie , cechy, których testy EOE nie są w stanie dostarczyć.
Pracowałem nad aplikacją, która ma ponad 12 godzin kompleksowych testów obejmujących wiele scenariuszy. W końcu udało nam się rozpowszechnić te testy na różnych komputerach, kontrolując rozpoczęcie, wykonanie i zakończenie testów, zbierając i scalając wyniki. Testowana aplikacja była aplikacją monolityczną (co jest łatwiejsze do uruchomienia i uruchomienia w celu przetestowania) i była koszmarem w utrzymaniu testów.
Przez większość czasu przeprowadzaliśmy testy zamiast łapać błędy z ich wyników. Odkrywanie źródła błędu w kompleksowym teście zajmuje dużo czasu. Zajęliśmy się również wieloma testami „fałszywie ujemnymi” i mało czasu na zrozumienie problemu i jego rozwiązanie: problemy z ładowaniem apletów Java, oczekiwany element nie został znaleziony na stronie (plus inne problemy dotyczące szybkości automatyzacji), utrzymuj kod zapytania, który są po prostu używane w teście pamięci bazy danych (ponieważ oryginalne zapytanie używa kodu specyficznego dla bazy danych) itp.
Wszystko to wymaga od ludzi utrzymania i działania. Na koniec zaczynamy usuwać niektóre testy EOE i zastępować je wieloma testami jednostkowymi / integracyjnymi.
Tak więc moją konserwatywną radą jest użycie piramidy testującej od Google:
Na pierwszy rzut oka Google często sugeruje podział 70/20/10: 70% testów jednostkowych, 20% testów integracyjnych i 10% testów kompleksowych. Dokładna mieszanka będzie inna dla każdej drużyny, ale ogólnie powinna zachować ten kształt piramidy.