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.  

Z tego tekstu dowiesz się:

  • Czym jest piramida testów
  • Jak zaplanować testy oprogramowania w czasie
  • Czym są testy jednostkowe, integracyjne i E2E
  • Jak uniknąć zbędnych kosztów w rozwoju oprogramowania

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

Testy

Dlaczego warto przeprowadzać testy eksploracyjne?
W jakich sytuacjach warto zastosować testy eksploracyjne i jakie są plusy tego rozwiązania? Przeczytaj materiał, który przygotowała Justyna Rybarczyk z JCommerce.

Przeczytaj artykuł

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:

 

Autorem wpisu jest:
Tester

Tester z 5-letnim doświadczeniem. Wojciech zaczynał od testów manualnych, aktualnie zajmuje się również automatyzacją. Pracował głównie przy projektach webowych oraz mobilnych. Po godzinach odkrywa tajniki druku 3d.

Dodaj komentarz

Skontaktuj się z nami

Chcesz dowiedzieć się więcej o naszych usługach? Napisz do nas – odpowiemy na każdą wiadomość.

    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
    W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
    2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
    • w celach handlowych,
    • w celach marketingowych,
    • w celach rekrutacyjnych;
    • w celach przyszłych rekrutacji.
    3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
    4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
    5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
    6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
    7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
    8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
    9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
    10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
    Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
    W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
    2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
    • w celach handlowych,
    • w celach marketingowych,
    • w celach rekrutacyjnych;
    • w celach przyszłych rekrutacji.
    3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
    4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
    5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
    6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
    7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
    8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
    9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
    10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.