Automatyzacja testów

Automatyzacja testów staje się coraz bardziej ważnym punktem testów aplikacji. Testowanie takie pozwala zaoszczędzić czas przy powielaniu wielokrotnie tych samych czynności testerskich, przez co idealnie nadaje się do  testów regresji. Testowanie takie jest opłacalne również przy większych aplikacjach, które to są w ciągłym rozwoju, a podstawowa funkcjonalność tych systemów nie ulega częstym zmianom. Niestety wiele firm oraz zespołów testerskich wciąż nie korzysta z technik automatyzacji testów przez co muszą oni poświęcać dużą ilości czasu na przeprowadzanie testów manualnych. Przyczyn takiego stanu rzeczy jest wiele, zaczynając od braku kompetencji, brak budżetu, a kończąc na braku czasu do realizacji zadań związanych z automatyzacją. Poniższa lista zawiera przydatne narzędzia (zarówno komercyjne, jak i darmowe) wraz z dostępnymi materiałami, które są przydatne w trakcie automatyzacji systemów. Należy jednak pamiętać, że automaty są tak dobre, jak dobrze zostaną zaprogramowane i w żaden sposób nie mogą one zastąpić testów manualnych, a co najważniejsze – nie zastąpią dobrych testerów eksploracyjnych z doświadczeniem.

Automatyzacja aplikacji internetowych

Testy automatyczne aplikacji internetowych są dobrym sposobem, aby sprawdzić, czy nowo wprowadzone zmiany nie spowodowały błędów w funkcjonalności, która nie została zmieniona. Podchodząc do automatyzacji aplikacji internetowych, w pierwszej kolejności należy wykonać rozpoznanie dotyczące technologii, w której napisana jest  aplikacja oraz na jakich przeglądarkach będą uruchamiane testy. Technologia oraz rodzaj przeglądarki mają duży wpływ na wybór narzędzia – tak samo, jeśli chodzi o doświadczenie testerów w programowaniu. Automatyzację testów aplikacji internetowych warto uwzględnić już przy samej budowie aplikacji. Należy pamiętać, że źle utworzone identyfikatory, czy lokatory elementów powodują wiele trudności w automatyzacji, więc warto przewidzieć już to na etapie projektu.

Nazwa Opis Linki Licencja/Koszt
Selenium Selenium jest to framework służący do automatyzacji testów aplikacji webowych pod większość najpopularniejszych przeglądarek, takich jak Internet Explorer, Firefox, Chrome.  Testy automatyczne w Selenium można pisać z wykorzystaniem popularnych języków programowania, m.in. Python, Java, PHP. Chcąc korzystać w pełni z możliwości automatyzowania, należy wybrać Selenium WebDriver, jednak, aby rozpocząć w nim pracę, należy znać podstawy programowania w języku programowania wspieranym dla Selenium WebDriver. Dla osób, które nie mają doświadczenia, można wykorzystać Selenium IDE, które jest wtyczką pod przeglądarkę Mozilla Firefox i działa na zasadzie „nagraj-i odwtórz”. Testowanie za pomocą narzędzia Selenium IDE można wykorzystać przy powtarzalnej weryfikacji formularzy. Strona domowa

Twitter

Open source
Telerik Test Studio Telerik Test Studio jest platformą testową przeznaczoną na system operacyjny Windows, której funkcjonalność pozwala na automatyzację aplikacji webowych. Platforma ta przeznaczona jest do automatyzacji aplikacji napisanych w takich technologiach, jak html, ASP.NET, MVC, Java Script czy Angular JS.  Telerik umożliwia uruchomienie testów pod przeglądarką Internet Explorer, Firefox, Safari oraz Chrome. Testy można nagrywać zarówno poprzez wbudowany recorder testów i odtworzyć później na wskazanej przeglądarce lub istnieje możliwość pisania testów w językach C# lub VB.NET. Aplikacja jest bardzo przejrzysta przez co testowanie za jej pomocą jest proste i wygodne. Strona domowa 2499$  lub 169$ miesięcznie
Ranorex – platforma przeznaczona do testów interfejsu użytkownika, za pomocą której można zautomatyzować zarówno aplikacje desktopowe, aplikacje z przeznaczeniem na urządzenia mobilne, jak i aplikacje webowe. Testy automatyczne można tworzyć z wykorzystaniem wbudowanego recordera zdarzeń, a także za pomocą tworzenia skryptów w jednym z języków programowania. Skrypty do Ranorexa można pisać w językach C# oraz VB.NET. Wspierane technologie w aplikacjach webowych to HTML, HTML5, JavaScript, Ajax i inne, a jeśli chodzi o przeglądarki, to Internet Explorer, Firefox, Chrome i Safari. Strona domowa

