how effectively prepare test bed
Wyzwania związane z konfiguracją stanowiska testowego / środowiska testowego i najlepsze praktyki:
Kilkakrotnie testerzy stwierdzają, że ich wady są odrzucane ze względu na kwestie środowiskowe lub stale powielają defekty z podobnych powodów. Podczas gdy otwieranie jak największej liczby defektów z pewnością musi być jednym z osobistych punktów odniesienia dla każdego testera, większość testerów musi również położyć nacisk na posiadanie jak największej liczby ważnych defektów.
Jak to się osiąga?
Oprócz innych aspektów, takich jak planowanie różnych scenariuszy testowych i dokładne zrozumienie pozycji zamówienia, a należy poświęcić dużo czasu na skonfigurowanie stanowiska testowego lub środowiska testowego . Po drugie, pomimo szacowanej kwoty przeznaczonej na planowanie przypadków testowych, testerzy również muszą skupić swoją energię tworzenie efektywnych danych testowych .
Osobiście, będąc częścią procesu audytu, zauważyłem, że najwięcej prawidłowych defektów można znaleźć, gdy dużo wysiłku włożono w poprawne utworzenie platformy testowej lub środowiska testowego oraz gdy tester zrozumienie rodzaju potrzebnego środowiska.
Ponadto rodzaj danych testowych dostarczanych do środowiska testowego może ujawnić bardzo poważne wady testowanego kodu / funkcji, które mogą poważnie wpłynąć na jakość produktu.
W tym artykule omówiono, na czym dokładnie polega łóżko testowe: Jest to dwuetapowy proces konfiguracji środowiska testowego i konfiguracji danych testowych:
Część 1) We wcześniejszej części artykułu omówiono ogólny proces konfiguracji środowiska testowego , najczęściej napotykane problemy z konfiguracją, z którymi borykają się testy i wskazówki, o których należy pamiętać podczas tworzenia stanowiska testowego zamiast tych wyzwań.
Część 2) Powiedziawszy tak wiele na temat łóżka testowego w tym artykule, warto było rzucić trochę światła na to Konserwacja środowiska testowego aspekty jak również. W drugiej części artykułu omówiono drugą część konfiguracji stanowiska testowego, która obejmuje dane testowe, podejście do jego konfiguracji i niektóre skuteczne Techniki zarządzania danymi testowymi .
Przy ciągłym „wielkim wybuchu” w tworzeniu i testowaniu oprogramowania coraz większy nacisk kładzie się na przyjmowanie różnych metodologii, aby ogólny proces Zapewnienia Jakości był przejrzysty, wydajny i odpowiedni.
Różne audyty jakości są przeprowadzane w różnych organizacjach, aby upewnić się, że wydajność zespołu testującego może być odpowiednio oceniona i ma mierzalne wyniki z metrykami zidentyfikowanymi na początku cyklu testowego. Wyniki te pozwalają określić, na jakiej pozycji znajduje się dany zespół, jeśli chodzi o zapewnienie optymalnej jakości testowanego oprogramowania.
Raporty te pomagają również zespołowi zrozumieć możliwości ulepszeń w oparciu o obserwacje poczynione podczas audytu.
Nie trzeba wspominać, że bardzo oczywistym miernikiem dla każdego zespołu testowego byłaby całkowita liczba otwartych błędów w porównaniu z liczba wad, które są ważne . Stąd jedno z pytań, które oczywiście się pojawiają, to - Jaka jest podstawa próby wykrycia jakiejkolwiek wady? Innymi słowy, jaka jest podstawa, na której można znaleźć defekt?
Odpowiedź jest jednomyślna - konfiguracja stanowiska testowego i / lub środowiska testowego. W zespołach ustalane są standardy jakości zmniejszyć wady, które są odrzucane jako błąd konfiguracji testu / błąd użytkownika, nieprawidłowe konfiguracje lub w niektórych przypadkach defekty, które powstają, gdy wymykają się z określonego zespołu z powodu niedostępnych konfiguracji, nieprzetestowanych konfiguracji.
Zacznijmy od przyjrzenia się bliżej zdefiniowaniu, czym jest stanowisko testowe lub środowisko testowe.
Czego się nauczysz:
Co to jest stanowisko testowe i środowisko testowe?
W bardzo ogólnym sensie łóżko testowe można zdefiniować jako rodzaj środowiska programistycznego, w którym osoby wdrażające kod lub moduły mają swobodę testowania swoich modułów bez zakłóceń ze strony zespołu testującego, w absolutnym zamknięciu.
Jednak łóżko testowe jest specyficzne nie tylko dla zespołu programistów. Z perspektywy zespołu testowego lub testera, ponieważ platforma testowa jest niczym innym jak platformą przeznaczoną do testowania oprogramowania / produktów, jest ona również zamiennie nazywana środowiskiem testowym.
Każde stanowisko testowe lub środowisko testowe musiałyby zostać skonfigurowane zgodnie z określonym celem testowym dla testowanej aplikacji / produktu / oprogramowania. W niektórych sytuacjach łóżko testowe byłoby zestawieniem środowiska testowego i danych testowych, z którymi ono działa.
Składniki środowiska testowego
Każdy test miałby swoje specyficzne wymagania dotyczące środowiska testowego, ale w bardzo szerokim sensie każde stanowisko testowe / środowisko testowe będzie składać się ze sprzętu, oprogramowania i elementów sieciowych, które obsługują wymaganą konfigurację przynajmniej do kierowania i przeprowadzania określonego testu. .
Powszechnie wiadomo, że rozsądną ilość czasu testera pochłaniają problemy środowiskowe, które z kolei wpływają na produktywność i harmonogramy testów. Chociaż rodzaj wyzwań jest inny dla każdego zespołu testowego, niektóre z nich mogą być powszechne.
Niektóre kluczowe wyzwania, z którymi się często spotykamy, to:
1) Środowisko zdalne
Zasoby lub środowiska testowe są najczęściej umieszczane geograficznie w lokalizacjach oddalonych od zespołów. Jest to jedno z najczęściej napotykanych wyzwań dla zespołów testowych, podobnie jak w przypadku wszelkich problemów, które mogą się pojawić w związku ze sprzętem, oprogramowaniem sprzętowym, oprogramowaniem, siecią itp.
Zespoły konsumujące zasoby musiałyby w dużym stopniu polegać na zespołach wsparcia w miejscu, w którym znajdują się zasoby.
Podobnie, jeśli jakiś zasób wymaga aktualizacji oprogramowania układowego lub aktualizacji kompilacji, ponownie zespół testowy może potrzebować wsparcia zespołów wsparcia, które są właścicielami środowiska, poprzez otwarcie zgłoszeń pomocy technicznej. Może to również spowodować wydłużenie czasu testowania i opóźnień, szczególnie w przypadku różnic stref czasowych.
# 2) Połączone użycie między zespołami
Najczęściej zespoły programistyczne i testowe używają tych samych zasobów środowiska. Chociaż ogólna norma określa, że środowiska programistyczne, testowe i produkcyjne muszą być oddzielne, w rzeczywistości ten idealny scenariusz jest bardzo rzadko osiągany. Pozyskiwanie oddzielnych zasobów dla każdego zespołu staje się niezwykle kosztowne dla organizacji.
Dlatego większość organizacji narzuca wspólne używanie środowiska między programowaniem a testowaniem. Co więcej, jeśli zasoby programistyczne i testowe walczą o wykorzystanie tych samych zasobów w tym samym czasie, prowadzi to do chaosu i nieporozumień wśród członków.
# 3) Nieskuteczne planowanie wykorzystania zasobów na potrzeby integracji
W niektórych przypadkach scenariusze wymagające rozszerzenia testy od końca do końca gdzie istnieje integracja dwóch lub więcej komponentów do wspólnego funkcjonowania, znowu może zaistnieć potrzeba wspólnego wykorzystania zasobów między zespołami testowymi. Nieskuteczne planowanie w odniesieniu do użytkowania w dużym stopniu przyczynia się do niestabilności środowiska, poza konfliktem między zespołami.
Najbardziej oczywistym skutkiem tego jest to, że problem, który zostanie zauważony dla danej osoby raz lub dwa razy, może spowodować zupełnie inne zachowanie w kolejnych uruchomieniach dla tego samego scenariusza. Jeśli usterka jest już otwarta, istnieje duże prawdopodobieństwo, że nie zostanie zaakceptowana przez programistę jako ważny kandydat do poprawki.
# 4) Złożona konfiguracja testu
Konfiguracja stanowiska testowego lub środowiska testowego jest czasami zbyt złożona. Będzie to stanowić kilka wyzwań, ponieważ zespół testowy będzie potrzebował umiejętności wymaganych do zrozumienia potrzebnych konfiguracji. Czasami brakuje bazy wiedzy, aby tester był w stanie wymyślić wymaganą konfigurację.
W takich przypadkach testerzy mogą sami wywołać błąd w stanowisku testowym, nieprawidłowo go konfigurując. Miałoby to ogromny wpływ na przypadek testowy i wyniki, które on generuje.
# 5) Opracuj czas konfiguracji
W innych przypadkach, dla każdego przypadku testowego, konfiguracja testów może być zbyt skomplikowana dla każdego zidentyfikowanego przypadku testowego. Może to wynikać z dużej różnorodności współistniejących technologii, które muszą być ze sobą połączone lub z wielu komponentów, aby współpracować w przypadku testów integracyjnych.
W takich przypadkach każdy ze składników musi działać doskonale, aby zapewnić spójne wyniki, ponieważ jeden składnik może stanowić wkład do następnego.
Najlepsze praktyki dotyczące konfigurowania środowiska testowego
Przyjrzeliśmy się szerokiemu zarysowi wyzwań, przed którymi stoi tester przed lub w trakcie wykonywania testu. Większość z nas napotkała jeden lub więcej z tych problemów na którymś etapie naszego projektu. Te wyzwania istniały i prawdopodobnie nadal będą istnieć w różnym stopniu, ponieważ idealistyczna sytuacja nie istnieje.
Biorąc pod uwagę, że wyzwania związane z konfiguracją są nieodłączną częścią pracy testera i są nieuniknione, oto kilka sugestii, jak skutecznie przygotować konfigurację do testów. Może to pomóc w zminimalizowaniu defektów, które mogą wynikać z problemów z konfiguracją.
Wskazówka nr 1) Rozumiec Dokładnie przetestuj wymagania i ucz się
otwórz tablicę skrótów adresowania c ++
Zawsze zaczynaj od podstaw i od najbardziej oczywistych! Gdy dokument specyfikacji lub dokument przypadku użycia jest wdrażany przez zespół programistów, niezmiennym krokiem zespołu testowego jest zrozumienie wymagań dotyczących pozycji pojedynczej, a następnie przygotowanie dokumentu przypadku testowego ze szczegółowym opisem przypadków testowych.
Podczas planowania testów tak właśnie jest najlepszy praktyka polegająca na uwzględnieniu szczegółowych informacji o środowisku testowym w dokumencie przypadku testowego. Nie ma co zgadywać, że tester poświęci wtedy trochę czasu na analizę, jakie środowisko testowe może być wymagane i jakie są potrzebne konfiguracje.
Można to osiągnąć rozmawiając z zespołem programistów / architektami w celu zbudowania dobrej bazy wiedzy. Pozwoliłoby to nie tylko zaoszczędzić trochę czasu w cyklu wykonywania, ale także pomogłoby testerowi efektywnie rozdzielić czas wykonywania na testy proste i złożone.
Osobiście dobrym wynikiem tego jest to, że wielu z nas odkryło problemy z konfiguracją (które z natury uniemożliwiałyby spójne wykonywanie testów) na samym początku cyklu, co dało nam czas na ukierunkowanie i uzyskanie wymaganej pomocy w celu rozwiązania tych problemów - w ten sposób nieprzedłużanie cyklu testowego poza niedopuszczalne okresy.
Innym pozytywnym skutkiem byłoby to, że znacznie poprawiłoby to wiedzę zespołu testowego i zapobiegłoby niepotrzebnym defektom. Chociaż ta praktyka podsumowuje prawie wszystkie praktyki, które są z natury potrzebne, aby poradzić sobie z wyzwaniami związanymi z konfiguracją testów, o których mowa powyżej, nadal warto wspomnieć o innych wskazówkach.
Wskazówka nr 2) Sprawdzanie łączności
Kolejnym najważniejszym punktem kontrolnym jest upewnienie się, że zasoby lub zasoby, których zamierzasz użyć do testowania, są osiągalne. Jeśli system wymaga integracji z innymi maszynami, sprawdź ich łączność za pomocą polecenia ping lub telnet.
Również jeśli systemy muszą ze sobą współdziałać i znajdują się za zaporami ogniowymi, upewnij się, że mogą uwierzytelniać się przez te zapory przy użyciu podstawowych opcji bezpieczeństwa (BSO) i sprawdź również, czy nie ma serwerów proxy. Jeśli zauważysz, że niektóre maszyny są nieosiągalne lub wymagają uwierzytelnienia BSO, można zgłosić odpowiednie żądania usług, aby spełnić wymagania zespołu wsparcia.
Jest to szczególnie przydatne, gdy środowisko znajduje się w odległych lokalizacjach, a także pozwala uniknąć eskalacji w odniesieniu do maszyn i systemów. Jeśli zespół testowy wymaga dostępu do dowolnego zasobu lub repozytorium, pomogłoby to w proaktywnym określeniu tego samego.
Wskazówka nr 3)Sprawdzanie sieci i / lub pamięci
Jest to prawie rozszerzenie poprzedniej wskazówki i wymagałoby bardziej szczegółowego sprawdzenia z większą głębią techniczną. Upewnij się, że wymagane testowanie ma wymaganą przepustowość i czy wymaga połączenia internetowego. Upewnij się również, że znalazłeś sposób na sprawdzenie, czy topologia sieci między systemami i zasobami jest poprawna.
Po drugie, jeśli cel testowania wskazuje na potrzebę posiadania dowolnej pamięci masowej, upewnij się, że istnieje pamięć masowa i łączność sieciowa. Przeważnie obowiązkiem administratora jest posiadanie tego na miejscu, jednak posiadanie pewnej praktycznej i funkcjonalnej wiedzy na ten temat jest również wielką wartością dodaną.
Porada 4) Sprawdź wymagany sprzęt i oprogramowanie, licencje
Często zdarza się, że testerzy rozpoczynają wykonywanie w systemach bez sprawdzania potrzebnego sprzętu i oprogramowania, które może być wymagane. W rezultacie wielokrotnie tester zdaje sobie sprawę, niemal w trakcie cyklu testowego, że pewna funkcjonalność jest dostępna tylko na wyższym poziomie sprzętu lub oprogramowania / oprogramowania układowego.
W tym czasie tester oflaguje blokującego w swoim wysiłku testowym, co pochłania znaczną ilość czasu testowania. Dlatego bezcenną praktyką jest posiadanie punktu kontrolnego, aby wcześniej zanotować potrzebny sprzęt i oprogramowanie.
Wiele razy mogą wystąpić przestoje związane z aktualizacją sprzętu / oprogramowania, które wszystko sprowadza się do Porada 1 gdzie tester musi aktywnie planować sprzęt. Niektóre programy mogą wymagać licencji, które mogą wymagać zgody i działań zespołu prawnego. Jest to działanie zorientowane na proces, a realizacja może zająć kilka dni, co należy zaplanować.
Wskazówka nr 5)Przeglądarki i wersje
Testy, które wykonujesz, muszą być lustrzane co zrobi użytkownik końcowy . Mógłby testować w określonej przeglądarce na najnowszych wersjach wszystkich przeglądarek. Dlatego konieczne jest zidentyfikowanie różnych rodzajów przeglądarek, które będą używane do testowania, i zainstalowanie ich we własnej lokalnej konfiguracji testów.
Po drugie, określ również, które wersje przeglądarek muszą być używane do testowania. Dobrą praktyką byłoby rozpoczęcie od przeglądarki w niższej wersji, zapewniając w ten sposób kompatybilność wsteczną, a następnie aktualizację do najnowszej wersji.
Porada 6)Planowanie wykorzystania środowiska testowego.
Biorąc pod uwagę fakt, że zespół testowy nigdy nie będzie miał sytuacji posiadania własnych zasobów testowych, systemów i zasobów - jednym z głównych kamieni milowych w planowaniu testów jest efektywne wykorzystanie zasobów testowych.
oddzielna tablica skrótów łańcuchowych c ++
Jest to szczególnie wymagane, gdy więcej niż jeden zespół musi uzyskać dostęp do tego samego zestawu zasobów albo ze względu na scenariusz całościowy, który obejmuje dwa lub więcej komponentów współpracujących ze sobą, albo sytuację, w której konfiguracja testów jest zbyt rozbudowana lub złożona, aby można ją było powielić bardzo łatwo, a wielu członków w tym samym zespole może mieć własne cele testowe przy tej samej konfiguracji.
Dobrą praktyką byłoby wypracowanie podejścia opartego na podziale czasu, w którym określony zespół lub osoba wykorzystuje go w pierwszej połowie, a pozostali ludzie w drugiej połowie. Może się zdarzyć, że coś pomiędzy nimi będzie powszechne, kiedy każdy z nich będzie mógł przeprowadzić niezależne testy, które nie będą utrudniać drugiemu.
Takie postępowanie nie tylko zmniejszy chaos i konflikty w członkach, ale także zapewni zachowanie stabilności środowiska przez dłuższy czas.
Wskazówka nr 7)Narzędzia automatyzacji i ich konfiguracje
Jak wiemy, każdy testowany element zamówienia będzie miał kilka powtarzalnych testów, które będą częścią cyklu regresji, który będzie musiał zostać zautomatyzowany. Zespół testowy musi określić, jakiego rodzaju automatyzację chciałby wykonać i jakie narzędzia są do tego niezbędne.
Chociaż to konieczne nie musi być częścią przygotowania środowiska, nadal wymieniłbym to jako najlepszą praktykę, aby zidentyfikować i odpowiednio skonfigurować narzędzia automatyzacji. Byłoby to całkowicie zależne od uznania testera, kiedy chce on wykonać tę czynność, ponieważ nie jest to obowiązkowy czynnik zapewniający gotowość do testu.
Wniosek
Te wskazówki i triki mogą stanowić dobry miernik i ślad, zapewniający gotowość środowiska testowego do testów. Bez wątpienia każdy zespół ma swój własny, unikalny zestaw wyzwań, a powyższe wskazówki można dostosować i dostosować do własnych potrzeb.
W rzeczywistości źródło do notowania całego szkieletu wskazówek pochodzi z jednego z moich zadań, w którym miałem do czynienia z bardzo złożonymi problemami z konfiguracją i zajęło mi prawie rok, aby nawet rozpocząć testowanie!
Chociaż ograniczenia w środowisku testowym były poza moją kontrolą, czułem, że wiele z tych problemów mogłoby zostać zgłoszonych wcześniej, gdybym zastosował te wskazówki. Od tamtej pory stosuję go do każdego zadania, które mi przychodzi, i ten szkielet bardzo mi pomógł w proaktywnym znajdowaniu problemów z konfiguracją i ukierunkowywaniu moich wysiłków, aby je rozwiązać.
O autorze: Ten artykuł został napisany przez Sneha Nadig. Pracuje jako Test Leader z ponad 7-letnim doświadczeniem w projektach testowania ręcznego i automatycznego.
W części 2 tego artykułu zobaczymy proces konfiguracji i konserwacji środowiska testowego oraz wskazówki dotyczące przygotowywania danych testowych i zarządzania. W międzyczasie nie krępuj się publikować w komentarzach pytań dotyczących przygotowania do łóżka testowego.
rekomendowane lektury
- Jak skutecznie przeprowadzić testy po wydaniu i zminimalizować wpływ wydania na klientów na żywo
- W jaki sposób decydujecie, które wady są akceptowane, aby oprogramowanie zostało uruchomione?
- Jak przygotować i dostarczyć zespołowi znakomitą prezentację z testów QA
- Proces zarządzania defektami: jak skutecznie zarządzać defektem
- 9 najlepszych pomysłów dla testerów na efektywne wykorzystanie czasu na stanowisku pracy
- Przywództwo w testowaniu - obowiązki lidera testów i jak efektywnie zarządzać zespołem testowym
- Jak efektywnie planować i zarządzać projektami testowymi (wskazówki)
- Proces selekcji defektów i sposoby radzenia sobie ze spotkaniem selekcyjnym defektów