test data management concept
W ostatnim samouczku skupiliśmy się na jak przygotować Stanowisko Testowe, aby zminimalizować defekty środowiska testowego . Kontynuując ten sam samouczek, dzisiaj się nauczymy jak skonfigurować i utrzymywać środowisko testowe i ważneZarządzanie danymi testowymitechniki.
Proces konfiguracji środowiska testowego
Najważniejszym czynnikiem dla środowiska testowego jest jego replikacja jak najbliżej środowiska użytkownika końcowego. Zwykle od użytkowników końcowych nie oczekuje się samodzielnego wykonywania jakiejkolwiek konfiguracji lub instalacji, gdy wysyłany jest do nich kompletny produkt lub system. Stąd wg zgodnie z tą definicją, nawet zespoły testowe nie muszą jawnie wykonywać takich konfiguracji.
Jeśli takie konfiguracje są niezbędne do celów czysto testowych (ale zostaną skonfigurowane dla użytkowników końcowych), należy zidentyfikować administratorów. Administratorzy, którzy konfigurują środowisko programistyczne, muszą być tymi samymi osobami, które konfigurują środowisko testowe.
Jeśli zespół programistów sam przejmuje inicjatywę w instalacji / konfiguracji, musi pomóc zrobić to samo nawet w środowisku testowym.
Na przykład, jeśli musisz przetestować aplikację (z powiązanym oprogramowaniem pośrednim do zainstalowania i skonfigurowania) w systemie na różnych platformach systemów operacyjnych itp. - najlepszym sposobem rozwiązania tego problemu jest użycie wirtualizacja lub środowiska chmurowe .
Mieć system główny, w którym wszystkie aplikacje i potrzebne oprogramowanie pośrednie są poprawnie zainstalowane i skonfigurowane. Następnie uczyń ten system obrazem głównym, przechwytując go i klonując kilka instancji z tego samego obrazu, tak aby każdy użytkownik miał wrażenie, że ma dedykowany system z testowaną aplikacją.
Poniżej znajduje się obrazowe przedstawienie tego, na czym polegałby proces środowiska testowego:
Proces konfiguracji środowiska testowego
Czego się nauczysz:
Utrzymanie środowiska testowego
Tak wiele mówi się o przygotowaniu środowiska testowego, choć mimo wyzwań jest to bez wątpienia więcej niż podstawa do konieczności jego utrzymania lub standaryzacji. Tester często traci czas na testowanie z powodu problemów ze środowiskiem lub konfiguracją.
Wraz z gwałtownym rozwojem systemów operacyjnych oraz zakresu sprzętu i oprogramowania, środowisko musi mieć niemal dynamiczny charakter, aby sprostać potrzebom. Zespoły testowe mogą zapewnić, że dostarczają wysokiej jakości produkt z dobrym procesem zarządzania testami, a to pomoże w optymalnym wykorzystaniu zasobów, które są ograniczone.
Kluczowe wskazówki zapewniające efektywne utrzymanie środowiska testowego
Ponieważ środowiska testowe w większości przypadków zawierają heterogeniczne platformy i stosy, poniżej przedstawiono kilka kluczowych wskazówek zapewniających skuteczne utrzymanie środowiska testowego.
# 1) Efektywne udostępnianie i dystrybucja środowiska:
Jak już wspomniano wcześniej, jednym z kluczowych wyzwań związanych z przygotowaniem środowiska testowego jest to, że wiele zespołów lub osób musi używać tego samego zestawu zasobów do celów testowych. Dlatego należy opracować odpowiedni mechanizm udostępniania, który będzie odpowiadał potrzebom wszystkich zespołów i ludzi, bez opóźniania harmonogramów.
Można to osiągnąć poprzez utrzymywanie repozytorium lub łącza informacyjnego, w którym znajdują się wszystkie dane dotyczące:
- kto korzysta ze środowiska,
- kiedy środowisko jest wolne do użytku i
- w jaki sposób rozkład czasu użytkowania środowiska jest wprowadzany dokładnie.
Dzięki proaktywnemu określaniu, gdzie zapotrzebowanie na zasoby jest duże, a gdzie ich ograniczona dostępność, duża część chaosu zostaje automatycznie zniwelowana.
Drugim aspektem jest ponowne przyjrzenie się wymaganiom zasobów każdego zespołu cykl testowy i poszukaj, które zasoby nie są wykorzystywane bardzo intensywnie. Przeanalizuj, czy te konkretne zasoby można zastąpić nowymi zasobami lub systemami, które mogą być potrzebne.
# 2) Kontrole poczytalności:
Niektóre wymagania testowe wymagają kompleksowej konfiguracji lub konfiguracji testów, która obejmuje skomplikowane kroki, które są niezwykle czasochłonne. Dzieje się tak szczególnie podczas testy od końca do końca co wymaga współpracy dwóch lub więcej elementów. W związku z tym to samo środowisko testowe może wymagać ponownego użycia przez wiele zespołów.
W takich przypadkach, mając dobre zrozumienie całego środowiska jako całości, zestawienie rodzajów testów przeprowadzanych przez różne zespoły, stworzy rozsądny obraz, który pomoże zapewnić te określone zasoby odpowiednim zespołom.
Biorąc pod uwagę powyższe czynniki - można przeprowadzić podstawowe testy poprawności, które pomogą przyspieszyć testy dla poszczególnych zespołów lub natychmiast zaalarmować je, jeśli środowisko musi przejść jakieś zmiany lub poprawki w wyniku tych kontroli.
# 3) Śledzenie wszelkich awarii:
Tak jak każdy zespół będący właścicielem środowiska testowego ma swoje, tak organizacja posiada wszystkie możliwe środowiska testowe utrzymywane przez globalny zespół wsparcia.
Dodatkowo, podobnie jak zespoły posiadające swoje środowisko testowe mają własne lokalne przestoje w przypadku jakichkolwiek aktualizacji oprogramowania układowego / oprogramowania, zespoły globalne muszą również zapewnić, że wszystkie środowiska spełniają najnowsze standardy, które mogą wiązać się z przerwami w dostawie prądu lub sieci.
Dlatego osoby utrzymujące środowisko testowe muszą mieć oko na wszelkie takie przerwy, które mogą się zdarzyć i wcześniej poinformować zespół testowy, aby odpowiednio zaplanował swoją pracę.
# 4) Wirtualizuj tam, gdzie to możliwe:
Jest to ponownie bardzo istotne, gdy konieczne jest przeprowadzenie testów przy współużytkowaniu środowiska i istnieje pilna potrzeba optymalizacji zasobów. W takich czasach rozwiązaniem jest wykorzystanie zwirtualizowanego środowiska, takiego jak chmura do celów testowych.
Korzystając z takiego środowiska, testerzy muszą tylko zapewnić natychmiastową, a ta instancja po udostępnieniu utworzy niezależne stanowisko testowe lub środowisko testowe zawierające wszystkie różnorodne zasoby, takie jak dedykowany system operacyjny, baza danych, oprogramowanie pośredniczące, ramy automatyzacji itp. wymagane do testów.
Po zakończeniu testów instancje te mogą zostać zniszczone, co znacznie obniża koszty organizacji. Środowiska chmurowe są szczególnie przydatne do testowania weryfikacji funkcjonalnej, obszarów testowania automatyzacji.
# 5) Testowanie regresji / automatyzacja:
Przykład sortowania bąbelkowego w języku c ++
Kiedy pojawiają się nowe funkcje i cechy, testy regresji muszą być wykonywane dla tych funkcji w każdym cyklu wydawniczym. Stąd, chociaż na późniejszym etapie środowiska testowe do testów regresyjnych wydają się działać na tej samej konfiguracji testowej z tymi samymi danymi, w rzeczywistości stale ewoluują w każdym wydaniu, zgodnie z zaimplementowanymi funkcjami.
Każdy cykl wydawania produktu miałby jedną lub więcej rund testów regresji. W ten sposób ustanowienie środowisk testów regresyjnych dla każdego cyklu wydawania produktu i ponowne ich użycie w ramach cyklu zdecydowanie przedstawiłoby stabilność środowiska testowego.
Tworzenie ram automatyzacji i używanie automatyzacji do testów regresywnych pomaga również w poprawie wydajności środowiska testowego, ponieważ automatyzacja zakłada, że środowisko jest stabilne, a powstałe defekty są zorientowane wyłącznie na funkcje / kody.
# 6) Ogólne zarządzanie:
W przypadku wystąpienia problemów ze sprzętem lub oprogramowaniem środowiska testowego należy je skierować do odpowiednich osób, aby zapewnić poprawki, jeśli osoby zajmujące się laboratorium nie mogą naprawić ich wewnętrznie.
Na przykład, Jeśli jakiekolwiek testy spowodują usterkę, która obejmuje ograniczenie oprogramowania sprzętowego lub oprogramowania używanego w bieżącym środowisku, zasadniczo nie może to być naprawione wyłącznie przez osoby odpowiedzialne za konserwację środowiska.
Stąd konsument (który jest w tym przypadku testerem) musi zostać poproszony o zgłoszenie odpowiednich zgłoszeń serwisowych. Muszą być one skierowane do odpowiedniego dostawcy lub zespołu i muszą być z nimi regularnie koordynowane, aby mieć pewność, że następna wersja rozwiązała dany problem.
Innym aspektem zarządzania byłoby okresowe dostarczanie kierownictwu lub interesariuszom szczegółowych raportów dotyczących środowiska, co pomaga w emanowaniu przejrzystości i stanowi dobrą podstawę do wszelkich analiz.
Przygotowanie danych testowych
Przyjrzyjmy się teraz drugiej części pliku Tworzenie stanowiska testowego - co wiąże się z konfiguracją danych testowych . Przy tak dużym fragmencie środowiska testowego można zmierzyć prawdziwą istotę środowiska testowego, jego solidność i wydajność za pomocą danych testowych. Z definicji, dane testowe to wszelkiego rodzaju dane wejściowe podane do testowanego kodu oprogramowania.
Chociaż poświęcamy dużo czasu na projektowanie przypadków testowych, powodem, dla którego dane testowe są ważne, jest to, że zapewniają pełne pokrycie testowe dla wszystkich rodzajów scenariuszy, poprawiając w ten sposób jakość. Mogą istnieć pewne dane testowe, które są potrzebne do każdego szczęśliwego lub pozytywnego testowania ścieżki.
Niektóre inne dane mogą być przeznaczone do testowania błędów lub negatywnych testów, co jest bardzo pomocne w odkrywaniu, jak działa aplikacja w nietypowych sytuacjach.
Dane testowe są generalnie tworzone przed rozpoczęciem wykonywania tekstu, ponieważ każde środowisko testowe ma swój własny zestaw złożoności lub samo przygotowanie danych może być długotrwałym procesem. Generalnie źródłem danych testowych może być wewnętrzny zespół programistów lub użytkownicy końcowi korzystający z kodu lub funkcji.
Na przykład,Testowanie funkcji
Weźmy przykład, w którym musisz przeprowadzić testy funkcjonalne lub testy czarnoskrzynkowe. Tutaj celem jest, aby kod funkcjonalnie spełniał określone wymagania.
Czyli w takich przypadkach - przygotowanie przypadków testowych powinno generalnie obejmować następujące rodzaje danych:
- Dane dodatniej ścieżki: Z dokumentem przypadku użycia jako odniesieniem, są to dane zasadniczo zsynchronizowane z wykonywaniem pozytywnych scenariuszy ścieżki.
- Dane negatywnej ścieżki: Są to dane, które są ogólnie uważane za „nieważne” w odniesieniu do prawidłowego działania kodu.
- Puste dane: Dostarczanie żadnych danych, gdy aplikacja lub kod oczekuje tych danych.
- Błędne dane: Określanie wydajności kodu, gdy dane są dostarczane w niedozwolonym formacie.
- Dane dotyczące warunków brzegowych: Przetestuj dane, które są dostarczane z indeksu lub tablicy, aby określić, jak działa kod.
Dane testowe odgrywają kluczową rolę w określaniu, gdzie produkt lub funkcja może się całkowicie zepsuć. Zawsze stosuj praktykę sondowania i weryfikowania rodzaju danych wprowadzanych do środowiska testowego w różnych fazach testowania.
Zarządzanie danymi testowymi
Gdy dane testowe odgrywają tak ważną rolę w zapewnianiu jakości produktu, rozsądne jest stwierdzenie, że zarządzanie nimi i usprawnianie również odgrywa równie ważną rolę w zapewnianiu jakości każdego produktu, który ma być udostępniony klientom.
Potrzeba zarządzania danymi testowymi i najlepsze praktyki:
# 1) Wiele organizacji ma szybko zmieniające się cele biznesowe aby zaspokoić potrzeby użytkowników końcowych, dlatego nie trzeba wspominać, że odpowiednie dane testowe są instrumentalne w określaniu jakości testów. Będzie to wymagało ustalenia dokładnego rodzaju danych dla odpowiednich środowisk testowych i monitorowania wzorców zachowań.
Jak już wspomniano, duża część czasu zespołu testowego jest poświęcana na planowanie danych testowych i związanych z nimi zadań. Wielokrotnie testowanie dowolnej funkcjonalności bywa znacznie utrudnione z powodu braku dostępności odpowiednich danych testowych, co stanowi krytyczne wyzwanie w odniesieniu do pełnego pokrycia testowego.
#dwa) Czasami także dla określonych wymagań testowych dane testowe muszą być stale odświeżane . To samo w sobie powoduje duże opóźnienie cyklu z powodu ciągłych przeróbek, co również zwiększa koszt aplikacji trafiającej na rynek.
W niektórych innych przypadkach, jeśli wysyłany produkt jest związany z różnymi jednostkami grup roboczych w dużej organizacji, tworzenie i odświeżanie danych testowych wymaga skomplikowanego poziomu koordynacji w tych grupach roboczych.
# 3) Chociaż zespoły testowe muszą tworzyć wszelkiego rodzaju dane, które są możliwe do zapewnienia odpowiedniego testowania, organizacje muszą również wziąć pod uwagę, że oznaczałoby to, że wszystkie rodzaje danych będą musiały być przechowywane w jakimś repozytorium.
Chociaż posiadanie repozytorium jest dobrą praktyką, przechowywanie nadmiernych i niechciane dane nie tylko znacznie zwiększyłoby przestrzeń dyskową do przechowywania tych dużych porcji danych, ale także sprawiłoby, że pobranie odpowiednich danych do testów, o których mowa, staje się coraz trudniejsze, jeśli nie ma utrzymywania wersji i archiwizacji tego repozytorium.
Większość organizacji zazwyczaj boryka się z tymi powszechnymi wyzwaniami w odniesieniu do danych testowych. Dlatego potrzebne są pewne strategie zarządzania, które należy wdrożyć, aby zminimalizować stopień tych wyzwań.
Poniżej znajduje się kilka sugerowanych metodologii zarządzania danymi testowymi i utrzymywania ich adekwatności do potrzeb testowych. Poniższe praktyki są bardzo podstawowe i ogólne, które zwykle sprawdzają się w większości organizacji. Sposób przyjęcia zależy wyłącznie od decyzji odpowiednich organizacji.
Testuj strategie zarządzania danymi
# 1) Analiza danych
Ogólnie rzecz biorąc, dane testowe są konstruowane na podstawie przypadków testowych do wykonania. Na przykład w zespole testującym system scenariusz testowy od końca do końca należy zidentyfikować, na podstawie których zaprojektowano dane testowe. Może to wymagać działania jednej lub więcej aplikacji.
Powiedzmy w produkcie, który zarządza obciążeniem - obejmuje on aplikację kontrolera zarządzania, aplikacje oprogramowania pośredniego, aplikacje bazodanowe, które działają we wzajemnej relacji. Wymagane dane testowe dla tego samego mogą być rozproszone. Aby zapewnić skuteczne zarządzanie, należy przeprowadzić dokładną analizę wszystkich różnych rodzajów danych, które mogą być wymagane.
# 2) Konfiguracja danych w celu odzwierciedlenia środowiska produkcyjnego
Jest to na ogół rozszerzenie poprzedniego kroku i pozwala zrozumieć, jaki będzie scenariusz dla użytkownika końcowego lub produkcji i jakie dane są do tego potrzebne. Użyj tych danych i porównaj je z danymi, które obecnie istnieją w bieżącym środowisku testowym. Na podstawie tych nowych danych może być konieczne utworzenie lub zmodyfikowanie.
# 3) Określenie czyszczenia danych testowych
W oparciu o wymagania testowe w bieżącym cyklu wydawania (gdzie cykl wydania może trwać przez długi czas), może zajść potrzeba zmiany lub utworzenia danych testowych, jak podano w powyższym punkcie. Te dane testowe, chociaż nie są bezpośrednio istotne, mogą być wymagane w późniejszym czasie. Dlatego należy sformułować jasny proces określania, kiedy dane testowe mogą zostać wyczyszczone.
# 4) Zidentyfikuj wrażliwe dane i chroń je
Wiele razy, aby poprawnie przetestować aplikacje, może być potrzebna duża ilość bardzo wrażliwych danych. Na przykład, Środowisko testowe oparte na chmurze jest popularnym wyborem, ponieważ umożliwia testowanie różnych produktów na żądanie.
Jednak coś tak podstawowego, jak zagwarantowanie prywatności użytkownika w chmurze, jest powodem do niepokoju. Dlatego szczególnie w przypadkach, w których będziemy musieli powielić środowisko użytkownika, należy zidentyfikować mechanizm ochrony wrażliwych danych. Mechanizm w dużej mierze zależy od ilości wykorzystanych danych testowych.
# 5) Automatyzacja
Tak jak wdrażamy automatyzację do wykonywania powtarzalnych testów lub do uruchamiania tych samych testów z różnymi rodzajami danych, możliwe jest również zautomatyzowanie tworzenia danych testowych. Pomogłoby to w ujawnieniu wszelkich błędów, które mogą wystąpić w odniesieniu do danych podczas testowania. Możliwym sposobem jest porównanie wyników uzyskanych przez zestaw danych z kolejnych przebiegów testowych. Następnie zautomatyzuj ten proces porównywania.
# 6) Efektywne odświeżanie danych za pomocą centralnego repozytorium
Jest to zdecydowanie najważniejsza metodologia i stanowi podstawę wdrażania zarządzania danymi. Wszystkie wymienione powyżej punkty, szczególnie te dotyczące konfiguracji danych, czyszczenia danych, są z tym bezpośrednio lub pośrednio powiązane.
Dużo wysiłku związanego z tworzeniem danych testowych można zaoszczędzić, utrzymując centralne repozytorium, które zawiera wszelkiego rodzaju dane, które mogą być wymagane do różnego rodzaju testów. Jak to się robi? W kolejnych cyklach testowych dla nowego przypadku testowego lub zmodyfikowanego przypadku testowego sprawdź, czy dane istnieją w repozytorium. Jeśli nie istnieje, najpierw wprowadź te dane do środowiska testowego.
Następnie można to skierować do tego repozytorium w celu wykorzystania w przyszłości. Teraz dla kolejnych cykli wydawniczych zespół testowy może wykorzystać wszystkie lub podzbiór tych danych. Czy korzyść nie jest bardzo widoczna? W zależności od zestawów danych, które są często używane, przestarzałe dane można łatwo wyeliminować, a tym samym zapewnić, że prawidłowe dane są zawsze obecne, zmniejszając w ten sposób koszt przechowywania tych niepotrzebnych danych.
Po drugie, możesz również zapisać kilka wersji tego repozytorium lub w razie potrzeby zmodyfikować je. Posiadanie różnych wersji repozytorium może bardzo pomóc w testowaniu regresji, aby zidentyfikować, jakie zmiany w danych mogą spowodować uszkodzenie kodu.
Wniosek
Środowisko testowe powinno mieć pierwszorzędne znaczenie w każdym zespole testowym. Każdy cykl wydawniczy przyniesie wiele nowych wyzwań do walki w zawodnym i nieplanowanym środowisku testowym.
Jako rewolucyjny środek, wiele organizacji wprowadza obecnie strategie, takie jak tworzenie dedykowanych zespołów utrzymania środowiska testowego, które ustanawiają określone ramy efektywnego utrzymania środowisk testowych, aby zapewnić płynniejsze cykle wydawania.
Ulepszone testowanie to tylko oczywisty efekt usprawnienia zarządzania danymi testowymi. Kluczową jego istotą jest zapewnienie efektywnego kosztowo rozwiązania dla organizacji, bez uszczerbku dla niezawodności produktu.
Daj nam znać, jak zarządzasz swoim środowiskiem testowym i jak przygotowujesz dane testowe? Chcesz dodać jakieś wskazówki?
rekomendowane lektury
- 14 NAJLEPSZYCH narzędzi do zarządzania danymi testowymi w 2021 r
- 10 najlepszych narzędzi do analizy danych dla idealnego zarządzania danymi [LISTA 2021]
- Samouczek zarządzania testami: Kompletny przewodnik po zarządzaniu testami
- Co to są dane testowe? Techniki przygotowania danych testowych z przykładem
- Funkcja puli danych w produkcie IBM Rational Quality Manager do zarządzania danymi testowymi
- Tworzenie Selenium Framework i dostęp do danych testowych z Excela - samouczek Selenium # 21
- Generowanie danych testowych za pomocą narzędzia online GEDIS Studio (część 2)