Zarabiaj na testowaniu dzięki narzędziom: Git, Webdriver, Specflow!
W tej prezentacji opisałem 7 umiejętności i narzędzi potrzebnych żeby profesjonalnie testować oprogramowanie.
Polecam wszystkim, którzy chcą dowiedzieć się jak testować oprogramowanie i tworzyć automatyczne testy oprogramowania na przykładzie platformy .NET.
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
1. Jak zarabiać na testowaniu
oprogramowania
Piła 27.07.2016
darek.kacban@gmail.com
2. Poziomy testowania
• Testy jednostkowe
• Tworzone przez programistów.
• Zakres: Pojedyncza klasa
• Ile? 70% wszystkich testów w projekcie
• Testy integracyjne
• Tworzone przez programistów.
• Zakres: Zestawy klas, połączenie z bazą danych
• Ile? 20% wszystkich testów w projekcie
• Testy systemowe(funkcjonalne)
• Tworzone przez testerów.
• Zakres: Testy przekrojowe całego systemu
• Ile? 10% wszystkich testów w projekcie
3. Jakiej wiedzy potrzebuje profesjonalny tester?
0. HTML + CSS
1. Znajomość systemu kontroli wersji – np. Git, SVN
2. Biblioteka Selenium WebDriver
3. IDE – np. Visual Studio(C#), PhpStorm(PHP), PyCharm(Python)
4. Język programowania - np. C#, PHP, Python
5. Framework BDD – np. Specflow(C#), Behat(PHP), Robot(Python)
6. Język do komunikacji z klientem: Gherkin
7. Wzorzec projektowy: Page Object
4. 1. Git
• Git to system kontroli wersji
• Co zyskujemy?
• Szybkie pobranie projektu
• Współdzielenie projektu z zespołem
• Szybka praca z wiersza poleceń
• Pełna historia zmian
• Więcej informacji:
• https://www.atlassian.com/git/tutorials/
• https://git-scm.com
5. 1. Git - DEMO – Pobranie projektu i
uruchomienie testów w Visual Studio
• Pobieramy program Git bash - https://git-scm.com/downloads
• Instalujemy: Visual Studio 2015
• Instalujemy: Google Chrome
• Przykładowy projekt dostępny jest na stronie:
• https://bitbucket.org/dkacban/specflowexample
• W programie Git bash wydajemy polecenie:
git clone https://bitbucket.org/dkacban/specflowexample.git
• Znajdujemy w solucji chromedriver.exe i dodajemy do zmiennej PATH
• W Visual Studio otwieramy plik: SpecflowClassLibrary.sln
• Otwieramy z menu: Test->Windows->Test Explorer
• Uruchamiamy testy w przeglądarce poleceniem: Run All
6. 2. WebDriver
• Webdriver – to biblioteka, która pozwala sterować przeglądarką
internetową (np. firefox, IE, Chrome) za pomocą kodu.
• Co zyskujemy?
• Możliwość automatyzacji powtarzalnych testów manualnych
• Raz napisany test, możemy uruchamiać na wielu przeglądarkach
• Więcej informacji:
• http://www.seleniumhq.org/projects/webdriver/
• Biblioteka dla C#: https://www.nuget.org/packages/Selenium.WebDriver
8. 3. IDE
• IDE – Integrated Development Environment – Aplikacja ułatwiająca
zarządzanie projektem programistycznym.
• Co zyskujemy?
• Tworzenie nowych projektów
• Szybsza edycja kodu źródłowego
• Łatwe zarządzanie strukturą projektu
• Kompilacja kodu źródłowego za pomocą jednego przycisku
• Uruchamianie testów automatycznych
• Więcej informacji:
• https://www.visualstudio.com/
9. 4. C#
• C# - język obiektowy stworzony w 2000 roku przez Andersa Hejlsberga.
• Korzyści:
• komunikacja z przeglądarką internetową
• Sprawdzanie wyników za pomocą klasy Assert
• Więcej informacji:
• Kurs C# na Microsoft Virtual Academy - https://mva.microsoft.com/en-us/training-
courses/c-fundamentals-for-absolute-beginners-16169?l=Lvld4EQIC_2706218949
• Książka Johna Sharpa - http://helion.pl/ksiazki/microsoft-visual-c-2013-krok-po-
kroku-sharp-john,a_01zd.htm
10. 5. Specflow
• Specflow - Framework Behavior Driven Development dla .NET’a
• Korzyści:
• Ponowne wykorzystanie kodu dzięki krokom testowym
• Lepsza komunikacja z biznesem dzięki użyciu języka Gherkin
• Generowanie raportów z wykonanych testów
• Więcej informacji:
• http://www.specflow.org/
• Pozostałe implementacje BDD - https://cucumber.io/docs
11. 6. Gherkin
• Gherkin – język pozwalający opisać zachowanie aplikacji
• Budowa: Given-When-Then
• Korzyści:
• Lepsze zrozumienie wymagań funkcjonalnych
• Język czytelny dla biznesu a nie tylko dla programistów
• Więcej informacji:
• https://github.com/cucumber/cucumber/wiki/Gherkin
• Dan North, Historia BDD - https://dannorth.net/introducing-bdd/
12. 7. Wzorzec projektowy Page Object
• Algorytm postępowania:
• Dzielimy aplikacje na niezależne części. Np.: strona logowania, wyszukiwarka, strona
z listą wyników.
• Dla każdej części tworzymy klasę: Page Object. Np. SearchboxPage.cs, ResultsPage.cs
• Ważne: Każdy krok testowy korzysta z klasy WebDriver.
• Zalety:
• Możemy szybko znaleźć konkretny krok testowy
• Unikamy duplikacji kroków testowych
• Więcej informacji:
• książka Davida Burnsa: https://www.amazon.com/Selenium-Testing-Tools-Beginners-
Guide/dp/1849518300