Twitter

Od 1990€
TestComplete posiada wbudowane moduły, które pozwalają na automatyzację aplikacji internetowych, desktopowych oraz mobilnych. Tak jak w innych narzędziach tego typu, jest możliwość tworzenia rejestracji zdarzeń za pomocą wbudowanego rejestratora zdarzeń lub utworzonych skryptów (VBScript, JScript). TestComplete pod kątem testów aplikacji webowych wspiera najnowsze technologie, jak HTML5, JavaScript, AngularJS, oraz takie przeglądarki jak Internet Explorer, Safari, Chrome, Edge, Firefox czy Opera. Strona domowa

Twitter

Od  2134 €
SAHI Sahi jest narzędziem służącym do automatyzacji aplikacji webowych. Udostępnione są dwie wersje narzędzia – jedna darmowa na zasadach Open-Source, druga jest wersją komercyjną. Wersja Open-Source posiada podstawowe narzędzia, które w zupełności wystarczą, aby rozpocząć automatyzację testów z wykorzystaniem tego narzędzia. W przeciwieństwie do Selenium, Sahi posiada możliwość nagrywania testów na dowolnej wspieranej przeglądarce (Internet Explorer, Firefox, Chrome, Safari, Opera, Edge). Strona domowa

Twitter

Open source lub od 696$
tellurium Tellurium – narzędzie służące do automatyzacji aplikacji webowych, wspierające testy na wielu przeglądarkach (Firefox, Chrome, Internet Explorer). Narzędzie to od dłuższego czasu nie jest jednak rozwijane. Aplikacja jest dostępna za darmo przy uruchomieniu jednego testu. Testy automatyczne w tym oprogramowaniu pisze się za pomocą słów kluczowych w języku angielskim. Chcąc używać tego narzędzia, nie jest wymagana znajomość żadnego języka programowania. Strona domowa

Twitter

W zależności od liczby uruchamianych testów
katalon Katalon Studio jest to pełna platforma z przeznaczeniem do testów automatycznych aplikacji webowych oraz mobilnych. Tworzenie testów odbywa się za pomocą wbudowanego rekordera zdarzeń lub za pomocą języka skryptowego. Strona domowa Darmowa, płatne wsparcie

Automatyzacja testów GUI

Tworzenie testów automatycznych GUI interfejsu systemu operacyjnego jest bardzo złożonym zadaniem, gdyż często tylko drobne zmiany w aplikacjach desktopowych powodują, że test przestaje działać poprawnie. Niektóre z dostępnych narzędzi opierają się o rzeczywiste kliknięcia, co skutkuje problemem przy uruchamianiu testów w różnych rozdzielczościach. Jeśli do tego dorzucimy różne systemy operacyjne i ich wersje, na których ma działać test, to wybór narzędzia jest kluczowym elementem, aby odnieść korzyść z takiej automatyzacji.

Nazwa Opis Linki Licencja/Koszt
ranorex Ranorex jest platformą przeznaczoną do testów interfejsu użytkownika aplikacji desktopowych,  aplikacji z przeznaczeniem na urządzenia mobilne, jak i aplikacji webowych. Platforma Ranorex, którą będziemy wykorzystywać przy tworzeniu testów desktopowych, umożliwia tworzenie testów na systemie Windows 32- i 64-bitowym. Narzędzie to ma wbudowaną obsługę i rozpoznawanie kontrolek z takich technologii jak MFC, Win Forms, Java, SAP, Microsoft Office, obsługę kontrolek systemu Windows i wiele innych. Tworzenie testów odbywa się za pomocą Ranorex Recordera, który w dobry sposób jest w stanie zidentyfikować elementy. Dla osób z doświadczeniem w programowaniu Ranorex pozwala tworzenie skryptów w języku VB.NET czy C#. Strona domowa

Twitter

Od 1990€
TestComplete Jeden z modułów udostępniony przez platformę TestComplete umożliwia przeprowadzanie testów tworzonych na aplikacje desktopowe. Oprogramowanie posiada szerokie wsparcie dla aplikacji pisanych w języku C++, .NET, Java, Oracle Forms oraz wsparcie dla większości popularnych komponentów. Testy są tworzone za pomocą rekordera lub z wykorzystaniem języka Python, JavaScript lub VB.NET. Strona domowa

Twitter

Od 2134€

SikuliX

