INŻYNIERIA OROGRAMOWANIA TESTOWANIE JEDNOSTKOWE 2015/2016
|
|
- Szymon Murawski
- 6 lat temu
- Przeglądów:
Transkrypt
1 INŻYNIERIA OROGRAMOWANIA TESTOWANIE JEDNOSTKOWE 2015/2016
2 Czemu testowanie jest ważne? 1994 gra Król Lew Błąd Excela 2007 (ile to jest 850*77,1?) 1987 Therac-25 (race condition, dokumentacja) i Cobalt60 (początek XX w) 1962 Sonda Mariner I samozniszczenie w 294 s ( najdroższy łącznik w historii ) zagrożenie bezpieczeństwa cywilnego 1998 Sonda Mars Climate Orbiter (różne systemy metryczne w różnych zespołach programistów) koszt 125 mln $ 1996 Rakieta Ariane 5 (błąd konwersji liczby 64-bitowej na 16 bitową) Procedura samozniszczenia po 39 s, koszt 500 mln $
3 Cele testowania (wg sylabusa ISTQB) Znajdowanie usterek Nabieranie zaufania do poziomu jakości Dostarczanie informacji do podejmowania decyzji (liczba błędów, odsetek pokrytych wymagań) Zapobieganie defektom (przez sam fakt projektowania testów)
4 Podstawowe pojęcia Obiekt testowany wyizolowana instancja klasy, która podlega testom Przypadek testowy weryfikacja poprawności konkretnego (pojedynczego) zachowania 1 metody w określonych warunkach. Dla każdej metody istnieje 1 lub więcej przypadków testowych, po jednym dla każdego rodzaju zachowania metody. Klasa testująca klasa z przypadkami testowymi dotyczącymi jednego obiektu testowanego
5 Testowanie to proces uruchamiania oprogramowania i jego obserwacji w poszukiwaniu błędów, nie zaś proces sprawdzania jego poprawności, gdyż nie jest to możliwe. Dlaczego? Zbyt wiele wartości parametrów wejściowych (poprawnych i niepoprawnych) Zbyt wiele możliwości przejścia przez kod Trudno oczekiwać sprawdzenia poprawności każdego programu lub złożonych interfejsów TESTOWANIE MA NA CELU ZNALEZIENIE JAK NAJWIĘKSZEJ LICZBY BŁEDÓW I PÓŹNIEJSZE ICH USUNIĘCIE
6
7 Biała skrzynka Potrzebna kompletna wiedza nt. budowy kodu Instrukcje warunkowe: a==b (2 testy) a>b (3 testy) instrukcje złożone dużo Zagnieżdżenia w pętlach mogą powodować lawinowy wzrost liczby przypadków testowych Pętle uruchomienie 0-krotne, 1-krotne, max-krotne Ogromna liczba możliwości powoduje że nie można tych testów przeprowadzić w całości Najłatwiejsze do wykonania w trakcie implementacji Linia kodu jest pokryta testem wówczas, gdy istnieje test którego działanie powoduje jej wykonanie. Zautomatyzowane środowiska testujące i raportujące pokrycie kodu: Rozbudowane typu Clover Proste (Coverlipse, plugin do Eclipse).
8 Czarna skrzynka Poszukiwanie: nieprawidłowych lub brakujących funkcji, błędów interfejsu, błędów w strukturach danych lub dostępie do zewnętrznych zasobów błędów wymagań funkcjonalnych i niefunkcjonalnych (efektywność), błędów inicjalizacji i finalizacji działania programu
9
10 Test jednostkowy (modułowy, komponentowy, podstawowy, programisty) Krótki program (fragment kodu) sprawdzający poprawność działania pojedynczych elementów programu (metod, obiektów). Metoda stosowana zarówno w programowaniu obiektowym jak i proceduralnym Testowanie jednostkowe odbywa się na bardzo niskim poziomie: pojedynczych klas i metod wywoływanych w określonym kontekście i z zadanymi parametrami. Przedmiotem testu jest wykonanie fragmentu kodu, a następnie porównanie rezultatów (stan, wynik liczbowy, zwrócony wyjątek ) z wynikami oczekiwanymi, także negatywnymi (niepowodzenie w działaniu oprogramowania również podlega testowaniu).
11 WAŻNE! TESTY JEDNOSTKOWE WYKONUJE PROGRAMISTA LUB TESTER JEDNOSTKOWY NIE JEST URUCHAMIANY CAŁY SYSTEM (PROGRAM) A JEDYNIE WYBRANY OBIEKT/METODA Przypadki testowe dotyczące jednego obiektu testowanego są zebrane wewnątrz jednej klasy testującej: 1klasa testowana = 1 klasa testująca
12
13 Analiza ścieżek Określany jest punkt początkowy oraz punkt końcowy dla przeprowadzenia testów, a następnie badany jest przebieg możliwych ścieżek pomiędzy nimi. Istnieją dwie opcje: każda możliwa ścieżka w każdej funkcji została przetestowana ścieżki są niemożliwe do sprawdzenia z powodu istnienia pętli, wówczas stosowane są 2 grupy testów: Boundary test działania w pętli nie są wykonywane lub działania w każdej pętli są wykonywane raz dodatkowo wszystkie ścieżki wewnątrz pętli są raz wykonane (zwracana wartość 0 lub 1 przejście). Interior test działania we wnętrzu pętli uważa się za przetestowane, jeśli zostały wykonane wszystkie ścieżki, które są możliwe przy dwukrotnym powtórzeniu pętli (zwracana wartość- 2 przejścia).
14 Klasy równoważności Jest to zbiór danych o podobnym sposobie przetwarzania, używanych do przeprowadzenia testu. Wykonanie testu z użyciem kilku elementów zbioru, powoduje uznanie całej klasy za poprawną i zwalnia nas od testowania wszystkich elementów w np elementowym zbiorze.
15 Testowanie wartości brzegowych Rozwinięciem testów z użyciem klas równoważności jest testowanie wartości brzegowych. Wartość brzegowa to wartość znajdująca się wewnątrz, pomiędzy lub tuż przy granicy danej klasy równoważności.
16 Testowanie składniowe Polega na sprawdzeniu poprawności wprowadzanych danych do systemu: wymuszone wartości pól (bazy danych) autokorekty (MS Office) Zasada "garbage in garbage out brak mechanizmu walidacji danych na wejściu brak testów na tolerancje systemu na błędne dane
17 Testowanie mutacyjne Technika automatycznego badania, na ile dokładnie testy jednostkowe sprawdzają kod programu. Polega na automatycznym wielokrotnym wprowadzaniu małych losowych błędów w programie i uruchamianiu za każdym razem testów jednostkowych, które powinny te błędy wykryć. Testowanie mutacyjne wymaga dużej mocy obliczeniowej
18 TESTOWANIE METOD PRYWATNYCH (?)
19 W większości przypadków, klasę powinno się dać przetestować poprzez wywołanie jej metod publicznych. Jeżeli za prywatną lub chronioną metodą kryje się duża funkcjonalność, to być może jest to sygnał ostrzegawczy, który mówi ci, że w rzeczywistości ukryta jest tam odrębna klasa, która chciałaby wydostać się na zewnątrz /Thomas D. Hunt A, Pragmatic Unit Testing /
20 Czy to jest dopuszczalne? TAK. 1. Testuj wszystko, co może nie działać 2. Przetestowanie kodu jest ważniejsze niż zgodność z konwencją programowania obiektowego 3. Co jest ważniejsze: testy czy enkapsulacja?
21 Czy to jest dopuszczalne? I NIE. 1. Chęć testowania metod prywatnych jest próbą rozwiązania problemu z designem klasy, a więc ucieczką od problemu 2. Jeżeli coś jest zbyt trudne do przetestowania, prawdopodobnie jest to kwestia złej implementacji (code smell) 3. Przy programowaniu obiektowym nie powinno się zaglądać w szczegóły implementacyjne klasy 4. Metody prywatne są dużo częściej zmieniane niż publiczne, stąd ich testy są niemiarodajne 5. Podejście code first a podejście test first 6. Testując metody prywatne narażamy się na testowanie implementacji co przy zmianie kodu może wymusić zmianę testów.
22 TDD Testowanie całego kodu jedynie przez wywołanie metod interfesju, metody prywatne są wynikiem refaktoryzacji metod istniejących, dlatego też traktuje się je jako już przetestowane: Przykład: 1. Napisanie testu metody A 2. Napisanie metody A 3. REFAKTORYZACJA 4. Napisanie testu metody B 5. Napisanie metody B 6. REFAKTORYZACJA. Jeżeli metoda A i B mają część wspólną należy ją wyłączyć (extract method) w postaci (prywatnej) metody C. Skoro metoda C została wyodrębniona z 2 klas publicznych a więc przetestowanych, to traktuje się ją jako przetestowaną (pomimo jej prywatnego charakteru)
23 Jak testować metody prywatne? METODA 1. REFLEKSJA Zmiana modyfikatora dostępu (tylko na czas testów). Zaletą jest brak jakichkolwiek zmian w kodzie, wadą jest utrudniony refaktoring. Przykład z JUnit-addons (dodatek do JUnit)
24 Jak testować metody prywatne? METODA 1. DOMYŚLNY MODYFIKATOR DOSTĘPU Pozwala na dostęp do klasy tylko klasom z tego samego pakietu. Wystarczy, że testy są w tym samym pakiecie co klasa testowana, by po zmianie modyfikatora metod prywatnych na domyślne, mogły być one w ramach tego pakietu testowane. Wada: konieczność modyfikacji kodu źródłowego i dość znaczące odsłonięcie szczegółów implementacji klasy
25 Przykład: publizize.exe w VisualStudio class Klasa1 { private int PrywatneA; private int PrywatneBB; private event EventHandler Zdarzenie; } Uruchamiamy Visual Studio Command Prompt i wpisujemy: publicize.exe NazwaBiblioteki.dll W wygenerowanej bibliotece prywatne pola (PrywatneA, PrywatneB) będą dostępne jako publiczne. Wygenerowana biblioteka (NazwaBiblioteki_Accessor.dll) nazywana jest Private Accessor. Po podłączeniu do projektu, możemy przekonać się, że prywatne pola zostały zastąpione publicznymi: ClassLibrary1.Klasa_Accessor klasa; klasa.prywatnea = 3; klasa.prywatneb = 6;
26 Metody niepolecane (ale skuteczne) METODA 3 ASPECTJ czyli ARMATA NA WRÓBLE (niepolecane) Technologia jak i idea programowania aspektowego jest słabo znana i rozpowszechniona, stąd problemy w poprawianiu testów w nim pisanych przez następców METODA 4 (niepolecana) Umieszczenie kodu testującego w wewnętrznej klasie statycznej (wewnątrz klasy testowanej). Będzie miała ona dostęp do metod prywatnych, ale nastąpi wymieszanie kodu z testami, testy wejdą w skład programu wynikowego. KOD TESTUJĄCY W TEJ SAMEJ KLASIE CO KOD TESTOWANY METODA 5 Zadeklarować metodę jako protected i dziedziczyć w innej klasie która obuduje metodę prywatną metodą publiczną (Wrapper)
Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.
Testowanie I Cel zajęć Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie oprogramowania Testowanie to proces słyżący do oceny
Bardziej szczegółowoMaciej Oleksy Zenon Matuszyk
Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu
Bardziej szczegółowoMichał Olejnik. 22 grudnia 2009
Continuous TDD Politechnika Wrocławska Informatyka 22 grudnia 2009 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda
Bardziej szczegółowoJęzyk programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/
Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.
Bardziej szczegółowoAutomatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36
Automatyzacja testowania oprogramowania Automatyzacja testowania oprogramowania 1/36 Automatyzacja testowania oprogramowania 2/36 Potrzeba szybkich rozwiązań Testowanie oprogramowania powinno być: efektywne
Bardziej szczegółowoWykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz
Wykład 8 Testowanie w JEE 5.0 (1) Autor: 1. Rola testowania w tworzeniu oprogramowania Kluczową rolę w powstawaniu oprogramowania stanowi proces usuwania błędów w kolejnych fazach rozwoju oprogramowania
Bardziej szczegółowoTestowanie oprogramowania. Testowanie oprogramowania 1/34
Testowanie oprogramowania Testowanie oprogramowania 1/34 Testowanie oprogramowania 2/34 Cele testowania testowanie polega na uruchamianiu oprogramowania w celu wykrycia błędów, dobry test to taki, który
Bardziej szczegółowoPorównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska
Porównanie metod i technik testowania oprogramowania Damian Ryś Maja Wojnarowska Testy oprogramowania Testowanie oprogramowania jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów
Bardziej szczegółowoTestowanie II. Cel zajęć. Pokrycie kodu
Cel zajęć Celem zajęć jest zapoznanie studentów z uzupełniającymi zagadnieniami dotyczącymi testowania wytwarzanego oprogramowania. W pierwszej części zajęć przedstawiona zostanie metoda oceny kompletności
Bardziej szczegółowoTesty poziom po poziomie
poziom po poziomie Prowadzący: Tomasz Mielnik Eliza Słonińska Agenda 1. Modele prowadzenia projektów 2. V-Model 3. Poziomy testów 4. Typy testów 5. Zadanie 1 Modele prowadzenia projektów Wodospadowy (ang.
Bardziej szczegółowoLABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8
Inżynieria Oprogramowania 2013/14 LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Hierarchia klas: TestCase klasa testująca, będąca klasą bazową dla wszystkich przypadków testowych. Zawiera przypadki testowe
Bardziej szczegółowoInformatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Bardziej szczegółowoTechnologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
Bardziej szczegółowo1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoZespół: Agata Chrobak Kornel Jakubczyk Tomek Klukowski Przemek Kosiak. Projekt SZOP Plan testów
Zespół: Agata Chrobak Kornel Jakubczyk Tomek Klukowski Przemek Kosiak Projekt SZOP Plan testów Spis treści 1 Wprowadzenie 3 1.1 Cel.......................................... 3 1.2 Zakres........................................
Bardziej szczegółowoTechnologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Bardziej szczegółowoMETODY PROGRAMOWANIA
METODY PROGRAMOWANIA Testy jednostkowe 8 grudnia 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl PO CO NAM TESTY? weryfikacja poprawności sprawdzanie regresji specyfikacja dokumentacja wymuszanie dobrego
Bardziej szczegółowoProgramowanie poprzez testy z wykorzystaniem JUnit
Programowanie poprzez testy z wykorzystaniem JUnit Programowanie ekstremalne (XP) XP zaproponowano w 1999 (K. Beck: Extreme Programming Explained ) XP dedykowane jest do projektów: O małym lub średnim
Bardziej szczegółowoProgramowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Bardziej szczegółowoProgram szkolenia: Test Driven Development (TDD) using Spock or JUnit 5
Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5 Informacje: Nazwa: Test Driven Development (TDD) using Spock or JUnit 5 Kod: craft-test-tdd Kategoria: Testowanie automatyczne Grupa
Bardziej szczegółowoPROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Bardziej szczegółowoC++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.
C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoZawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik
Zawód tester, czyli na czym polega testowanie Katarzyna Łabinska Justyna Sacha - Gawlik Agenda: 1. Poznajmy się 2. Tester - kto to jest? 3. Podstawy testowania 4. Testowanie manualne a automatyczne 5.
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoJUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska
JUnit TESTY JEDNOSTKOWE Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Testy aplikacji 2 Ręczne testowanie Czasochłonne Powtarzalność trudna do uzyskania Nudne Testowanie automatyczne
Bardziej szczegółowoPHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Bardziej szczegółowoTestowanie oprogramowania. Wykład 1 dlaczego testowanie jest niezbędne czym jest testowanie ogólne zasady testowania
1/30 Testowanie oprogramowania Adam Roman Instytut Informatyki UJ Wykład 1 dlaczego testowanie jest niezbędne czym jest testowanie ogólne zasady testowania Podstawowy proces testowy role i aktywności w
Bardziej szczegółowoPlatformy Technologiczne
i Platformy Technologiczne Laboratorium nr 5 Java: testy jednostkowe z biblioteką JUnit Projekt opracowany w ramach laboratorium nr 5 będzie wykorzystywany w czasie laboratorium nr 6 należy zachować przygotowaną
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoMateriały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoTesty automatyczne. Korzystające z junit
Testy automatyczne Korzystające z junit Cytaty Kiedy zawiesza się program konkurencji, to jest awaria. Kiedy zawiesza się własny program, to jest drobiazg. Często po awarii pojawia się komunikat typu ID
Bardziej szczegółowoJava Język programowania
Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja
Bardziej szczegółowoTestowanie oprogramowania
Testowanie oprogramowania 1/17 Testowanie oprogramowania Wykład 01 dr inż. Grzegorz Michalski 13 października 2015 Testowanie oprogramowania 2/17 Dane kontaktowe: Kontakt dr inż. Grzegorz Michalski pokój
Bardziej szczegółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoProgramowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Bardziej szczegółowoEnkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoTestowanie elementów programowalnych w systemie informatycznym
Testowanie elementów programowalnych w systemie informatycznym Marek Żukowicz 10 października 2017 Streszczenie W literaturze istnieje wiele modeli wytwarzania oprogramowania oraz wiele strategii testowania
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoFuzzing OWASP 14.01.2010. The OWASP Foundation http://www.owasp.org. Piotr Łaskawiec J2EE Developer/Pentester
Fuzzing Piotr Łaskawiec J2EE Developer/Pentester 14.01.2010 Metrosoft (www.metrosoft.com) piotr.laskawiec@gmail.com Copyright The Foundation Permission is granted to copy, distribute and/or modify this
Bardziej szczegółowoKumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy
Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy Marek Żukowicz 14 marca 2018 Streszczenie Celem napisania artykułu jest próba podania konstruktywnego dowodu, który wyjaśnia, że niewielka
Bardziej szczegółowoZaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowoProgramowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Bardziej szczegółowoProgramowanie zespołowe
Programowanie zespołowe Laboratorium 3 - podstawy testów jednostkowych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 7 marca 2017 1 / 22 mgr inż. Krzysztof Szwarc Programowanie zespołowe
Bardziej szczegółowoWstęp do programowania obiektowego. Wykład 2
Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe
Bardziej szczegółowoDlaczego testowanie jest ważne?
Testowanie Dlaczego testowanie jest ważne? Oprogramowanie które nie działa poprawnie może doprowadzić do: straty czasu, pieniędzy utraty reputacji uszkodzeń ciała a nawet śmierci Definicja błędu Oprogramowanie
Bardziej szczegółowoKrótkie wprowadzenie do ModelSim i Quartus2
Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowoKlasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Bardziej szczegółowoINŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE
INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE Definicja ITQB Testowanie integracyjne (integration testing) wykonywane w celu wykrycia defektów w interfejsach i interakcjach pomiędzy modułami lub systemami
Bardziej szczegółowo12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:
Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 1) Oprogramowanie to: 2) Produkty oprogramowania w inżynierii oprogramowania można podzielić na: 3) W procesie wytwarzania oprogramowania
Bardziej szczegółowoMultimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Bardziej szczegółowoTechniki efektywnego testowania kodu dla programistów Java (Spock
Program szkolenia: Techniki efektywnego testowania kodu dla programistów Java (Spock/JUnit) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Techniki efektywnego testowania kodu
Bardziej szczegółowoTESTOWANIE OPROGRAMOWANIA
TESTOWANIE OPROGRAMOWANIA Uważaj na ten program ja tylko udowodniłem jego poprawność, nie testowałem go Donald Knuth Plan prezentacji 1. Testowanie wstęp 2. Refaktoryzacja 3. Pojęcia związane z testowaniem
Bardziej szczegółowoJAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Bardziej szczegółowoTestowanie oprogramowania. Piotr Ciskowski
Testowanie oprogramowania Piotr Ciskowski TESTOWANIE testowanie o proces eksperymentalnego badania programu lub jego komponentu o próbne wykonanie w znanych warunkach o rejestrowanie wyników o ocena właściwości
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoCałościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)
Program szkolenia: Całościowe podejście do testowania automatycznego dla programistów Ruby (TDD, BDD, Spec. by Example, wzorce, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Bardziej szczegółowoMarcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje
Bardziej szczegółowoProgramowanie kontraktowe w Javie
20 maja 2010 Spis treści 1 Programowanie kontraktowe Geneza Założenia Kontrakty w języku Eiffel 2 Definiowanie specyfikacji Weryfikacja poprawności aplikacji 3 Wykorzystanie założeń kontraktów 4 Asercje
Bardziej szczegółowoKlasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium TESTOWANIE OPROGRAMOWANIA Software testing Forma
Bardziej szczegółowoDziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Bardziej szczegółowoZaawansowane programowanie w języku C++
Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów
Bardziej szczegółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Bardziej szczegółowoProjektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik
Projektowanie oprogramowania Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik Agenda Weryfikacja i zatwierdzanie Testowanie oprogramowania Zarządzanie Zarządzanie personelem
Bardziej szczegółowoKlasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoMożliwe strategie tworzenia niezawodnego oprogramowania:
ZWIĘKSZANIE POPRAWNOŚCI OPROGRAMOWANIA Plan prezentacji: Poprawność oprogramowania Poprawność oprogramowania Weryfikacja i testowanie. Rodzaje testów. Testowania względem specyfikacji Testowanie względem
Bardziej szczegółowoTestowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage).
Testowanie II Cel zajęć Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage). Pokrycie kodu testami Jak już była mowa na poprzednich
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie
Bardziej szczegółowoZakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA
Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA 1 Rozdział 1 Praca z makropoleceniami Opis: W tym rozdziale kursanci przechodzą przez wprowadzenie do programowania
Bardziej szczegółowoTestowanie i walidacja oprogramowania
i walidacja oprogramowania Inżynieria oprogramowania, sem.5 cz. 3 Rok akademicki 2010/2011 Dr inż. Wojciech Koziński Zarządzanie testami Cykl życia testów (proces) Planowanie Wykonanie Ocena Dokumentacja
Bardziej szczegółowoWykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład VII - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Wytwarzanie oprogramowania Model tworzenia oprogramowania
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoSpring Web MVC, Spring DI
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 5 Spring Web MVC, Spring DI Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Technologie Technologie / narzędzia będące
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoCzym są właściwości. Poprawne projektowanie klas
Z akcesorów get i set korzysta każdy kto programuje w C#. Stanowią one duże udogodnienie w programowaniu obiektowym. Zapewniają wygodę, bezpieczeństwo i znacząco skracają kod. Akcesory są ściśle związane
Bardziej szczegółowoOpis metody pracy Komisji podczas Kwalifikacji TestingCup 2017
Opis metody pracy Komisji podczas Kwalifikacji TestingCup 2017 -------------------------MANIFEST------------------------- Komisja w ocenie prac kieruje się następującymi przesłankami: - defekty funkcjonalne
Bardziej szczegółowoJava - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Bardziej szczegółowoKonwerter Plan testów. Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008
Konwerter Plan testów Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008 1 Spis treści 1 Wprowadzenie 3 1.1 Cel........................................ 3 1.2 Zamierzeni odbiorcy
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoHistoria modeli programowania
Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu
Bardziej szczegółowoInstrukcja laboratoryjna
Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z
Bardziej szczegółowoTesty jednostkowe Wybrane problemy testowania metod rekurencyjnych
Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych Artykuł przeznaczony jest dla osób związanych z testowaniem, programowaniem, jakością oraz wytwarzaniem oprogramowania, wymaga jednak
Bardziej szczegółowoTworzenie przypadków testowych
Tworzenie przypadków testowych Prowadząca: Katarzyna Pietrzyk Agenda 1. Wprowadzenie 2. Wymagania 3. Przypadek testowy Definicja Schemat Cechy dobrego przypadku testowego 4. Techniki projektowania Czarnej
Bardziej szczegółowoInstrukcja laboratoryjna cz.3
Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:
Bardziej szczegółowoDziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Bardziej szczegółowoINŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE
INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE Ważne pojęcia (I) Warunek testowy (test condition) to element lub zdarzenie modułu lub systemu, który może być zweryfikowany przez jeden lub więcej przypadków
Bardziej szczegółowoPrzypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów
Przypadki testowe From Sęp Spis treści 1 Wstęp 2 Plan testów 3 Testy bazy danych 4 Testy serwera 5 Testy aplikacji klienckiej 6 Testy interfejsu webowego 7 Testy integracyjne 8 Testy wydajności 8.1 Baza
Bardziej szczegółowo