Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven Development? Nie jest to łatwe, jednak właściwe zastosowanie może przynieść wiele korzyści w projektach. Na rynku istnieje wiele bibliotek wspierających BDD. Prezentacja zawierająca opis techniki BDD, jej wady oraz zalety, sposoby przygotowania scenariuszy i ich automatyzacji, potencjalne problemy z wdrożeniem BDD, przegląd dostępnych narzędzi i ogólne porównanie Przygotowanie i prezentacja wybranych scenariuszy testowych dla dowolnej aplikacji (może to być np. ICM) Automatyzacja wybranych scenariuszy oraz demonstracja przebiegu testów (może być w postaci nagranego screencastu) 2. Projekt i wykonanie automatycznych testów funkcjonalnych kluczowych funkcjonalności aplikacji Test Arena za pomocą Selenium WebDriver w jednym z dostępnych języków programowania Celem pracy jest stworzenie projektu testów kluczowych funkcjonalności aplikacji Test Arena za pomocą Selenium WebDriver, używając jednego ze wspieranych języków programowania (http://www.seleniumhq.org/about/platforms.jsp#programming-languages). Prezentacja zaawansowanych możliwości Selenium WebDriver Automatyzacja wybranych scenariuszy oraz demonstracja przebiegu testów (może być w postaci nagranego screencastu) 1
3. Projekt i wykonanie automatycznych testów usług sieciowych REST/RESTful z wykorzystaniem soapui soapui to jedno z najpopularniejszych narzędzi do automatyzacji testów usług sieciowych. Celem pracy jest przygotowanie planu testów dla dowolnego API webowego, symulowanego przez soapui. Prezentacja zaawansowanych możliwości narzędzia, takich jak: symulacja usług REST/RESTful, integracja z narzędziami JUnit/Maven i możliwość uruchamiania na serwerach Continuous Integration, użycie skryptów Groovy, data-driven tests w wersji darmowej (z wykorzystaniem Groovy), wskazanie najistotniejszych różnić pomiędzy soapui a soapui Pro Projekt zawierający projekt API symulowanego za pomocą soapui, uruchamiany jako niezależna aplikacja, projekt testów automatycznych wykorzystujących zaawansowane techniki, wymienione w poprzednim punkcie. Demonstracja przebiegu testów (może być w postaci nagranego screencastu). 4. Analiza i porównanie 5 wybranych narzędzi do automatyzacji testów funkcjonalnych aplikacji webowych Należy wybrać a następnie przeanalizować 5 narzędzi do automatyzacji testów funkcjonalnych aplikacji webowych, a następnie zaprezentować porównanie tych narzędzi w kilku wybranych obszarach, np. jakość do ceny, łatwość nauki, łatwość wdrożenia, oferowane funkcjonalności, wsparcie i dostępna literatura. Publikacja (rozprawka) wyczerpująco opisująca temat (10-20 stron A4). 5. Stworzenie frameworka uruchamiania i analizowania wyników testów automatycznych dla aplikacji webowej Test Arena. Celem pracy jest stworzenie kompletnego frameworka opartego o Selenium WebDriver lub Sahi, który pozwoli na łatwe zarządzanie procesem testowania automatycznego i analizowania wyników. Praca powinna zawierać opis frameworka i uzasadnienie decyzji projektowych oraz projekt automatyzacji. Oczekiwania względem frameworka: Wszystkie testy uruchamianie za pomocą jednej komendy (np. plik wsadowy). Jasny proces tworzenia i modyfikacji przypadków testowych. Podstawowa biblioteka asercji dla projektu 2
Podstawowa biblioteka funkcjonalności używanych przez przypadki testowe (np. logowanie, nawigacja po menu itd.) Struktura umożliwiająca łatwe rozszerzanie o nowe elementy Raportowanie w postaci plików HTML 6. Projekt i wykonanie automatycznych testów funkcjonalnych kluczowych funkcjonalności aplikacji Test Arena za pomocą Sahi z wykorzystaniem wzorca Page Object Pattern Wzorzec Page Object to bardzo popularny wzorzec wykorzystywany podczas tworzenia testów automatycznych aplikacji internetowych (https://code.google.com/p/selenium/wiki/pageobjects). Implementowanie testów w ten sposób poprawia znacznie czytelność kodu i umożliwia łatwiejsze jego utrzymanie (przykład implementacji w Sahi: http://qualityshepherd.com/2012/05/javascript-pageobject-pattern-for-sahi). Celem pracy jest stworzenie projektu testów kluczowych funkcjonalności aplikacji Test Arena za pomocą Sahi z wykorzystaniem wzorca Page Object Pattern. Prezentacja narzędzia Sahi oraz sposobu implementacji wzorca Page Object Pattern Automatyzacja wybranych scenariuszy oraz demonstracja przebiegu testów (może być w postaci nagranego screencastu) 7. Porównanie automatyzacji testów graficznego interfejsu użytkownika z wykorzystaniem obrazów lub kontrolek na przykładzie narzędzi Sikuli oraz AutoIT W ramach pracy należy opracować zestaw przykładowych testów graficznego interfejsu użytkownika wybranej aplikacji z wykorzystaniem wymienionych narzędzi. Należy przygotować instrukcję krok po kroku oraz przykładowe skrypty, które pozwolą zainteresowanej osobie zapoznać się w praktyce z ich działaniem. Opracowanie tematu powinno zawierać ocenę zalet i wad każdego z podejść oraz demonstrację przebiegu testów (może być w postaci nagranego screencastu). 8. Opracowanie polskich wersji artykułów w Wikipedii na podstawie treści w języku angielskim opublikowanych w Category:Software testing W ramach pracy należy przygotować tłumaczenia artykułów z Wikipedii w wersji angielskiej i opublikować je w wersji polskiej. Celem pracy jest ułatwienie dostępu do wiedzy dla polskiej społeczności osób zainteresowanych testowaniem oprogramowania. 3
9. Analiza postrzegania zapewniania jakości i testowania przez klientów publicznych W ramach pracy należy opracować koncepcję zbierania danych o oczekiwanym przez klientów poziomie zaangażowania osób o różnych specjalnościach przy realizacji projektów informatycznych. Źródłem danych są ogłoszenia o zamówieniach publicznych zamieszczane w TED (Tenders Electronic Daily) Suplemencie do Dziennika Urzędowego Unii Europejskiej. Celem pracy jest określenie zainteresowania klientów udziałem w projektach osób zajmujących się zapewnianiem jakości i testowaniem w ujęciu statystycznym. 10. Opracowanie generatora testowych adresów W ramach pracy należy przygotować oprogramowanie, które umożliwi wygenerowanie masowych ilości danych testowych zawierających prawidłowe adresy miejsc na terenie Polski. Jako źródło danych można wykorzystać bazę TERYT Głównego Urzędu Statystycznego oraz API serwisu www.mojepanstwo.pl. Opracowanie tematu powinno zawierać opis wyzwań towarzyszących tworzeniu narzędzia oraz demonstrację jego działania. 11. Testowanie właściwości oprogramowania W ramach pracy należy przygotować opracowanie prezentujące wybrane kategorie testów właściwości oprogramowania: ich definicję, z czego wynika potrzeba ich przeprowadzenia, jakie towarzyszą im założenia, jakie są stosowane techniki i wykorzystywane narzędzia. 12. Zastosowanie technik klasycznego zarządzania jakością w testowaniu W rozwinięciu tematu opis wybranych technik klasycznego zarządzania jakością wraz z możliwym zastosowaniem w testowaniu (np. diagram Ishikawy jako metoda zapobiegania usterkom; analiza Pareto do analizy błędów). Należy wskazać zastosowanie (wraz z przykładami), korzyści, wyzwania użycia określonych technik oraz metody analizy wyników użycia technik i potencjalne problemy związane z interpretacją wyników. 4
13. Zapobieganie defektom za pomocą technik statycznych Analiza przydatności technik statycznych (przeglądy, inspekcje) w zapobieganiu defektom. Rozwinięcie tematu ma wskazać korzyści technik statycznych; typowe błędy znajdowane podczas przeglądów; trudności i wyzwania w realizacji przeglądów. Należy opracować przykłady list kontrolnych do wsparcia przeglądów różnego rodzaju dokumentacji oraz wyjaśnić sposób analizy wyników przeglądów w kontekście zapobiegania defektom i doskonalenia procesów wytwarzania oprogramowania. 14. Testy eksploracyjne analiza podejścia i wnioski z realizacji Na czym polegają testy eksploracyjne? Czym różnią się od technik uznawanych za skryptowe? Należy opisać możliwe zastosowanie, wady i zalety testów eksploracyjnych, wskazać zasady, których należy przestrzegać (np. w celu zapewnienia dokumentacji pokrycia testowego) oraz ograniczenia podejścia. Należy opracować przykład planu realizacji sesji testów eksploracyjnych dla wybranej aplikacji. Tematy należy zrealizować w następującej formie: 15. Projektowanie i realizacja testów użyteczności przy użyciu wybranej metody Opis 2-3 wybranych podejść do organizacji testów użyteczności. Mogą to być podejścia oparte na heurystykach np. Jakoba Nielsena, standardach (np. ISO 9241), gotowych kwestionariuszach (np. SUMI). Należy wskazać zastosowanie wybranych podejść wraz z potencjalnymi problemami. Należy również zademonstrować przykład wykonania testów użyteczności na wybranej aplikacji i z użyciem wybranego podejścia oraz analizę wyników testów problemy i rekomendacje. 5
16. Doskonalenie jakości produktu analiza wybranych metod i podejść Opis wybranych podejść, modeli, standardów doskonalenia jakości (np. cykl Deminga, TQM, CMMI, koła jakości) możliwe zastosowanie, wymagania dotyczące użycia, potencjalne problemy. Należy również opisać wymagania (podejście) do wdrażania projektu doskonalenia jakości (np. IDEAL, IMPROVE). 6