Sikulix jest narzędziem, które powstało na podstawie projektu Sikuli, służącego do automatyzacji elementów z różnych aplikacji desktopowych. Aplikacja działa zarówno pod kontrolą systemu Windows, jak i Mac. Posiada również wsparcie dla systemów Linux/Unix, lecz nie zawsze jest się w stanie zautomatyzować wyświetlające się elementy. Sikulix wspiera całą rzeszę języków skryptowych, w których to możemy oprogramować testy, jak Python, JRuby czy JavaScript. Trzeba jednak zaznaczyć, że jest to aplikacja z dużym ograniczeniem i automatyzowanie w niej złożonych projektów będzie bardzo czasochłonne, a nawet niemożliwe ze względu na identyfikację elementów. Strona domowa

Twitter

Licencja MIT – za darmo
AutoIT AutoIT jest darmowym narzędziem służącym do automatyzacji elementów wyświetlających się na GUI.  Automatyzacja polega na symulacji klawiszy, ruchów myszki.  Aplikacja przeznaczona jest na systemy operacyjne Windows. Testy pisze się w języku skryptowym podobnym do BASIC’a, więc nawet niedoświadczona osoba jest w stanie dość szybko rozpocząć pracę z tym narzędziem. Strona domowa

Twitter

Freeware
RationalSoftware Rational Functional Tester jest jednym z najbardziej rozbudowanych, ale jednocześnie najdroższym narzędziem przeznaczonym do automatyzacji GUI systemu operacyjnego. Za pomocą tej platformy można zautomatyzować systemy, które napisane zostały w technologiach Java, SAP, Windows Form itp. Skrypty tworzy się w jednym z dwóch języków programowania – Java lub Visual Basic.NET. Strona domowa Wycena indywidualna

Systemy zgłaszania i śledzenia błędów

Jedną z podstawową czynności testera oprogramowania jest poprawne raportowanie błędów / incydentów zgodnie z obowiązującymi zasadami panującymi w organizacji. Oprócz zgłaszania błędów tester i osoba rozwiązująca zgłoszenie musi mieć możliwość śledzenia błędów. Ważnym aspektem jest również generowanie niezbędnych raportów, pokazujących bieżący stan zgłoszonych błędów.

Oczywiście jesteśmy w stanie powyższe zgłoszenia komunikować za pomocą tradycyjnego sposobu raportowania, czyli np. za pomocą arkuszy Excel, mailowo lub telefonicznie, ale późniejsze ich śledzenie, czy ewentualne wprowadzanie wyjaśnień i komentarzy do zgłoszenia, jest znacznie utrudnione. Dlatego warto w pracy testera korzystać z narzędzi przeznaczonych do raportowania zgłoszeń błędów (ang. Bug Tracker System).

Poniżej znajduje się lista (niepełna) narzędzi, które można zastosować w organizacji. Jeśli uważasz, że brakuje jakiegoś istotnego oprogramowania, które powinno znaleźć się na Naszej liście, zapraszamy do współpracy w jej tworzeniu i podesłanie nazwy narzędzia wraz z krótkim opisem na adres kontakt@testpro.pl lub za pośrednictwem Naszego formularza kontaktowego.

Nazwa Opis Linki Licencja/Koszt
Bugzilla Bugzilla – darmowe narzędzie stworzone i wykorzystywane przez fundację Mozilla. To aplikacja webowa służąca do zgłaszania wszelkich błędów, usprawnień, udogodnień do testowanych systemów. Jest to darmowe narzędzie z intuicyjnym interfejsem użytkownika. Bugzilla wykorzystywana jest przez wiele firm, zarówno rozwijających Open-Sourcowe oprogramowanie, jak i komercyjne. Lista instalacji dostępna jest na stronie Bugzilli: https://www.bugzilla.org/installation-list/ Strona domowa

Twitter

Open source
Mantis Mantis jest systemem zgłaszania błędów opartym o interfejs webowy. Tak jak w przypadku Bugzilli, jest to narzędzie Open-Sourcowe, które przez wiele lat przeszło sporo zmian pod względem interfejsu użytkownika. Ostatnia wydana wersja 2.2.1 przeszła prawdziwą metamorfozę pod względem użyteczności. Duże możliwości konfiguracyjne oraz łatwość użycia pozwalają na wykorzystanie narzędzia w dowolnym środowisku wymagającym zgłaszania incydentów. Strona domowa

Twitter

Open source
TRAC Trac jest rozbudowanym narzędziem Open-Sourcowym pozwalającym na zarządzanie projektami. Jedną z funkcjonalności narzędzia jest możliwość raportowania zgłoszeń o wykrytych nieprawidłowościach. Jest to aplikacja napisana w Pythonie i udostępniona jako aplikacja webowa. Strona domowa

Twitter

 Open source
