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

Slides:



Advertisements
Podobne prezentacje
nowoczesny system zarządzania przedsiębiorstwem
Advertisements

I część 1.
Słabe strony administracji publicznej wg Narodowej Strategii Spójności 2007
Copyright © 2006 Quest Software Wybrane Narzędzia z Oferty Quest Software Dedykowane dla Baz Danych MACIEJ POGORZELSKI.
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Wydział Zastosowań Informatyki i Matematyki SGGW
Projektowanie Aplikacji Komputerowych
Projektowanie Aplikacji Komputerowych
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
10 błędów / wg E. Cochran’a /
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Czyli jak testować w Eclipsie?
Temat: Doświadczenie z wdrożenia usług elektronicznych w województwie podlaskim w latach na przykładzie Wojewódzkiego Centrum Zarządzania Siecią
„Migracja środowisk Novell NDS/eDirectory oraz Novell Groupwise do środowiska Microsoft Active Directory oraz Microsoft Exchange przy użyciu narzędzi Quest.
Administracja zintegrowanych systemów zarządzania
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Dalsze elementy metodologii projektowania. Naszym celem jest...
Inżynieria Oprogramowania
Psychologiczne aspekty pracy testera oprogramowania
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
Atlantis INSPECTOR System wspomagania zarządzaniem i ewidencją obiektów sieciowych.
© Victo Testowanie dla menedżerów Wersja TDM Slajd 1 (27) Testowanie oprogramowania dla menedżerów Co menedżerowie i kierownicy naprawdę potrzebują
Adam Gabryś , v1.1,
Continuous Integration i jakość kodu
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Podsumowanie działalności Zarządu Banku za okres
KALENDARZ 2011r. Autor: Alicja Chałupka klasa III a.
Największe problemy w projektach informatycznych IT Opracował: Karol Pietrzak na podstawie artykułu z SDJ/2007 IX.
WORKFLOW KLUCZEM DO MINIMALIZACJI KOSZTÓW DZIAŁANIA ORGANIZACJI
Microsoft Solution Framework
Wsparcie pracy grupowej systemem Workflow
Rozwiązania informatyczne dla przedsiębiorstw
Plan prezentacji Zarys projektu Geneza tematu
Sieciowe Systemy Operacyjne
Asseco Poland – bezpieczny partner w biznesie
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Zaprojektowanie i wykonanie prototypowego systemu obiegu dokumentów (workflow) dla Dziekanatu Wydziału z wykorzystaniem narzędzi open-source i cloud computing.
Moduł: Informatyka w Zarządzaniu
Kalendarz 2011r. styczeń pn wt śr czw pt sb nd
Spotkanie Centrum Poczty i Postdata S.A.
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
„Kalkulator zużycia oraz kosztu energii elektrycznej online „
Pod kierownictwem dr hab. inż. Piotra Zaskórskiego prof. WWSI
ZASADY EFEKTYWNEGO PISANIA TESTÓW
XI FORUM FIRM INFORMATYCZNYCH
Urządzenia 1 mld smartfonów do 2016 r., 350 mln z nich jest używanych w pracy Ludzie 82 % populacji online korzysta z sieci społecznościowych Chmura.
Przykłady błędów bezpieczeństwa w kilku krokach, Mateusz Olejarka czyli rzecz o atakowaniu procesów.
Comarch – producent i dostawca nowoczesnych systemów informatycznych
Kalendarz 2020.
Forum Pracodawców AEiI 2015 Wydział Automatyki, Elektroniki i Informatyki Gliwice, 11 marca 2015r.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Zintegrowany monitoring infrastruktury IT w Budimex
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Wykład 2 – Zintegrowane systemy informatyczne Michał Wilbrandt.
 sprawdzają funkcjonalność i poprawność kodu, który napisał programista  sprawdzanie odbywa się poprzez użycie składowych klas dla różnych danych 
Testy jednostkowe. „Test jednostkowy (unit test) to fragment kodu, który sprawdza inny fragment kodu”
ARCHITEKTURA SOA JAKO KLUCZ DO CYFROWEJ TRANSFORMACJI Agata Kubacka, Poczta Polska Tomasz Gajewski, Poczta Polska Jerzy Niemojewski, Savangard © 2016 Software.
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
Wyższa Szkoła Informatyki i Zarządzania W Bielsku-Białej Kierunek informatyka Specjalność : Systemy informatyczne Praca dyplomowa inżynierska : System.
TWOJA CYFROWA PRZYSZŁOŚĆ. JUŻ DZISIAJ. Marcin Parczewski © 2016 Software AG. All rights reserved. For internal use only.
Dynamiczny serwer aplikacyjny w C++ platforma LEFTHAND
JavaBeans by Paweł Wąsala
Zapis prezentacji:

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

