Metodyki zwinne wytwarzania oprogramowania Wykład 5
Marcin Młotkowski
9 listopada 2016 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Plan wykładu
1 Testowanie akceptacyjne FitNesse Testowanie graficznego interfejsu użytkownika (GUI)
2 Zapewnienie jakości kodu Code review Ciągła integracja Czysta inżynieria oprogramowania
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 2 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Co to jest
fork FIT: Framework for Integrated Test portal w stylu Wiki Skąd można pobrać: www.fitnesse.org
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 3 / 25 Łatwy w użyciu Rodzaj serwisu WWW w stylu wiki, który może być ”programowany” również przez klienta (użytkownika) niebędącego programistą
Znaczniki Prosty język znaczników umożliwia łatwe tworzenie testów.
Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Istotne cechy
Przeznaczenie Testy warstwy zaraz ”za interfejsem graficznym”.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 4 / 25 Znaczniki Prosty język znaczników umożliwia łatwe tworzenie testów.
Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Istotne cechy
Przeznaczenie Testy warstwy zaraz ”za interfejsem graficznym”.
Łatwy w użyciu Rodzaj serwisu WWW w stylu wiki, który może być ”programowany” również przez klienta (użytkownika) niebędącego programistą
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 4 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Istotne cechy
Przeznaczenie Testy warstwy zaraz ”za interfejsem graficznym”.
Łatwy w użyciu Rodzaj serwisu WWW w stylu wiki, który może być ”programowany” również przez klienta (użytkownika) niebędącego programistą
Znaczniki Prosty język znaczników umożliwia łatwe tworzenie testów.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 4 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Przykład
Przeliczanie temperatur Przeliczanie stopni Celsiusza na Fahrenheita
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 5 / 25 Uzupełnienie !define TEST_SYSTEM {slim} !path /home/marcinm/fitnesse/FahrenheitTest
Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Przykład testu
|Fahrenheit| |Celsius|temp?| |0 | 32.0 | |100 | 212.0 | |40 | 104.0 |
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 6 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Przykład testu
Uzupełnienie !define TEST_SYSTEM {slim} !path /home/marcinm/fitnesse/FahrenheitTest
|Fahrenheit| |Celsius|temp?| |0 | 32.0 | |100 | 212.0 | |40 | 104.0 |
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 6 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Implementacja funkcjonalności
Przypomnienie |Fahrenheit| |Celsius|temp?| |0 | 32.0 | |100 | 212.0 | |40 | 104.0 |
public class Fahrenheit { private double cels;
public void setCelsius(double c) { this.cels = c; } public double temp() { return 32 + (9/5)*this.cels; } }
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 7 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Rodzaje testów
Decision table: tabela argumentów i poprawnych wartości Query table: zapytania w stylu zapytań do bazy danych Script table: tworzenie scenariuszy
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 8 / 25 HtmlFixture Testy akceptacyjne dla serwisów webowych.
Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Dodatkowe wtyczki
Fit JfcFixtures Testy akceptacyjne dla programów Java Swing
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 9 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Dodatkowe wtyczki
Fit JfcFixtures Testy akceptacyjne dla programów Java Swing
HtmlFixture Testy akceptacyjne dla serwisów webowych.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 9 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Rodzaje GUI
Testowanie interfejsów lokalnych Testowanie serwisów WWW
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 10 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Selenium
wtyczka do Firefoxa może zapisywać scenariusze (”wyklikane”przez użytkownika) i je odtwarzać scenariusze mogą być zapisywane w Ruby, Python, .NET, Java, PHP
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 11 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) CubicTest
Graficzna wtyczka do Eclipse wspierająca tworzenie testów Selenium
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 12 / 25 przede wszystkim dla systemów Windows są wersje Mono/Linux AutoKey: wzorowany na AutoHotkey, na Linux/X11
Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) AutoHotKey
Cele programu Symulowanie użytkownika poprzez ”udawanie” naciskania klawiszy czy klikania myszką
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 13 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) AutoHotKey
Cele programu Symulowanie użytkownika poprzez ”udawanie” naciskania klawiszy czy klikania myszką
przede wszystkim dla systemów Windows są wersje Mono/Linux AutoKey: wzorowany na AutoHotkey, na Linux/X11
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 13 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) AutoHotKey
Przykład skryptu WinGet, wowid, list, World of Warcraft ;2locks
1:: KeyWait, 1, D ControlSend,, 1 , ahk_id %wowid1% ControlSend,, h , ahk_id %wowid2% ; assist macro /target Party1 /assist Sleep, 500 ControlSend,, 1 , ahk_id %wowid2%
Return
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 14 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Xnee
Dedykowany system do X11, z możliwością zapisywania o odtwarzania akcji użytkownika (naciśnięcia klawiszy, ruchy myszki).
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 15 / 25 Cechy możliwość zapisywania i odtwarzania akcji użytkownika programowanie akcji: Python
Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) System dedykowany: Linux Desktop Testing Project
Testowanie programów graficznych: Gnome KDE Java (SWING) Firefox
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 16 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) System dedykowany: Linux Desktop Testing Project
Testowanie programów graficznych: Gnome KDE Java (SWING) Firefox Cechy możliwość zapisywania i odtwarzania akcji użytkownika programowanie akcji: Python
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 16 / 25 Testowanie akceptacyjne FitNesse Zapewnienie jakości kodu Testowanie graficznego interfejsu użytkownika (GUI) Test Automation FX
Środowisko do Visual Studio. Cechy: możliwość zapisywania akcji użytkownika implementacja własnych skryptów w C#
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 17 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Plan wykładu
1 Testowanie akceptacyjne FitNesse Testowanie graficznego interfejsu użytkownika (GUI)
2 Zapewnienie jakości kodu Code review Ciągła integracja Czysta inżynieria oprogramowania
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 18 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Inspekcja kodu
Systematyczne przeglądanie kodu w celu znalezienia błędów.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 19 / 25 wyznaczenie osoby odpowiedzialnej za przeglądy; wykorzystanie oprogramowania do wyszukiwania błędów; organizowanie spotkań.
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Sposoby code review
podczas programowania w parach;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 20 / 25 wykorzystanie oprogramowania do wyszukiwania błędów; organizowanie spotkań.
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Sposoby code review
podczas programowania w parach; wyznaczenie osoby odpowiedzialnej za przeglądy;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 20 / 25 organizowanie spotkań.
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Sposoby code review
podczas programowania w parach; wyznaczenie osoby odpowiedzialnej za przeglądy; wykorzystanie oprogramowania do wyszukiwania błędów;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 20 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Sposoby code review
podczas programowania w parach; wyznaczenie osoby odpowiedzialnej za przeglądy; wykorzystanie oprogramowania do wyszukiwania błędów; organizowanie spotkań.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 20 / 25 Dlaczego Wczesne wykrywanie problemów integracji (liczba argumentów w wywołaniach, różnice kompilatorów/bibliotek, etc).
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Ciągła integracja
Łączenie wyników pracy programistów. Najlepiej łatwo i kilka razy dziennie.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 21 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Ciągła integracja
Łączenie wyników pracy programistów. Najlepiej łatwo i kilka razy dziennie.
Dlaczego Wczesne wykrywanie problemów integracji (liczba argumentów w wywołaniach, różnice kompilatorów/bibliotek, etc).
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 21 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Elementy integracji
kompilacja całej aplikacji; testowanie całej aplikacji;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 22 / 25 automatyczna budowa kodu wynikowego; testy automatyczne; automatyczne uruchamianie integracji po commicie;
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Praktyczna realizacja ciągłej integracji
wspólne repozytorium kodu;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 23 / 25 testy automatyczne; automatyczne uruchamianie integracji po commicie;
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Praktyczna realizacja ciągłej integracji
wspólne repozytorium kodu; automatyczna budowa kodu wynikowego;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 23 / 25 automatyczne uruchamianie integracji po commicie;
Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Praktyczna realizacja ciągłej integracji
wspólne repozytorium kodu; automatyczna budowa kodu wynikowego; testy automatyczne;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 23 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Praktyczna realizacja ciągłej integracji
wspólne repozytorium kodu; automatyczna budowa kodu wynikowego; testy automatyczne; automatyczne uruchamianie integracji po commicie;
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 23 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Idea
najlepiej robic wszystko dobrze od razu.
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 24 / 25 Code review Testowanie akceptacyjne Ciągła integracja Zapewnienie jakości kodu Czysta inżynieria oprogramowania Realizacja
formalne definiowanie specyfikacji; dowodzenie twierdzeń o poprawności; statystyczna kontrola jakości (oparta na statystycznych przewidywaniach dot. wykorzystania aplikacji);
Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 25 / 25