Redmine Redmine jest uznawany za jeden z najlepszych narzędzi Open-Sourcowych umożliwiających zarządzanie projektami. Jest to narzędzie bardzo intuicyjne i łatwe w instalacji. Pozwala skutecznie zarządzać zadaniami w projekcie od przydzielenia po rozliczenie czasu na jego realizację. Posiada wiele wtyczek usprawniających pracę. Jedną z możliwości narzędzia jest oczywiście zgłaszanie błędów w realizowanych projektach, które później adresowane są do odpowiednich komórek zajmujących się ich rozwiązywaniem. Strona domowa Open source
 JIRA JIRA – oprogramowanie komercyjne pozwalające kompleksowo zarządzać projektami. To narzędzie z intuicyjnym interfejsem i olbrzymimi możliwościami konfiguracyjnymi. Praktycznie każdy projekt można skonfigurować indywidualnie, przez co daje duże możliwości wdrożeń w firmach, gdzie pracuje wiele zespołów opierających się o różną organizację pracy. Narzędzie posiada również rozbudowane API, przez co w łatwy sposób można się integrować z poziomu innych narzędzi. Jednym z pierwotnych założeń stawianych JIRZE, była właśnie funkcjonalność pozwalająca na zgłaszanie i obsługę wykrytych błędów. Istnieje możliwość korzystania z instancji JIRY ulokowanej w „chmurze” lub można wykonać własną instalację narzędzia we własnym środowisku. Cena licencji zależy od sposobu udostępniania narzędzia. Strona domowa

Twitter

Komercyjna (Cennik)
TFS Firma Microsoft w swoim portfolio posiada narzędzie TFS, służące do obsługi wspólnych projektów programistycznych. Narzędzie to obejmuje repozytoria kodu, ciągłą integrację, śledzenie usterek i zadań oraz zwinne narzędzia do planowania. Firma Microsoft udostępnia produkt dla zespołów pięcioosobowych za darmo. Strona domowa

Twitter

Komercyjna (Cennik)
Stryka Stryka jest platformą do zarządzania i projektowania testów udostępnioną w modelu Cloud. Narzędzie posiada nowoczesny interfejs użytkownika i udostępnione jest na urządzenia mobilne. Pokrywa podstawowe aspekty w testowaniu, jak tworzenie przypadków testowych w oparciu o wymagania i ewentualne późniejsze zgłaszanie błędów wynikających z nieprawidłowego działania systemu. Strona domowa

Twitter

Komercyjna
LeanTesting Leantesting jest bezpłatnym oprogramowaniem do zarządzania i śledzenia błędów. Jednym z elementów tego narzędzia są rozszerzenia do popularnych przeglądarek, tj. Firefox, Chrome i Safari, pozwalające bezpośrednio z przeglądarki raportować zgłoszenia, co znacznie upraszcza i przyspiesza pracę. Aplikacja jest hostowana w „chmurze”. Strona domowa

Twitter

Darmowa + Płatne komponenty
FogBugz FogBugz – komercyjne, lecz dostępne po dość atrakcyjnej cenie, narzędzie pozwalające na zarządzanie zadaniami. Jedną z funkcjonalności jest możliwość zgłaszania i obsługi zgłoszeń. Prostota konfiguracji oraz jego możliwości pozwalają dostosować aplikację do potrzeb klienta. Dodatkowo narzędzie posiada szereg wtyczek pozwalających rozszerzyć działanie i funkcjonowanie aplikacji, np. wspólne WIKI dla projektu. Strona domowa

Twitter

Komercyjna

(Cennik)

Systemy zarządzania testami

Zarządzanie testami skupia praktycznie wszystkie aspekty, w których uczestniczy tester oprogramowania.  Do zadań testera należy m.in. tworzenie planów testów, tworzenie/modyfikacja scenariuszy testowych, wykonywanie testów zgodnie ze scenariuszami testowymi, pokrywanie wymagań testami, śledzenia rezultatu testów, zgłaszanie wykrytych defektów, tworzenie raportów przeznaczonych dla różnych. Aby wszystko to było efektywne, tester musi posiadać narzędzie, które będzie go wspierać w wykonywaniu jego pracy.

Poniższa lista zawiera opis podstawowych narzędzi wykorzystywanych do zarządzania testami. Poprawne wdrożenie narzędzia, obejmujące zarówno przeszkolenie personelu, jak i dostosowanie go do potrzeb organizacji, to spore wyzwanie, ale bez tego ciężko będzie mówić o efektywnych testach.

