Słowa kluczowe jak góry lodowe

Podobne dokumenty
Tester oprogramowania 2014/15 Tematy prac dyplomowych

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Tworzenie oprogramowania

Automatyzacja bez nadmiernego bólu. Piotr Januszek

Automatyzacja narzędziami open source nie musi być trudna

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

MentorGraphics ModelSim

Kl 7-8 Szkoła Podstawowa

Dokument Detaliczny Projektu

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

METODY PROGRAMOWANIA

REFERAT PRACY DYPLOMOWEJ

MVVM Light Toolkit. Julita Borkowska

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Programowanie obiektowe zastosowanie języka Java SE

OSGi Agata Hejmej

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Automatyczne testowanie aplikacji Android

Dokument Detaliczny Projektu

Programowanie zespołowe

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

kodowanienaekranie.pl

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

JAX-RS czyli REST w Javie. Adam Kędziora

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

System zarządzający grami programistycznymi Meridius

Spis treści. 1 Java T M

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Scala - programowanie obiektowo-funkcyjne

Analiza i projektowanie aplikacji Java

Wdrożenie technologii procesowej IBM BPM w EFL

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Czym jest Ruby on Rails?

Konspekt pracy inżynierskiej

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Archiwum Prac Dyplomowych. Michał Malinowski Dariusz Działak

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Platforma Eclipse: Pluginy, RCP oraz GEF

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Programowanie obiektowe

