Outsourcing testów a jakość oprogramowania
Jakość, funkcjonalność oraz cena to najważniejsze kryteria podejmowania decyzji o zakupie oprogramowania.
Użytkownicy coraz częściej rezygnują z produktu, jeśli jego jakość jest za niska. Producenci oprogramowania o tym wiedzą, dlatego zawsze próbują odpowiedzieć na pytanie, czy ich dzieło może być bardziej niezawodne i pracować wydajniej. Sukces zależy od umiejętności projektantów aplikacji i programistów, jednak ważniejszą rolę odgrywają testerzy oprogramowania. Kiedy faza produkcji dobiega końca, po stronie producentów często pojawia się szereg dylematów. Testy mogą spowolnić cały proces produkcji, nie wiadomo też czy lepiej wykonać je samemu czy zlecić to zadanie wyspecjalizowanej firmie.
Wybrane rodzaje testów
Oprogramowanie można poddawać weryfikacji na wiele sposobów - każdy z nich ma za zadanie usprawnić produkt w innym obszarze.
Test funkcjonalny (blackbox) poddaje analizie działanie systemu od strony dostępnych funkcjonalności. Tester odgrywa rolę potencjalnego użytkownika aplikacji - bada dostępność i ergonomię funkcjonalności oraz rzeczywiste działanie produktu w odniesieniu do jego specyfikacji. Tego typu testy wykrywają błędy i niewłaściwe działanie, ale nie niosą informacji o przyczynach błędów.
Testy strukturalne (whitebox) weryfikują poprawność operacji wykonywanych przez system. Tester nie analizuje systemu z punktu widzenia użytkownika, lecz bada go od środka (m.in. strukturę kodu i jakość wykonywanych przez niego operacji). Tego rodzaju testy wymagają umiejętności programowania.
Testy integracyjne wykonuje się po połączeniu ze sobą kilku odrębnych aplikacji. Polegają m.in. na sprawdzeniu poprawności działania dostępnych w aplikacjach funkcjonalności oraz wzajemnego oddziaływania na siebie zintegrowanych aplikacji.
Testy obciążeniowe badają działanie i zachowanie systemu w sytuacji jego dużego obciążenia np. wielu zapytań do serwera w jednej jednostce czasu lub jednoczesnego zalogowania wielu użytkowników.
Testy wydajnościowe poddają analizie działanie i przepustowość aplikacji w warunkach zbliżonych do tych, w których ma być ona użytkowana.
Smoke test jest często punktem wyjścia do kolejnych faz testów. Polega na sprawdzeniu czy program się uruchamia, a następnie na określeniu dostępności interfejsu i właściwej reakcji na działanie użytkownika.
Testy regresyjne wykonywane są po wprowadzeniu do systemu zmian. Polegają na sprawdzeniu poprawności działania wszystkich jego obszarów - także tych, w których zmiany nie były wprowadzane. Pozwala to wykryć błędy będące niespodziewanymi efektami ubocznymi wprowadzonych zmian.
Testy bezpieczeństwa obejmują całą gamę technik testowania. Służą wskazaniu słabych punktów w oprogramowaniu, opisaniu zagrożeń lub wykryciu luk w warstwie bezpieczeństwa aplikacji.
Testowanie nie zawsze daje gwarancję usunięcia z programu wszystkich błędów. Ma jednak zasadniczy wpływ na jakość oprogramowania, która decyduje o skutecznej sprzedaży i utrzymaniu przy sobie klientów.