Konkurs TW2015

Zadanie 1. ISTQB. Wymień tytuły wszystkich oficjalnie opublikowanych sylabusów ISTQB z ich podziałem na poziomy trudności?

Zadanie 2. SMS – Szatańska Maszyna Stanowa. Testem w maszynie stanowej nazywamy każdą ścieżkę biegnącą – zgodnie z kierunkiem strzałek – od stanu początkowego (na rysunku lewy górny) do stanu końcowego (na rysunku prawy dolny). Długość ścieżki to liczba jej przejść, czyli strzałek. Kryterium pokrycia n-switch wymaga, aby dla każdej istniejącej w maszynie ścieżki o długości n+1 istniał przynajmniej jeden test, który przechodzi po tej ścieżce.

Jaka jest minimalna liczba testów dla maszyny z poniższego rysunku potrzebna do spełnienia kryterium 4-switch?

SMS_TW

Zadanie 3. QA Meetup. Wymień przynajmniej 4 miasta w Polsce, w których regularne odbywały się spotkania skupiające testerów w 2015 roku?

Zadanie 4. Zapętlone pętle. Jaka jest minimalna liczba testów, które pokryją wszystkie decyzje w poniższym programie? Symbol := oznacza podstawienie, a == operator porównania. Załóż, że parametry wejściowe a, b, c są liczbami całkowitymi. Wcięcia w kodzie oznaczają bloki kodu. Składnia instrukcji for rozumiana jest tak, jak w językach typu C++ czy Java.

input a, b, c
d := a*b*c
e := a+b+c
for (i := 0; i < e; i++) do   while (d > 0) do
    if (a == b) then
      c := c - 1
    end if
    d := d - 1
    for (j := 0; j < d; j++) do       while (b > 0) do
        while (c > 0) do
          if (a > b) then
            a := a – 1
            c := c - 1
          else
            b := b – 1
            c := c – 1
          end if
        end while
        b := b – 1
      end while
    end for
  end while
end for
return a+b+c+d

Zadanie 5. Agile manifest. Wymień podstawowe hasła Agile manifestu.

Zadanie 6. UFO porywa testerów. W systemie każdy użytkownik opisany jest trzema cechami: rodzajem najwyższego posiadanego certyfikatu ISTQB (brak, FL, AL lub EL), tym, czy jest uczestnikiem TestWarez (tak lub nie) oraz tym, czy jest członkiem SJSI (tak lub nie). W zależności od kombinacji tych czynników program decyduje, czy dana osoba ma prawo nazywać sie testerem (tak lub nie) oraz czy zostanie porwana przez UFO. Reguły biznesowe są następujące: każdy członek SJSI posiadający jakikolwiek certyfikat nie będzie porwany przez UFO wtedy i tylko wtedy, gdy nie jest na TestWarezie. Miano testera przysługuje jedynie tym, którzy nie posiadają certyfikatu FL jako najwyższego zdobytego certyfikatu i jednocześnie prawdziwe (w sensie logicznym) jest wobec nich stwierdzenie, że jeśli są na TestWarezie to są członkami SJSI. Osoby nie będące członkami SJSI będą porwane przez UFO tylko jeśli nie posiadają certyfikatu EL. Osoby, co do których nie można na podstawie powyższych reguł stwierdzić czy będą porwani przez UFO są testerami wtedy i tylko wtedy, gdy będą porwani przez UFO.

W systemie jest zarejestrowanych dokładnie 16 osób, każda określona inną konfiguracją trzech warunków (rodzaj certyfikatu, czy jest na TestWarezie, czy jest członkiem SJSI). Ile spośród tych osób jest godnych miana testera lub nie zostanie porwanych przez UFO?

Zadanie 7. Bankomaty. System bankowy składa się z serwera, sieci i bankomatów. Serwer i sieci (zwane dalej systemem) są dostępne w 100%, poza zaplanowaną konserwacją między 2 a 4 w nocy w każdą niedzielę. Warunkiem koniecznym poprawnej pracy bankomatu jest dostępność systemu. Średnio 25% bankomatów ulega awarii średnio raz w miesiącu, przy czym naprawa zajmuje średnio cały dzień (24 godziny). Jaka jest oczekiwana dostępność usług bankomatowych w listopadzie 2015 roku z punktu widzenia pojedynczego, losowo wybranego klienta, który korzysta z bankomatów? Załóż, że klient oczekuje od systemu ciągłej dostępności (24h/dobę), co oznacza, że nawet planowe wyłączenie systemu z punktu widzenia klienta traktowane jest jak niedostępność usługi. W obliczeniach przyjmij dokładność do drugiego miejsca po przecinku.

Dla dociekliwych – metryka dostępności definiowana jest jako D = MTTF / (MTTF + MTTR), gdzie MTTF = średni czas do awarii, MTTR = średni czas do naprawy, ale nie musisz z niej korzystać wprost w rozwiązaniu zadania. Dostępność systemu to po prostu procent czasu, w którym system działa poprawnie, dla zadanego interwału czasowego.

Zadanie 8. Nieprzystępny rok przestępny. W pewnym programie znajduje się następująca instrukcja warunkowa (decyzja) sprawdzająca, czy zmienna całkowita rok reprezentuje rok przestępny:

if ((rok%4==0 && rok%100!=0) || rok%400==0)

Składa się z trzech warunków: rok%4==0, rok%100!=0, rok%400==0, z których każda może przyjąć wartość logiczną prawdy lub fałszu. W zadaniu && oznacza koniunkcję, || alternatywę, a%b zwraca resztę z dzielenia a przez b, == to operator porównania, a != oznacza operator „różne od”.

