Testy konwencjonalne a testowanie obiektowe
Testowanie oprogramowania jest jednym z najważniejszych kroków w procesie tworzenia oprogramowania. Testowanie oprogramowania upewnia się, że opracowane oprogramowanie spełnia wszystkie wymagania klientów i działa bez błędów. W miarę jak paradygmaty i techniki opracowywania oprogramowania przesunęły się z początkowego rozwoju oprogramowania kaskadowego na OOD / Agile i inne nowsze koncepcje, testy również zmieniły się z konwencjonalnych (tradycyjnych) testów na testowanie obiektowe (OOT). Ponieważ jednak wciąż rozwijane jest tworzenie wodospadów, testerzy nadal stosują konwencjonalne testy.
Co to jest testowanie konwencjonalne?
Konwencjonalny proces testowania odbywa się głównie wtedy, gdy cykl życia wodospadu jest wykorzystywany do tworzenia oprogramowania w organizacjach. Konwencjonalne testowanie zawsze odbywa się w fazie testowej cyklu życia, która zwykle następuje po fazie rozwoju i przechodzi w fazę wdrażania. W tej fazie testów zostaną przeprowadzone głównie trzy rodzaje testów. Testowanie systemu upewni się, że funkcje systemu spełniają wymagania klienta udokumentowane w SRS (Specyfikacja wymagań oprogramowania), zwykle przyjmując podejście czarnej skrzynki. Testy integracyjne testują wstępny projekt, przyjmując podejście funkcjonalne i rozkładowe. Testy integracyjne opierają się na strukturze projektu przy użyciu podejścia odgórnego lub oddolnego. Wreszcie testy jednostkowe upewniają się, że szczegółowy projekt jest poprawny.
Co to jest testowanie obiektowe?
Korzystanie z analizy i projektowania obiektowego (OO) wraz z Agile i innymi najnowszymi metodologiami tworzenia oprogramowania prowadzi do testowania obiektowego. Rozwój OO zazwyczaj koncentruje się na zachowaniu. Testowanie odbywa się z naciskiem na kompozycję. Oznacza to, że projekt jest tworzony kawałek po kawałku i składany razem, aby ukończyć pełny system. Ponieważ obecnie do opracowywania OO stosuje się szybkie prototypowanie i pewną formę podejścia przyrostowego, trzy konwencjonalne poziomy testowania (testowanie systemowe, integracyjne i jednostkowe) nie są wyraźnie widoczne w projektowaniu OO (ale istnieją przez większość czasu). Testowanie systemu (w ramach testów OO) będzie przebiegać podobnie do tradycyjnego testowania (czarna skrzynka) i sprawdzi specyfikację wymagań (ponieważ wymagania muszą zostać zweryfikowane niezależnie od procesu rozwoju). Testowanie jednostkowe w ramach testowania obiektowego jest podobne do konwencjonalnego testowania jednostkowego, ale podstawową różnicą jest definicja zastosowanej jednostki. Obecnie akceptowane jednostki używane do testowania jednostek to klasy i metody.
Jaka jest różnica między testowaniem konwencjonalnym a testowaniem obiektowym?
Testowanie konwencjonalne jest tradycyjnym podejściem do testowania wykonywanym głównie wtedy, gdy do rozwoju wykorzystuje się cykl życia wodospadu, natomiast testowanie obiektowe jest stosowane, gdy analiza obiektowa i projektowanie są wykorzystywane do opracowywania oprogramowania dla przedsiębiorstw. Testy konwencjonalne koncentrują się bardziej na podejściu dekompozycji i funkcjonalnym niż testach obiektowych, w których wykorzystuje się kompozycję. Trzy poziomy testowania (system, integracja, jednostka) stosowane w testach konwencjonalnych nie są jasno określone, jeśli chodzi o testowanie obiektowe. Głównym tego powodem jest to, że rozwój OO wykorzystuje podejście przyrostowe, podczas gdy tradycyjny rozwój opiera się na podejściu sekwencyjnym. Pod względem testowania jednostkowego testowanie obiektowe sprawdza znacznie mniejsze jednostki w porównaniu do testowania konwencjonalnego.