2015-10-01 17 views
9

Załóżmy, że mamy duży, złożony system z dużą ilością danych i skomplikowaną logiką biznesową.Jak zarządzać oprawami danych testowych do testów akceptacyjnych w dużych projektach?

Jak zarządzać danymi testowymi (Oracle DB), aby uzyskać szybkie, niezawodne testy akceptacyjne (selenowe itd.) Zaczynając od znanego stanu?

powodu skali i złożoności, testy powinny:

  • prowadzony dość szybko (1. szybko powracają do znanego stanu DB Przed każdym badaniem/apartamencie 2. definatelly nie tworzenia danych testowych przez UI przed każdym apartamencie)
  • baza danych utworzonych z UI (bez bezpośredniego INSERTS do bazy danych - ryzykowne powielanie logiki biznesowej)
  • mają kilka wersji/migawek stanu dB (stabilną grupę użytkowników z powiązanymi danymi - aby uniknąć konfliktów między twierdzeniami oraz nowe dane stworzony z ciągłym rozwojem automatyzacji)

Odpowiedz

9

To, co opisujesz, nazywa się Sandbox DB. Dla każdego nowego wdrożenia musisz dostarczyć/wypełnić ten DB danymi, których potrzebujesz i po zakończeniu testów, aby je upuścić.

mieć kilka wersji/migawek stanu DB

To co Fresh Fixture pattern i Prebuilt Fixture pattern pomogą Ci. Możesz również spojrzeć na Fixture Teardown patterns.

Tutaj można znaleźć kilka uwag dotyczących takich przypadków: big-data-sandbox-strategies. Podobnie jak planowanie, repozytorium danych podstawowych i monitorowanie.

Aby z powodzeniem zarządzać tym wszystkim, należy uruchomić serwer CI. Od otagowaniu JAVA, dobre opcje:

0

Co rozumiem Twoje pytanie jest to, że chcesz uruchomić swoje przypadków testowych predefiniowane dane i nie wypełniają bezpośrednio bazy danych.

  1. Tworzenie bazy danych dla każdej wersji wysypisk i przechowywać je
  2. Tworzenie zadania (np: na CI, o Jenkins, Hudson, ... pracy), który ładuje bazę danych testowych z wymaganymi wysypisk. To powinno zostać automatycznie uruchomione po udanym wdrożeniu na serwerze testowym.
  3. utworzyć moduł/funkcji do tworzenia danych testowych tymczasowe
  4. uruchomić testów (najlepiej powodzeniem wykonano wynik pracy w punkcie 2 powinien wywołać tego)
Powiązane problemy