unit-testing
루프의 단위 테스트 (Java)
수색…
소개
루프는 모든 프로그래밍 언어에서 중요한 제어 구조 중 하나로 간주됩니다. 루프 적용 범위를 달성 할 수있는 다양한 방법이 있습니다.
이러한 메서드는 루프 유형에 따라 다릅니다.
단일 루프
중첩 루프
연결 루프
단일 루프 테스트
이것은 루프 본문에 다른 루프 (중첩 된 경우 가장 안쪽 루프)가없는 루프입니다.
루프 적용 범위를 갖기 위해 테스터는 아래 주어진 테스트를 수행해야합니다.
테스트 1 : 루프 본문이 전혀 실행되지 않아야하는 테스트를 설계하십시오 (즉, 반복 횟수가 0 회)
테스트 2 : 루프 제어 변수가 음수가되는 테스트 설계 (음수 반복)
테스트 3 : 루프가 한 번만 반복되는 테스트 설계
테스트 4 : 루프가 두 번 반복되는 테스트 설계
테스트 5 : 루프가 특정 횟수만큼 반복되는 테스트를 설계합니다. 예를 들어 m <m <가능한 최대 반복 횟수
테스트 6 : 루프가 최대 반복 횟수보다 하나 적은 반복을 테스트하는 디자인
테스트 7 : 루프가 최대 반복 횟수를 반복하는 테스트 설계
테스트 8 : 루프가 최대 반복 횟수보다 하나 더 반복하는 테스트를 설계하십시오.
지정된 모든 조건을 적용하는 아래 코드 예제를 고려하십시오.
공용 클래스 SimpleLoopTest {
private int [] numbers = {5, -77,8, -11,4,1, -20,6,2,10};
/** Compute total of positive numbers in the array
* @param numItems number of items to total.
*/
public int findSum(int numItems)
{
int total = 0;
if (numItems <= 10)
{
for (int count=0; count < numItems; count = count + 1)
{
if (numbers[count] > 0)
{
total = total + numbers[count];
}
}
}
return total;
}
}
공용 클래스 TestPass는 TestCase {
public void testname() throws Exception {
SimpleLoopTest s = new SimpleLoopTest();
assertEquals(0, s.findSum(0)); //Test 1
assertEquals(0, s.findSum(-1)); //Test 2
assertEquals(5, s.findSum(1)); //Test 3
assertEquals(5, s.findSum(2)); //Test 4
assertEquals(17, s.findSum(5)); //Test 5
assertEquals(26, s.findSum(9)); //Test 6
assertEquals(36, s.findSum(10)); //Test 7
assertEquals(0, s.findSum(11)); //Test 8
}
}
중첩 루프 테스트
중첩 루프는 루프 내의 루프입니다.
외부 루프는 내부 루프가 완전히 완료 / 중단 된 후에 만 변경됩니다.
이 경우 테스트 케이스는 다음과 같은 방식으로 설계되어야합니다.
가장 안쪽의 루프에서 시작하십시오. 모든 외부 루프를 최소값으로 설정하십시오. 가장 안쪽 루프 (Test3 / Test4 / Test5 / Test6 / Test7)에서 단순 루프 테스트를 수행하십시오. 모든 루프가 테스트 될 때까지 계속하십시오.
연결 루프 테스트
출입구에서 출구로가는 동일한 경로에서 다른 출입구에 도달 할 수 있다면 두 개의 루프가 연결됩니다. 때때로이 두 루프는 서로 독립적입니다. 이러한 경우 단일 루프 테스트의 일부로 지정된 설계 기술을 적용 할 수 있습니다.
그러나 한 루프의 반복 값이 다른 루프의 반복 값과 직접 또는 간접적으로 관련되어 있고 동일한 경로에서 발생할 수있는 경우 중첩 루프로 간주 할 수 있습니다.