Skip to content

bbozilov26/SI_lab2_186047

Repository files navigation

Втора лабораториска вежба по Софтверско инженерство

Бојан Божилов, бр. на индекс 186047

Група на код:

Ја добив групата на код 2

Control Flow Graph

CFG

Цикломатска комплексност

N = 19, E = 25, R = 8

  1. Цикломатска комплексност = Е - N + 2 = 8
  2. Цикломатска комплексност = R = 8
  3. Цикломатска комплексност = P + 1 = 7 + 1 = 8

Тест случаи според критериумот Every Path

Патеката 1,2, 3, 18 важи само доколку во објектот user нема податоци.

Патеката 1,2, 4, 5, 18 важи само доколку во објектот user има податоци, но самите тие податоци немаат вредности.

Патеката 1,2, 4, 6, 7, 18 важи само доколку во објектот user има податоци, од кои само податокот username има вредност.

За други тест случаи, различни од наведените, т.е со валидни вредности за вредностите на user, ќе се извршат останатите две патеки:

  1. 1,2, 4, 6, 8, 9.1, (9.2, 10, 11, 12, 13, 14, 9.3), 15, 16, 18
  2. 1,2, 4, 6, 8, 9.1, (9.2, 10, 11, 12, 13, 14, 9.3), 15, 17, 18

Тест случаи според критериумот Every Statement

Јазелот 1,2 ќе се изврши за кој било тест случај. Доколку за тој јазел е точно (user == null), тогаш ќе се изврши јазелот 3 (Runtime Exception) и програмата ќе терминира (јазел 18).

Доколку за јазелот 2 не е точно, односно за објектот user има некакви податоци, тогаш ќе се премине на јазелот 4. Сега, ако за јазелот 4 е точно (username == null или листата на корисници веќе го содржи внесениот корисник) ќе биде фрлен Runtime Exception (јазел 5) и програмата ќе терминира (јазел 18).

Но, ако има некаква вредност за променливата username != null, тогаш ќе се премине на јазел 6, каде што се проверува емаилот. Доколку нема вредност за email, се враќа false (јазел 7) и програмата ќе терминира (јазел 18)

Oбјаснување на напишаните unit tests

  1. user == null - програмата ќе фрли runtime exception бидејќи за објектот user нема параметри со вредности
  2. user = (null, null, null) - сега бидејќи објектот има параметри, ќе проверува дали username и/или email се null; бидејќи username == null, програмата ќе фрли runtime exception
  3. user = ("Bojan", null, null) - во овој случај username != null, ќе се провери дали се наоѓа во листата на веќе запипани users, и доколку тоа е точно, повторно се фрла runtime exception, a инаку ќе се проверува email; бидејќи email == null, програмата ќе врати false
  4. user = ("Bojan", null, "bobo@boz") - и во овој случај username != null, ќе се провери дали се наоѓа во листата на веќе запипани users, и доколку тоа е точно, повторно се фрла runtime exception, a инаку ќе се проверува email; сега бидејќи email != null, ќе се проверува дали содржи "@" или "."; бидејќи содржи "@" програмата ќе врати true
  5. user = ("Bojan", null, "boboboz@b.oz") - истата постапка како и за 4. важи тука; сега емаилот содржи и "@" и ".", па програмата ќе врати true
  6. доколку емаилот во 4. и во 5. не содржеше "@" и/или ".", програмата ќе врати false

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages