

수(순)색해

문장(구문) 커버리지 : 모든 명령문을 적어도 한 번 수행
분기(결정) 커버리지 : 결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
조건 커버리지 : 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
조건/결정 커버리지 : 전체 조건식뿐만 아니라 개별 조건식도 참과 거짓의 결과를 수행
변경 조건/결정 커버리지 : 개별 조건식이 다른 개별 조건식에 영향을 받지않고 전체 조건식에 독립적으로 영향을 주도록 향상시킨 커버리지
다중 조건 커버리지 : 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지
기본 경로 커버리지 : 수행 가능한 모든 경로를 테스트하는 커버리지
문장 커버리지는 문장을 다 읽어야 그 뜻을 이해할 수 있듯이 모든 명령문을 적어도 한 번은 다 수행해봐야함을 의미하고
분기 커버리지는 분기로 나뉘는 조건에 대해서 if/switch나 true/false를 모두 테스트해봐야 함을 의미
조건 커버리지는 조건문 안에서 각 조건식들을 테스트해봐야 함을 의미
조건/결정 커버리지는 분기를 나누는 조건식 뿐만 아니라 개별조건식도 같이 테스트해야함을 의미
변경 조건/결정 커버리지는 가장 까다로운 테스트로 개별 조건이 독립적으로 전체 결정에 변경을 가져오는지 확인함을 의미
다중 조건 커버리지는 조건들의 모든 조합을 테스트해야함을 의미

문자열 리터럴을 자바는 string constant pool이란 곳에 저장
따라서 기본적으로 모두 같은 주소값에 저장되는 것
하지만 new string처럼 메모리에 새 객체를 생성하게 되면 이는 다른 주소를 갖게 됨
따라서 str1 == str2는 같은 string constant pool에 있기 때문에 true를 반환하지만 str1 == str3의 경우 str3가 다른 객체이기 때문에 false를 반환함.
그 이후 equals의 경우 단순히 값만 확인하므로 이러한 주소로 비교할 필요없이 값이 같다면 true를 반환하는데 3,4번째 print를 확인해보면 programming으로 같은 것을 볼 수 있음.
따라서 정답은
true
false
true
true

단통시인

이거 생각보다 쉬움
우선 도착시간대로 버스트시간을 넣어주자
참고로 여기서 포인트는 새로운 프로세스가 들어오는 순간 기존 프로세스는 멈추고 버스트시간이 더 적은 것부터 0으로 만든다는 점이다.
--|A|B|C|D|
0 8
1 7 4
2 7 3 9
3 7 2 9 5
4 7 1 9 5
5 7 0 9 5 --여기서 B 끝
6 7 - 9 4 -- 그다음 적은 시간이 5니까 5부터 없애기
7 7 - 9 3
8 7 - 9 2
9 7 - 9 1
10 7 9 0 -- 여기서 D끝
11 6 9
12 5 9
13 4 9
14 3 9
15 2 9
16 1 9
17 0 9 -- 여기서 A끝
18 ---8
19 ---7
20 ---6
21 ---5
22 ---4
23 ---3
24 ---2
25 ---1
26 ---0 --여기서 C끝
대기시간은 각 프로세스가 끝난 시점 - 도착시간 - 버스트 시간
A = 17 - 8- 0 = 9
B = 5 - 4- 1 = 0
C = 26 - 2 - 9 = 15
D = 10 - 3 - 5 = 2
대기시간 평균은 (9+0+15+2)/4 = 6.5

1%5 는 몫0 나머지 1인거임 즉
2%5
3%5 는 각각 2,3으로
5%5가 되는 순간 0이 되면서 첫번째 수가 마지막에 위치하는거