Nazwa Opis Linki Licencja/Koszt
TestLink TestLink to jedno z nielicznych narzędzi pozwalających na zarządzanie testami i udostępnione na zasadach Open-Source. Narzędzie to posiada wszystkie podstawowe funkcjonalności potrzebne na zarządzanie testami w organizacji – obsługa wymagań, tworzenie planów testów, scenariuszy testowych oraz przypadków testowych. TestLink posiada również własne API, za pomocą którego istnieje możliwość integracji z innymi narzędziami np. JENKINS czy JIRA. Aplikacja posiada niestety dość nieintuicyjny interfejs użytkownika i pod tym względem znacznie odstępuje od płatnej konkurencji. Strona domowa

Twitter

Open source
TestRail TestRail jest komercyjnym narzędziem z przyjaznym interfejsem użytkownika służącym do zarządzania testami. Obejmuje cały cykl życia testów od dokumentowania wymagań, planowania, tworzenia przypadków testowych i śledzenia ich wykonania po raportowanie wyników. Narzędzie  może zostać udostępnione w chmurze lub poprzez instalację na własnym serwerze. TestRail udostępnia wersję TRIAL na okres 30 dni, kiedy to można zapoznać się z aplikacją. Produkt ten integruje się z innymi narzędziami, przez co mamy na przykład możliwość zgłaszania wykrytych błędów bezpośrednio w JIRA. Strona domowa

Twitter

Komercyjna

Cennik

Zephyr Zephyr – narzędzie rozpowszechniane jako dodatek do JIRA, który pozwala na zarządzanie testami oraz ich organizowanie z poziomu JIRA. Posiada podstawowe funkcjonalności, jak tworzenie, edytowanie i kopiowanie przypadków testowych. Minusem rozwiązania w postaci tego pluginu jest jego koszt i sposób licencjonowania. Musimy mieć licencję pokrywającą wszystkich użytkowników w JIRA (nie tylko tych, którzy będą korzystać z dodatku), co często powoduje, że dodatek jest odrzucany. Dodatkowo, gdy mamy rozbudowane testy (kilka tysięcy przypadków testowych), zarządzanie nimi z poziomu tego narzędzia jest uciążliwe. Strona domowa

Twitter

Komercyjna

Cennik

qTest Jedno z najlepszych narzędzi pozwalających na kompleksowe zarządzanie testami w organizacji to qTest. Jest to narzędzie, które jest łatwe w obsłudze, działa szybko i pozwala na pełne dostosowanie do naszych potrzeb. qTest pozwala zarządzać wymaganiami, przypadkami testowymi, śledzeniem wykonań testów i defektami. Oprócz tego znakomicie integruje się z innymi narzędziami, np. JIRA, Jenkins i Selenium. Strona domowa

Twitter

Komercyjna
QAComplete QA Complete, jak i inne narzędzia firmy Smartbear, jest dopracowane w każdym detalu. Narzędzie to obejmuje zarządzanie testami we wszystkich jego obszarach – zarządzanie wymaganiami, przypadkami testowymi itp. Dodatkowo umożliwia tworzenie raportów wszystkich testów przeprowadzanych w firmie, zarówno manualnych, jak i automatycznych. Ponadto integruje się z wszystkimi podstawowymi narzędziami, takimi jak JIRA, Bugzilla itp. Strona domowa

Twitter

Komercyjna (Cennik)
Microsoft Test Manager Microsoft Test Manager wchodzi w pakiet Visual Studio Test Professional i można go wykorzystywać do planowania i projektowania testów oraz raportowania zgłoszeń. Za jego pomocą można koordynować całość działań związanych z zarządzaniem testami, w tym planowanie, tworzenie, wykonywanie i śledzenie testów z jednego miejsca. Narzędzie to działa w środowisku Microsoftowym TFS. Za jego pomocą można wykonywać testy eksploracyjne oraz automatyczne, które później da się powielić. Narzędzie przeznaczone jest do testów aplikacji webowych. Strona domowa Komercyjna (Cennik)
PractiTest PractiTest – kompleksowe rozwiązanie do zarządzania i organizacji testów, udostępnione w modelu SaaS. Integruje się z popularnymi narzędziami zgłaszania błędów, jak JIRA, Bugzilla, Redmine. Narzędzie dostosowane jest do pracy w środowisku Agile. Istnieje możliwość łączenia utworzonych testów manualnych z platformami wewnętrznymi do automatyzacji testów. Strona domowa

Twitter

Komercyjna

(Cennik)

SpiraTest spiraTest jest kompleksowym narzędziem do zarządzania testami i wymaganiami oraz do raportowania błędów. Istnieje możliwość jego używania w chmurze (model SaaS) lub jako niezależna instalacja na własnych serwerach. Narzędzie to pozwala na integrację z wieloma frameworkami do testów, np. Nunit, JUNIT, TestNG itp. Strona domowa

Twitter

Komercyjna (Cennik)
TcLab TcLab to proste, lecz posiadające wszystkie niezbędne funkcjonalności, narzędzie do zarządzania testami. Jest udostępnione w modelu SaaS, jednak nie ma możliwości instalacji na własnych serwerach. Z wykorzystaniem tego narzędzia można zaplanować testy, tworzyć przypadki testowe, a następnie je wykonywać. Oprócz tego TcLab integruje się z systemami zgłaszania błędów, takimi jak JIRA, Redmine, Asana. Strona domowa

Twitter

Komercyjna

(Cennik)

HP QualityCenter Quality Center jest od wielu lat jednym z najpopularniejszych narzędzi do zarządzania testami. Niestety cena powoduje, że jedynie duże organizacje mogą sobie pozwolić na jego wdrożenie i wykorzystanie w firmie. Narzędzie posiada praktycznie wszystkie funkcjonalności do zarządzania testami. Bardzo często jest wyznacznikiem w stosunku do innych narzędzi. Strona domowa

Twitter

Komercyjna
TestStuff Testuff – narzędzie udostępnione w modelu SaaS. Istnieje wiele lat na rynku i posiada ugruntowaną pozycję w klasie narzędzi do zarządzania testami. Posiada wszystkie funkcjonalności potrzebne do sprawnego zarządzania testami. Pozwala również na integrację z niezbędnymi narzędziami zarówno do systemów raportowania błędów, jak i narzędziami do automatyzacji testów. Lista funkcjonalności dostępna w narzędziu znajduje się tutaj Strona domowa

Twitter

Komercyjna

(Cennik)

Narzędzia do testów wydajnościowych

Przeprowadzanie testów wydajnościowych jest jedną z trudniejszych czynności, z którymi ma do czynienia tester oprogramowania. Musi on brać pod uwagę technologię, w której to napisana jest testowana aplikacja, a także umieć wybrać elementy systemu pod testy wydajnościowe oraz zasymulować działania użytkowników. Osoba przeprowadzająca testy ma za zadanie nie tylko przeprowadzenie testów pośród gąszczu informacji (wykresów itp.), ale również wyciąganie sensownych wniosków. Dlatego tak ważne jest, aby narzędzie wykorzystywane do testów wydajnościowych było dostosowane do naszego środowiska pracy.
Poniższa lista zawiera opis podstawowych narzędzi wykorzystywanych do przeprowadzania testów wydajnościowych.

Nazwa Opis Linki Licencja/Koszt
WebLOAD WebLoad jest narzędziem służącym do przeprowadzania testów wydajnościowych aplikacji webowych, które korzystają z takich technologii i protokołów, jak HTML5, HTTPS, AJAX, JSON, Adober Air itp. Posiada możliwość integracji z tak popularnymi narzędziami jak Selenium. JENKINS, APPium, Dynatrace. Narzędzie to ma wbudowane rekordy, za pomocą których można tworzyć nagrania własnych akcji i ich późniejszego symulowania. WebLoad posiada w swojej ofercie darmową wersję aplikacji, pozwalającą na symulowanie zachowań maksymalnie 50 wirtualnych użytkowników. Strona domowa Komercyjna (do 50 wirtualnych użytkowników darmowe)

Koszt

loadUI_logo LoadUI pozwala na tworzenie złożonych testów obciążeniowych w oparciu o prosty interfejs użytkownika lub, gdy mamy umiejętności programistyczne, za pomocą języka skryptowego. Narzędzie to przeznaczone jest głównie do modelowania obciążeń w interfejsach API. LoadUI obsługuje tak popularne interfejsy jak REST, SOAP oraz wiele innych. Pozwala na import gotowych scenariuszy z narzędzia SOAP UI, dzięki czemu mamy możliwość wykorzystania ich przy przeprowadzaniu testów obciążeniowych. Strona domowa Komercyjna

od €5,327

Cennik

ApicaLogo Narzędzie ApicaLoadTest pozwala na przeprowadzenie testów obciążeniowych z wielu centrów testowych, symulując pracę nawet 2 milionów jednoczesnych użytkowników. Za pomocą tego narzędzia jesteśmy w stanie przeprowadzić testy zarówno aplikacji webowych, jak i aplikacji z przeznaczeniem na urządzenia mobilne, takie jak iOS czy Android. Dodatkowo w sytuacji, gdy nie mamy własnych zasobów do przeprowadzenia testów, możemy wszystko zlecić firmie Apica. ApicaLoadTest integruje się z popularnymi narzędziami ciągłej integracji, na przykład Bamboo czy JENKINS. Strona domowa

