Artykuły | 5 lipiec, 2021

Piramida testów – czyli co, kiedy i jak testować, żeby testy przyniosły zysk?

Jednym z tematów, który budzi wiele emocji, są koszty związane z testami oprogramowania. I choć mogłoby się wydawać, że „testowanie na produkcji” stało się już synonimem bylejakości, to wciąż jeszcze można spotkać się z podejściem negującym potrzebę zatrudniania testerów oprogramowania. Testy oprogramowania mogą przynieść zbędny koszt – ale tylko wtedy, jeśli są wykonane zbyt późno, są niestabilne, złej jakości, lub źle rozplanowane w czasie. Jak odpowiednio dobrać proporcje pomiędzy poszczególnymi testami na określonych poziomach, by uniknąć zbędnych kosztów naprawy rozwijanego oprogramowania, a co więcej – sprawić, by testy przyniosły zysk? Z pomocą przychodzi piramida testów.

Piramida testów – czyli co, kiedy i jak testować, żeby testy przyniosły zysk?

Czym jest piramida testów?

Według słownika ISTQB piramida testów to „graficzny model reprezentujący relacje między ilością testów a poziomem testów, z większą ilością testów dla niższych poziomów i mniejszą dla wyższych”.

Upraszczając, piramida testów pokazuje nam, jakie powinny być proporcje pomiędzy różnymi rodzajami testów, gdzie podstawą piramidy powinny być testy szybsze w wykonaniu, bardziej stabilne, a co za tym idzie – tańsze. Na wyższych poziomach znajdować się powinny testy, których przygotowanie i wykonanie zajmuje więcej czasu, są mniej stabilne i angażują w większym stopniu pracę ludzką.

piramida testów

Poziomy testów

Testy jednostkowe

Testy jednostkowe (unit tests) testują pojedyncze, najmniejsze elementy, np. metody, klasy w programie. Najczęściej są one tworzone przez programistów już na etapie pisania kolejnych części kodu. Testy jednostkowe wykonuje się szybko i są najczęściej przeprowadzanym typem testów (np. podczas budowania projektu). Są one bardzo ważne w projekcie, ponieważ najszybciej dostarczają feedbacku o tym, czy dana funkcja zwraca prawidłowy wynik. Dlatego też jest ich najwięcej i tworzą fundament piramidy.

  • sprawdzają pojedyncze elementy
  • szybkie
  • łatwe w utrzymaniu
  • niskie koszty utrzymania

Testy integracyjne

Testy integracyjne (integration tests) sprawdzają, czy poszczególne moduły, serwisy lub systemy działają prawidłowo razem, testują interfejsy i interakcje pomiędzy tymi elementami. Przeprowadzanie takich testów jest już bardziej wymagające, a co za tym idzie, kosztowne – wymaga bowiem uruchomienia kilku modułów aplikacji lub nawet systemów jednocześnie.

  • sprawdzają kilka modułów lub systemów
  • bardziej czasochłonne niż testy jednostkowe
  • wyższe koszty utrzymania niż testy jednostkowe

Testy E2E

Testy E2E to testy, które naśladują zachowanie użytkownika końcowego aplikacji. Tester wciela się w rolę użytkownika końcowego i przechodzi ścieżki, jakimi mógłby się on poruszać. Testują całą funkcjonalność od początku do końca (end-to-end) i wykonywane są w docelowym środowisku produkcyjnym. Sprawdzają, czy wszystkie systemy i ich elementy wspólnie działają poprawnie i nie posiadają błędów. Testy E2E są najbardziej czasochłonne, a co za tym idzie, najdroższe, dlatego w piramidzie znajdują się na samym szczycie.

  • sprawdzają całościowe działanie systemu
  • czasochłonne
  • trudniejsze i kosztowne w utrzymaniu

Koszt testowania – czyli jak testować, żeby nie przepłacać

Czym jest wspomniany wcześniej koszt testowania? Ujmując najprościej – czas to pieniądz, a im więcej osób jest zaangażowanych w testowanie, im więcej czasu poświęcone jest na przeprowadzenie testów, tym bardziej wzrasta całkowity koszt projektu. Dodatkowo, im później wykrywane są błędy (na kolejnych poziomach testowania), tym później developer otrzyma tę informację i tym później zajmie się ich naprawą.

Przyczyny defektów zgłoszonych dopiero podczas testów np. E2E są dużo trudniejsze do namierzenia niż tych wykrytych już na etapie testów jednostkowych. To oczywiście w ostatecznym rozrachunku znów wydłuży czas, więc zwiększy też koszty projektu. Dzięki stosowaniu się do metody piramidy testów cały proces testowania oprogramowania zaczyna się na wczesnych etapach powstawania aplikacji i na tych etapach testów jest najwięcej. Błędy znalezione podczas testów jednostkowych są bardzo łatwe do namierzenia, a to przyspiesza czas ich naprawy. Takie podejście sprawia, że testy nie są tylko kosztem, ale przynoszą realne zyski.

Podsumowanie

Zatrudnienie testera wiąże się z dodatkowym budżetem –  jednak w ten sposób inwestujemy  w projekt na naszych własnych zasadach zdefiniowanych w kontrakcie. W przypadku wystąpienia awarii wynikającej ze zbyt późnego wykrycia defektów, panem naszego budżetu (i czasu) staje się… rozwijany system, a my ponosimy nieprzewidziane koszty naprawy, które mogą być nawet kilkadziesiąt razy wyższe niż koszty testów. Aby testowanie przyniosło zysk, testy oprogramowania warto zacząć możliwie jak najszybciej – tu nieocenioną pomocą jest metoda piramidy testów, która pomaga odpowiednio rozplanować testy na poszczególnych poziomach.

Przeczytaj także:

Tester with 5 years of experience. Wojciech started with manual tests, currently he also deals with automation. He worked mainly on web and mobile projects. After hours, he discovers the secrets of 3D printing.

Zapisz się do newslettera, ekskluzywna zawartość czeka

Bądź na bieżąco z najnowszymi artykułami i wydarzeniami IT

Informacje dotyczące przetwarzania danych osobowych

Zapisz się do newslettera, ekskluzywna zawartość czeka

Bądź na bieżąco z najnowszymi artykułami i wydarzeniami IT

Informacje dotyczące przetwarzania danych osobowych

Zapisz się do newslettera, aby pobrać plik

Bądź na bieżąco z najnowszymi artykułami i wydarzeniami IT

Informacje dotyczące przetwarzania danych osobowych

Dziękujemy za zapis na newsletter — został ostatni krok do aktywacji

Potwierdź poprawność adresu e-mail klikając link wiadomości, która została do Ciebie wysłana w tej chwili.

 

Jeśli w czasie do 5 minut w Twojej skrzynce odbiorczej nie będzie wiadomości to sprawdź również folder *spam*.

Twój adres e-mail znajduje się już na liście odbiorców newslettera

Wystąpił nieoczekiwany błąd

Spróbuj ponownie za chwilę.

    Get notified about new articles

    Be a part of something more than just newsletter

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address, telephone number and Skype ID/name for commercial purposes.

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address and telephone number for marketing purposes.

    Read more

    Just one click away!

    We've sent you an email containing a confirmation link. Please open your inbox and finalize your subscription there to receive your e-book copy.

    Note: If you don't see that email in your inbox shortly, check your spam folder.