what is test data test data preparation techniques with example
Dowiedz się, czym są dane testowe i jak przygotować dane testowe do testowania:
W obecnym eposie rewolucyjnego rozwoju informatyki i technologii testerzy często doświadczają intensywnego zużycia danych testowych w cyklu życia testowania oprogramowania.
Testerzy nie tylko zbierają / utrzymują dane z istniejących źródeł, ale także generują ogromne ilości danych testowych, aby zapewnić ich coraz większy udział w dostarczaniu produktu do użytku w świecie rzeczywistym.
Dlatego jako testerzy musimy nieustannie badać, uczyć się i stosować najbardziej wydajne podejścia do gromadzenia, generowania, konserwacji, automatyzacji i kompleksowego zarządzania danymi dla wszelkiego rodzaju testów funkcjonalnych i niefunkcjonalnych.
W tym poradniku przedstawię wskazówki, jak przygotować dane testowe, aby żaden ważny przypadek testowy nie został pominięty przez nieprawidłowe dane i niekompletną konfigurację środowiska testowego.
Czego się nauczysz:
- Co to są dane testowe i dlaczego są ważne
- Przetestuj wyzwania związane z pozyskiwaniem danych
- Strategie przygotowania danych testowych
- Uszkodzone dane testowe
- Dane testowe dla przypadku testu wydajności
- Jak przygotować dane, które zapewnią maksymalny zakres testów?
- Dane do testów czarnoskrzynkowych
- Przykład danych testowych dla Open EMR AUT
- Tworzenie ręcznych danych do testowania aplikacji Open EMR
- Właściwości dobrych danych testowych
Co to są dane testowe i dlaczego są ważne
Nawiązując do badania przeprowadzonego przez IBM w 2016 roku, wyszukiwanie, zarządzanie, utrzymywanie i generowanie danych testowych obejmuje 30% -60% czasu testerów. Jest niezaprzeczalnym dowodem na to, że przygotowanie danych to czasochłonna faza testowania oprogramowania.
Rysunek 1: Średni czas testerów spędzony na TDM
Niemniej jednak jest faktem w wielu różnych dyscyplinach, że większość analityków danych spędza 50% -80% czasu opracowywania modelu na porządkowanie danych. A teraz, biorąc pod uwagę prawodawstwo, a także informacje umożliwiające identyfikację osoby (PII), testerzy angażują się w proces testowania w przytłaczający sposób.
Dziś wiarygodność i rzetelność danych testowych są uważane za bezkompromisowy element dla właścicieli firm. Właściciele produktów postrzegają kopie widmowe danych testowych jako największe wyzwanie, które zmniejsza niezawodność każdej aplikacji w tym wyjątkowym momencie zapotrzebowania / wymagań klientów dotyczących zapewnienia jakości.
Biorąc pod uwagę znaczenie danych testowych, zdecydowana większość właścicieli oprogramowania nie akceptuje testowanych aplikacji z fałszywymi danymi lub mniejszymi środkami bezpieczeństwa.
Dlaczego w tym miejscu nie przypomnimy sobie, czym są dane testowe? Kiedy zaczynamy pisać nasze przypadki testowe w celu weryfikacji i walidacji danych funkcji i opracowanych scenariuszy aplikacji w ramach testu, potrzebujemy informacji, które są używane jako dane wejściowe do wykonania testów w celu zidentyfikowania i zlokalizowania defektów.
interfejs użytkownika bazy danych i oprogramowanie do zapytań
Wiemy, że te informacje muszą być dokładne i kompletne, aby można było usunąć błędy. Nazywamy to danymi testowymi. Aby była dokładna, mogą to być nazwiska, kraje itp., Które nie są poufne, w przypadku gdy dane dotyczące danych kontaktowych, numeru ubezpieczenia społecznego, historii medycznej i informacji o karcie kredytowej mają charakter wrażliwy.
Dane mogą mieć dowolną postać:
- Dane testowe systemu
- Dane testowe SQL
- Dane z testów wydajności
- Dane testowe XML
Jeśli piszesz przypadki testowe, potrzebujesz danych wejściowych do każdego rodzaju testu. Tester może dostarczyć te dane wejściowe w czasie wykonywania przypadków testowych lub aplikacja może pobrać wymagane dane wejściowe z predefiniowanych lokalizacji danych.
Dane mogą być dowolnymi danymi wejściowymi do aplikacji, dowolnym plikiem ładowanym przez aplikację lub wpisami odczytywanymi z tabel bazy danych.
Przygotowanie odpowiednich danych wejściowych jest częścią konfiguracji testu. Ogólnie testerzy nazywają to przygotowanie podłoża testowego . W środowisku testowym wszystkie wymagania dotyczące oprogramowania i sprzętu są ustawiane za pomocą predefiniowanych wartości danych.
Jeśli nie masz systematycznego podejścia do tworzenia danych w czasie pisanie i wykonywanie przypadków testowych wtedy są szanse na pominięcie kilku ważnych przypadków testowych. Testerzy mogą tworzyć własne dane zgodnie z potrzebami testowymi.
Nie polegaj na danych utworzonych przez innych testerów ani na standardowych danych produkcyjnych. Zawsze twórz nowy zestaw danych zgodnie z własnymi wymaganiami.
Czasami nie jest możliwe utworzenie zupełnie nowego zestawu danych dla każdej kompilacji. W takich przypadkach możesz użyć standardowych danych produkcyjnych. Pamiętaj jednak, aby dodać / wstawić własne zestawy danych do tej istniejącej bazy danych. Najlepszym sposobem tworzenia danych jest użycie istniejących danych przykładowych lub bazy testowej i dołączanie nowych danych przypadku testowego za każdym razem, gdy otrzymujesz ten sam moduł do testowania. W ten sposób możesz zbudować kompleksowy zestaw danych w okresie.
Przetestuj wyzwania związane z pozyskiwaniem danych
Jednym z obszarów generowania danych testowych, który testerzy rozważają, jest wymóg pozyskiwania danych dla podzbioru. Na przykład masz ponad milion klientów i potrzebujesz ich tysiąca do testów. Te przykładowe dane powinny być spójne i statystycznie reprezentować odpowiedni rozkład grupy docelowej. Innymi słowy, mamy znaleźć odpowiednią osobę do przetestowania, co jest jedną z najbardziej przydatnych metod testowania przypadków użycia.
Te przykładowe dane powinny być spójne i statystycznie reprezentować odpowiedni rozkład grupy docelowej. Innymi słowy, mamy znaleźć odpowiednią osobę do przetestowania, co jest jedną z najbardziej przydatnych metod testowania przypadków użycia.
Ponadto proces ten wiąże się z pewnymi ograniczeniami środowiskowymi. Jednym z nich jest mapowanie zasad dotyczących danych osobowych. Ponieważ prywatność jest istotną przeszkodą, testerzy muszą klasyfikować dane umożliwiające identyfikację.
Narzędzia do zarządzania danymi testowymi mają na celu rozwiązanie wspomnianego problemu. Narzędzia te sugerują zasady oparte na posiadanych standardach / katalogu. Chociaż nie jest to zbyt bezpieczne ćwiczenie. Nadal oferuje możliwość audytu tego, co się robi.
Aby nadążyć za obecnymi, a nawet przyszłymi wyzwaniami, powinniśmy zawsze zadawać pytania takie jak Kiedy / gdzie powinniśmy rozpocząć prowadzenie TDM? Co powinno być zautomatyzowane? Ile inwestycji firmy powinny przeznaczyć na testowanie w obszarach stałego rozwoju umiejętności zasobów ludzkich i korzystania z nowszych narzędzi TDM? Czy powinniśmy zacząć testowanie od testów funkcjonalnych czy niefunkcjonalnych? I znacznie bardziej prawdopodobne pytania, jak one.
Poniżej wymieniono niektóre z najczęstszych wyzwań związanych z pozyskiwaniem danych testowych:
- Zespoły mogą nie mieć odpowiedniej wiedzy i umiejętności dotyczących narzędzi do generowania danych testowych
- Zakres danych testowych jest często niekompletny
- Mniejsza jasność wymagań dotyczących danych obejmujących specyfikacje wolumenu na etapie gromadzenia danych
- Zespoły testujące nie mają dostępu do źródeł danych
- Opóźnienie w udostępnianiu testerom danych produkcyjnych przez programistów
- Dane środowiska produkcyjnego mogą nie być w pełni użyteczne do testowania w oparciu o opracowane scenariusze biznesowe
- W krótkim okresie czasu mogą być potrzebne duże ilości danych
- Zależności / kombinacje danych w celu przetestowania niektórych scenariuszy biznesowych
- Testerzy spędzają więcej czasu niż potrzeba na komunikację z architektami, administratorami baz danych i BA w celu zebrania danych
- Przeważnie dane są tworzone lub przygotowywane podczas wykonywania testu
- Wiele wersji aplikacji i danych
- Ciągłe cykle wydawania w kilku aplikacjach
- Przepisy dotyczące ochrony danych osobowych (PII)
Po stronie białej skrzynki testowania danych programiści przygotowują dane produkcyjne. To jest miejsce, w którym kontrola jakości musi współpracować z programistami w celu dalszego testowania zakresu AUT. Jednym z największych wyzwań jest uwzględnienie wszystkich możliwych scenariuszy (100% przypadku testowego) z każdym możliwym przypadkiem negatywnym.
W tej sekcji omówiliśmy wyzwania związane z danymi testowymi. Możesz dodać więcej wyzwań, gdy odpowiednio je rozwiązałeś. Następnie przyjrzyjmy się różnym podejściom do projektowania i zarządzania danymi testowymi.
Strategie przygotowania danych testowych
Z codziennej praktyki wiemy, że gracze w branży testowania nieustannie doświadczają różnych sposobów i środków, aby zwiększyć wysiłki testowe, a co najważniejsze, zwiększyć ich efektywność kosztową. W krótkim okresie ewolucji informacji i technologii widzieliśmy, kiedy narzędzia są włączane do środowisk produkcyjnych / testowych, poziom wyników znacznie się zwiększył.
Kiedy mówimy o kompletności i pełnym zakresie testowania, zależy to głównie od jakości danych. Ponieważ testowanie jest podstawą osiągania jakości oprogramowania, dane testowe są podstawowym elementem procesu testowania.
Rysunek 2: Strategie zarządzania danymi testowymi (TDM)
Tworzenie płaskich plików w oparciu o reguły mapowania. Tworzenie podzbioru potrzebnych danych ze środowiska produkcyjnego, w którym programiści zaprojektowali i zakodowali aplikację, jest zawsze praktyczne. Rzeczywiście, takie podejście ogranicza wysiłki testerów związane z przygotowaniem danych i maksymalizuje wykorzystanie istniejących zasobów w celu uniknięcia dalszych wydatków.
Zazwyczaj musimy utworzyć dane lub przynajmniej zidentyfikować je na podstawie typu wymagań, które każdy projekt ma na samym początku.
Możemy zastosować następujące strategie obsługujące proces TDM:
- Dane ze środowiska produkcyjnego
- Pobieranie zapytań SQL, które wyodrębniają dane z istniejących baz danych Klienta
- Narzędzia do automatycznego generowania danych
Testerzy muszą poprzeć swoje testy pełnymi danymi, biorąc pod uwagę elementy pokazane na rysunku 3 tutaj. Pozostali w zespołach programistów zwinnych generują dane niezbędne do wykonywania przypadków testowych. Kiedy mówimy o przypadkach testowych, mamy na myśli przypadki dla różnych typów testów, takich jak biała skrzynka, czarna skrzynka, wydajność i bezpieczeństwo.
W tym momencie wiemy, że dane do testowania wydajności powinny być w stanie określić, jak szybko system reaguje przy danym obciążeniu, aby być bardzo zbliżonym do rzeczywistej lub dużej ilości danych o dużym zasięgu.
W przypadku testów białoskrzynkowych programiści przygotowują wymagane dane, aby objąć jak najwięcej gałęzi, wszystkie ścieżki w kodzie źródłowym programu oraz ujemny interfejs programowania aplikacji (API).
Rysunek 3: Testuj działania związane z generowaniem danych
Ostatecznie możemy powiedzieć, że wszyscy pracujący w cyklu życia oprogramowania ( SDLC ), podobnie jak licencjat, programiści i właściciele produktów powinni być dobrze zaangażowani w proces przygotowywania danych testowych. To może być wspólny wysiłek. A teraz przejdźmy do problemu uszkodzonych danych testowych.
Uszkodzone dane testowe
Przed wykonaniem jakichkolwiek przypadków testowych na naszych istniejących danych powinniśmy upewnić się, że dane nie są uszkodzone / nieaktualne, a testowana aplikacja może odczytać źródło danych. Zazwyczaj, gdy więcej niż tester pracuje na różnych modułach AUT w środowisku testowym w tym samym czasie, szanse na uszkodzenie danych są tak wysokie.
W tym samym środowisku testerzy modyfikują istniejące dane zgodnie ze swoimi potrzebami / wymaganiami przypadków testowych. Przeważnie, gdy testerzy skończą z danymi, pozostawiają je tak, jak są. Gdy tylko następny tester odbierze zmodyfikowane dane i wykona kolejne wykonanie testu, istnieje możliwość wystąpienia tego konkretnego niepowodzenia testu, który nie jest błędem lub defektem kodu.
W większości przypadków jest to przyczyną uszkodzenia i / lub nieaktualności danych, co prowadzi do awarii. Aby uniknąć i zminimalizować ryzyko rozbieżności danych, możemy zastosować poniższe rozwiązania. Oczywiście możesz dodać więcej rozwiązań na końcu tego samouczka w sekcji komentarzy.
- Posiadanie kopii zapasowej danych
- Przywróć zmodyfikowane dane do ich pierwotnego stanu
- Podział danych między testujących
- Informuj administratora hurtowni danych o wszelkich zmianach / modyfikacjach danych
Jak zachować nienaruszone dane w dowolnym środowisku testowym?
W większości przypadków wielu testerów jest odpowiedzialnych za testowanie tej samej kompilacji. W takim przypadku więcej niż jeden tester będzie miał dostęp do wspólnych danych i będzie próbował manipulować wspólnym zestawem danych zgodnie ze swoimi potrzebami.
Jeśli przygotowałeś dane dla określonych modułów, najlepszym sposobem na zachowanie zestawu danych w stanie nienaruszonym jest przechowywanie ich kopii zapasowych.
Dane testowe dla przypadku testu wydajności
Testy wydajnościowe wymagają bardzo dużego zestawu danych. Czasami ręczne tworzenie danych nie pozwala na wykrycie subtelnych błędów, które mogą być wychwycone tylko przez rzeczywiste dane utworzone przez testowaną aplikację. Jeśli potrzebujesz danych w czasie rzeczywistym, których nie można utworzyć ręcznie, poproś swojego lidera / menedżera o udostępnienie ich w środowisku na żywo.
Dane te będą przydatne do zapewnienia sprawnego funkcjonowania aplikacji dla wszystkich ważnych danych wejściowych.
Jakie są idealne dane testowe?
Można powiedzieć, że dane są idealne, jeśli dla minimalnego rozmiaru zestawu danych zostaną zidentyfikowane wszystkie błędy aplikacji. Postaraj się przygotować dane, które będą obejmowały wszystkie funkcje aplikacji, ale nie przekroczą ograniczeń czasowych i kosztowych związanych z przygotowaniem danych i uruchomieniem testów.
Jak przygotować dane, które zapewnią maksymalny zakres testów?
Zaprojektuj swoje dane, uwzględniając następujące kategorie:
1) Brak danych: Uruchom przypadki testowe na danych pustych lub domyślnych. Sprawdź, czy generowane są odpowiednie komunikaty o błędach.
2) Prawidłowy zestaw danych: Utwórz go, aby sprawdzić, czy aplikacja działa zgodnie z wymaganiami, a prawidłowe dane wejściowe są prawidłowo zapisane w bazie danych lub plikach.
3) Nieprawidłowy zestaw danych: Przygotuj nieprawidłowy zestaw danych, aby sprawdzić zachowanie aplikacji pod kątem wartości ujemnych, alfanumerycznych danych wejściowych.
4) Nielegalny format danych: Utwórz jeden zestaw danych o niedozwolonym formacie. System nie powinien akceptować danych w nieprawidłowym lub nielegalnym formacie. Sprawdź również, czy generowane są odpowiednie komunikaty o błędach.
5) Zbiór danych warunków brzegowych: Zbiór danych zawierający dane spoza zakresu. Zidentyfikuj przypadki graniczne aplikacji i przygotuj zestaw danych, który obejmie zarówno dolne, jak i górne warunki brzegowe.
6) Zbiór danych do testów wydajnościowych, obciążeniowych i obciążeniowych: Ten zestaw danych powinien mieć dużą objętość.
W ten sposób utworzenie oddzielnych zestawów danych dla każdego warunku testowego zapewni pełne pokrycie testu.
Dane do testów czarnoskrzynkowych
Testerzy zapewnienia jakości wykonują testy integracyjne, testy systemowe i testy akceptacyjne, zwane testami czarnoskrzynkowymi. W tej metodzie testowania testerzy nie mają żadnej pracy w strukturze wewnętrznej, projekcie i kodzie testowanej aplikacji.
Głównym celem testerów jest identyfikacja i lokalizacja błędów. W ten sposób stosujemy testy funkcjonalne lub niefunkcjonalne, używając różnych technik testowania czarnoskrzynkowego.
Rysunek 4: Metody projektowania danych w czarnej skrzynce
W tym momencie testerzy potrzebują danych testowych jako danych wejściowych do wykonywania i implementacji technik testowania czarnoskrzynkowego. A testerzy powinni przygotować dane, które zbadają całą funkcjonalność aplikacji, nie przekraczając podanego kosztu i czasu.
Możemy zaprojektować dane dla naszych przypadków testowych, biorąc pod uwagę kategorie zestawów danych, takie jak brak danych, prawidłowe dane, nieprawidłowe dane, niedozwolony format danych, dane dotyczące warunków brzegowych, partycja równoważności, tablica danych decyzyjnych, dane przejścia stanów i dane przypadków użycia. Przed przejściem do kategorii zbiorów danych, testerzy inicjują gromadzenie danych i analizę istniejących zasobów testowanej aplikacji (AUT).
Zgodnie z wcześniej wspomnianymi punktami dotyczącymi utrzymywania zawsze aktualności hurtowni danych, należy udokumentować wymagania dotyczące danych na poziomie przypadków testowych i oznaczyć je jako użyteczne lub nienadające się do ponownego wykorzystania podczas skryptowania przypadków testowych. Dzięki temu dane wymagane do testowania są dobrze wyczyszczone i udokumentowane od samego początku, do których można się później odwoływać.
Przykład danych testowych dla Open EMR AUT
W naszym bieżącym samouczku mamy Open EMR jako testowaną aplikację (AUT).
najlepszy darmowy program do czyszczenia systemu dla systemu Windows 10
=> Proszę znaleźć link do aplikacji Open EMR tutaj w celach informacyjnych / praktyki.
Poniższa tabela ilustruje prawie przykład gromadzenia wymagań dotyczących danych, które mogą być częścią dokumentacji przypadków testowych i są aktualizowane podczas pisania przypadków testowych dla scenariuszy testowych.
( UWAGA : Kliknij na dowolnym obrazie dla powiększenia)
Tworzenie ręcznych danych do testowania aplikacji Open EMR
Przejdźmy do tworzenia ręcznych danych do testowania aplikacji Open EMR dla określonych kategorii zbiorów danych.
1) Brak danych: Tester sprawdza poprawność adresu URL aplikacji Open EMR i funkcji „Wyszukaj lub dodaj pacjenta” bez podawania danych.
dwa) Prawidłowe dane: Tester sprawdza poprawność adresu URL aplikacji Open EMR i funkcji „Wyszukaj lub dodaj pacjenta”, podając prawidłowe dane.
3) Nieprawidłowe dane: Tester sprawdza poprawność adresu URL aplikacji Open EMR i funkcji „Wyszukaj lub dodaj pacjenta”, podając nieprawidłowe dane.
4) Niedozwolony format danych: Tester sprawdza poprawność adresu URL aplikacji Open EMR i funkcji „Wyszukaj lub dodaj pacjenta”, podając nieprawidłowe dane.
Dane testowe dla 1-4 kategorii zestawów danych:
5) Zbiór danych warunków brzegowych: Ma na celu określenie wartości wejściowych dla granic, które znajdują się wewnątrz lub na zewnątrz podanych wartości jako danych.
6) Zestaw danych podziału równoważności: Jest to technika testowania, która dzieli dane wejściowe na wartości wejściowe prawidłowe i nieprawidłowe.
Dane testowe dla 5thi 6thkategorie zestawów danych, które dotyczą nazwy użytkownika i hasła Open EMR:
7) Zestaw danych tabeli decyzyjnej: Jest to technika kwalifikowania danych za pomocą kombinacji danych wejściowych w celu uzyskania różnych wyników. Ta metoda testowania czarnoskrzynkowego pomaga zmniejszyć wysiłki związane z testowaniem w weryfikowaniu każdej kombinacji danych testowych. Ponadto ta technika może zapewnić pełne pokrycie testu.
Poniżej znajduje się zestaw danych tabeli decyzyjnej dotyczący nazwy użytkownika i hasła aplikacji Open EMR.
Obliczenia kombinacji wykonane w powyższej tabeli opisano w celu uzyskania szczegółowych informacji, jak poniżej. Możesz go potrzebować, gdy wykonujesz więcej niż cztery kombinacje.
- Liczba kombinacji = Liczba warunków 1 wartości * Liczba warunków 2 wartości
- Liczba kombinacji = 2 ^ Liczba warunków prawda / fałsz
- Przykład: liczba kombinacji - 2 ^ 2 = 4
8) Zestaw danych testowych przejścia między stanami: Jest to technika testowania, która pomaga w walidacji zmiany stanu testowanej aplikacji (AUT) poprzez dostarczenie do systemu warunków wejściowych.
Na przykładlogujemy się do aplikacji Open EMR, podając prawidłową nazwę użytkownika i hasło przy pierwszej próbie. System daje nam dostęp, ale jeśli wprowadzimy niepoprawne dane do logowania, system odmówi dostępu. Testowanie przejść między stanami sprawdza, ile prób logowania można wykonać przed zamknięciem Open EMR.
Poniższa tabela wskazuje, w jaki sposób reagują poprawne lub nieprawidłowe próby logowania
9) Data testu przypadków użycia: Jest to metoda testowania, która identyfikuje nasze przypadki testowe, rejestrując od końca do końca testowanie określonej funkcji.
Przykład, otwórz logowanie EMR:
Przeczytaj także => Techniki zarządzania danymi
Właściwości dobrych danych testowych
Jako tester musisz przetestować moduł „Wyniki egzaminów” na stronie internetowej uczelni. Weź pod uwagę, że cała aplikacja została zintegrowana i jest w stanie „Gotowy do testowania”. „Moduł egzaminacyjny” jest powiązany z modułami „Rejestracja”, „Kursy” i „Finanse”.
Załóż, że masz wystarczające informacje o aplikacji i utworzyłeś obszerną listę scenariuszy testowych. Teraz musisz zaprojektować, udokumentować i wykonać te przypadki testowe. W sekcji „Działania / Kroki” lub „Dane wejściowe do testu” przypadków testowych należy podać dopuszczalne dane jako dane wejściowe do testu.
Dane wymienione w przypadkach testowych muszą być odpowiednio dobrane. Dokładność kolumny „Rzeczywiste wyniki” w dokumencie przypadku testowego zależy przede wszystkim od danych testowych. Tak więc krok w celu przygotowania danych wejściowych do testów jest bardzo ważny. Oto moje podsumowanie na temat „Testowanie bazy danych - strategie przygotowywania danych testowych”.
Testuj właściwości danych
Dane testowe powinny być precyzyjnie dobrane i muszą posiadać następujące cztery cechy:
1) Realistyczne:
Realne oznacza, że dane powinny być dokładne w kontekście rzeczywistych scenariuszy. Na przykład, aby przetestować pole „Wiek”, wszystkie wartości powinny być dodatnie i mieć 18 lub więcej wartości. Jest dość oczywiste, że kandydaci na studia mają zazwyczaj 18 lat (inaczej można to zdefiniować w kontekście wymagań biznesowych).
Jeśli testowanie jest wykonywane przy użyciu realistycznych danych testowych, aplikacja będzie bardziej niezawodna, ponieważ większość możliwych błędów można wychwycić przy użyciu realistycznych danych. Kolejną zaletą realistycznych danych jest możliwość ich ponownego wykorzystania, co pozwala zaoszczędzić czas i wysiłek związany z ponownym tworzeniem nowych danych.
Kiedy mówimy o realistycznych danych, chciałbym przedstawić koncepcję złotego zestawu danych. Złoty zestaw danych to taki, który obejmuje prawie wszystkie możliwe scenariusze występujące w rzeczywistym projekcie. Korzystając z GDS, możemy zapewnić maksymalne pokrycie testów. Używam GDS do przeprowadzania testów regresyjnych w mojej organizacji, co pomaga mi przetestować wszystkie możliwe scenariusze, które mogą wystąpić, jeśli kod trafi do pudełka produkcyjnego.
Na rynku dostępnych jest wiele narzędzi do generowania danych testowych, które analizują charakterystyki kolumn i definicje użytkowników w bazie danych i na ich podstawie generują dla Ciebie realistyczne dane testowe. Niewiele z dobrych przykładów narzędzi generujących dane do testowania baz danych to Generator danych DTM , Generator danych SQL i Mockaroo .
2. Praktycznie ważne:
Jest to podobne do realistycznego, ale nie to samo. Ta właściwość jest bardziej związana z logiką biznesową AUT, np. wartość 60 jest realistyczna w dziedzinie wieku, ale praktycznie nieważna dla kandydata na studiach magisterskich lub nawet na studiach magisterskich. W takim przypadku prawidłowy zakres to 18–25 lat (można to określić w wymaganiach).
3. Wszechstronny, obejmujący scenariusze:
c ++ konwertowanie char na int
W jednym scenariuszu może występować kilka kolejnych warunków, więc należy sprytnie dobrać dane, aby objąć maksymalne aspekty pojedynczego scenariusza z minimalnym zestawem danych, np. tworząc dane testowe dla modułu wynikowego, nie bierz pod uwagę tylko przypadku zwykłych studentów, którzy płynnie kończą swój program. Zwróć uwagę na studentów, którzy powtarzają ten sam kurs i należą do różnych semestrów lub nawet różnych programów. Zbiór danych może wyglądać następująco:
Pan# | Legitymacja studencka | ID_programu | Identyfikator kursu | Stopień |
1 | BCS-Fall2011-Morning-01 | BCS-F11 | CS-401 | DO |
dwa | BCS-wiosna2011-wieczór-14 | BCS-S11 | CS-401 | B + |
3 | MIT-jesień2010-popołudnie-09 | MIT-F10 | CS-401 | DO- |
... | ... | ... | ... | ... |
Może istnieć kilka innych interesujących i trudnych warunków podrzędnych. Na przykład. ograniczenie lat do ukończenia studiów, zaliczenie kursu wymaganego do rejestracji na kurs, maksymalnie nie. kursów, które student może zapisać na jeden semestr itp. itp. Upewnij się, że mądrze uwzględnisz wszystkie te scenariusze, korzystając z ograniczonego zestawu danych.
4. Wyjątkowe dane (jeśli dotyczy / wymagane):
Mogą istnieć pewne wyjątkowe scenariusze, które występują rzadziej, ale wymagają dużej uwagi, gdy wystąpią, np. problemy związane z uczniami niepełnosprawnymi.
Kolejne dobre wyjaśnienie i przykład wyjątkowego zestawu danych widać na poniższym obrazku:
Na wynos:
Dane testowe są znane jako dobre dane testowe, jeśli są realistyczne, ważne i wszechstronne. Dodatkową zaletą jest to, że dane zapewniają pokrycie również wyjątkowych scenariuszy.
Techniki przygotowania danych testowych
Pokrótce omówiliśmy ważne właściwości danych testowych, a także wyjaśniliśmy, jak ważny jest wybór danych testowych podczas testowania bazy danych. Omówmy teraz ' techniki przygotowania danych testowych ' .
Istnieją tylko dwa sposoby przygotowania danych testowych:
Metoda nr 1) Wstaw nowe dane
Uzyskaj czystą bazę danych i wstaw wszystkie dane zgodnie z opisem w przypadkach testowych. Po wprowadzeniu wszystkich wymaganych i pożądanych danych rozpocznij wykonywanie przypadków testowych i wypełnij kolumny „Pass / Fail”, porównując „Rzeczywiste wyniki” z „Oczekiwanymi wynikami”. Brzmi prosto, prawda? Ale poczekaj, to nie jest takie proste.
Oto kilka istotnych i krytycznych obaw:
- Pusta instancja bazy danych może być niedostępna
- Wstawione dane testowe mogą być niewystarczające do testowania niektórych przypadków, takich jak testy wydajności i obciążenia.
- Wstawienie wymaganych danych testowych do pustej bazy danych nie jest łatwym zadaniem ze względu na zależności między tabelami bazy danych. Z powodu tego nieuniknionego ograniczenia, wprowadzanie danych może stać się trudnym zadaniem dla testera.
- Wstawienie ograniczonych danych testowych (tylko zgodnie z potrzebami przypadku testowego) może ukryć niektóre problemy, które można znaleźć tylko w przypadku dużego zestawu danych.
- Do wstawienia danych mogą być wymagane złożone zapytania i / lub procedury, a do tego niezbędna byłaby wystarczająca pomoc lub pomoc twórcy (-ów) bazy danych.
Wyżej wymienione pięć kwestii to najbardziej krytyczne i najbardziej oczywiste wady tej techniki przygotowania danych testowych. Ale są też pewne zalety:
- Wykonywanie TC staje się bardziej wydajne, ponieważ DB ma tylko wymagane dane.
- Izolacja błędów nie wymaga czasu, ponieważ w bazie danych znajdują się tylko dane określone w przypadkach testowych.
- Krótszy czas potrzebny na testowanie i porównywanie wyników.
- Bezproblemowy proces testowania
Metoda nr 2) Wybierz przykładowy podzbiór danych z rzeczywistych danych DB
Jest to wykonalna i bardziej praktyczna technika przygotowania danych testowych. Wymaga to jednak solidnych umiejętności technicznych i szczegółowej znajomości schematu DB i języka SQL. W tej metodzie należy skopiować i wykorzystać dane produkcyjne, zastępując niektóre wartości pól wartościami fikcyjnymi. Jest to najlepszy podzbiór danych do testów, ponieważ reprezentuje dane produkcyjne. Ale może to nie być możliwe przez cały czas ze względu na kwestie bezpieczeństwa danych i prywatności.
Na wynos:
W powyższej sekcji omówiliśmy powyżej techniki przygotowania danych testowych. Krótko mówiąc, istnieją dwie techniki - albo utworzenie nowych danych, albo wybranie podzbioru z już istniejących danych. Obie muszą być wykonane w taki sposób, aby wybrane dane zapewniały pokrycie dla różnych scenariuszy testowych, głównie testów prawidłowych i nieprawidłowych, testów wydajności i testów zerowych.
W ostatniej sekcji zapoznajmy się również z metodami generowania danych. Podejścia te są pomocne, gdy musimy wygenerować nowe dane.
Podejścia do generowania danych testowych:
- Ręczne generowanie danych testowych: W tym podejściu dane testowe są ręcznie wprowadzane przez testerów zgodnie z wymaganiami przypadku testowego. Jest to czasochłonny proces i podatny na błędy.
- Automatyczne generowanie danych testowych: Odbywa się to za pomocą narzędzi do generowania danych. Główną zaletą tego podejścia jest jego szybkość i dokładność. Jednak wiąże się to z wyższymi kosztami niż ręczne generowanie danych testowych.
- Wstrzyknięcie danych zaplecza : Odbywa się to za pomocą zapytań SQL. Takie podejście może również zaktualizować istniejące dane w bazie danych. Jest szybki i wydajny, ale powinien być wdrażany bardzo ostrożnie, aby istniejąca baza danych nie została uszkodzona.
- Korzystanie z narzędzi innych firm : Na rynku dostępne są narzędzia, które najpierw rozumieją scenariusze testowe, a następnie odpowiednio generują lub wprowadzają dane, aby zapewnić szeroki zakres testów. Narzędzia te są dokładne, ponieważ są dostosowane do potrzeb biznesowych. Ale są dość kosztowne.
Na wynos:
Istnieją 4 podejścia do testowania generowania danych:
- Podręcznik,
- automatyzacja,
- wstrzykiwanie danych do zaplecza,
- i narzędzia innych firm.
Każde podejście ma swoje zalety i wady. Powinieneś wybrać podejście, które spełnia Twoje potrzeby biznesowe i testowe.
Wniosek
Tworzenie kompletnych danych testowych oprogramowania zgodnie z normami branżowymi, ustawodawstwem i podstawowymi dokumentami podjętego projektu jest jednym z głównych obowiązków testerów. Im skuteczniej zarządzamy danymi testowymi, tym więcej możemy wdrażać w miarę wolne od błędów produkty dla rzeczywistych użytkowników.
Zarządzanie danymi testowymi (TDM) to proces oparty na analizie wyzwań i wprowadzaniu oraz stosowaniu najlepszych narzędzi i metod, aby dobrze rozwiązać zidentyfikowane problemy bez narażania niezawodności i pełnego pokrycia końcowego wyniku (produktu).
Zawsze musimy stawiać pytania o poszukiwanie nowatorskich i bardziej efektywnych kosztowo metod analizy i doboru metod testowania, w tym wykorzystania narzędzi do generowania danych. Powszechnie udowadnia się, że dobrze zaprojektowane dane pozwalają na identyfikację usterek testowanej aplikacji na każdym etapie wielofazowego SDLC.
Musimy być kreatywni i współpracować ze wszystkimi członkami w naszym zwinnym zespole i poza nim. Podziel się swoją opinią, doświadczeniem, pytaniami i komentarzami, abyśmy mogli kontynuować nasze dyskusje techniczne i zmaksymalizować nasz pozytywny wpływ na AUT poprzez zarządzanie danymi.
Przygotowanie odpowiednich danych testowych jest podstawowym elementem „konfiguracji środowiska testowego projektu”. Nie możemy po prostu pominąć przypadku testowego, który mówi, że pełne dane nie były dostępne do testowania. Tester powinien stworzyć własne dane testowe, dodatkowe w stosunku do istniejących standardowych danych produkcyjnych. Twój zestaw danych powinien być idealny pod względem kosztów i czasu.
Bądź kreatywny, wykorzystaj własne umiejętności i osądy, aby tworzyć różne zestawy danych zamiast polegać na standardowych danych produkcyjnych.
Część druga - Druga część tego samouczka dotyczy ' Przetestuj generowanie danych za pomocą narzędzia GEDIS Studio Online ”.
Czy spotkałeś się z problemem niepełnych danych testowych do testów? Jak sobie z tym poradziłeś? Prosimy o podzielenie się wskazówkami, doświadczeniem, komentarzami i pytaniami, aby jeszcze bardziej wzbogacić ten temat dyskusji.
rekomendowane lektury
- Samouczek testowania hurtowni danych ETL (kompletny przewodnik)
- Co to jest testowanie mutacji: samouczek z przykładami
- Jak przeprowadzić testy oparte na danych za pomocą narzędzia TestComplete
- Testowanie oparte na danych lub parametryzowane za pomocą Spock Framework
- 4 kroki do testowania Business Intelligence (BI): jak testować dane biznesowe
- Samouczek dotyczący testowania objętościowego: przykłady i narzędzia do testowania objętościowego
- Doskonały sposób testowania danych przy użyciu technologii XML (biała księga)
- 10 najlepszych narzędzi do testowania i walidacji danych strukturalnych dla SEO