Twitter

Komercyjna
jmeter_logo JMeter to najpopularniejsze narzędzie typu open source, które służy do przeprowadzania testów wydajnościowych. Uznane jest w świecie testerskim. Aplikacja pozwala na symulowanie zachowań użytkowników z jednego komputera lub pracy w klastrze. JMeter pozwala na przeprowadzanie testów wydajnościowych różnych obiektów systemów – od serwisów internetowych napisanych w PHP, Java, ASP.NET po serwery FTP. Narzędzie to działa zarówno na systemach linuksowych oraz na Windowsie. JMeter posiada wbudowany rekorder, co pozwala nagrywać akcje użytkownika, a następnie symulować je dla wielu użytkowników. Strona domowa

Twitter

Open source
CloudTest_Logo CloudTest może być wykorzystywany do testów wydajnościowych aplikacji internetowych, aplikacji mobilnych, interfejsów API i wielu innych. Chcąc sprawdzić oprogramowanie, można zainstalować wersją próbną, która umożliwia zasymulowanie pracy maksymalnie 100 równoczesnych użytkowników. Narzędzie to pozwala w łatwy sposób importować skrypty z JMetera i wykorzystywać je w ramach testów.  Symulacja jest przeprowadzana z wielu lokalizacji na świecie jednocześnie, a wyniki testów możemy śledzić w czasie rzeczywistym. Strona domowa

Twitter

Komercyjna (Cennik)
loadstorm-logo LoadStorm to narzędzie pozwalające na przeprowadzenie testów wydajnościowych, które jest udostępnione w chmurze. Wszystkie operacje i testy wykonuje się zdalnie za pomocą aplikacji internetowej. LoadStorm posiada możliwość symulacji użytkowników z różnych lokalizacji na świecie. Strona domowa Komercyjna (Cennik)
HP-LoadRunner-logo Jednym z popularnych narzędzi firmy HP, pozwalających na przeprowadzanie testów wydajnościowych, jest HP LoadRunner. Narzędzie to integrujące się z innymi narzędziami deweloperskimi, takimi jak jUNIT, Jenkins czy Selenium. Wspiera również przeprowadzanie testów wydajnościowych strumieni audio i wideo. Testy możemy tworzyć za pomocą wbudowanego rekordera lub za pomocą języka skryptowego. Strona domowa Komercyjna

(Cennik na żądanie)

Narzędzia do testów bezpieczeństwa

W czasach, gdy bezpieczeństwo aplikacji musi być na najwyższym poziomie, a koszty spowodowane ewentualnym atakiem są ogromne (nie wspominając już o reputacji biznesowej), warto pamiętać o przeprowadzaniu testów bezpieczeństwa. Poziom zabezpieczeń oraz zaawansowana polityka testów bezpieczeństwa zależy w dużym stopniu od przeznaczenia systemu, jednak dobrą praktyką jest przeprowadzanie ogólnych testów bezpieczeństwa dla każdej tworzonej aplikacji. Wiele razy słyszeliśmy, że firma X produkująca oprogramowanie nie przeprowadza testów bezpieczeństwa ze względu na to, że ich aplikacja jest przeznaczona jedynie na wewnętrzne potrzeby firmy. Wiele ataków odbywa się właśnie z wewnętrznej sieci firmowej na aplikacje wewnętrzne, które na przykład integrują się z produkcyjną bazą danych klienta. O skutkach takich ataków nie będziemy się jednak tutaj rozpisywać.
Testy bezpieczeństwa są jednym z tych typów testów, do których zazwyczaj zatrudniamy osoby specjalizujące się tylko w tym obszarze testów. Niestety zatrudnienie specjalisty lub skorzystanie z firmy przeprowadzającej testy bezpieczeństwa często jest zbyt drogie. Mamy jednak możliwość skorzystania z różnych (często darmowych) narzędzi, mogących być wykorzystywanymi nawet przez kogoś, kto nie jest specjalistą w testach bezpieczeństwa. Pamiętajmy o tym, że większość ataków na bezpieczeństwo jest przeprowadzana przez osoby korzystające z takich ogólnodostępnych narzędzi , które szukają potencjalnych błędów związanych z bezpieczeństwem w systemie. Warto tutaj ubiec potencjalnego atakującego i wykorzystać narzędzia przy testach naszych aplikacji, aby uodpornić się na podstawowe rodzaje ataków.

