Przegląd narzędzi do automatycznego testowania aplikacji internetowych. Jan Płoszczyca SKISR 2006



Podobne dokumenty
Szkolenie: Podstawy automatyzacji z Selenium IDE

Automatyzacja Testowania w WEB 2.0

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Wstęp do testowania : Szymon Ramczykowski

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Zastosowanie darmowych rozwiązań do testów użyteczności aplikacji internetowych

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Tworzenie i wykorzystanie usług sieciowych

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Automatyzacja narzędziami open source nie musi być trudna

Zaawansowane aplikacje internetowe - laboratorium

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

WebAii Automation Framework

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Programowanie internetowe

Programowanie poprzez testy z wykorzystaniem JUnit

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Google Web Toolkit Michał Węgorek ZPO 2009

REFERAT PRACY DYPLOMOWEJ

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Aktualizacja do Microsoft SQL Server Adam Rynarzewski MCT

Programowanie warstwy klienta w aplikacji JavaEE

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Programowanie Komponentowe WebAPI

Microsoft Test Manager

OpenLaszlo. OpenLaszlo

Szczegółowy opis zamówienia:

RAPORT Z TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

PRZEWODNIK PO PRZEDMIOCIE

Testowanie aplikacji Java Servlets

Proces projektowania i wdrożenia serwisu internetowego

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

Przewodnik użytkownika (instrukcja) AutoMagicTest Spis treści

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Automatyczne testowanie aplikacji Android

Projekt: Mikro zaprogramowane na sukces!

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Tomasz Greszata - Koszalin

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

TESTOWANIE OPROGRAMOWANIA

Snifery wbudowane w Microsoft Windows

Win Admin Monitor Instrukcja Obsługi

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

Narzędzia Google optymalizują aplikacje internetowe

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Zaawansowane aplikacje internetowe laboratorium

Wprowadzenie do Behaviordriven

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Google Testing. Radosław Smilgin, , TestWarez

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Instrukcja instalacji serwera i konfiguracji licencji AppWave Concurrent.

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Laboratorium nr 3 Podstawy Ruby on Rails

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Microsoft Class Server. Waldemar Pierścionek, DC EDUKACJA

Tomasz Grześ. Systemy zarządzania treścią

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Sposób funkcjonowania

Kurs Wizualizacja z WinCC SCADA - Zaawansowany. Spis treści. Dzień 1. I VBS w WinCC podstawy programowania (zmienne, instrukcje, pętle) (wersja 1410)

Zespół: Agata Chrobak Kornel Jakubczyk Tomek Klukowski Przemek Kosiak. Projekt SZOP Plan testów

Dokumentacja użytkownika

Oracle Application Express -

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

Przewodnik użytkownika (instrukcja) AutoMagicTest

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Wprowadzenie do Doctrine ORM

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Usługa: Testowanie wydajności oprogramowania

Web frameworks do budowy aplikacji zgodnych z J2EE

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

WŁĄCZANIE W PRZEGLĄDARKACH INTERNETOWYCH OBSŁUGI SKRYPTÓW JAVASCRIPT

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Referat Pracy Dyplomowej

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

PRZEWODNIK PO PRZEDMIOCIE

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

omnia.pl, ul. Kraszewskiego 62A, Jarosław, tel

Transkrypt:

Przegląd narzędzi do automatycznego testowania aplikacji internetowych Jan Płoszczyca SKISR 2006

Plan prezentacji Problemy przy tworzeniu serwisów Definicja zautomatyzowanego testowania Mity i fakty związane z testowaniem Przegląd narzędzi Porównanie Podsumowanie

Problemy Migracja programistów Rotacja wymagań zleceniodawcy Wysokie koszty poprawy kodu Wybór narzędzi do testów Testy regresji (To co działało musi działać!) Bezpieczeństwo

Jakie narzędzie wybrać? możliwości niezawodność łatwe do zadoptowania wydajność kompatybilność symulacja użytkownika

Mity i fakty Narzędzia testujące to niestety również programy Czy tworzenie testów będzie równie starannie jak tworzenie samego produktu? Kiedy warto stosować?

Mity i fakty c.d. Automatyczne testowanie pozwala przetestować wiele interakcji systemu eliminując czynnik ludzki, tym samym poprawia jakość oprogramowania i przynosi znaczne oszczędności Czy maszyna jest bardziej niezawodna w interpretacji wyników działania programu?

Działanie narzędzi do automatycznego testowania Nagrywanie i odtwarzanie skryptów (GUI) Jak tworzony jest serwis nie ma znaczenia interesują nas jedynie odpowiedzi HTTP Najczęściej własny język skryptowy Cele testowania Funkcjonalność (symulacja działań użytkownika) Integralność witryny bezpieczeństwo(sql Injection, cross-site scripting, przepełnienie bufora,poprawność parametrów) Wydajność

Działanie - schemat Testowany Serwis Specyfikacja testów Narzędzie testujące (klient WWW) Raport z przebiegu wykonania testów

WebKing Zawansowany dojrzały produkt Bardzo rozbudowany zestaw gotowych funkcji Graficzny interfejs, gotowe kreatory

