Informatyzacja przedsiębiorstw WYKŁAD



Podobne dokumenty
Informatyzacja przedsiębiorstw WYKŁAD

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Michał Olejnik. 22 grudnia 2009

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

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Techniki efektywnego testowania kodu dla programistów Java (Spock

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

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Program szkolenia: Continuous Integration i Git

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Testowanie oprogramowania

Spring Framework - wprowadzenie i zagadnienia zaawansowane

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

REFERAT PRACY DYPLOMOWEJ

Platformy Technologiczne

Programowanie Systemów Czasu Rzeczywistego

Spis treści Wstęp 1. Wprowadzenie 2. Zarządzanie ryzykiem systemów informacyjnych

Przykład połączenie z bazą danych

WYDRA BY CTI. WYSYŁANIE DOKUMENTÓW ROZLICZENIOWYCH I ARCHIWIZACJA Instrukcja do programu

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

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

Modelowanie procesów biznesowych, przepływu pracy oraz reguł biznesowych na przykładzie Drools i jbpm lub Activiti

Maciej Oleksy Zenon Matuszyk

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

2.11. Monitorowanie i przegląd ryzyka Kluczowe role w procesie zarządzania ryzykiem

Programowanie w Ruby

Dokumentacja fillup - MS SQL

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

Wprowadzenie do środowiska Qt Creator

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Zawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Testowanie aplikacji. Kurs języka Ruby

Specyfikacja przypadków i scenariuszy testowych

Testowanie oprogramowania. Piotr Ciskowski

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

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Szablon Planu Testów Akceptacyjnych

Informatyzacja przedsiębiorstw WYKŁAD

Enterprise JavaBeans (EJB)

Krótkie wprowadzenie do ModelSim i Quartus2

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

WEBCON BPS Instalacja Standalone

Release Notes Process Data Flow ("PDF" )

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

S P I S T R E Ś C I. Instrukcja obsługi

SoftVig Systemy Informatyczne Sp. z o.o. Szczecin , ul. Cyfrowa 4

Jarosław Żeliński analityk biznesowy, projektant systemów

Spis treści MONITOR PRACY... 4

VTcenter. Built documentation. Datei: Plik: KRAKAU_VTcenter_Built_Documentation_ doc. TRISTAR_VTcenter_Built_Documentation_

R o g e r A c c e s s C o n t r o l S y s t e m 5

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

enova365 Harmonogram zadań

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

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

Wykaz zmian w programie SysLoger

Instrukcja instalacji Mobile Marketing Pro

Behavior Driven Development (BDD)

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Wdrożenie technologii procesowej IBM BPM w EFL

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

KURIER FEDEX XL BY CTI INSTRUKCJA

4. Podstawowa konfiguracja

emszmal 3: Automatyczne księgowanie płatności w programie Sello (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie płatności do zamówień w programie Subiekt Nexo (plugin dostępny w wersji ecommerce)

Program szkolenia: Jenkins - Continuous Integration

emszmal 3: Automatyczne księgowanie przelewów w programie Sello (plugin dostępny w wersji ecommerce)

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

Wprowadzenie do Behaviordriven

emszmal 3: Automatyczne księgowanie przelewów w programie EasyUploader (plugin dostępny w wersji ecommerce)

Zespół: Agata Chrobak Kornel Jakubczyk Tomek Klukowski Przemek Kosiak. Projekt SZOP Plan testów

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Instrukcja laboratoryjna cz.3

EXSO-CORE - specyfikacja

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Słowa kluczowe jak góry lodowe

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

11. Autoryzacja użytkowników

Statyczne i dynamiczne predykaty

emszmal 3: Automatyczne księgowanie płatności w programie EasyUploader (plugin dostępny w wersji ecommerce)

Usługa: Audyt kodu źródłowego

Załącznik 2 utworzenie projektu

Sukces vs porażka. Sukces. Porażka

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Przewodnik użytkownika (instrukcja) AutoMagicTest Spis treści

Transkrypt:

Informatyzacja przedsiębiorstw WYKŁAD dr inż. Piotr Zabawa IBM/Rational Certified Consultant pzabawa@pk.edu.pl wersja 0.1.0 07.10.2010

Wykład 5 Techniki pracy w środowisku Jboss Drools

Wstęp Podobnie jak w każdej pracy o charakterze informatycznym niemal nigdy nie udaje się opracować gotowego rozwiązania od razu bezbłędnie. Dlatego Drools oferuje szereg rozwiązań ułatwiających testowanie, poszukiwanie błędów i ich naprawianie. Należy wziąć dodatkowo pod uwagę fakt, że język reguł biznesowych jest językiem deklaratywnym mającym swoją specyfikę. Poprawianie błędów jest szczególnie trudne.

Zagadnienia Testy jednostkowe z mockowaniem Testy integracyjne Testy akceptacyjne Pisanie scenariuszy testowych Wykonywanie scenariuszy testowych Statyczna analiza reguł

Zagadnienia Specyficzne techniki Rete Tree View Debug event listener Komentowanie fragmentów warunków reguł Wykorzystanie System.out w konsekwencjach reguł Podgląd kodu źródłowego klasy generowanej dla konsekwencji reguły Wstrzykiwanie System.out do warunków reguł z wykorzystaniem mvel

Testy jednostkowe W testach jednostkowych chodzi o przetestowanie reguły w oderwaniu od całego otoczenia testujemy poprawność samej reguły a nie np. usług, z których ona korzysta. Aby móc zastosować takie podejście należy skorzystać z Aby móc zastosować takie podejście należy skorzystać z bibliotek mockujących, np. jmock. Biblioteka ta umożliwia wykonanie klasy, która zastępuje usługę rejestrując wywołania jej metod (nazwa metody, ilość wywołań, czas wywołania, kolejność wywołań).

Testy jednostkowe reguł Testem jednostkowym powinien zostać pokryty każdy warunek reguły. Jeśli warunek nie jest spełniony, to test powinien nie przejść (fail). Takie podejście umożliwia dokonywanie refaktoryzacji reguł z ograniczonym ryzykiem naruszenia dotychczasowej ich funkcjonalności. Test powinien uwzględniać brak dostępnego faktu, na którym działa reguła, dostępność jednego faktu, wielu faktów w sesji.

Testy jednostkowe workflow Testy jednostkowe dla procesów powinny być podzielone na dwie części: Testy definicji procesu (w bazie wiedzy tylko zasób *.rf) Testy reguł Test definicji procesu powinien testować każdy węzeł procesu w celu sprawdzenia prawidłowości rozpływu sterowania. Szczególny nacisk należy położyć na sprawdzenie każdej gałęzi procesu oraz na sprawdzanie warunków w poszczególnych węzłach.

Testy integracyjne reguł/procesów Są to testy wyższego poziomu niż jednostkowe. Testują one całą bazę wiedzy i sprawdzają współpracę pomiędzy regułami. W odróżnieniu od testów jednostkowych nie stosujemy mockowania, bo chodzi nam właśnie o działanie na poprawnie zainicjowanych obiektach. W tym rodzaju testów w zastosowaniu do workflow nie testujemy osobno definicji procesu a osobno reguł lecz oba elementy łącznie.

Testy akceptacyjne reguł Są to systemowe testy black-box owe wykonywane przed przekazaniem systemu klientowi. Ich zbiór może być wyspecyfikowany jako jeden z elementów wymagań (testujemy zgodność działania systemu właśnie z wymaganiami). Specyfikacja takiego testu systemowego obejmuje: Określenie wymaganych dla testu wpisów konfiguracyjnych systemu Określenie wymaganych dla testu danych wejściowych Określenie spodziewanych danych wyjściowych

Testy akceptacyjne reguł Istnieje szereg narzędzi ułatwiających implementowanie testów akceptacyjnych. Jednym z nich jest Framework for Integrated Test (FIT). Przechowuje on specyfikację testów w dokumentach typu doc lub rtf. Podejście to zastosowano w Drools i jest ono dostępne przez Guvnor, a więc są dedykowane do użytku dla analityków biznesowych.

Testy akceptacyjne reguł Kroki w Guvnor: Załadowanie pakietu reguł biznesowych Import modelu oraz brakujących pakietów/bibliotek Utworzenie scenariusza testowego (sekcje GIVEN i EXPECT dla każdego testu oraz przycisk More dla kolejnych testów) do dyspozycji informacja o polach i ich typach wydobyta z testowanej klasy Wykonanie scenariusza testowego (przycisk Run scenario) pokazuje się pasek sukcesu, podsumowanie, log audytu Wykonanie wszystkich scenariuszy

Testy akceptacyjne reguł Możliwość wykonania tych testów z zewnątrz poprzez ich URL. Może to mieć duże znaczenie w przypadku zastosowania serwera automatycznych buildów (continuous integration server).

Statyczna analiza reguł Pisanie testów jest czynnością niezwykle żmudną. Dlatego lepiej jest korzystać z możliwości automatyzowania tego procesu. Jedną z takich możliwości oferuje właśnie analiza statyczna reguł. Jednym z elementów Drools jest drools-verifier, który używa własnych reguł do analizowania reguł użytkownika. Jest zintegrowany z Guvnor.

Statyczna analiza reguł Kroki w Guvnor: Wskazanie pakietu reguł Uruchomienie analizy Ręczna analiza wyników (błędy, ostrzeżenia, uwagi) Pakiet ten jest nowy w Drools i wewnętrzne reguły analizy będą stopniowo uzupełniane.

Specyficzne techniki Wymieniono je wcześniej. Tutaj zostaną poruszone niektóre z nich.

Specyficzne techniki Wymieniono je wcześniej. Tutaj zostaną poruszone niektóre z nich.

Event listeners Inaczej zwane callback handlers mają wiele zastosowań: Audyty Debugowanie Wyprowadzanie funkcjonalności poza reguły(np. metoda afteractivationfired w AgendaEventListener do tworzenia Messages i Report)

Event listeners W Drools są następujące event listenery: 1. org.drools.event.rule.workingmemoryeventlistener nasłuch zdarzeń w sesji z bazą więdzy (insert/update/retract faktu) 2. org. drools.event.rule.agendaeventlistener nasłuch zdarzeń w agendzie sesji z bazą wiedzy (create/cancel activation, before/after activation fired, agenda group pop/push)

Event listeners 3. org.drools.event.knowledgebase.knowledgebaseeventlis tener nasłuch zdarzeń w bazie wiedzy (dodawanie/usuwanie pakietów, reguł, funkcji, lock/unlock) 4. org.drools.event.process.processeventlistener nasłuchiwanie zdarzeń instancji procesu (before/after process started/completed, ) Jest wiele wersji tych listenerów, m.in. Wypisująca do konsoli, przeznaczona do dziedziczenia.

Debugowanie reguł Drools Eclipse plugin oferuje możliwość debugowania konsekwencji reguł w pliku reguł. Możliwości takie jak w debugingu Java i w Guvnor (widoki Audit, Working Memory, Agenda, Global Data, Process Instance). Możliwość logowania do pliku w celu analizy off-line zdarzeń (tylko zdarzeń?).

Debugowanie procesu Drools Eclipse plugin oferuje dodatkowe widoki do debugowania procesu: Process Instances (pokazuje wszystkie instancje procesów) Process Instance (pokazuje grafową reprezentację procesu i aktualny węzeł) Aby aktywować te widoki należy ustawić breakpoint w metodzie beforenodetriggered klasy ProcessEventListener (wejście przez proces) albo w konsekwencji reguły (wejście przez regułę).

Analiza generowanego kodu Kompilator Drools w czasie kompilacji pliku reguł generuje wiele klas Java. Klasy te są zapisywane w RAM, jednak można je przekierować do pliku: -Ddrools.dump.dir= target/dumpdir KnowledgeBuilderConfiguration configuration = KnowledgeBuilderFactory. newknowledgebuilderconfiguration(); configuration.setoption(dumpdiroption. get(new File( target/dumpdir ))); Można przeprowadzić szczegółową analizę kodu i zobaczyć jaki kod jest naprawdę wykonywany.

Wykorzystanie możliwości mval Można tymczasowo tylko w celu debugowania wstrzyknąć do warunków reguły dodatkowy kod, np. dialect mvel when Account ( eval(system.out.println( matched ); balance>1))