devops testing tutorial
Samouczek testowania DevOps: Niedawna ankieta RightScale wykazała, że 54% firm przyjęło DevOps, a zainteresowanie DevOps gwałtownie rośnie.
W tym artykule dowiemy się, jak ta nowa metodologia rozwoju oprogramowania wpłynie na kontrolę jakości i jak powinna ewoluować całość funkcji zapewniania jakości, aby uwzględnić tę zmianę.
Sprawdź => Kompletna seria samouczków DevOps
W tym artykule dowiemy się więcej o DevOps i jego wpływie na kontrolę jakości i jej funkcje.
Czego się nauczysz:
Co to jest DevOps?
DevOps - to połączenie Devucieczka iNaeracje - jest to metodologia rozwoju oprogramowania, która ma na celu zintegrowanie wszystkich funkcji rozwoju oprogramowania od rozwoju do operacji w tym samym cyklu.
Wymaga to wyższego poziomu koordynacji w ramach różnych interesariuszy procesu tworzenia oprogramowania (mianowicie Rozwój, QA i operacje )
Cykl DevOps
Idealny cykl DevOps zaczynałby się od:
- Dev pisze kod
- Tworzenie i wdrażanie plików binarnych w środowisku kontroli jakości
- Wykonywanie przypadków testowych i wreszcie
- Wdrażanie do produkcji w jednym płynnym, zintegrowanym przepływie.
Oczywiście to podejście kładzie duży nacisk na automatyzację tworzenia, wdrażania i testowania. Korzystanie z narzędzi Continuous Integration (CI), narzędzia do testowania automatyzacji stają się normą w DevOps cykl.
Dlaczego DevOps?
Chociaż istnieją subtelne różnice między plikami Testowanie Agile i DevOps , osoby pracujące z Agile uznają DevOps za nieco bardziej zaznajomione z pracą (i ostatecznie przyjmą). Chociaż zasady Agile są z powodzeniem stosowane w iteracjach rozwoju i kontroli jakości, jest to zupełnie inna historia (i często jest to kość niezgody) po stronie operacji. DevOps proponuje uzupełnienie tej luki.
Teraz zamiast ciągłej integracji DevOps obejmuje „ciągły rozwój” , w którym kod został napisany i przekazany do kontroli wersji, zostanie zbudowany, wdrożony, przetestowany i zainstalowany w środowisku produkcyjnym, które jest gotowe do użycia przez użytkownika końcowego.
Ten proces pomaga wszystkim w całym łańcuchu, ponieważ środowiska i procesy są ujednolicone. Każda akcja w łańcuchu jest zautomatyzowana. Daje również wszystkim interesariuszom swobodę skoncentrowania wysiłków na projektowaniu i kodowaniu wysokiej jakości produktu, zamiast martwienia się o różne procesy związane z budowaniem, operacjami i kontrolą jakości.
Skraca to drastycznie czas życia do około 3-4 godzin, od momentu napisania i zatwierdzenia kodu do wdrożenia w środowisku produkcyjnym do wykorzystania przez użytkownika końcowego.
Krótko mówiąc, DevOps jest rozszerzeniem Agile lub lubię to nazywać „Agile on Steroids”.
darmowa aplikacja zegara czasu na PC
Zmieniona rola kontroli jakości w DevOps
Tradycyjnie, kontrola jakości otrzymywała kompilację, która jest wdrażana w wyznaczonym środowisku, a następnie rozpoczynała kontrolę jakości Funkcjonalny & Testowanie regresji . Idealnie byłoby, gdyby kompilacja była zgodna z kontrolą jakości na kilka dni przed zatwierdzeniem kontroli jakości w kompilacji. Wszystkie te kroki zmieniają się w DevOps.
Zmiany w kontroli jakości dla testów DevOps:
- Kontrola jakości jest wymagana, aby dostosować swoje wysiłki w cyklu DevOps.
- Muszą upewnić się, że wszystkie ich przypadki testowe są zautomatyzowane i osiągają prawie 100% pokrycie kodu.
- Muszą upewnić się, że ich środowiska są ustandaryzowane, a wdrażanie w ich urządzeniach do kontroli jakości jest zautomatyzowane.
- Wszystkie ich zadania przedtestowe, porządki, zadania po testach itp. Są zautomatyzowane i dostosowane do cyklu Continuous Integration.
Jak już wspomniano, DevOps wymaga wysokiego poziomu koordynacji między różnymi funkcjami łańcucha produktów. Oznacza to również, że granice między różnymi rolami współtwórców w łańcuchu stają się porowate.
DevOps zachęca wszystkich do współtworzenia łańcucha . Między innymi deweloper może konfigurować wdrożenia. Inżynierowie wdrożeniowi mogą dodawać przypadki testowe do repozytorium kontroli jakości. Inżynierowie QA mogą skonfigurować swoje przypadki testowe automatyzacji w łańcuchu DevOps.
Za jakość i terminowość dostarczanych produktów odpowiedzialni są wszyscy w łańcuchu.
DevOps i automatyzacja testów
Aby osiągnąć taką szybkość i elastyczność, ważne jest, aby zautomatyzować wszystkie procesy testowe i skonfigurować je tak, aby działały automatycznie po zakończeniu wdrażania w środowisku QA. Do osiągnięcia tej integracji używane są specjalistyczne narzędzia do testowania automatyzacji i narzędzia ciągłej integracji.
Wymaga to również zbudowania dojrzałego frameworka Automation Testing, dzięki któremu można szybko skryptować nowe przypadki testowe.
Strategia testowania DevOps: wskazówki dotyczące sukcesu DevOps
- Należy zidentyfikować przypadki testowe, które mają zostać wykonane dla określonej kompilacji.
- Zasadniczo wykonanie testu powinno być oszczędne.
- QA i Dev muszą zebrać się razem i zidentyfikować obszary, na które ma wpływ konkretna kompilacja i wykonać te powiązane przypadki testowe oraz przejść test poprawności.
- Musisz również skonfigurować wyspecjalizowane narzędzia do analizy kodu i pokrycia, aby uzyskać prawie 100% pokrycie kodu.
- Pojęcie wykonania wszystko regresyjne przypadki testowe dla zaliczenia testu wkrótce stają się nieaktualne.
- Strategia dotycząca testowania nowych funkcji musi zostać sformalizowana, a tymczasowe kompilacje można dostarczyć do działu kontroli jakości, który z kolei utworzy skrypty testowe i uruchomi te testy automatyzacji na kompilacjach tymczasowych, aż kod stanie się wystarczająco stabilny, aby można go było wdrożyć w środowisku produkcyjnym .
- Wszystkie środowiska wymagane do testowania muszą zostać ustandaryzowane, a wdrożenia muszą zostać zautomatyzowane.
- Korzystając z różnych technik automatyzacji, QA powinna być w stanie uruchomić testy automatyzacji w różnych środowiskach wieloplatformowych (i między przeglądarkami w przypadku aplikacji internetowych).
- Równoległe wykonywanie testów pomaga skrócić czas życia, co z kolei jest sednem udanej implementacji DevOps.
- Kryteria zakończenia należy ustawić dla każdego przebiegu, tak aby po przekazaniu wyników testów do łańcucha podjęta została decyzja o przejściu do produkcji.
- Znalezione błędy blokujące lub krytyczne muszą zostać zgłoszone i naprawione oraz przepuszczone przez ten sam łańcuch zdarzeń, zanim kod zostanie wdrożony w środowisku produkcyjnym.
Monitorowanie aplikacji
Kontrola jakości powinna również być w stanie wykryć problemy wcześnie i proaktywnie je zgłaszać. Aby to osiągnąć, muszą skonfigurować monitorowanie w środowisku produkcyjnym, aby móc ujawniać błędy, zanim spowodują one awarię.
Konfigurowanie wyspecjalizowanych liczników, takich jak czasy odpowiedzi, wykorzystanie pamięci i procesora itp., Może zapewnić duży wgląd w wrażenia użytkownika końcowego.
Na przykład Jeśli średni czas odpowiedzi na logowanie stopniowo się wydłuża w różnych kompilacjach, kontrola jakości powinna proaktywnie zgłaszać ten problem w celu optymalizacji kodu logowania, w przeciwnym razie przyszłe kompilacje mogą powodować frustrację użytkowników końcowych z powodu długich czasów odpowiedzi.
Kontrola jakości może również wykorzystywać niewielki podzbiór istniejących przypadków testowych o wysokim priorytecie, które mają być wykonywane okresowo w środowisku produkcyjnym, w celu aktywnego monitorowania środowiska. Błędy takie jak „Ten błąd się czasami pojawia” lub „ Nie można odtworzyć ”Można złapać dzięki tej strategii, która ostatecznie sprawia, że aplikacja jest bardziej stabilna, a także bardziej zadowoleni użytkownicy końcowi.
Ponownie, monitory te muszą być skonfigurowane do automatycznego uruchamiania z rozbudowanymi raportami (takimi jak dzienniki i zrzuty ekranu awarii itp.).
Wniosek
Waterfall ustąpił miejsca V-Modelowi, który z kolei został zastąpiony przez Agile jako preferowany wybór do tworzenia oprogramowania.
DevOps to przyszłość. Jest to cykl ciągłego doskonalenia, któremu od czasu do czasu przechodzą modele tworzenia oprogramowania. Musisz to ogarnąć, zrozumieć i zaszczepić.
Musisz opanować różne narzędzia do automatyzacji i ciągłej integracji, aby Twoje wysiłki w zakresie automatyzacji dodawały wartość do łańcucha i były wystarczająco oszczędne, aby szybko dostosować się do zmian. Możesz pracować nad projektami, które mogą obejmować alfa , beta i UAT środowiskach przed wdrożeniem w środowisku produkcyjnym.
Koncepcja zasadniczo pozostaje ta sama. Automatyzacja i większa automatyzacja to podstawa udanego cyklu DevOps. Ale jako QA powinieneś również być w stanie wyznaczyć granicę, na ile automatyzacja jest zbyt duża.
co to jest plan testów w Qa
O autorze: Aniket Deshpande pracuje jako QA Manager w AFour Technologies , Pune i od ponad 9 lat zajmuje się testowaniem oprogramowania w różnych domenach i platformach. Pasjonuje się DevOps i pracuje jako konsultant, który pomaga organizacjom w przyjmowaniu strategii testowania DevOps.
Jeśli chcesz dowiedzieć się więcej lub chcesz wdrożyć DevOps i powiązane podejście testowe w swojej organizacji, zapraszam do kontakt Autor.
Co myślisz o testowaniu DevOps? Czy uważasz, że współpraca programistów i osób operacyjnych może przynieść korzyści projektowi?
Daj nam znać swoje komentarze / sugestie dotyczące tego artykułu.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Ciągłe testowanie w DevOps
- Samouczek DevOps: Kompletny przewodnik po DevOps (ponad 25 samouczków)
- Demistyfikacja DevOps: samouczek wideo (część 1)
- 10 najlepszych narzędzi do ciągłego testowania do testowania DevOps (Lista 2021)
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Co to jest testowanie oprogramowania? Ponad 100 darmowych samouczków do testowania ręcznego
- Testy funkcjonalne a testy niefunkcjonalne
- Testy alfa i testy beta (kompletny przewodnik)