Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Warsztat: "Automatyzacja testów (JAVA) - od podstaw"

Podobne prezentacje


Prezentacja na temat: "Warsztat: "Automatyzacja testów (JAVA) - od podstaw""— Zapis prezentacji:

1 Warsztat: "Automatyzacja testów (JAVA) - od podstaw"
Marcin Dziedzic, Wiktor Żołnowski

2 Agenda Omówienie celu szkolenia Od testera do QA Inżyniera
Wstęp do Automatyzacji Po co Automatyzować? Co Automatyzować? Jak Automatyzować? Warsztat Inżyniera testów Narzędzia, których będziemy używać Repozytorium Narzędzia programistyczne (IDE) Java Bazy danych Narzędzia/Frameworki do testowania Contionous Integration Metodyki i procesy - dobre praktyki

3 Cel szkolenia "Od testera do QA Inżyniera" Rzeczywistość
QA - definicja QA a testowanie Po co to szkolenie?

4 Rzeczywistość Wytarzane systemy są coraz bardziej skomplikowane
Coś, co kiedyś mogła robić jedna osoba teraz wymaga sztabu specjalistów i odpowiedniego zarządzania nimi Niestety często jest to niemożliwe Odpowiedź: Automatyzacja Coraz popularniejsze "Zwinne metodyki wytwarzania oprogramowania"  Od testerów wymaga się znacznie więcej Potrzeba bliskiej współpracy testerów z developerami Testerzy i developerzy muszą używać wspólnego języka Nowe możliwości Powstają nowe narzędzia, które dają większą swobodę i łatwość automatyzacji tego co dotychczas robił człowiek.

5 Quality Assurance Software Quality Assurance to dziedzina szeroko rozumianego wytwarzania oprogramowania zajmująca się zapewnianiem wysokiej jakości tegoż oprogramowania. Sposobów na zapewnienie jakości jest wiele.  Koszty błędów są niższe, gdy błędy wykrywane są we wczesnych fazach procesu wytwarzania oprogramowania. Kosztów poprawy błędów nie ma wcale, gdy nie dopuścimy w ogóle do ich powstania. Można to osiągnąć poprzez zastosowanie odpowiednich procesów i praktyk, które pozwalają na lepszą kontrolę i wstrzykiwanie jakości na każdym etapie. 

6 QA a testowanie Testowanie oprogramowania jest jednym z wielu elementów Quality Assurance.  Testowanie to tylko Quality Control/Veryfication, koszty poprawy błędów nadal są dosyć wysokie. Skoro koszty testowania są nadal dosyć wysokie naturalną jest potrzeba zautomatyzowania. Testowanie to dostarczanie informacji zwrotnej o tym czy oprogramowanie działa i jak działa. Im szybsza informacja zwrotna tym cenniejsza.

7 Po co tu przyszliście ?

8 Trzy powody dla których testerzy powinni programować
Narzędzia - komputery i programy komputerowe powstają po to by ułatwiać ludziom wykonywanie różnych zadań w tym także testowania oprogramowania.  Sens - Ucząc się programować rozumiemy jak działają testowane aplikacje, jak działa komputer etc. Dzięki temu możemy zadawać bardziej trafne pytania.  Komunikacja - Programując nie tylko dowiadujemy się jak aplikacja działa ale także rozumiemy to jak skomplikowana jest. Ucząc się programowania łatwiej jest nam zrozumieć programistów. Budujemy wspólny język.

9 Co dostaniecie?     Umiejętności potrzebne do samodzielnego utworzenia własnego warsztatu pracy inżyniera testów. Umiejętności potrzebne do wdrożenie praktyk automatyzacji testów w Waszej organizacji. Możliwość nawiązania rozmowy z programistami w ich języku. Dobry start (kopniak na początek) w długotrwałym procesie stawania się ekspertem w QA. Podstawowe umiejętności tworzenia testów automatycznych na kilku poziomach: Testy jednostkowe Testy funkcjonalne Testy interfejsu użytkownika Testy akceptacyjne

10 A czego Wam nie damy? Nikt łopatą wiedzy do głowy nie nawkłada...
To dopiero początek drogi do tego byście sami mogli się dalej rozwijać... Nie nauczymy Was programować... Nie zrobimy z Was QA Inżynierów (wbrew tytułowi) - do tego oprócz szkolenia będziecie potrzebować jeszcze trochę praktyki i setek popełnionych błędów, z których się wiele nauczycie... 

11 Wstęp do automatyzacji

12 Po co automatyzować? Jeśli nie wiadomo o co chodzi to chodzi o... pieniądze Automatyzacji upraszcza wykonywanie powtarzalnych czynności a co za tym idzie zmniejsza koszt wykonywania tychże czynności Coraz większa komplikacja wytwarzanych systemów oznacza coraz trudniejsze testowanie i obsługę Tylko dzięki automatyzacji możemy zapewnić wystarczające pokrycie regresji Zarządzanie systemami składającymi się z dużej ilości modułów jest niemożliwe bez zautomatyzowania tego procesu.  Informacja zwrotna

13 Co automatyzować? Każda czynność często powtarzana podczas procesu wytwarzania oprogramowania powinna zostać zautomatyzowana w celu optymalizacji kosztów. Informacja zwrotna dostarcza największej wartości w procesie wytwarzania oprogramowania, im szybciej ta informacja zostanie dostarczona tym większy zysk osiągniemy.  Należy automatyzować wszystko to co związane z dostarczaniem informacji zwrotnej.

