Zacznijmy od podstaw. Omówienie 2 ogólnych trybów testowania i 3 najczęściej używanych typów automatyzacji testów.
Wszyscy to znamy. Który mem związany z kodowaniem powtarza się w rzeczywistości?
Ten mem doskonale to podsumowuje: każda szuflada działa doskonale, ale w połączeniu z innymi panelami blokują się wzajemnie i nie działają prawidłowo. Obie strony powinny dobrze ze sobą współdziałać i działać jednocześnie.
Zastosuj to w programowaniu stron internetowych: masz napisane testy i nawet 100% pokrycia, ale po tym, jak zostaną przygotowane inne części, aplikacja nadal będzie działać. Jednostki mogą dobrze funkcjonować samodzielnie, ale nie w porównaniu ze sobą. Napisanie testów jest bardzo ważne, ale to tylko jeden z elementów idealnej konfiguracji testu w projekcie. Na początek musisz określić, jakie elementy jakości aplikacji chcesz zapewnić i jak możesz to osiągnąć.
Mówiąc najprościej, zanim zaczniesz pisać kod testowy, musisz opracować plan. Aby przejść do testu praktycznego, zacznijmy od czystej karty i odpowiedz na 2 podstawowe pytania:
- W jaki sposób chcesz przeprowadzić test?
- Co chcesz przetestować?
Ten artykuł skupia się na ogólnych informacjach, które musisz wiedzieć, by odpowiedzieć na pierwsze pytanie. Najpierw sprawdźmy, jakie tryby są dostępne, a potem skupmy się na najczęściej używanych. W kolejnych artykułach odpowiemy na drugie pytanie, połączymy odpowiedzi i znajdziemy strategię testowania, która będzie najlepsza w przypadku Twojego projektu. Zaczynamy! 🙌
Zacznij od podstaw: ogólne tryby testowania
W odpowiedzi na pytanie o sposób testowania należy w pierwszej kolejności podkreślić, że jest to bardzo abstrakcyjne. Przejść na testy ręcznie czy pozwolić, by przejął je komputer? Ważne jest jednak, aby nie podejść do tego myślenia binarnego.
Testy ręczne i automatyczne
Jeśli poprosisz inżynierów ds. kontroli jakości o zdefiniowanie testowania, prawdopodobnie podzielą się oni najpierw na 2 „tryby”:
- Testy ręczne. To typowa metoda testowania przeprowadzana przez prawdziwych ludzi. Inżynier ds. jakości klika aplikację, sprawdza, czy działa, i jednocześnie próbuje ją zepsuć. Najczęstszym sposobem jest testowanie eksploracyjne, w ramach którego inżynier bada aplikację, wykorzystując swoją wiedzę na temat aplikacji na podstawie wstępnie zdefiniowanej ścieżki lub listy kontrolnej.
- Testy automatyczne. To rodzaj testów przeprowadzanych na komputerze. Inżynierowie ds. kontroli jakości wdrażają ją, aby zautomatyzować powtarzające się i monotonne testy.
Ta seria przewodników skupia się głównie na testowaniu automatycznym. Nie należy jednak skupiać się na jednym sposobie testowania. Nawet jeśli automatyzacja pozwala oszczędzić dużo czasu i wysiłku, człowiek i ręczne testy zawsze odgrywają kluczową rolę. Automatyzacja testów powinna pozwolić użytkownikom skupić się na testowaniu eksploracyjnym i rozwiązywaniu problemów z kreacjami. Dotyczy to na przykład zapewniania wysokiej jakości wrażeń użytkowników lub ochrony logiki biznesowej wysokiego ryzyka. Innymi słowy, automatyka jest Twoją pomocą. ❤️
Nieprzezroczyste pole lub przezroczyste pole
To już koniec ogólnych trybów testowania. To jednak nie wszystko. Aby zaplanować strategię testowania, należy odpowiedzieć sobie na jeszcze jedno pytanie: czy wiesz, jak działa Twoja aplikacja, czy lepiej jest testować aplikację bez takiej wiedzy? W zależności od odpowiedzi masz do wyboru 2 procedury generowania i wyboru przypadków testowych:
- Testowanie nieprzezroczystej ramki (lub testowanie czarnych pól). Opiera się na analizie wymagań funkcjonalnych lub niefunkcjonalnych danego komponentu lub systemu bez uwzględniania jego wewnętrznej struktury.
- Testowanie z czystym polem (czyli testowanie z białym polem) to procedura, która uwzględnia wewnętrzną strukturę tego pola. Innymi słowy, jak działa Twoja aplikacja.
Obie procedury można stosować do testów ręcznych i automatycznych. Jednak niektóre aspekty ogólnych trybów testowania mogą się bardziej koncentrować na jednym z dwóch trybów – omówimy to później. Przyjrzyjmy się teraz bliżej typom automatyzacji testów.
Testowanie typów automatyzacji – jak chcesz przeprowadzać testy?
Ponieważ jesteś bliżej odpowiedzi na pytanie „jak”, decydujesz się już na przeprowadzenie testów ręcznych. Wybór i stosowanie typów automatyzacji testów jest jednak nieco trudniejsze. Typy testów automatycznych są ściśle powiązane z danymi, które chcesz tworzyć w swoich projektach. Przyjrzyjmy się tym najważniejszym.
Jak już wspomnieliśmy we wspomnianym już memie, natrafisz już na 2 typy: testowanie jednostkowe i testowanie integracji. Trzecim ważnym aspektem, który należy wziąć pod uwagę, jest kompleksowy test. Ale to jeszcze nie wszystkie. Przyjrzyjmy się temu bliżej.
Testowanie jednostkowe
Testowanie jednostkowe to rodzaj testowania, w którym drobne części aplikacji lub elementy aplikacji są testowane indywidualnie i niezależnie pod kątem prawidłowego działania. Jednostki te mogą mieć różny zakres: od funkcji, klas, interfejsów po usługi i komponenty. Ich głównymi atrybutami są szybkość wykonywania, izolacja i wygodna obsługa. Więcej informacji o testowaniu jednostkowym znajdziesz w tym przewodniku po testowaniu jednostkowym.
Testowanie integracji
Testowanie integracji koncentruje się na interakcjach między komponentami lub systemami. To znaczy, jak dobrze ze sobą współpracują. Typowe przykłady testów integracji to testy interfejsu API lub komponentów.
Kompleksowe testowanie
Te testy są często nazywane testami interfejsu. Ta nazwa jeszcze lepiej wyjaśnia ich funkcję. Testy te wchodzą w interakcję z interfejsem aplikacji, w tym z pełnym stosem aplikacji, oraz testują aplikację po kolei.
W odniesieniu do teorii zapewniania jakości przypomina to test systemu. Te testy symulują autentycznego użytkownika i jego interakcje. Pełne testy zajmują więcej czasu, ponieważ obejmują cały system, a więcej czasu działania wymaga większej mocy obliczeniowej. W rezultacie ten dodatkowy wysiłek skutkuje podniesieniem kosztów utrzymania.
Testy wizualnego interfejsu użytkownika
Ciekawą podkategorią testów interfejsu są testy wizualne. Są to rozszerzone testy, które pozwalają zweryfikować widoczne dane wyjściowe aplikacji. Polega on na wykonaniu zrzutu ekranu po wprowadzeniu zmian i kolejnym z zawartością „status quo” (czyli „złotego pliku”), a następnie przekazanie wyników weryfikatorowi do sprawdzenia i sprawdzenia. Innymi słowy, pomaga znaleźć „wizualne błędy” w wyglądzie strony, wykraczające poza czysto funkcjonalne, a nie tylko w postaci błędów.
Analiza statyczna
Warto tu wprowadzić jeszcze jedną rzecz: analizę statyczną. Nie jest to typ testu w rozumieniu podręcznika. Będzie to jednak w przyszłości istotny aspekt przy opracowywaniu strategii zapewniania jakości. Możesz sobie wyobrazić, że działa ona jak funkcja sprawdzania pisowni: skanuje kod pod kątem poważniejszych defektów i błędów składni bez uruchamiania programu, a tym samym wykrywa problemy ze stylem kodu. Ten prosty sposób pozwala uniknąć wielu błędów. Jeśli chcesz dowiedzieć się więcej o analizie statycznej, warto dowiedzieć się o niej czegoś więcej.
Testowanie we wszystkich formach: jak to wszystko działa?
Poszukując odpowiedzi na wszystkie te pytania, można znaleźć możliwe rozwiązanie w niektórych analogiach. W społecznościach internetowych i zajmujących się testowaniem programiści często używają tych analogii, aby zorientować się, ile testów należy przeprowadzić w danym typie.
Oto pięć najczęściej przedstawianych strategii:
- Piramida testowa
- Przetestuj diament
- Testowy rożek lodu (nazywany też „Test Pizza”)
- Przetestuj plaster Honeycomb
- Puchar testowy
To naprawdę wiele informacji do przetworzenia. Jak na tej podstawie wybrać odpowiednią strategię testową? Mamy wszystko, czego potrzebujesz. W następnym artykule omówimy szczegółowo różne strategie i wyjaśnimy, jak wybrać najlepszą opcję dla swojego projektu. Nie przegap ważnych informacji! 🔥