Chcesz przetestować ten fragment kodu pod kątem kryterium pełnego pokrycia kombinatorycznego. W kryterium tym wymagane jest, aby dla każdej możliwej kombinacji wartości logicznych warunków istniał co najmniej jeden test, który spowoduje przyjęcie przez warunki tych właśnie wartości. Jaka jest minimalna liczba testów, aby spełnić to kryterium dla naszej decyzji? Załóż, że podczas sprawdzania wartości logicznej decyzji nie zachodzi tzw. zwarcie, to znaczy zawsze obliczane są wartości logiczne wszystkich warunków w decyzji, a następnie na tej podstawie obliczana jest wartość logiczna całej decyzji.

Odpowiedzi:

Zadanie 1. ISTQB.

Expert

  • Improving the Testing Process
  • Test Managemenet
  • Test Automation – Engineering

Advance:

  • Test Analyst
  • Test Manager
  • Technical Test Analyst

Foundation:

  • Foundation
  • Agile Tester Extension
  • Model Base Testing (od 23.10.2015)

Zadanie 2. SMS – Szatańska Maszyna Stanowa.

Z matematycznego punktu widzenia chcemy zdefiniować minimalną liczbę ścieżek w grafie idących od wierzchołka początkowego do końcowego, które w sumie pokryją w tym grafie wszystkie ścieżki o długości 5. Zauważmy, że gdy użyjemy w naszej wędrówce krawędzi dochodzącej do wierzchołka końcowego (nazwijmy ją krawędzią x), nie możemy już dalej nic dodać do naszej ścieżki. Łatwo sprawdzić, że wszystkich ścieżek 4-switch (czyli o długości 5) zawierających tę krawędź jest 9. Zatem musimy mieć co najmniej dziewięć testów, z których każdy pokryje dokładnie jedną z tych ścieżek. Dlaczego jest ich 9? Można to obliczyć zliczając wszystkie możliwe ścieżki idące „wstecz” od wierzchołka końcowego w kierunku przeciwnym do kierunku strzałek. Ponieważ wszystkie stany poza końcowym tworzą graf silnie spójny, jedna z tych dziewięciu ścieżek może być bardzo długa i zawierać wszystkie możliwe podścieżki o długości 5 nie zawierające krawędzi x. Ostatecznie otrzymujemy, że dziewięć ścieżek wystarczy do spełnienia kryterium 4-switch.

Zadanie 3. QA Meetup.

Lista tu http://sjsi.org/wspolpraca/teren

Zadanie 4. Zapętlone pętle.

Wystarczy jeden sprytnie dobrany test. Zauważmy, że w przypadku pętli while i for wystarczy taki test, który sprawi, że sterowanie wejdzie do takiej pętli. Nasz program ma własność stopu (zatrzyma się dla każdych poprawnych danych wejściowych; nie jest to oczywiste – wymaga to analizy kodu!), więc w końcu będzie musiał z tej pętli wyjść, co oznacza, że warunek tej pętli przestanie być prawdziwy. Należy tylko tak dobrać dane, żeby w obu instrukcjach warunkowych if podczas przebiegu algorytmu warunki każdej z tych instrukcji przyjęły przynajmniej raz wartość prawdy i raz fałszu. Przykładowy test spełniający warunki zadania: a=3, b=3, c=3.

Zadanie 5. Agile manifest.

Ang.:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Pol.:

  • Ludzi i interakcje od procesów i narzędzi
  • Działające oprogramowanie od szczegółowej dokumentacji
  • Współpracę z klientem od negocjacji umów
  • Reagowanie na zmiany od realizacji założonego planu.

Zadanie 6. UFO porywa testerów.

Tabela decyzyjna dla problemu z zadania pokazana jest poniżej.

osoba 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Cert 0 0 0 0 FL FL FL FL AL AL AL AL EL EL EL EL
SJSI? T T N N T T N N T T N N T T N N
TW? T N T N T N T N T N T N T N T N
Tester T T N T T T N T T T N T T T N T
UFO T T T T T N T T T N T T T N N N

Warunki z zadania spełniają wszystkie osoby oprócz osób nr 3, 7, 11. Zatem osób spełniających warunki jest 16 – 3 = 13.

Zadanie 7. Bankomaty.

Wyróżniamy dostępność systemu (sieć i serwery) oraz dostępność terminali (bankomaty). Jeśli system nie działa, terminale są oczywiście niedostępne. Niedostępność systemu to 5*2h = 10h w miesiącu (w listopadzie 2015 jest 5 niedziel). Średnia niedostępność bankomatów to 25% * 24h = 6h na miesiąc (bo prawdopodobieństwo awarii bankomatu z
którego korzysta klient to 1/4). Dostępność systemu wynosi więc (720-10)/720 = ok. 98.61%. Dostępność usług bankomatowych to iloczyn dostępności systemu i dostępności bankomatów:

D = (720-10)/720 * (720-6)/720 = ok. 97.79%.

Zadanie 8. Nieprzystępny rok przestępny.

Gdyby warunki były niezależne, byłoby oczywiście 2^3=8 możliwych kombinacji. Zauważmy jednak, że pomiędzy warunkami zachodzą pewne zależności (dla uproszczenia nazwijmy kolejne warunki p, q, r, czyli mamy decyzję (p && q) || r:

jeśli r=1 to p=1 i q=0
jeśli q=0 to p=1
jeśli q=1 to r=0
jesli p=0 to q=1 i r=0

Zatem możliwe są jedynie cztery z ośmiu kombinacji:

p=q=1, r=0
p=r=1, q=0
p=1, q=r=0
p=r=0, q=1

Pozostałe kombinacje są nieosiągalne (ang. infeasible). Wystarczą zatem 4 przypadki do pokrycia kombinatorycznego.

TwitterFacebookLinkedInGoogle+