Ciągłe testowanie
Testowanie ciągłe w DevOps to rodzaj testowania oprogramowania, który polega na testowaniu oprogramowania na każdym etapie cyklu życia oprogramowania. Celem ciągłego testowania jest ocena jakości oprogramowania na każdym etapie procesu ciągłego dostarczania poprzez wczesne testowanie i częste testowanie.
Proces ciągłego testowania w DevOps obejmuje interesariuszy, takich jak deweloper, DevOps, QA i system operacyjny.
W tym samouczku dowiesz się
- Co to jest testowanie ciągłe?
- Czym różni się ciągłe testowanie?
- Czym różni się ciągłe testowanie od automatyzacji testów?
- Jak przeprowadzić ciągłe testowanie
- Narzędzia do ciągłego testowania
- Korzyści z ciągłego testowania
- Wyzwania związane z ciągłym testowaniem
Czym różni się ciągłe testowanie?
Stary sposób testowania opierał się na przekazaniu centrycznym. Oprogramowanie było przekazywane z jednego zespołu do drugiego. Projekt miałby określone fazy rozwoju i kontroli jakości. Zespoły ds. Kontroli jakości zawsze chciały mieć więcej czasu na zapewnienie jakości. Celem było, aby jakość przeważała nad harmonogramem projektu.
Jednak biznes chce szybszego dostarczania oprogramowania do użytkownika końcowego. Im nowsze jest oprogramowanie, tym lepiej można je wprowadzić na rynek i zwiększyć potencjał dochodowy firmy. W związku z tym rozwinął się nowy sposób testowania.
Ciągłe oznacza nieprzerwane testowanie wykonywane w sposób ciągły. W procesie ciągłego DevOps zmiana oprogramowania (kandydat do wydania) nieustannie przechodzi od programowania przez testowanie do wdrożenia.
Kod jest stale rozwijany, dostarczany, testowany i wdrażany.
Na przykład za każdym razem, gdy programista sprawdza kod na serwerze kodu źródłowego, taki jak zautomatyzowany zestaw testów jednostkowych Jenkinsa, jest wykonywany w procesie ciągłym. Jeśli testy zakończą się niepowodzeniem, kompilacja zostanie odrzucona, a programista zostanie powiadomiony. Jeśli kompilacja przejdzie pomyślnie test, zostanie wdrożona do wydajnych serwerów kontroli jakości w celu przeprowadzenia wyczerpujących testów funkcjonalnych i testów obciążenia. Testy są przeprowadzane równolegle. Jeśli testy zakończą się pomyślnie, oprogramowanie zostanie wdrożone w środowisku produkcyjnym.
Testowanie ciągłe to mały krok w cyklu ciągłego rozwoju, integracji i wdrażania.
Rozwój oprogramowania to nie to samo, co w przeszłości, skracaliśmy go z miesiąca do tygodni. Obecny stos testowy (patrz rysunek powyżej) jest zatytułowany do testowania interfejsu użytkownika. Ale celem jest coraz więcej zautomatyzowanych testów jednostkowych.
Czym różni się ciągłe testowanie od automatyzacji testów?
Automatyzacja testów a testowanie ciągłe
Parametr | Automatyzacja testów | Ciągłe testowanie |
---|---|---|
Definicja | Automatyzacja testów to proces, w którym narzędzie lub oprogramowanie jest używane do automatyzacji zadań. | Jest to metodologia testowania oprogramowania, która koncentruje się na osiąganiu ciągłej jakości i doskonalenia. |
Cel, powód | Zestaw podobnych lub powtarzalnych zadań, które maszyna może wykonać szybciej, z mniejszą liczbą błędów. | Ciągły proces testowania pomaga wykryć zagrożenia, zająć się nimi i poprawić jakość produktu. |
Warunek wstępny | Możliwa automatyzacja testów bez integracji ciągłego testowania. | Ciągłego testowania nie można zaimplementować bez automatyzacji testów. |
Czas | Wydanie oprogramowania może zająć od miesiąca do lat. | Wersja oprogramowania może być wydawana co tydzień lub co godzinę. |
Informacje zwrotne | Regularne informacje zwrotne po przetestowaniu każdej wersji. | Informacja zwrotna na każdym etapie musi być natychmiastowa. |
Historia | Zautomatyzowane testy są wykonywane od dziesięcioleci, aby przyspieszyć proces testowania. | Ciągłe testowanie to stosunkowo nowsza koncepcja. |
Jak przeprowadzić ciągłe testowanie
- Korzystanie z narzędzi do generowania zestawu automatyzacji testów na podstawie historyjek użytkownika / wymagań
- Utwórz środowisko testowe.
- Kopiuj i anonimizuj dane produkcyjne, aby stworzyć łóżko testowe
- Użyj wirtualizacji usług, aby przetestować interfejs API
- Równoległe testy wydajności
Narzędzia do ciągłego testowania
Oto lista najlepszych narzędzi do ciągłego testowania :
1) QuerySurge
QuerySurge to inteligentne rozwiązanie do testowania danych, które jest pierwszym tego rodzaju pełnym rozwiązaniem DevOps do ciągłego testowania danych. Kluczowe funkcje obejmują solidne API z ponad 60 wywołaniami, szczegółową analizę danych i analizę danych, bezproblemową integrację z potokiem DevOps w celu ciągłego testowania i szybką weryfikację dużych ilości danych.
Rozpocznij testowanie za darmo
2) Jenkins
Jenkins to narzędzie do ciągłej integracji, które zostało napisane w języku Java. To narzędzie można skonfigurować za pomocą interfejsu GUI lub poleceń konsoli.
Link do pobrania: https://jenkins.io/
3) Travis
Travis to narzędzie do ciągłego testowania hostowane w serwisie GitHub. Oferuje warianty hostowane i lokalne. Zawiera wiele różnych języków i dobrą dokumentację.
Link do pobrania: https://travis-ci.org/
4) Selen
Selenium to narzędzie do testowania oprogramowania typu open source. Obsługuje wszystkie wiodące przeglądarki, takie jak Firefox, Chrome, IE i Safari. Selenium WebDriver służy do automatyzacji testowania aplikacji internetowych.
Link do pobrania: https://www.seleniumhq.org/
Korzyści z ciągłego testowania
- Przyspiesz dostarczanie oprogramowania
- Ciągłe testowanie poprawia jakość kodu
- Pomaga ocenić dokładne pokrycie ryzyka biznesowego.
- Bezproblemowo integruje się z procesem DevOps
- Pomaga stworzyć zwinny i niezawodny proces w zaledwie kilka godzin zamiast miesięcy.
- Przyspiesza czas wprowadzenia produktu na rynek dzięki mechanizmowi ciągłego sprzężenia zwrotnego.
- Łączy tradycyjnie izolowane zespoły, aby sprostać potrzebom nowoczesnych przedsiębiorstw. Eliminuje rozdźwięk między zespołami programistycznymi, testującymi i operacyjnymi.
- Automatyzacja testów pomaga osiągnąć spójność, utrzymując tę samą konfigurację dla wszystkich odpowiednich testów.
- Podkreśla oczekiwania biznesowe dotyczące ograniczania ryzyka biznesowego
- Zapewnienie wszechobecnego dostępu do środowiska testowego dzięki wirtualizacji usług
Wyzwania ciągłego testowania
- Tradycyjny proces ogranicza zmiany kulturowe wśród specjalistów ds. Rozwoju i zapewniania jakości.
- Brak umiejętności DevOps i odpowiednich narzędzi do testowania w środowiskach Agile i DevOps.
- Heterogeniczne środowiska testowe, które nigdy nie będą odzwierciedlać środowiska produkcyjnego.
- Konwencjonalny proces testowania i luźno zdefiniowane zarządzanie danymi testowymi.
- Dłuższe cykle integracji kodu powodują problemy z integracją i późne poprawki defektów
- Niewystarczające i nieefektywne zasoby i środowiska testowe
- Złożona architektura aplikacji i logika biznesowa, która ogranicza przyjęcie metodyki DevOps.
Wniosek:
- W inżynierii oprogramowania ciągłe testowanie to proces wczesnego testowania, częstego testowania, testowania wszędzie i automatyzacji.
- Stary sposób testowania był skoncentrowany na przekazaniu. Oprogramowanie jest przekazywane z jednego zespołu do drugiego
- Jenkins, Travis i Selenium to popularne narzędzia do ciągłego testowania i integracji.
- Testowanie ciągłe dostarcza przydatne informacje zwrotne na każdym etapie potoku dostaw.
- Ciągłe testowanie pomaga poprawić jakość kodu
- Tradycyjny proces ogranicza zmiany kulturowe wśród specjalistów ds. Rozwoju i zapewniania jakości.
- Dłuższe cykle integracji kodu powodują problemy z integracją i późne poprawki defektów