Zwinne ramy automatyzacji testów
Zwinne testowanie automatyczne
Zwinne testowanie automatyczne w tworzeniu oprogramowania to podejście wykorzystujące automatyzację testów w metodykach zwinnych. Celem zwinnych testów automatycznych jest zwiększenie efektywności i wydajności procesu tworzenia oprogramowania przy jednoczesnym zachowaniu jakości i czasu, a także zużycia zasobów. Zatem realizacja takiego procesu wymaga dużej koordynacji i współpracy pomiędzy zespołami.
W ciągu ostatnich kilku lat, odkąd zwinna metodologia znalazła zastosowanie, a jej twórcy krzyczeli i chcieli pozbyć się przyziemnej i pracochłonnej rzeczywistości tradycyjnego modelu wodospadu, wpływ tego samego można odczuć także w przypadku Testowanie automatyzacji.
Automatyzacja w Waterfall kontra automatyzacja w Agile
W obszarze tradycyjnego procesu cyklu życia testowania oprogramowania, testowanie automatyczne jest zwykle wykonalne, gdy aplikacja jest stabilny, stały i wymagający wiąże się z a naprawdę sporo czasu i w większości przypadków obejmujących zestaw bardzo wykwalifikowanych zasobów ekspertów w dziedzinie automatyzacji, a także znaczną kwotę kosztów konfiguracji. Podstawowym celem testów automatycznych jest długoterminowa redukcja kosztów i upewnienie się, że w wyniku istniejących przypadków testowych nie pojawiły się żadne nowe defekty.
Testowanie automatyczne ze względu na naturę technologii nie ma charakteru eksploracyjnego w naturze, ponieważ główną rolą Testowania Automatycznego jest oszczędzanie czasu i redukcja kosztów. Testowanie Automatyczne nie ma na celu wymyślania nowych i innowacyjnych defektów. Testowanie Automatyczne ma na celu głównie potwierdzenie już istniejących.
Jak automatyzować w metodologii Agile
Z definicji metodyka Agile oznacza rezygnację z pracochłonnej i żmudnej dokumentacji, dzięki czemu możliwe jest wdrażanie nowych i innowacyjnych pomysłów, a ludzie mogą swobodnie ze sobą współpracować, co pozwala na wdrażanie większej liczby innowacyjnych i odkrywczych pomysłów.
W ten sposób możemy dostrzec sprzeczność pomiędzy podstawowymi filozofiami metodyk zwinnych i testowania automatycznego.
Podstawowe punkty zwinnej automatyzacji testów
Musimy więc rozważyć pewne podstawowe kwestie, jeśli chodzi o ocenę wykorzystania metodologii zwinnych w odniesieniu do metod i technik testowania automatycznego. Musimy zatem rozważyć pewne podstawowe kwestie, takie jak czas potrzebny na zaprojektowanie i kodowanie, walidację zaprojektowanych skryptów z istniejącymi danymi testowymi i ich przyjęcie do testowania (niezależnie od tego, czy testy mają cele funkcjonalne czy regresyjne). Tak więc prawdziwym faktem wszystkich tych zdarzeń jest to, że aby wykonać wszystkie te fakty, musimy upewnić się, że na te zadania potrzeba znacznej ilości czasu, a w środowisku zwinnym, w którym średni sprint trwa średnio 1-2 tygodnie, jest oczywiste, że zbyt trudno jest rozważyć poświęcenie tak dużej ilości czasu na automatyzację skryptów w taki sposób.
Kolejnym istotnym czynnikiem pozostaje tutaj rodzaj zmian w wymaganiach, które pojawiają się, gdy w grę wchodzi metodologia zwinna. Zwinna metodologia sama w sobie jest rodzajem techniki, która jest bardzo pomocna w reagowaniu na szybkie zmiany wywołane przez klienta i dlatego dobrze nadaje się do częstych zmian podczas ogólnego rozwoju aplikacji.
Natomiast testy automatyczne są bardzo przydatne, jeśli chodzi o bardziej stabilne i rzadsze typy wymagań. Zatem z definicji testowanie automatyczne nie nadaje się dobrze do różnego rodzaju częstych zmian w wymaganiach, które towarzyszą przyjęciu jakichkolwiek zwinnych metodologii.
Zwinne narzędzia automatyzacji
Wybór odpowiednich narzędzie automatyzacji automation jest również potencjalnie bardzo ważnym czynnikiem, jeśli chodzi o przyjęcie testów automatycznych w ramach ogólnej metodologii zwinnej. Na przykład licencjonowane narzędzia do automatyzacji narzucają rygorystyczne kryteria dostępu do bezpieczeństwa różnym typom i poziomom użytkowników, jeśli chodzi o dostęp do różnych ważnych zasobów należących do konkretnego frameworku automatyzacji testów.
W przeciwieństwie do tego, metodologia zwinna kładzie nacisk głównie na otwartą współpracę i nieograniczoną interakcję między członkami zespołu, a tym samym na restrykcyjne zasady, które bezpośrednio wpływają na to, jak użytkownicy będą mieli negatywny wpływ na ogólną spójność zespołu, a tym samym mogą prowadzić do wyników, które nie są zbyt pomocne ani bardzo sprzyjające ogólnemu sukcesowi projektu.
Dlatego też pierwszorzędne znaczenie tego procesu powinno polegać na zapewnieniu, że w celu uzyskania wysokiej jakości skryptów testów automatycznych w określonym czasie, zgodnie z metodologią zwinną; musimy wybrać nasze przyszłe przypadki testowe, które zostaną zautomatyzowane w bardziej zniuansowany sposób, tak aby te zautomatyzowane skrypty testowe dobrze nadawały się do ponownego wykorzystania w przyszłości, a także zapewniały możliwość ich przygotowania w odpowiednim czasie w wyznaczonym czasie (jak wymagane w procesie metodologii zwinnej).
Po rozważeniu wszystkich powyższych czynników możemy zdać sobie sprawę, że nawet przyjmując metodyki zwinne, musimy wziąć pod uwagę rodzaje testów, na przykład testy regresyjne (ponieważ nawet podczas testowania zwinnego wymagana jest znaczna ilość pracy testowej zastosować zwinne metodologie w celu zapewnienia lepszej jakości całego produktu)
Przyjrzyjmy się teraz najbardziej podstawowym sytuacjom, w których można zastosować testy automatyczne, i jak możemy je zastosować w dziedzinie testowania zwinnego.