14 Jak automatyzować? O tym właśnie są te warsztaty...
Automatyzacja testów jednostkowych funkcjonalnych/integracyjnych akceptacyjnych Continous integration jako sposób na dostarczanie szybkiej informacji zwrotnej

15 Warsztat inżyniera testów
Podręczna skrzynka z narzędziami

16 Integrated Development Environment (IDE)
"Zintegrowane środowisko programistyczne (ang. Integrated Development Environment, IDE) jest to aplikacja lub zespół aplikacji (środowisko) służących do tworzenia, modyfikowania, testowania i konserwacji oprogramowania. Aplikacje będące zintegrowanymi środowiskami programistycznymi charakteryzują się tym, że udostępniają złożoną, wieloraką funkcjonalność obejmującą edycję kodu źródłowego, kompilowanie kodu źródłowego, tworzenie zasobów programu (tzn. formatek / ekranów / okien dialogowych, menu, raportów, elementów graficznych takich jak ikony, obrazy itp.), tworzenie baz danych, komponentów i innych." Źródło: Wikipedia Dobre poznanie narzędzia, w którym będziemy się poruszać znacząco ułatwi nam dalszą pracę.

17 Repozytorium kodu źródłowego
Repozytoria kodu źródłowego dzielimy na dwa rodzaje: scentralizowane (np. Subversion) rozproszone (np. GIT) Będziemy używać SVN 

18 Java Kilka słów o Javie...

19 Bazy danych Większość aplikacji webowych korzysta z różnych baz danych dlatego warto też o nich wspomnieć.  Z tematem baz danych wiąże się także konieczność przygotowywania odpowiednich danych wykorzystywanych później w testach - fixtures. 

20 Narzędzia do testowania
Selenium JUnit JBehave

21 Wstęp do używania narzędzia
Selenium Wstęp do używania narzędzia

22 Selenium - opis Selenium to narzędzie służące do testów automatycznych aplikacji webowych. Selenium to: Selenium IDE Selenium WebDriver Selenium RC + Selenium Server My skupimy się na Selenium IDE i Selenium WebDriver.

23 Selenium Core Framework
Może być używane jako samodzielna biblioteka (JavaScript/html) 

24 Selenium RC Selenium Remote Control Server to aplikacja napisana w javie służąca do uruchamiania skryptów testowych w przeglądarkach.

25 Selenium RC Sterownik wysyła requesty do RC.
RC uruchamia Selenium Core w przeglądarce. Core uruchamia przeglądarke z testowaną aplikacją. Core wykonuje akcje, których wywołania są przesyłane za pomocą http z RC. 

26 Selenium WebDriver Selenium WebDriver to aplikacja pozwalająca na odtwarzanie skryptów testowych w najpopularniejszych przeglądarkach internetowych przy użyciu API tych przeglądarek.  Zalety WebDriver: Szybkość Obiektowość Radzi sobie z generycznymi elementami Mniejsza inwazyjność Wady: Niestety nie wszystko co było w Selenium RC ma bezpośrednie przełożenie na funkcjonalność WebDriver.

27 Selenium IDE Selenium IDE to plugin do FireFoxa pozwalający na nagrywanie i odtwarzanie skryptów testowych za pomocą przeglądarki. Selenium IDE zapisuje skrypty w pseudojęzyku przypominającym xml - selenese. Przechowywanie i utrzymywanie przypadków testowych napisanych w selenese jest nieefektywne. Selenium IDE pozwala na eksport przypadków testowych do wielu popularnych języków programowania (java, php, python, ruby, perl. .Net)

28 Selenium comand | target | value
comand - komenda, która ma zostać wykonana target - element, na którym wykonana będzie komenda value - wartość, parametr akcji jeśli konieczny

29 Komendy => 3 x A Actions Symulacje działań użyszkodnika Acessors
Sprawdzanie i przechowywanie stanów aplikacji  Assertions Weryfikacja rezultatu otrzymanego z oczekiwanym 

30 Asercje assert gdy assert = false test jest przerywany verify
gdy verify = false test jest kontynuowany a fail zapisywany do logu waitFor  kiedy waitFor = false (po timeout) test jest przerywany

31 Element Locator Element locator to sposób w jaki odnajdziemy interesujący nas element w strukturze DOM dokumentu HTML. identifier id name xpath link css

32 Firebug Firebug to kolejny plugin do FireFoxa, który ułatwi nam poszukiwanie i przekglądanie elementów html.

33 Dosyć teorii Instalacja - FF - Selenium IDE - Firebug TESTUJEMY!

34 Continous Integration
Ciągła integracja nowego kodu z już istniejącym produkcyjnym Jak najczęstsze integrowanie kodu z produkcją i wypuszczanie nowych wersji. Im wcześniej produkt będzie na produkcji tym wcześniej będzie zarabiał Wywodzi się z Agile/XP. Z powodzeniem jej elementy można stosować w innych metodykach.

35 CI - zasady Trzymaj kod w repozytorium. Automatyzuj buildy TDD
Częsta integracja Commit odpala build Build jest szybki Odpowiednie środowisko Automatyczny deployment Dostęp do produkcyjnego wydania produktu Wyniki buildów widoczne dla każdego

36 CI - narzędzia Jenkins (Hudson) to narzędzie umożliwiające zarządzanie automatycznymi buildami odpalającymi testy i nie tylko.


Pobierz ppt "Warsztat: "Automatyzacja testów (JAVA) - od podstaw""

Podobne prezentacje


Reklamy Google