소프트웨어 테스팅에서 도메인 테스팅이란 무엇입니까? (예제 포함)

⚡ 스마트 요약

도메인 테스트는 유효한 값, 유효하지 않은 값 및 경계값을 포함하는 최소한의 유용한 입력 세트를 애플리케이션에 제공하여, 허용된 범위 내의 값만 필요한 출력을 생성하는지 확인하는 테스트입니다.

  • 🔘 핵심 아이디어: 각 입력 영역을 동등 클래스로 분할하고 모든 가능한 입력이 아닌 클래스당 하나의 대표 값을 테스트합니다.
  • ☑️ 경계 초점: 클래스 경계선 부근이나 경계선 바로 바깥쪽의 값은 중간 범위의 값보다 오프셋 오류를 훨씬 더 자주 드러냅니다.
  • 쌍을 이루는 기법: 동등성 클래스 분석은 그룹을 결정합니다.ping경계값 분석은 각 그룹의 어떤 구성원을 실행할지 결정합니다.
  • 🧪 실제 예제: 연령과 성별에 따라 대회를 배정하는 티켓팅 모듈은 네 개의 연령대를 짧고 가치 있는 테스트 세트로 축소합니다.
  • 📈 지식 의존성: 출력 결과가 올바른지 판단하려면 비즈니스 규칙이 필요하므로 이 기법은 작고 잘 이해되는 논리 덩어리에 적합합니다.

동등 클래스와 경계값을 활용한 소프트웨어 테스트에서의 도메인 테스트

도메인 테스트란 무엇입니까?

도메인 테스트 하는 소프트웨어 테스팅 도메인 테스트는 최소한의 입력값을 제공하고 그에 맞는 출력값을 평가하여 애플리케이션을 테스트하는 과정입니다. 도메인 테스트의 주요 목표는 소프트웨어 애플리케이션이 허용 가능한 범위 내의 입력값을 받아들이고 요구되는 출력값을 제공하는지 확인하는 것입니다.

그것은 기능 테스트 시스템의 출력을 최소한의 입력값으로 테스트하여 시스템이 유효하지 않거나 범위를 벗어난 입력값을 허용하지 않도록 하는 기법입니다. 또한 중요한 요소 중 하나로 간주됩니다. 화이트 박스 테스트 이 방법은 시스템이 지정된 또는 유효 범위를 벗어난 입력, 조건 및 인덱스를 허용해서는 안 된다는 것을 추가로 검증합니다.

도메인 테스트는 각 도메인마다 다르므로 소프트웨어 시스템을 테스트하려면 해당 도메인에 대한 전문 지식이 필요합니다.

더 간단한 도메인 테스트 실습

도메인 테스트에서는 도메인을 하위 도메인(동등 클래스)으로 나눈 다음 각 하위 도메인의 값을 사용하여 테스트합니다. 예를 들어 테스트용으로 웹사이트(도메인)가 제공된 경우 테스트의 용이성을 위해 웹사이트를 작은 부분(하위 도메인)으로 분할합니다.

도메인은 임의의 입력 변수 또는 여러 입력 변수의 조합에 대한 테스트를 포함할 수 있습니다.

실무자들은 도메인 테스트의 가장 간단한 사례를 "경계 테스트" 또는 "동등 클래스 분석"이라는 두 가지 다른 이름으로 연구하는 경우가 많습니다.

