[소프트웨어 테스트] (homework2) 오류 분석

5646 단어
1) 오류 유형 파악:
Fault : A static defect in the software.[정적으로 소프트웨어에서 발생한 오류.]
 
Failure : External, incorrect behavior with respect to the requirements or other description of the expected behavior.[외부의 표현, 부정확한 행위, 예기한 행위에 대한 요구 또는 다른 묘사.]
 
Error : An incorrect internal state that is the manifestation of some fault.[부정확한 내부 상태는 잘못된 표현 형식이다.]
 
 
2) RIP 모델:
Reachability 가용성
감염
전파성
 
 
3)
Tarantula 공식:
 
 
 
 
 
 
 
 
 
 
4) 프로그램 용례 분석:
 
요구 사항:
다음은 두 개의 프로그램을 제시하고, 각 프로그램은 하나의 테스트 용례를 제시하며, 이 용례는 잘못된 결과를 나타낸다.
각각 네 가지 질문에 대답합니다.
① 오류 분별(fault).
② 가능하다면 실행 오류가 없는 테스트 용례를 식별한다.
③ 가능하다면 오류를 실행했지만 오류 결론을 내리지 못한 테스트 용례를 식별한다.
④ 가능하다면 error를 받았지만 failure의 결론을 얻지 못한 테스트 용례를 식별한다.
 
프로그램 1:
 1 public int findLast (int[] x, int y) {
 2  //Effects: If x==null throw NullPointerException
 3  // else return the index of the last element 
 4  // in x that equals y.
 5  // If no such element exists, return -1
 6  for (int i=x.length-1; i > 0; i--)
 7  {
 8    if (x[i] == y) {
 9      return i; }
10  }
11  return -1;
12 }
13 // test: x=[2, 3, 5]; y = 2 
14 // Expected = 0

대답:
① for 순환 중의 판단 조건은 i>=0이어야 하며 i>0이어야 한다.
② x=0이면 for 순환을 거치지 않기 때문에 잘못된 코드 위치를 실행하지 않습니다.
③ x와 y가 같은 크기의 요소가 x의 첫 번째 위치가 아니라면 코드 줄을 실행하고 오류를 보고하지 않습니다.
예를 들어 x=[1,2,3,4,5]y=3이면 코드 줄을 통과할 수 있고 오류가 발생하지 않습니다.
④ x에서 원소의 개수가 하나일 때 error를 받았지만 failure가 없는 상황이 발생합니다.
 
프로그램 2:
 1 public static int lastZero (int[] x) { 
 2   //Effects: if x==null throw NullPointerException
 3   // else return the index of the LAST 0 in x. 
 4   // Return -1 if 0 does not occur in x
 5   for (int i = 0; i < x.length; i++)
 6   {
 7     if (x[i] == 0) 
 8     {
 9       return i; 
10     }
11   }
12   return -1; 
13 }
14 
15 // test: x=[0, 1, 0] 
16 // Expected = 2

대답:
① for(int i = 0;i = 0;i --)
② 모든 테스트 용례는 잘못된 코드 줄을 거친다.
③ x에 하나의 요소만 있을 때, 예를 들어 x=[1], 이때 잘못된 코드 줄을 실행하지만 오류를 보고하지 않는다.
④ x의 그룹에 0이 있을 때 오류가failure가 없는 상황이 발생합니다.

좋은 웹페이지 즐겨찾기