Problematyka testów oprogramowania jak również rodzajów i metodologii testowania jest zagadnieniem niezmiernie szerokim. W literaturze przedmiotu można znaleźć nieskończenie wiele definicji testów, procesów testowych, rodzajów testów, narzędzi testowych itp. że bez większego ryzyka można zaryzykować stwierdzenie iż każdy projekt IT posiada w zasadzie własną definicję tego problemu. Mimo tego można wśród tak bogatego i rozległego zbioru informacji znaleźć elementy wspólne przewijające się w większości klasyfikacji i opisów.

Oprogramowanie, zwłaszcza współcześnie wytwarzane, jest jednym z najbardziej zaawansowanych technicznie produktów ludzkiej myśli i stąd też jego zastosowanie wymaga przeprowadzenia bardzo drobiazgowych testów przed jego wdrożeniem do użycia. Testy oprogramowania jako takie są częścią większego procesu wytwarzania oprogramowania zaczynającego się na określeniu wymagań funkcjonalnych do implementacji produkcyjnej włącznie. Testy polegają na sprawdzeniu czy oprogramowanie zostało wyprodukowane i funkcjonuje zgodnie z przeznaczeniem określonym specyfikacji wymogów bądź analizie technicznej. W zależności od tego do czego dane oprogramowanie ma być zastosowane tak też są projektowane testy przy czym bez cienia wątpliwości/ryzyka można powiedzieć, że nie ma uniwersalnego modelu testowania. Nie można powiedzieć, że oprogramowanie służące do zarządzania rozładunkiem kontenerów będzie testowane tylko w taki sposób, a aplikacja sterująca ruchem pociągów na wybranej trasie będzie testowana w jeszcze inny sposób. Zarówno w jednej i drugiej aplikacji pewna część testów znajdzie swoje zastosowanie, ale wiele elementów będzie się różnić z uwagi na ich charakterystykę aplikacji.

Na blogu opisane zostaną wybrane rodzaje testów, podziały i zastosowania choć z powodów opisanych powyżej jest jedynie pewien sposób ich usystematyzowania.