경계 테스트 - 경계값 분석 (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세 이상인 경우 남학생과 여학생 모두 시 대회에 참가해야 합니다.

여기서 입력값은 나이와 성별이며, 이에 따라 대회 참가 티켓이 발급됩니다. 이 경우는 입력값을 분할하거나 간단히 그룹화하는 예입니다.ping 가치관이라는 개념이 등장하게 됩니다.

값을 클래스로 그룹화하는 방법은 무엇입니까?

값들을 분할한다는 것은 겹치지 않도록 나누는 것을 의미합니다.ping 하위 집합.

앞에서 설명한 것처럼 파티셔닝에는 두 가지 유형이 있습니다.

  • 등가 분할 동등 분할은 소프트웨어 단위의 입력 데이터를 동등한 데이터 파티션으로 나누는 소프트웨어 테스트 기법입니다. 테스트 케이스 도출될 수 있습니다. 원칙적으로 테스트 케이스는 각 파티션을 최소 한 번 이상 포함하도록 설계됩니다.
  • 경계값 분석 경계값 분석은 특정 범위 내의 경계값을 대표하는 값을 포함하도록 테스트를 설계하는 소프트웨어 테스트 기법입니다. 이 개념은 '경계'에서 유래했습니다.

위 예시에서는 값을 부분집합으로 나누고 있습니다. 나이를 다음과 같은 범주로 나눕니다.

  • 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 중 하나를 선택해야 합니다. 따라서 선택된 나이 "8"은 (5세 초과 10세 이하) 연령 그룹에 대한 유효한 입력 나이입니다. 이러한 분할 방식을 동등 분할이라고 합니다.

시나리오 취해야 할 경계값 동등 분할 값
남아 - 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

프로그램이 테스트를 통과했는지 실패했는지 어떻게 알 수 있나요?

기능 구현의 성공 여부는 위 시나리오들의 결과뿐만 아니라 입력값과 예상 출력값에도 달려 있으며, 이를 위해서는 해당 분야에 대한 지식이 필요합니다.

예시 결과 확인: 아래 화면은 각 연령 및 성별 조합에 대한 발권 결과를 보여줍니다.

각 연령 및 성별 조합에 대한 티켓팅 출력 결과를 사용하여 도메인 테스트 결과를 결정합니다.

따라서 위의 모든 테스트 케이스를 통과하면 대회 티켓 발권 도메인을 통과한 것으로 간주합니다. 그렇지 않으면 해당 도메인을 통과하지 못한 것으로 간주합니다.

도메인 테스트 구조

일반적으로 테스터는 도메인 테스트에서 다음과 같은 단계를 따릅니다. 이러한 단계는 테스트 요구 사항에 따라 사용자 지정하거나 생략할 수 있습니다.

  • 잠재적으로 흥미로운 변수를 식별합니다.
  • 지금 분석할 수 있는 변수를 식별하고 순서를 지정합니다(최소에서 최대로 또는 그 반대로).
  • 위와 같이 경계값과 동등등급값을 생성하고 식별합니다.
  • 이차적 차원을 파악하고 각각을 고전적인 방식으로 분석하십시오. (위 예시에서는 성별이 이차적 차원입니다.)
  • 결과를 보유하는 변수(출력 변수)를 식별하고 테스트합니다.
  • 프로그램이 이 변수의 값을 어떻게 사용하는지 평가하십시오.
  • 조합 테스트를 위해 잠재적으로 관련된 추가 변수를 식별하십시오. 의사결정표 테스트 할 수 있습니다.
  • 명확한 차원에 부합하지 않는 위험을 상상해 보세요.
  • 분석되지 않은 변수를 식별하고 나열합니다. 나중에 분석할 정보를 수집합니다.
  • 위험/동등성 표로 분석을 요약하세요.

자주 묻는 질문

실제로는 두 가지 명칭 모두 사용됩니다. 명세에서 파생된 클래스는 이를 가능하게 합니다. 블랙 박스 이 기법은 코드에서 파생된 클래스를 사용하여 화이트박스 분석을 가능하게 합니다. 분석 자체는 동일합니다.

이 방법은 테스트 케이스 수가 매우 적은 상태에서 오류 발생 가능성이 높은 부분을 다룹니다. 하지만 한계는 분명히 존재합니다. 경계를 정확하게 규정하기 어렵고 전체 워크플로우를 실행해 본 적이 없기 때문에 다른 방법을 대체하기보다는 보완하는 역할을 합니다.

동등 분할은 도메인 테스트의 한 단계이며, 도메인 테스트는 변수 순서 지정, 경계 분석 추가, 보조 차원 및 출력 변수 처리, 그리고 최종적으로 위험표 생성을 포함합니다.

두 개념은 겹치지만 완전히 동일하지는 않습니다. 이 글에서는 입력 영역 분석을 다루며, 산업 현장에서의 활용 사례는 다음과 같습니다. 의료 분야 테스트 해당 분야에 대한 지식을 바탕으로 한 테스트이며, 이는 예상되는 결과를 판단하는 데 여전히 필요합니다.

AI 비서는 요구사항을 읽고 후보 동등 클래스, 경계값 및 누락된 유효하지 않은 사례를 제안합니다. 하지만 테스터는 여전히 실제 경계를 확인해야 합니다. 잘못 추론된 범위는 신뢰성은 높지만 쓸모없는 테스트 세트를 생성하기 때문입니다.

GitHub 부조종사 클래스와 엣지가 프롬프트나 코드에 나타나면 매개변수화된 테스트 메서드를 작성합니다. 명시되지 않은 비즈니스 제한 사항은 테스터가 제공해야 합니다.

모든 조합은 기하급수적으로 증가하므로 실제로 적용하기는 어렵습니다. 먼저 각 변수를 개별적으로 분석한 다음, 쌍별 비교 또는 직교 배열 위험한 조합에 대한 선택.

유효한 클래스만 테스트하고 건너뛰세요.ping 부정적인 테스트규칙이 배타적인 경우에도 포괄적인 경계를 사용하고 출력 변수를 완전히 무시합니다.

이 게시물을 요약하면 다음과 같습니다.