Io-10-lab-odp02
Zadania – Wprowadzenie do testowania - Pokrycie kodu
<< Powrót do strony z zadaniami
Odpowiedzi
Zadanie 2
Dla tego przypadku pokrycie instrukcji wynosi 50%, ponieważ nie jest wykonana instrukcja wyświetlająca napis „liczba jest parzysta”. Pokrycie gałęzi również wynosi 50% ponieważ instrukcja warunkowa if ((liczba % 2) == 0) jest tylko fałszywa, a powinna być raz fałszywa i raz prawdziwa by można było powiedzieć, że uzyskano pokrycie gałęzi równe 100%. Pokrycie gałęzi równe 100% dla tej funkcji jest tylko możliwe przy wywołaniu sekwencyjnym metody z liczbą parzysta i nieparzystą gdzie jedna z tych liczb jest mniejsza od 5.
W przypadku warunku wyjścia z pętli instrukcja ta jest przynajmniej raz prawdziwa i raz fałszywa dla każdego argumentu liczba mniejszego od 5.
Dla przypadku wywołania metody z argumentem liczba równym 2 uzyskujemy następujące wyniki:
- pokrycie instrukcji = 100%
- pokrycie gałęzi = 50%
Co do przypadku pokrycia instrukcji sprawa jest oczywista. Ponieważ liczba jest parzysta zostaje wykonana metoda wyświetlająca napis „liczba jest parzysta”. Wykonana także zostaje pętla, ponieważ argument wywołania metody jest mniejszy od 5.
W przypadku pokrycia gałęzi nie jest spełnione by instrukcja wyświetlająca napis „liczba jest parzysta” przynajmniej raz była prawdziwa i raz fałszywa. Dla przypadku pętli jest to spełnione ponieważ pętla zostanie wykonana przynajmniej jeden raz oraz warunek pętli przestanie być prawdziwy gdy zmienna liczba dojdzie do wartości równej 5.
Kolejnym przypadkiem do rozpatrzenia jest wywołanie metody dla argumentu liczba równego 5. W tym przypadku nie wyświetlony zostanie zarówno napis „liczba jest parzysta” jak i nie zostanie wykonany ani jeden przebieg pętli, ponieważ warunek wykonania pętli nie jest spełniony już na samym początku wywołania metody (liczba >= 5). W związku z tym pokrycie instrukcji jak i pokrycie gałęzi wynosi 0%.
Dla przypadku liczba = 6 pokrycie instrukcji wynosi 50% ponieważ ani jeden przebieg pętli nie jest wykonany, natomiast wyświetlany jest napis „liczba parzysta”. Pokrycie gałęzi wynosi 0%, bo obydwa warunki (w pętli jak i ten determinujący czy liczba jest parzysta) przyjmują tylko jedną wartość logiczną. Dla przypadku sekwencji wywołań metody dla liczba = 2 oraz liczba = 5 zarówno pokrycie instrukcji jak i gałęzi wynosi 100%. Uzyskanie pokrycia dla instrukcji nie powinno dziwić – już dla liczba = 2 wynosi ono 100%. W przypadku pokrycia gałęzi jest spełniony warunek by dana instrukcja warunkowa była raz prawdziwa i raz fałszywa. Wywoływana sekwencja zawiera liczbę parzysta i nieparzystą, w związku z czym instrukcja warunkowa określająca czy ma być wyświetlony napis „liczba parzysta” jest raz prawdziwa i raz fałszywa.