소프트웨어 테스트 작업(二) FAULT, FAILURE, ERROR 분석 및 테스트 용례 설계
3560 단어 소프트웨어 테스트
program1:
public int findLast (int[] x, int y) {
//Effects: If x==null throw
// NullPointerException
// else return the index of the last element
// in x that equals y.
// If no such element exists, return -1
for (int i=x.length-1; i > 0; i--)
{
if (x[i] == y)
{
return i;
}
}
return -1;
}
// test: x=[2, 3, 5]; y = 2
// Expected = 0
program2:
public static int lastZero (int[] x) {
//Effects: if x==null throw
// NullPointerException
// else return the index of the LAST 0 in x.
// Return -1 if 0 does not occur in x
for (int i = 0; i < x.length; i++)
{
if (x[i] == 0)
{
return i;
}
}
return -1;
}
// test: x=[0, 1, 0]
// Expected = 2
Questions
Identify the fault. If possible, identify a test case that does not execute the fault. (Reachability) If possible, identify a test case that executes the fault, but does not result in an error state. If possible identify a test case that results in an error, but not a failure.
Answers
Fault 정적 오류, Failure 외부 오류, Error 내부 오류
프로그램 1:
1. Fault: for 순환의 제어 조건 i>0 여기는 i>=0이어야 합니다. 그렇지 않으면 x[0]에 접근하지 않습니다.
2.fault를 실행하지 않는 예
x = {} y = 3;
이 경우 잘못된 메모리에 직접 접근하여 프로그램이 종료됩니다
3.fault를 실행했지만 잘못된 값을 되돌려 주지 않았습니다.
x={1,2,3} y = 2
기대는 1, 답도 1.
4. 실수를 초래하지만 실패하지 않는다
x={1,2,3},y =0
기대 답안은 -1이고 실제 답안은 -1이다.
프로그램 2:
1.fault 코드는 수조의 마지막 0의 위치를 찾지만 첫 번째 0의 위치를 조회하는 것을 실현한다
2. fault를 실행하지 않습니다. 순환하는 곳에서fault(방향이 반대로)가 있기 때문에fault를 실행하지 않는 용례는 없습니다.
3. fault를 실행하지만 Error가 아닌 경우 그룹은 하나의 요소만 있고 정반이 반복되든 차이가 없습니다. (모두 0이라고 표시된 정반이 존재하지 않습니다.)
예를 들어 x={4};
4.fault를 실행하면 error가 발생하지만failure가 없습니다. x에 하나 또는 0이 없을 때
x = {1,0,2,3}
답은 1이고 기대 답도 1입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
「테스터짱」으로 배우는 소프트웨어 테스트 ⑦초보자 (신인) 용으로 그려진 소프트웨어 테스트의 만화가됩니다. 우연히 JSTQB에 대해 조사했을 때 발견한 블로그의 기사를 계기로 읽게 되었습니다 지금도 업데이트가 있을 때마다 체크하고, 서적판을 읽어 들이거나, ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.