Możliwe pytania podczas rekrutacji (część 1) [transkrypt]

Witaj. Dzisiaj zajmiemy się próbą odpowiedzi na pytania, które mogą pojawić się (i często pojawiają się) podczas rozmów rekrutacyjnych. Jest to część 1 tej serii. Zaczynamy!

  1. Czym jest testowanie oprogramowania?

Zgodnie z normą ANSI/IEEE 1059 jest to proces analizy elementu oprogramowania w celu wykrycia różnic pomiędzy istniejącymi i wymaganymi warunkami (tj. wadami) oraz oceny cech elementu oprogramowania.

  1. Jakie są najlepsze praktyki podczas pisania przypadków testowych?
  • Pisanie przypadków testowych z perspektywy użytkownika końcowego
  • Pisanie kroków testowych w taki sposób, aby każdy mógł je łatwo wykonać
  • Sprawdzenie, by przypadki testowe nadawały się do ponownego użycia
  • Ustawienie priorytetu
  • Podanie opisu przypadku testowego, danych testowych, oczekiwanego wyniku, warunków wstępnych
  • Pisanie przypadków negatywnych razem z pozytywnymi
  • Przestrzeganie konwencji dotyczących prawidłowego nazewnictwa
  • Regularne przeglądanie przypadków testowych i w razie potrzeby aktualizacja.
  1. Czym jest zarządzanie konfiguracją i podaj przykłady popularnych narzędzi?

Zarządzanie konfiguracją (CM) to proces mający na celu utrzymanie zasobów systemowych, systemów komputerowych, serwerów, oprogramowania i wydajności produktu w stałym stanie. Pomaga ono rejestrować wszystkie zmiany wprowadzane do systemu i zapewnia, że system działa zgodnie z oczekiwaniami, nawet jeśli zmiany są wprowadzane w czasie.
Niektóre z popularnych narzędzi do zarządzania konfiguracją to Ansible, Chef, Puppet, Terraform, Saltstack, itp.

  1. Co jeśli oprogramowanie jest tak pełne błędów, że nie da się go w ogóle przetestować?

Jeśli oprogramowanie jest pełne błędów, pierwszą rzeczą, którą musimy zrobić, to zgłosić te błędy i sklasyfikować je w oparciu o stopień ważności. Jeśli są to błędy krytyczne, to mają one poważny wpływ na harmonogramy i wskazują na głębsze problemy w procesie rozwoju oprogramowania. Musimy więc powiadomić o tym menedżera, przedstawiając odpowiednią dokumentację jako dowód.

  1. Czym jest zapewnienie jakości i kontrola jakości?

Zapewnianie jakości wiąże się z działaniami zorientowanymi na proces. Zapewnia ono zapobieganie wadom w procesie tworzenia aplikacji. Dzięki temu wady nie pojawiają się podczas tworzenia aplikacji.
Kontrola jakości polega na działaniach zorientowanych na produkt. Wykonuje ona program lub kod w celu zidentyfikowania wad w aplikacji.

  1. Jaka jest różnica między weryfikacją a walidacją?

Weryfikacja jest procesem mającym na celu upewnienie się, czy budujemy właściwy produkt, tj. weryfikację wymagań, które posiadamy oraz sprawdzenie, czy odpowiednio opracowujemy produkt. Działania związane z tym procesem to inspekcje, przeglądy, przejścia.
Walidacja jest procesem, który polega na sprawdzeniu, czy budujemy właściwy produkt, tzn. czy walidacja opracowanego przez nas produktu jest właściwa, czy też nie. Czynności związane z tym procesem to Testowanie aplikacji.

  1. Czym różni się testowanie statyczne od dynamicznego?

Testowanie statyczne polega na przeglądaniu dokumentów w celu zidentyfikowania wad we wczesnych etapach SDLC.
Testowanie dynamiczne polega na wykonaniu kodu. Weryfikuje wyjście z oczekiwanym rezultatem.

  1. Czym róznią się testy białoskrzynkowe, szaroskrzynkowe i czarnoskrzynkowe?

Testowanie białoskrzynkowe nazywane jest również testowaniem szklanym, przezroczystym i strukturalnym. Jest ono oparte na wewnętrznej strukturze kodu aplikacji. W testowaniu white-box, do projektowania przypadków testowych wykorzystuje się wewnętrzną perspektywę systemu, jak również umiejętności programistyczne. Testowanie to zazwyczaj odbywa się na poziomie jednostkowym.
Testowanie czarnoskrzynkowe jest metodą testowania oprogramowania, w której testerzy oceniają funkcjonalność testowanego oprogramowania bez patrzenia na wewnętrzną strukturę kodu. Może ono być stosowane na każdym poziomie testowania oprogramowania, takim jak testowanie jednostkowe, integracyjne, systemowe i akceptacyjne.
Testowanie szaroskrzynowe jest połączeniem testów White Box i Black Box. Tester, który pracuje nad tego typu testami, musi mieć dostęp do dokumentów projektowych. Pomaga to w tworzeniu lepszych przypadków testowych w tym procesie.

  1. Czym są testy pozytywne a czym negatywne?

Pozytywne: Ma na celu ustalenie, co system ma robić. Pomaga sprawdzić, czy aplikacja jest zgodna z  wymaganiami, czy też nie.
Negatywne: Ma na celu określenie, czego system nie powinien robić. Pomaga znaleźć wady oprogramowania.

  1. Co to jest strategia testowania?

Strategia testowania jest dokumentem wysokiego szczebla (dokument statyczny) i zazwyczaj jest opracowywana przez kierownika projektu. Jest to dokument, który przedstawia podejście do testowania produktu i osiągania celów. Zazwyczaj pochodzi on z Business Requirement Specification (BRS). Dokumenty takie jak Plan testów są przygotowywane poprzez zachowanie tego dokumentu jako bazy.

  1. Czym jest Plan Testów?

Dokument planu testów jest dokumentem zawierającym plan wszystkich czynności testowych, które należy wykonać w celu dostarczenia produktu wysokiej jakości. Dokument planu testów pochodzi z dokumentów opisu produktu. Jest on zazwyczaj przygotowywany przez kierownika testów.

  1. Czym jest zestaw testów?

Zestaw testów to zbiór przypadków testowych. Przypadki testowe, które są przeznaczone do testowania aplikacji.

  1. Czym jest scenariusz testowy?

Scenariusz testowy daje wyobrażenie o tym, co mamy do przetestowania. Scenariusz testowy jest to niejako przypadek testowy na wysokim poziomie.

  1. Czym jest przypadek testowy?

Przypadki testowe są zestawem pozytywnych i negatywnych kroków wykonywalnych scenariusza testowego, który zawiera zestaw warunków wstępnych, danych testowych, oczekiwanych wyników, warunków dodatkowych i rzeczywistych wyników.

  1. Czym jest środowisko testowe?

Środowisko testowe to połączenie sprzętu i oprogramowania, na którym zespół testowy wykonuje testy.