Jesteśmy producentem i integratorem rozwiązań informatycznych BSB dziś Jesteśmy producentem i integratorem rozwiązań informatycznych 100% udziałów w kapitale zakładowym posiada Narodowy Bank Polski Opracowana strategia na kolejne lata ukierunkowuje nas głównie na sektor finansowy i uzupełniająco na sektor administracji publicznej Pozytywny wynik finansowy Siedziba Spółki – Bydgoszcz, ul. Kasprzaka 3 Departament Sprzedaży – Warszawa Liczba pracowników - ok. 130 osób (w większości kadra inżynierska)

Profil usług Rozwiązania biznesowe Usługi programistyczne Cloud Computing Dostawy i integracje Infrastruktury IT Zarządzanie bezpieczeństwem

Nasi klienci

Programowanie bez błędów – testy automatyczne i jednostkowe z wykorzystaniem narzędzi. Artur Szatkowski

Praca z kodem – co i jak testować? Narzędzia wspomagające Agenda Rodzaje testów Praca z kodem – co i jak testować? Narzędzia wspomagające

Jednostkowe Integracyjne Wydajnościowe Funkcjonalne Merytoryczne Rodzaje testów Jednostkowe Integracyjne Wydajnościowe Funkcjonalne Merytoryczne

Tradycyjne testowanie Używanie System.println() Debugowanie Skrypty testowe

Testy jednostkowe

Testy jednostkowe - założenia Weryfikują poprawność działania kodu Zapewniają poprawność architektury Dokumentują użycie klasy Zabezpieczają przed regresją Ułatwiają refaktoring Ułatwiają eksperymentowanie Przygotowują kod do testów integracyjnych

Weryfikacja kodu przy każdej kompilacji Testy jednostkowe 2/2 Szybkie uruchamianie Weryfikacja kodu przy każdej kompilacji Testowanie wyizolowanych jednostek Dlaczego ignorowanie testów jest dużym błędem. Testy jednostkowe pozwalają na duże zmiany w kodzie w szybkim czasie. Masz pewność, że coś działa, bo testy wykonują się poprawnie. Dokonujesz koniecznych zmian, a ponownie uruchomione testy nie zgłaszają błędów. To oszczędza czas. TDD pomaga w rozsądnym programowaniu. Kiedy testy działają kończysz implementowanie danej funkcjonalności. Testy pozwalają na spokojne przechodzenie do kolejnych etapów projektu bez lęku pozostawienia niekompletnego kodu. Testy i implementacja pozostają bardzo blisko siebie, aby wynikowy kod był lepszej jakości. Twój kod bywa zły oraz zawiera błędy. Twoje testy bywają złe i zawierają błędy. Jednak programowanie wsparte testami zmniejsza szanse, że zarówno kod i testy są niskiej jakości. Często wprowadzenie poprawek w testach, daje dobry wynik. TDD pomaga w programowaniu złożonych problemów. Dzięki testom analizujesz mniejsze fragmenty planowanej funkcjonalności, co automatycznie rozwiązuje skomplikowane problemy i szybciej posuwa proces tworzenia do przodu. Testy jednostkowe umożliwiają lepsze zrozumienie projektowanego kodu. Zamiast jedynie kodowania określonych funkcjonalności, rozważasz projekt globalnie, koncentrując się na poszczególnych warunkach i oczekiwanych wynikach. Testy jednostkowe dają natychmiastowe wsparcie w postaci wizualnej. Wszyscy lubią to uczucie, gdy wiesz, że wszystko działa poprawnie. To bardzo satysfakcjonujące. Poza tym, o wiele łatwiejsze jest naprawienie błędu, gdy dostajesz dokładną przyczynę jego wystąpienia. Wbrew powszechnej opinii pisanie testów wcale nie wymaga dwukrotnie większej ilości kodu, ani nie zwalnia tempa tworzenia aplikacji. Wręcz przeciwnie, taki kod powstaje szybciej i jest mniej zawodny w porównaniu do zwykłego kodu. Napisane testy w większości przypadków są proste, jeśli nie banalne, co nie sprawia trudności w ich tworzeniu. Przekonasz się w momencie, w którym spróbujesz. Myślę, że powiedział to Fowler: „Niedoskonałe testy, uruchamiane często są o wiele lepsze niż doskonałe testy, których nigdy nie napiszesz”.