Techniki efektywnego testowania kodu dla programistów Java (Spock

Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Java Podstawy. Michał Bereta

Zaawansowane narzędzia programowania rozproszonego

Release Notes Process Data Flow ("PDF" )

Web frameworks do budowy aplikacji zgodnych z J2EE

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Zakład Systemów Rozproszonych

Tworzenie raportów XML Publisher przy użyciu Data Templates

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Podstawy i języki programowania

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Projekt: Narzędzia zarządzania testowaniem badanie narzędzia. Część 2.3 Badanie Synapse RT

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa

Podstawy i języki programowania

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Session Based Testing Czyli eksploracyjne testowanie w sesjach. Karolina Bilewska PapryQArz

CouchDB. Michał Nowikowski

Programowanie Zespołowe

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Wprowadzenie do narzędzia MAVEN

Tworzenie i wykorzystanie usług sieciowych

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

ZAPYTANIE OFERTOWE. z dnia 20 grudnia 2013r.

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

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

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Budowa argumentacji bezpieczeństwa z użyciem NOR-STA Instrukcja krok po kroku

CVS system kontroli wersji

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Forum Client - Spring in Swing

[Junior Developer - pierwsza praca jako programista - JavaDevMatt] 1. Sponsorzy Partnerzy projektu O czym i dla kogo jest ta książka?

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Dekoratora używa się wstawiając linijkę zaczynającą się przed definicją dekorowanego obiektu (klasy czy funkcji).

mfaktura Instrukcja instalacji programu Ogólne informacje o programie biuro@matsol.pl

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Transkrypt:

Public Słowa kluczowe jak góry lodowe czyli rzecz o bibliotekach testowych Marcin Kowalczyk marcin.kowalczyk@tieto.com

Spis treści Dlaczego słowa kluczowe są jak góry lodowe, po co tworzyć własne biblioteki testowe 3 Krótkie wprowadzenie 4 Słowa kluczowe jak góry lodowe 5 Zalety testowania w oparciu o słowa kluczowe 6 Wady testowania w oparciu o słowa kluczowe 7 Przykład klasycznego podejścia 8 Przeniesienie ciężaru logiki testu w kierunku biblioteki 9 Przykład z życia wzięty 10 Przeniesienie funkcjonalności Selenium do biblioteki 11 Przeniesienie funkcjonalności Selenium do biblioteki c.d. 12 Gdy brak funkcjonalności testowej tworzymy własny keyword 13 Praktyczne aspekty tworzenia własnych bibliotek testowych 14 Czym jest biblioteka testowa? 15 Jakie języki wspiera Robot Framework? 16 Tworzenie biblioteki i import w skrypcie 17 Mapowanie funkcji na słowa kluczowe 18 Drukowanie do logu i ustawianie negatywnego rezultatu 19 Dokumentowanie słów kluczowych 20 Kilka słów o bibliotekach w Javie 21 Zakończenie 22 2

Public Dlaczego słowa kluczowe są jak góry lodowe, po co tworzyć własne biblioteki testowe

Krótkie wprowadzenie Testowanie w oparciu o słowa kluczowe jest powszechną metodą testową (keyword driven testing) Słowo kluczowe reprezentuje akcję testową i jest interpretowane przez framework testowy Popularne narzędzie korzystające z tej metody: Robot Framework 4

Słowa kluczowe jak góry lodowe Gdzie ma być ciężar logiki testu? Są różne podejścia 5

Zalety testowania w oparciu o słowa kluczowe Co dostarcza nam framework testowy? Składnię testów opisaną słowami kluczowymi Logowanie Obsługę wyjątków rzucanych w bibliotekach testowych Możliwość łatwego dodawania własnych bibliotek 6

Wady testowania w oparciu o słowa kluczowe Mało przejrzysta i efektywna składnia testów zbudowanych ze słów kluczowych gdy mamy do czynienia ze złożonym przypadkiem testowym Programowanie w tabelkach często zniechęca inżynierów testów do korzystania z narzędzia Cel: wykorzystać zalety, wyeliminować wady 7

Przykład klasycznego podejścia Większość wbudowanych generycznych bibliotek testowych często dostarcza funkcjonalność, w której ciężar logiki testu leży po stronie słów kluczowych Programowanie w tabelkach często zniechęca inżynierów testów Przykład: szukanie ilości wystąpień litery b w liście zawierającej litery 8

Przeniesienie ciężaru logiki testu w kierunku biblioteki W bardzo prosty sposób można napisać własną bibliotekę i zdefiniować własne słowo kluczowe Zysk: 5 słów kluczowych mniej w skrypcie, reużywalność 9

Przykład z życia wzięty Przykład: 16 linijek używających Selenium2Library 10

Przeniesienie funkcjonalności Selenium do biblioteki Nowe słowo kluczowe używające Selenium2Library 11

Przeniesienie funkcjonalności Selenium do biblioteki c.d. Nowe słowo kluczowe używające Selenium WebDriver 12

Gdy brak funkcjonalności testowej tworzymy własny keyword Chcemy wykorzystać wszystkie zalety frameworka testowego ale nie ma potrzebnej funkcjonalności testowej Tworzymy własną generyczną bibliotekę testową lub Tworzymy własną specyficzną bibliotekę testową dedykowaną do naszego środowiska testowego (trudno oczekiwać, że istnieje skoro ma być dedykowana do środowiska) 13

Public Praktyczne aspekty tworzenia własnych bibliotek testowych

Czym jest biblioteka testowa? Biblioteka to po prostu zbiór funkcji w wybranym języku używanych przez framework testowy Najczęściej używany wzorzec projektowy: adapter (ang. wrapper). Przykład: robotowa biblioteka Selenium2Library stanowi warstwę pośredniczącą między Selenium a Robotem 15

Jakie języki wspiera Robot Framework? Python najbardziej naturalna forma pisania pluginów, gdyż Robot Framework jest też pisany w Pythonie. Biblioteki są interpretowane przez pybot i jybota Java trochę bardziej skomplikowana forma, do wykorzystania jeśli jest wyraźny powód do użycia Javy. Biblioteki interpretowane tylko przez jybota. Wymaga instalacji Jythona. 16

Tworzenie biblioteki i import w skrypcie Biblioteka to po prostu moduł Pythonowy (plik nazwa.py) Widoczna jeśli jest w tym samym katalogu co skrypt lub W dowolnej lokalizacji wskazanej przez PYTHONPATH (zmienna systemowa wskazująca, gdzie znajdują się biblioteki Pythonowe Większość opublikowanych bibliotek znajduje się na PyPI (Python Package Index) do zainstalowania z sieci jedną komendą 17

Mapowanie funkcji na słowa kluczowe Podstawowym założeniem jest fakt, że silnik Robot Frameworka mapuje nazwy funkcji bibliotecznych na słowa kluczowe Słowa kluczowe mogą przyjmować argumenty i zwracać wartości jak zwykłe funkcje Przykład mapowania: Nazwa metody pythonowej jakas_nazwa_funkcji jakasnazwafunkcji click_element Zamapowane słowo kluczowe Jakas Nazwa Funkcji Jakas Nazwa Funkcji Click Element 18

Drukowanie do logu i ustawianie negatywnego rezultatu Drukowanie do logu jest niezwykle proste framework przechwytuje standardowe wyjście Aby ustawić test w stanie negatywnym wystarczy rzucić dowolny wyjątek - zostanie obsłużony przez framework Akcja Jak Przykład Drukowanie do logu Ustawianie negatywnego rezultatu Drukowanie na standardowe wyjście Rzucenie dowolnego wyjątku print cos drukujemy Raise Exception( jakis komunikat ) 19

Dokumentowanie słów kluczowych Libdoc - narzędzie robotowe do dokumentowania bibliotek testowych Dokumentuje słowa kluczowe i komentarze 20

Kilka słów o bibliotekach w Javie JavalibCore stworzona przez twórców Robota biblioteka umożliwiającą w miarę łatwe pisanie pluginów w Javie Dostarcza 2 klasy do wyboru po których powinny dziedziczyć nowe biblioteki: ClassPathLibrary AnnotationLibrary Jeśli brak wyraźnego powodu do skorzystania z Javy lepiej pisać biblioteki w Pythonie 21

Dziękuję za uwagę Czas na pytania i pokaz praktyczny. 22

Public Marcin Kowalczyk marcin.kowalczyk@tieto.com