Cele automatyzacji testowania. Teoria

Cele automatyzacji testowania. Teoria
Czym jest i co obejmuje testowanie automatyczne? Jakie są jego wady i zalety?

Automatyzacja testowania, (obejmująca także wykonywanie testów automatycznych) w kontekście testowania oprogramowania, oznacza proces obejmujący jedno lub kilka następujących działań:

  • kontrolowanie i konfigurowanie warunków początkowych testów, przy użyciu specjalnie w tym celu opracowanych narzędzi,
  • wykonywanie testów,
  • porównywanie wyników rzeczywistych z oczekiwanymi.

Automatyzacja testowania ma z założenia ułatwić konsekwentne, wielokrotne wykonywanie dużej liczby przypadków testowych, w różnych wersjach testowanego systemu i/lub na różnych środowiskach. Nie oznacza to jednak, że jest ona jedynie mechanizmem do wykonywania zestawu testów bez udziału człowieka. Ważnym jej elementem jest również proces projektowania produktów testowania, do których zaliczają się:

  • oprogramowanie,
  • dokumentacja,
  • przypadki testowe,
  • środowiska testowe,
  • dane testowe.

Te produkty niezbędne są do wykonywania czynności testowych, w skład których wchodzą:

  • implementowanie automatycznych przypadków testowych,
  • monitorowanie i kontrolowanie wykonywania testów automatycznych,
  • interpretowanie, raportowanie oraz rejestrowanie rezultatów testów automatycznych.

W ramach automatyzacji testowania mogą być stosowane różne metody interakcji z testowanym systemem:

  • testowanie za pośrednictwem publicznych interfejsów do klas, modułów lub bibliotek testowanego systemu (testowanie API),
  • testowanie za pośrednictwem interfejsu użytkownika testowanego systemu (np. testowanie GUI lub testowanie CLI),
  • testowanie za pośrednictwem usługi lub protokołu.

Wśród celów automatyzacji testowania można wymienić:

  • zwiększenie efektywności wykonywania testów,
  • zapewnienie szerszego pokrycia funkcji,
  • obniżenie łącznych kosztów testowania,
  • wykonywanie testów, których testerzy nie mogą wykonać manualnie,
  • skrócenie okresu wykonywania testów,
  • zwiększenie częstotliwości testów lub skrócenie czasu trwania cykli testowych.

 Do zalet automatyzacji testowania można zaliczyć:

  • możliwość wykonywania większej liczby testów w przypadku każdej wersji,
  • możliwość tworzenia testów, których nie da się wykonać manualnie (np. testów wykonywanych w czasie rzeczywistym, testów zdalnych czy testów równoległych),
  • możliwość wykonywania bardziej złożonych testów,
  • większą szybkość wykonywania testów,
  • ograniczenie podatności testów na błędy operatora,
  • skuteczniejsze i efektywniejsze wykorzystanie zasobów testowych,
  • szybsze uzyskiwanie informacji zwrotnych na temat jakości oprogramowania,
  • wyższą niezawodność systemu (np. powtarzalność, spójność),
  • większą spójność testów.

Wady automatyzacji testowania to między innymi:

  • dodatkowe koszty,
  • początkowe nakłady inwestycyjne związane ze skonfigurowaniem rozwiązania do automatyzacji testowania (TAS),
  • konieczność stosowania dodatkowych technologii,
  • konieczność posiadania przez zespół umiejętności w zakresie programowania i automatyzacji,
  • wymóg ciągłego utrzymania rozwiązania do automatyzacji testowania (TAS),
  • ryzyko odwrócenia uwagi od celów testowania (np. w wyniku skoncentrowania się na automatyzacji przypadków testowych kosztem wykonywania testów),
  • potencjalny wzrost złożoności testów,
  • niebezpieczeństwo wprowadzenia dodatkowych błędów w wyniku automatyzacji.

Wśród ograniczeń związanych z automatyzacją testowania należy wymienić:

  • brak możliwości zautomatyzowania wszystkich testów manualnych,
  • możliwość sprawdzania jedynie rezultatów dających się zinterpretować przez maszynę,
  • możliwość sprawdzania tylko tych rzeczywistych rezultatów, które mogą zostać zweryfikowane przez automatyczną wyrocznię testową,
  • brak możliwości zastąpienia testów eksploracyjnych.

 
Całość publikacji pochodzi z sylabusa „Certyfikowany tester. Sylabus poziomu zaawansowanego - Inżynier automatyzacji testowania”.
 

To powinno Cię zainteresować