Nazwa Opis Linki Licencja/Koszt
metasploit-logo Metasploit to jeden z najbardziej popularnych frameworków służących do symulowania włamań do systemów. Opiera się na exploitach, które wykorzystując słabe punkty systemu, pozwalają potencjalnemu atakującemu na poszerzenie swoich uprawnień i włamanie się do systemu. Baza Metasploitu to ponad 15000 exploitów badających różne elementy systemu. Metasploit działa pod różnymi dystrybucjami systemu Linux oraz pod systemem operacyjnym Windows. Narzędzie to jest bardzo proste w użytkowaniu i zawiera przejrzyste raporty. Strona domowa Darmowa oraz komercyjna
wireshark_logo Wireshark jest oprogramowaniem umożliwiającym analizę ruchu sieciowego w najdrobniejszych szczegółach. Pozwala na analizę poszczególnych pakietów sieciowych. Aplikacja ta jest dostosowana do wielu środowisk – Linux, Windows, Mac OS X. Wireshark posiada graficzny interfejs użytkownika, natomiast dla zaawansowanych użytkowników istnieje również możliwość uruchamiania aplikacji bezpośrednio poprzez konsolę. Strona domowa Open source
Nessus_Logo Nessus to komercyjne narzędzie skanujące system w poszukiwaniu popularnych luk w zabezpieczeniach. Poza tym jest w stanie zidentyfikować słabe elementy konfiguracji systemu, które potencjalni agresorzy mogą wykorzystać do ataku na nasz system. Narzędzie to posiada również API, dzięki któremu możemy podłączyć je przykładowo do systemu ciągłej integracji. Strona domowa Komercyjna (około 10 tys. zł za rok)
BurpSuiteLogo Jednym z podstawowych narzędzi dla testera zajmującego się testami bezpieczeństwa jest Burp Suite. Narzędzie to, za pomocą przechwytującego proxy, umożliwia modyfikowanie requestów, które przesyłane są bezpośrednio do aplikacji. Pozwala to na przykład na symulowanie ataków zwiększających uprawnienia czy podszywania się pod inne osoby. Burp Suite jest bardzo użytecznym narzędziem i warto go poznać. Już wersję darmową można z powodzeniem wykorzystywać. Dodatkowo posiada również wbudowany skaner do poszukiwania popularnych luk w zabezpieczeniach, takich jak SQL Injection czy Cross-Site Scripting (XSS). Strona domowa Wersja darmowa oraz komercyjna (€329.00)
zap-logo Kolejnym skanerem zabezpieczeń jest OWASP ZAP. Jest to w pełni darmowe narzędzie, które pozwala wykrywać luki w zabezpieczeniach już na etapie tworzenia aplikacji. Działa w sposób automatyczny, a zaawansowanym użytkownikom umożliwia manualne przeprowadzanie ataków. Działa pod takimi platformami jak Linux, Windows, MacOSX. Strona domowa Open source
acunetix_logo Acunetix jest renomowanym, płatnym skaner podatności aplikacji webowych. Posiada wbudowane mechanizmy pozwalające na przetestowanie strony na podatności typu SQL Injection, XSS, XXE, SSRF, Host Header Attack i ponad 3000 innych podatności. Jest narzędziem intuicyjnym. Otrzymywane wyniki testów pozwalają w łatwy sposób zdiagnozować problem i ewentualnie zasymulować go w sposób ręczny. Z narzędzia dowiemy się również na czym dokładnie polegał atak oraz jaki to ma wpływ na system. Strona domowa Komercyjna (Cennik)
sqlmap_logo Sqlmap to kolejne open sourcowe narzędzie z przeznaczeniem do wyszukiwania luk w bezpieczeństwie związanych z atakami typu SQL Injection. Aplikacja działa pod platformami Linux, Windows, Mac OS X. Sqlmap nie ma wbudowanego interfejsu graficznego, sterowanie odbywa się z poziomu linii poleceń. Strona domowa

Twitter

Open source
nmap_logo Nmap jest narzędziem pozwalającym na przeprowadzanie skanowania w poszukiwaniu otwartych portów, usług, które uruchomione są na serwerze. Pozwala na skanowanie zarówno całych sieci, jak i pojedynczych adresów. Za pomocą tego narzędzia jesteśmy w stanie dowiedzieć się, jakie usługi uruchomione są na danym serwerze oraz w jakiej wersji systemu operacyjnego działa serwer. Nmap nie symuluje samych ataków, ale pozwala zdiagnozować system, środowisko i nakierować potencjalnego atakującego na to, z jakich narzędzi musi skorzystać do ewentualnego ataku na serwer. Strona domowa

Twitter

Open source
OpenVASLogo OpenVAS to kolejny darmowy skaner o otwartym kodzie źródłowym, pozwalający na wyszukiwanie luk w zabezpieczeniach systemu. Strona domowa Open source