소프트웨어 테스팅에서 도메인 테스팅이란 무엇입니까? (예제 포함)
도메인 테스트란 무엇입니까?
도메인 테스트 하는 소프트웨어 테스팅 최소한의 입력을 제공하고 적절한 출력을 평가하여 애플리케이션을 테스트하는 프로세스입니다. 도메인 테스트의 주요 목표는 소프트웨어 응용 프로그램이 허용 가능한 범위 내의 입력을 받아들이고 필요한 출력을 제공하는지 확인하는 것입니다.
그것은 기능 테스트 시스템이 유효하지 않거나 범위를 벗어난 입력 값을 허용하지 않는지 확인하기 위해 최소한의 입력으로 시스템의 출력을 테스트하는 기술입니다. 가장 중요한 것 중 하나입니다 백 Box 지원 행동 양식. 또한 시스템이 지정되거나 유효한 범위를 벗어나는 입력, 조건 및 인덱스를 허용해서는 안 된다는 것을 확인합니다.
도메인 테스트는 특정 도메인마다 다르므로 소프트웨어 시스템을 테스트하려면 도메인별 지식이 필요합니다.
더 간단한 도메인 테스트 실습
도메인 테스트에서는 도메인을 하위 도메인(동등 클래스)으로 나눈 다음 각 하위 도메인의 값을 사용하여 테스트합니다. 예를 들어 테스트용으로 웹사이트(도메인)가 제공된 경우 테스트의 용이성을 위해 웹사이트를 작은 부분(하위 도메인)으로 분할합니다.
도메인에는 하나의 입력 변수 또는 입력 변수 조합에 대한 테스트가 포함될 수 있습니다.
실무자들은 "경계 테스트"와 "동등 클래스 분석"이라는 두 가지 다른 이름보다 덜 간단한 도메인 테스트 사례를 연구하는 경우가 많습니다.
경계 테스트 – BVA(경계값 분석)는 파티션 간 경계 테스트를 기반으로 합니다. 파티션/클래스에서 유효한 입력 값과 유효하지 않은 입력 값을 모두 테스트할 것입니다.
동등 클래스 테스트 – 이 기술의 기본 아이디어는 테스트 조건 세트를 동일한 것으로 간주될 수 있는(즉, 시스템이 이를 동등하게 처리해야 함) 그룹 또는 세트로 분할(즉, 분할)하여 '등가 분할'하는 것입니다.
도메인 테스트에는 단순화된 양식이 적용됩니다.
- 입력 변수 테스트에만 해당
- 시스템 수준에서 테스트할 때만
- 한 번에 하나씩 테스트할 때만
- 매우 피상적인 방법으로 테스트한 경우에만
아래와 같이 단순화할 수 있습니다.
변하기 쉬운 | 유효한 클래스 동등 클래스 | 유효하지 않은 클래스 동등 클래스 | 경계 및 특수 사례 | 노트 |
---|---|---|---|---|
X | 0-100 | 0 | ||
100 | ||||
<0 | -1 | |||
> 100 | 101 |
설명 :
- 필드가 0-100 범위를 허용하는 경우 해당 필드는 유효하지 않은 항목이고 경계를 벗어나는 -1 및 101을 허용해서는 안 됩니다.
- 필드는 0,100과 그 사이의 모든 숫자와 같은 값을 허용해야 합니다.
이와 같은 테이블 구축 (실제)
- 시간이 지남에 따라 동등 클래스 분석을 작성하려면 정보를 스프레드시트에 입력하십시오. 변수를 나열하는 것부터 시작하세요. 정보를 얻으면 이에 대한 정보를 추가하십시오.
- 테이블에는 결국 모든 변수가 포함되어야 합니다. 이는 관찰할 수 있는 모든 입력 변수, 모든 출력 변수 및 중간 변수를 의미합니다.
- 실제로 내가 본 대부분의 테이블은 불완전합니다. 가장 좋은 것은 모든 변수를 나열하고 중요한 변수에 대한 세부 정보를 추가하는 것입니다.
도메인 테스트 전략
도메인 테스트를 하는 동안 다음 사항을 고려해야 합니다.
- 어떤 도메인을 테스트하고 있나요?
- 값을 클래스로 그룹화하는 방법은 무엇입니까?
- 테스트할 클래스의 값은 무엇입니까?
- 결과를 결정하는 방법은 무엇입니까?
어떤 도메인을 테스트하고 있나요?
우리가 테스트하는 모든 도메인에는 입력 기능과 출력 기능이 있습니다. 입력해야 할 몇 가지 입력 변수가 있으며 적절한 출력이 확인되어야 합니다.
도메인 테스트 예
- 단일 입력 테스트 시나리오를 고려해보세요.
C = a+b. 여기서 a와 b는 입력 변수이고 C는 출력 변수입니다.
위의 예에서는 변수의 분류나 조합이 필요하지 않습니다.
- 아래의 여러 입력과 적절한 출력 시나리오를 고려하세요.
어린이를 위한 게임 전시회를 생각해 보세요. 6개의 대회가 준비되어 있으며 연령과 성별 입력에 따라 티켓이 제공되어야 합니다. 티켓팅은 게임 전시회의 전체 기능을 테스트하는 모듈 중 하나입니다.
시나리오에 따르면 연령과 경쟁을 기준으로 XNUMX가지 시나리오가 있습니다.
- 5세 이상 10세 미만의 남아는 스토리텔링에 참여해야 합니다.
- 5세 이상, 10세 미만의 여아는 그림 대회에 참여해야 합니다.
- 10세 이상 15세 미만의 소년은 퀴즈에 참여해야 합니다.
- 10세 이상 15세 미만의 소녀는 에세이 작성에 참여해야 합니다.
- 5세 미만, 남학생과 여학생 모두 라임 대회에 참가해야 합니다.
- 15세 이상인 경우 남학생과 여학생 모두 시 대회에 참가해야 합니다.
여기서는 나이와 성별을 입력하므로 대회 티켓이 발급됩니다. 이 경우 입력의 분할 또는 단순히 값의 그룹화가 그림에 나타납니다.
값을 클래스로 그룹화하는 방법은 무엇입니까?
일부 값을 분할한다는 것은 값을 겹치지 않는 하위 집합으로 분할하는 것을 의미합니다.
앞에서 설명한 것처럼 파티셔닝에는 두 가지 유형이 있습니다.
- 등가 분할 – 등가 분할은 소프트웨어 테스팅 소프트웨어 유닛의 입력 데이터를 테스트 케이스가 파생될 수 있는 동등한 데이터의 파티션으로 나누는 기술입니다. 원칙적으로 테스트 케이스는 각 파티션을 적어도 한 번씩 다루도록 설계되었습니다.
- 경계값 분석 – 경계값 분석은 소프트웨어 테스팅 범위 내 경계 값의 대표자를 포함하도록 테스트를 설계하는 기술입니다. 아이디어는 다음에서 비롯됩니다. 경계.
위의 예에서는 값을 하위 집합 또는 하위 집합으로 분할합니다. 우리는 연령을 아래와 같이 분류합니다.
- 1 클래스 : 5~10세 어린이
- 클래스 2: 5세 미만 연령층의 어린이
- 3 클래스 : 10~15세 연령층의 어린이
- 4 클래스 : 연령 그룹이 15세 이상인 어린이.
테스트할 클래스의 값은 무엇입니까?
테스트를 위해 선택한 값은 경계 값이어야 합니다.
- 경계는 우리가 샘플링한 동등 클래스를 나타냅니다. 그들은 다른 클래스 멤버보다 오류를 노출할 가능성이 높으므로 더 나은 대표자입니다.
- 동등 클래스를 가장 잘 나타내는 것은 범위 사이의 값입니다.
위의 예제에서는 테스트할 클래스가 다음과 같습니다.
예를 들어 시나리오 #1의 경우:
- 1 클래스 : 5~10세 어린이(5세 이상 및 10세 미만)
경계 값:
- 값은 10보다 작거나 같아야 합니다. 따라서 이 클래스에는 10세도 포함되어야 합니다.
- 값은 5보다 커야 합니다. 따라서 5세는 이 클래스에 포함되어서는 안 됩니다.
- 값은 10보다 작거나 같아야 합니다. 따라서 11세는 이 클래스에 포함되어서는 안 됩니다.
- 값은 5보다 커야 합니다. 따라서 이 클래스에는 6세도 포함되어야 합니다.
동등 파티션 값:
각 분할에서 하나의 조건만 테스트해야 하는 경우 동등 분할을 참조합니다. 여기서는 파티션의 한 조건이 작동하면 모든 조건이 작동해야 한다고 가정합니다. 마찬가지로 해당 파티션의 한 조건이 작동하지 않으면 다른 조건도 작동하지 않는다고 가정합니다. 예를 들어,
(연령 >5 및 <=10)
6부터 10까지의 값이 유효하므로 6,7,8,9 중 하나를 선택해야 합니다. 따라서 선택한 연령 "10"은 (Age >8 ~ <=5) 연령 그룹에 대한 유효한 입력 연령입니다. 이러한 종류의 파티션을 동등 파티션이라고 합니다.
시나리오 | 취해야 할 경계값 | 동등 분할 값 |
---|---|---|
남아 - 5세 이상 10세 미만 | 입력 연령 = 6 입력 연령 = 5 입력 연령 = 11 입력 연령 = 10 |
입력 연령 = 8 |
여아 – 5세 이상 10세 미만 | 입력 연령 = 6 입력 연령 = 5 입력 연령 = 11 입력 연령 = 10 |
입력 연령 = 8 |
남아 - 10세 이상 15세 미만 | 입력 연령 = 11 입력 연령 = 10 입력 연령 = 15 입력 연령 = 16 |
입력 연령 = 13 |
여아 – 10세 이상 15세 미만 | 입력 연령 = 11 입력 연령 = 10 입력 연령 = 15 입력 연령 = 16 |
입력 연령 = 13 |
나이<=5 | 입력 연령 = 4 입력 연령 = 5 |
입력 연령 = 3 |
나이> 15 | 입력 연령 = 15 입력 연령 = 16 |
입력 연령 = 25 |
프로그램이 테스트를 통과했는지 실패했는지 어떻게 알 수 있나요?
기능 전달은 위 시나리오의 결과에만 의존하지 않습니다. 주어진 입력과 예상되는 출력은 결과를 제공하며 이를 위해서는 도메인 지식이 필요합니다.
예제 결과 결정:
따라서 위의 테스트케이스를 모두 통과하면 대회 티켓 발권 영역도 통과하게 된다. 그렇지 않으면 도메인이 실패하게 됩니다.
도메인 테스트 구조
일반적으로 테스터는 도메인 테스트에서 아래 단계를 따릅니다. 이는 테스트 요구 사항에 따라 사용자 정의/건너뛸 수 있습니다.
- 잠재적으로 흥미로운 변수를 식별합니다.
- 지금 분석할 수 있는 변수를 식별하고 순서를 지정합니다(최소에서 최대로 또는 그 반대로).
- 위와 같이 경계값과 동등등급값을 생성하고 식별합니다.
- XNUMX차 차원을 식별하고 각각을 전통적인 방식으로 분석합니다. (위 예에서는 성별이 두 번째 측정기준입니다.)
- 결과를 보유하는 변수(출력 변수)를 식별하고 테스트합니다.
- 프로그램이 이 변수의 값을 어떻게 사용하는지 평가하십시오.
- 조합 테스트를 위해 잠재적으로 관련된 추가 변수를 식별합니다.
- 반드시 명확한 차원에 매핑되지 않는 위험을 상상해 보십시오.
- 분석되지 않은 변수를 식별하고 나열합니다. 나중에 분석할 정보를 수집합니다.
- 위험/동등성 표로 분석을 요약하세요.
요약
위에서 설명한 대로 도메인 테스트에는 원하는 출력을 달성하기 위해 올바른 입력을 제공하는 지식이 필요합니다. 따라서 작은 코드 덩어리에만 사용할 수 있습니다.