WebKing Testy funkcjonalne łatwy interfejs tworzenia testów Testy obciążeniowe wirtualni użytkownicy, zaawansowane gotowe scenariusze obciążąnia aplkacji Analiza front-end (przenośność, składnia, standardy) Testy bezpieczeństwa podstawowe klasy błędów,polityka bezpieczeństwa

WebKing analiza statyczna

WebKing analiza statyczna Zgodność ze standardami (HTML,XML,CSS, javascript itp.) - ponad 300 reguł wbudowanych Dostępność (paragraf 506 USA,WAI -W3C) Poprawność odnośników Pisownia (znaczniki,język słowniki ispell) Standardy kodowania wewnątrz firmy

WebKing testy funkcjonalne Błędy w javascript Poprawne wyświetlanie ramek, popup windows Błędy po stronie serwera Nie potrzebna znajomość języka programnowania Nagrywamy śćieżkę interakcji automatycznie wykrywa róznicę Dane z zewnętrznych źródeł do wypełniania formularzy

WebKing testy funkcjonalne

WebKing testy obciążeniowe wirtualni użytkownicy ( możliwość rozproszenia lokalizacji 'bottlenecks' ) gotowe scenariusze (wzrost liniowy, obciążenie szczytowe, stałe obciążenie) możliwość wygenerowania scenariusza na podstawie plików log serwera Obsługa danych z agentów SNMP (v1, v2c) Charakterystyka komfortu użytkownika ( czas odświeżania strony, obsługa cookie itd)

WebKing testy obciążeniowe

WebKing testy obciążeniowe

WebKing testy obciążeniowe

Web Inject

Web Inject - cechy Darmowy open-source Duże możliwości konfiguracji Pluginy (nagios,mrtg)

Web Inject

Web Inject

Web Inject <case id="1" description1="short description" description2="long description" method="post" url="http://myserver/test/login.jsp" postbody="username=corey&password=welcome" verifypositive="verify this string exists" verifynegative="verify this string does not exist" logrequest="yes" logresponse="yes" sleep="3" /> <case id="2" description1="short description" description2="long description" method="get" url="http://myserver/test/send.jsp?value={timestamp}" verifypositive="verify this string exists" verifynextpositive="{timestamp}" />

MaxQ

MaxQ - cechy Darmowy open-source Oparte na java, jython przenośność Możliwość uruchomiania testów z linii poleceń Łatwo można dostosować do własnych potrzeb

WebCanoo dlaczego java? odrzucenie techniki 'recordplay' Sprawdzone narzędzia ant httpunit xslt junit dbunit Htmltidy

WebCanoo <invoke description="goto start page" url="${start.page}" /> <setinputfield description="set user name" name="username" value="${user}" /> <setinputfield description="set password" name="password" value="${login.ok.password}" /> <clickbutton label="login" description="click the submit button" /> <verifytitle description="home Page follows if login ok" text="${login.ok.title}" />

WebCanoo <?xml version="1.0"?> <!DOCTYPE project [ <!ENTITY login SYSTEM "file:../modules/login.xml"> <!ENTITY step SYSTEM "file:../modules/step.xml"> ]> <project name="loginandstep" default="case" basedir=".."> <target name="case"> <webtest name="loginandstep"> &config; <steps> &login; &step; </steps> </webtest> </target> </project>

OpenQA: Selenium Wykorzystuje bezpośrednio przeglądarkę (testy działania aplikacji na różnych platformach IE,Firefox,Safari,Opera,Mozilla) użycie AJAX (XmlHttpRequest) Oprate na DHTML,javascript Testy mogą pisane w dowolnym jezyku(obsługa HTTP) (dostępne wrappery dla : Java,.NET,Python,Ruby) Dostępny tryb interaktywny

OpenQA: Selenium Problem same origing policy

OpenQA: Selenium IDE Plugin do firefox Debugowanie, edytor Record & play

Przykład testu w języku C# using Selenium; using NUnit.Framework; namespace MyTests { [TestFixture] public class GoogleTest { private ISelenium sel; [SetUp] public void SetUp() { sel = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com"); sel.start(); } [Test] public void testgoogle() { sel.open("http://www.google.com/webhp"); sel.type("q", "hello world"); sel.click("btng"); sel.waitforpagetoload("5000"); Assert.AreEqual("hello world - Google Search", sel.gettitle()); } } } [TearDown] public void TearDown() { sel.stop(); }

Sahi Oparte na javascript Działa jako serwer proxy Tworzenie testów z poziomu przeglądarki Uruchamianie utworzonych testów z lini poleceń

Sahi

Sahi

Podsumowanie Szybkość a elastyczność Co tak naprawdę testujemy?

Podsumowanie - zalecenia Staranny dobór narzędzi(analiza użyteczności, wersje demo ) Uzupełnienie a nie zastąpienie tradycyjnego testowania rozważna strategia automatyzacji utrzymywanie zbiorów testów(jakość, a nie ilość) staranna analiza wyników

Dziękuję za uwagę.. Pytania?

Źródła http://sahi.sourceforge.net/index.html http://maxq.tigris.org http://kent.dl.sourceforge.net/sourceforge/struts/webcanoo.pdf http://www.openqa.org/selenium/ http://www.aptest.com/webresources.html#web-perf http://www.softwareqatest.com/qatweb1.html http://opensourcetesting.org/functional.php