Testy jednostkowe - atrybuty Łatwe w implementacji Szybkie uruchamianie Powtarzalne przy każdej kompilacji Testują wyizolowane jednostki Dlaczego ignorowanie testów jest dużym błędem. Testy jednostkowe pozwalają na duże zmiany w kodzie w szybkim czasie. Masz pewność, że coś działa, bo testy wykonują się poprawnie. Dokonujesz koniecznych zmian, a ponownie uruchomione testy nie zgłaszają błędów. To oszczędza czas. TDD pomaga w rozsądnym programowaniu. Kiedy testy działają kończysz implementowanie danej funkcjonalności. Testy pozwalają na spokojne przechodzenie do kolejnych etapów projektu bez lęku pozostawienia niekompletnego kodu. Testy i implementacja pozostają bardzo blisko siebie, aby wynikowy kod był lepszej jakości. Twój kod bywa zły oraz zawiera błędy. Twoje testy bywają złe i zawierają błędy. Jednak programowanie wsparte testami zmniejsza szanse, że zarówno kod i testy są niskiej jakości. Często wprowadzenie poprawek w testach, daje dobry wynik. TDD pomaga w programowaniu złożonych problemów. Dzięki testom analizujesz mniejsze fragmenty planowanej funkcjonalności, co automatycznie rozwiązuje skomplikowane problemy i szybciej posuwa proces tworzenia do przodu. Testy jednostkowe umożliwiają lepsze zrozumienie projektowanego kodu. Zamiast jedynie kodowania określonych funkcjonalności, rozważasz projekt globalnie, koncentrując się na poszczególnych warunkach i oczekiwanych wynikach. Testy jednostkowe dają natychmiastowe wsparcie w postaci wizualnej. Wszyscy lubią to uczucie, gdy wiesz, że wszystko działa poprawnie. To bardzo satysfakcjonujące. Poza tym, o wiele łatwiejsze jest naprawienie błędu, gdy dostajesz dokładną przyczynę jego wystąpienia. Wbrew powszechnej opinii pisanie testów wcale nie wymaga dwukrotnie większej ilości kodu, ani nie zwalnia tempa tworzenia aplikacji. Wręcz przeciwnie, taki kod powstaje szybciej i jest mniej zawodny w porównaniu do zwykłego kodu. Napisane testy w większości przypadków są proste, jeśli nie banalne, co nie sprawia trudności w ich tworzeniu. Przekonasz się w momencie, w którym spróbujesz. Myślę, że powiedział to Fowler: „Niedoskonałe testy, uruchamiane często są o wiele lepsze niż doskonałe testy, których nigdy nie napiszesz”.

Testować: Nie testować: Testy jednostkowe 2/2 Logikę biznesową Kod narzędziowy Walidatory Kody wspólne wykorzystywane przez wielu programistów Nie testować: Bibliotek firm trzecich Trywialnego kodu (getery, setery itp.) Zewnętrznych zasobów Kodu niedeterministycznego (wiele wątków, zależności czasowych)

Testy integracyjne

Testy Integracyjne - założenia Wiele błędów wynika z nieprawidłowego współdziałania klas ze sobą Testy integracyjne mogą wykonywać się wolniej Testy integracyjne nie muszą być wykonywane przed każdym buildem Testy integracyjne powinny być wykonywane przed comitem Testy integracyjne mogą wykorzystywać środowisko zewnętrzne (baza danych itp.)

Testy Integracyjne – Kiedy używać Test korzysta z bazy danych Test wykorzystuje połączenia sieciowe Test komunikuje się z zewnętrznymi zasobami (np. system pocztowy, kolejka itp.) Test korzysta z plików

Testy Integracyjne a Testy Jednoskowe 1/2 Testy porównanie 1/2 Testy Jednostkowe Testy Integracyjne Wyniki zależą tylko od kodu Wyniki zależą także od systemów zewnętrznych Łatwy do napisania i weryfikacji Przygotowanie może być skomplikowane Testujemy jedną klasę w izolacji od reszty systemu Testujemy współpracujące ze sobą komponenty Ewentualne zależności są zaślepione Generalnie nie trzeba nic zaślepiać (ewentualnie to, co nie jest potrzebne do testu) Test weryfikuje tylko implementację kodu Test weryfikuje implementację komponentu i poprawność współdziałania z resztą systemu Wykorzystywane są tylko biblioteki testów (np. JUnit) i narzędzia mockowania (np. Mockito) Test może wykorzystywać prawdziwe kontenery i bazy danych, a także dodatkowe narzędzia (jak Arquillian czy DbUnit)

Testy Integracyjne a Testy Jednoskowe 2/2 Testy porównanie 2/2 Testy Jednostkowe Testy Integracyjne Wykorzystywane głównie przez deweloperów Mogą być wykorzystywane także przez Testerów, Analityków czy Helpdesk Błąd testu z reguły świadczy o błędzie regresji (chyba, że była zmiana logiki) Błąd testu może być także spowodowany zmianami środowiska Muszą wykonywać się szybko by niepotrzebnie nie spowalniać procesu budowania aplikacji Mogą wykonywać się wolniej, bo wykonywane są rzadziej.

Narzędzia

Junit, Nunit, TestNG, DBUnit itd. mockito Narzędzia Junit, Nunit, TestNG, DBUnit itd. mockito Narzędzia CI (Jenkins, Bamboo itp.) Sonar [http://www.sonarqube.org] Phabricator [http://phabricator.org] Arquillian [http://arquillian.org/] maven Git PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It supports Java, JavaScript, XML, XSL. Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in Java

Narzędzia 1/3 PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It supports Java, JavaScript, XML, XSL. Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in Java

Narzędzia 2/3 http://nemo.sonarqube.org/dashboard/index/48209?did=1&period=2

Narzędzia 3/3

DZIĘKUJĘ ZA UWAGĘ Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3 85-321 Bydgoszcz Departament Sprzedaży u. Połczyńska 31A 01-377 Warszawa e-mail: office@bsb.pl www.bsb.pl