fbpx

소프트웨어 테스트에서 동등성 파티셔닝은 테스트 커버리지에 영향을 주지 않으면서 효율적인 테스트 케이스를 구축할 수 있도록 도와주는 블랙박스 테스트 기법입니다.

이 글에서는 동등성 클래스 파티셔닝이 무엇인지, 왜 유용한지 살펴보고 이 기술의 이점을 활용하기 위해 사용할 수 있는 몇 가지 프로세스와 접근 방식을 살펴봅니다.

 

동등성 클래스 파티셔닝이란?

소프트웨어 테스트에서 어떤 역할을 하나요?

QA 테스트 - 정의, 유형, 프로세스, 접근 방식, 도구 등!

모든 소프트웨어에는 특정 입력 조건이 있습니다. 소프트웨어 테스트의 맥락에서 이러한 입력 조건은 테스터가 소프트웨어의 품질과 기능을 검증하기 위해 사용해야 하는 값 또는 데이터를 설명합니다. 이러한 입력은 마우스 클릭과 같은 간단한 것부터 텍스트와 숫자까지 다양합니다.

소프트웨어 테스트에서 동등성 파티션은 소프트웨어를 사용하는 데 필요한 다양한 입력을 탐색하고 이를 동등성 클래스, 즉 소프트웨어의 동작에 동등한 영향을 미치는 입력 집합으로 그룹화합니다.

각 입력 그룹이 어떻게 작동할지 알고 있다면 그룹의 각 대표자를 테스트할 필요가 없습니다. 따라서 동등성 클래스 파티셔닝은 테스터가 중복 테스트의 빈도를 줄이는 데 도움이 되는 좋은 방법입니다. 마감일이 점점 더 촉박해지는 경쟁이 치열한 소프트웨어 개발 환경에서는 소프트웨어 테스트 수명 주기(STLC)에서 시간과 노력을 절약하는 것이 매우 중요합니다.

마지막으로, 동등성 테스트는 블랙박스 테스트 기법이라는 점에 주목할 필요가 있습니다. 즉, 테스터가 프로그램의 내부 코드나 내부 작동 방식에 대해 알 필요가 없다는 뜻입니다. 테스트는 입력, 출력 및 외부 동작을 기반으로 합니다. 따라서 이러한 테스트는 프로그램을 사용하는 동안의 사용자 행동에 중점을 두고 있습니다.

 

1. 소프트웨어 테스트 동등성 파티셔닝을 간단히 요약하면 다음과 같습니다.

동등성 파티셔닝은 소프트웨어 테스트 입력 데이터를 유효한 입력과 유효하지 않은 입력의 두 진영으로 나눕니다. 각 파티션 내의 값은 소프트웨어가 동일한 동작을 나타내도록 해야 합니다. 예를 들어

  • 파티션 A에 있는 한 값의 조건이 참이면 파티션 A의 다른 값도 참이어야 합니다.
  • 마찬가지로 파티션 A에 있는 한 값의 조건이 거짓이면 파티션 A의 다른 값도 거짓이어야 합니다.

테스트 환경에서는 각 파티션을 적어도 한 번은 커버해야 합니다. 논리적으로, 이는 파티션 A의 한 항목이 실패하면 다른 모든 입력도 실패한다는 것을 의미합니다. 이 프로세스를 통해 테스터는 파티션 A에 있는 각 입력을 테스트하는 대신 하나의 입력만 테스트하고 공통점을 기반으로 결과를 추정할 수 있으므로 시간을 절약할 수 있습니다.

 

2. 소프트웨어 테스트에서 동등성 클래스 테스트가 중요한 이유 2.

소프트웨어 테스트에서 동등성 클래스 테스트의 직접적인 이점을 살펴보기 전에 이 접근 방식이 왜 중요한지 정의해야 합니다.

모든 테스터는 소프트웨어 테스트에는 타협이 필요하다는 것을 알고 있습니다. 시간과 예산은 한정되어 있으므로 테스터는 주어진 리소스를 최대한 활용해야 합니다. 소프트웨어 테스트 동등성 파티셔닝은 입력 수를 줄임으로써 팀이 테스트의 효율성과 신뢰성 사이에서 균형을 찾는 데 도움이 됩니다.

 

동등성 파티셔닝의 이점

소프트웨어 테스트

보험 및 회계 분야의 로보틱 프로세스 자동화 사용 사례

소프트웨어 테스트에서 동등한 파티션은 다양한 이유로 테스트 팀에서 선호합니다. 다음은 가장 매력적인 몇 가지 사례입니다.

1. 효율성

동등성 파티션 테스트의 가장 큰 장점은 효율성에 있습니다. 테스터가 동등성 파티셔닝을 사용하면 테스트 커버리지에 영향을 주지 않으면서 필요한 테스트 케이스 수를 줄일 수 있습니다. 각 동등성 클래스에서 입력 사례를 선택하면 테스터는 소프트웨어가 다양한 입력에서 어떻게 작동하는지 이해하고 있다는 확신을 가질 수 있습니다.

2. 단순성

소프트웨어 테스트 동등성 파티셔닝의 또 다른 큰 장점은 단순성입니다. 유효한 데이터와 유효하지 않은 데이터로 다양한 입력 세트를 분류하면 테스트 계획이 훨씬 더 간단해집니다. 각 입력을 개별적으로 테스트하려면 많은 문서화와 조율이 필요합니다. 이를 하나의 대표적인 예로 줄이면 테스트 프로세스가 간소화됩니다.

향상된 커버리지

테스트에서 동등성 클래스를 사용하면 테스트 시간을 더 효율적으로 사용할 수 있습니다. 클래스에 대한 테스트 입력을 줄이면 각 클래스를 더 철저하게 테스트할 수 있습니다. 각 입력을 개별적으로 테스트했다면 이렇게 포괄적인 접근 방식은 솔직히 불가능했을 것입니다. 동등성 파티셔닝을 통해 팀은 유효 데이터와 유효하지 않은 데이터, 에지 케이스, 경계 값 등을 철저하게 테스트할 수 있습니다.

3. 재사용 가능성

소프트웨어 테스트에서 각 동등성 클래스를 설정하는 데 투자한 초기 시간은 향후 입력 테스트에 이러한 클래스를 재사용할 경우 나중에 큰 도움이 됩니다. 모든 파티션이 향후 테스트에 적합한 것은 아니지만, 적합한 파티션은 향후 프로젝트나 회귀 테스트 상황에서 많은 시간을 절약할 수 있습니다.

 

동등성 파티셔닝의 단점

소프트웨어 테스트

도전 과제 부하 테스트

동등성 파티셔닝은 몇 가지 주요 이점을 제공하지만, 모든 시나리오에 이상적인 솔루션은 아닙니다. 몇 가지 제한 사항을 살펴보겠습니다.

1. 입력 순서

특정 상황에서 입력 순서는 애플리케이션의 기능을 테스트하는 데 있어 매우 중요한 부분입니다. 이는 동등성 파티셔닝을 사용하여 실제로 줄일 수 있는 부분이 아닙니다. 테스터는 이러한 상황을 염두에 두고 좋은 커버리지를 제공하기 위해 대체 기술을 사용해야 합니다.

2. 복잡한 입력 종속성

복잡한 입력 종속성을 가진 복잡한 소프트웨어는 동등성 분할의 한계가 드러나는 또 다른 영역입니다. 예를 들어, 다양한 입력을 기반으로 계산을 출력하는 소프트웨어가 있습니다. 이 시나리오에서 테스터는 조합 폭발을 줄이고 결함을 분리할 가능성을 높이기 위해 다양한 기술을 사용해야 합니다.

 

이를 보완하기 위한 대안적 접근 방식

동등성 테스트의 한계

알파 테스트 vs 베타 테스트

동등성 파티션 테스트는 많은 테스트 시나리오에 적합하지만, 입력 값 간에 복잡한 종속성이 있는 매우 복잡한 소프트웨어의 경우 추가적인 보완 접근 방식이 필요할 수 있습니다.

복잡한 소프트웨어에 대한 테스트 케이스를 작성할 때는 이러한 접근 방식을 조합하여 사용하는 것이 좋습니다.

1. 쌍대 테스트

쌍별 테스트는 각 입력 매개변수 쌍의 가능한 모든 조합을 테스트하는 소프트웨어 테스트 기법입니다. 이 접근 방식은 각 매개변수 쌍이 적어도 한 번은 함께 테스트되도록 합니다.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. 의사 결정 테이블 테스트

의사 결정 표는 테스터가 다양한 입력 조합을 체계적으로 매핑하는 데 도움이 됩니다. 복잡한 종속성이 존재할 때 체계적인 커버리지를 보장할 수 있는 좋은 방법입니다.

3. 상태 전이 테스트

이 테스트 유형은 다양한 입력 조합에 따라 소프트웨어가 여러 상태 간에 어떻게 전환되는지 측정합니다.

4. 모델 기반 테스트

이 접근 방식에서는 소프트웨어의 내부 로직을 기반으로 모델을 만들고 자동화 도구를 사용하여 해당 모델을 기반으로 테스트 케이스를 만들어야 합니다. 이 기술은 복잡성을 처리하고 적절한 커버리지를 보장하는 데 능숙합니다.

 

동등성 클래스 파티셔닝 테스트 예제

베타 테스트 - 그것이 무엇인지, 유형, 프로세스, 접근 방식, 도구, 대 알파 테스트 등!

동등성 파티셔닝을 이해하는 가장 좋은 방법은 소프트웨어 테스트에서 동등성 클래스를 사용하는 방법과 위치를 살펴보는 것입니다. 다음은 개념을 더 시각화하는 데 도움이 되는 몇 가지 예시입니다.

 

1. 동등성 클래스 파티셔닝 테스트 예제 #1

온라인 주문 양식은 소프트웨어 테스트에서 동등성 클래스의 좋은 예입니다.

온라인 문구류 소매업체를 위한 앱을 개발 중이라고 가정해 보겠습니다. A4 용지 크기의 일반적인 보석금 주문서가 있습니다. 동등성 클래스를 사용하여 이 양식을 테스트하는 방법은 다음과 같습니다.

동등성 클래스:

A4 용지의 수량은 예를 들어 1~100의 특정 범위 내에 있습니다. 따라서 세 가지 클래스가 있습니다:

  • 1 ~ 100
  • 1 미만의 숫자
  • 100을 초과하는 숫자.

 

테스트 사례:

다음과 같은 예상 결과로 세 가지 테스트 사례를 실행해야 합니다.

  • 1에서 100 사이의 숫자 = 주문 처리됨
  • 1 미만의 숫자 = 오류 메시지
  • 100을 초과하는 숫자 = 오류 메시지

 

2. 동등성 파티셔닝 테스트 예제 #2

소프트웨어 테스트에서 동등성 클래스는 단순한 숫자 이상의 것을 다룰 수 있습니다. 이 예에서는 동일한 원리를 사용하여 파일 업로드 포털을 인증하는 방법을 살펴봅니다. 사용자가 신분 증명서를 업로드해야 하는 사이트를 테스트해야 하지만 특정 형식만 수락할 수 있다고 가정해 보겠습니다.

동등성 클래스:

  • 지원되는 문서는 PDF와 JPEG입니다.
  • 지원되지 않는 문서는 다른 모든 문서 형식입니다.
  • 문서 없음

 

테스트 사례:

  • PDF 또는 JPEG 업로드로 테스트 = 업로드 성공
  • 지원되지 않는 형식을 업로드하여 테스트 = 오류 메시지 발생
  • 파일 업로드가 없는 테스트 = 오류 메시지

 

동등성 파티셔닝을 구현하는 방법

소프트웨어 테스트 접근 방식

애자일 데브옵스 테스트 자동화: ZAPTEST 목업 기반 자동화 접근 방식에 대한 설명

테스트에서 동등성 클래스를 사용하려면 전략적인 접근 방식을 취해야 합니다. 다음은 소프트웨어 테스트에서 동등성 파티셔닝을 구현하는 데 유용한 단계별 가이드입니다.

 

1단계: 입력 변수 식별

 

각 소프트웨어는 다양한 입력 변수에 반응합니다. 복잡한 소프트웨어의 경우 이러한 변수는 엄청날 수 있습니다. 따라서 소프트웨어 요구 사항과 사양을 살펴보고 소프트웨어의 동작에 영향을 미치는 모든 변수를 정확히 파악하세요.

가장 눈에 띄는 입력 항목으로는 사용자 입력 양식이 있습니다. 그러나 목록에 대한 더 넓은 범위의 입력을 고려해야 합니다. 환경 변수, API 호출, 내부 계산 등을 고려할 수도 있습니다.

다음으로 다양한 유형의 가변 데이터를 이해해야 합니다. 이러한 변수를 정수, 부울, 문자열 등으로 분류하여 적절한 파티션을 정의할 수 있습니다.

마지막으로 입력 제약 조건을 살펴봐야 합니다. 허용되는 문자, 정의된 형식, 최소/최대 값 등이 이에 해당합니다.

 

2단계. 유효한 파티션과 유효하지 않은 파티션 확인

각 입력 변수를 살펴보고 유효한 결과와 유효하지 않은 결과에 따라 분할을 시작하세요. 테스트에서 동등성 클래스가 될 것입니다.

1. 유효한 파티션

유효한 파티션은 두 개의 클래스로 나눌 수 있습니다.

양의 동등성 클래스:

소프트웨어가 성공적으로 처리할 것으로 예상되는 값입니다. 예를 들어, 백분율 성적을 기록하는 소프트웨어의 경우 0에서 100 사이의 모든 성적이 유효합니다.

음의 동등성 클래스:

이 카테고리는 예상 입력 범위를 벗어났지만 소프트웨어에서 오류 메시지와 함께 처리해야 하는 값을 위한 카테고리입니다. 예를 들어 백분율 성적에 110을 입력하면 소프트웨어에서 “모든 값은 0~100이어야 합니다.”라는 오류 메시지를 반환합니다.

 

2. 잘못된 파티션

이러한 동등성 클래스에는 오류 또는 예기치 않은 동작을 트리거하는 입력이 포함됩니다. 위의 예에서는 A+ 또는 B 또는 이와 유사한 입력을 백분율 성적에 입력하려는 시도가 포함될 수 있습니다. 이러한 입력값은 기술적으로는 정확할 수 있지만, 수치상으로는 예상치를 벗어난 것입니다.

 

#3. 효과적인 테스트 케이스 작성

다음으로, 각 동등성 파티션을 적어도 한 번 이상 포함하는 테스트 케이스를 설계해야 합니다. 이 글의 앞부분에서 언급했듯이 이렇게 하면 적절한 테스트 범위를 확보할 수 있습니다.

먼저 각 동등성 파티션 내에서 유효한 데이터와 유효하지 않은 데이터를 모두 포괄할 수 있는 대표 값을 선택해야 합니다.

견고한 테스트 케이스 작성을 위한 팁

  • 경계 값에 대해 생각해 보세요: 파티션의 경계를 테스트해야 합니다. 최소, 최대, 포함, 제외 등. 이러한 영역은 버그가 발생할 가능성이 높은 영역입니다. 예를 들어, 입력 예상값이 0에서 100 사이인 경우 음수 값은 물론 101과 같은 숫자도 테스트합니다.
  • 유효한 테스트 사례와 유효하지 않은 테스트 사례 모두에 대해 긍정 및 부정 테스트 시나리오를 고려하세요.
  • 조합 테스트는 좋은 생각입니다. 위의 동등성 테스트 섹션에서 설명한 몇 가지 다른 접근 방식을 사용하여 동등성 테스트의 한계를 보완할 수 있습니다.
  • 입력 값을 특정 파티션으로 나눈 이유에 대한 근거를 문서화하고 각 테스트의 예상 동작을 명확하게 설명합니다.
  • 가능하면 시각적 도구를 사용하여 다이어그램이나 표를 사용하여 파티션을 매핑함으로써 테스트 케이스에 명확성과 객관성을 부여하세요.

 

#4. 테스트 케이스 예약 및 실행

다음과 같은 요소에 따라 작업의 우선순위를 정하세요:

  • 결함이 있을 가능성이 가장 높은 영역
  • 충돌이나 멈춤과 같은 심각한 시나리오가 발생할 가능성이 가장 높은 시나리오는 무엇인가요?

그런 다음 테스트를 실행하고 출력과 발생하는 오류를 기록합니다. 입력이 많은 복잡한 프로그램의 경우 RPA 도구를 사용하여 사용자 작업을 모방할 수 있습니다.

 

#5. 결과 분석

수집된 테스트 데이터를 풀링하고 결과를 분석합니다. 사용해야 하는 몇 가지 방법은 다음과 같습니다:

  • 각 테스트 사례를 살펴보고 실제 결과와 예상 결과를 비교하세요.
  • 불일치하는 부분을 찾아내고 버그와 결함을 조사하여 보고하세요.

 

#6 추가 팁

이 팁이 모든 시나리오에 적용되지는 않지만, 복잡한 소프트웨어 테스트에 유용할 것입니다.

  • 의사 결정 테이블은 동등성 파티션과 사용할 수 있는 다양한 입력 조합을 시각화하는 훌륭한 방법입니다.
  • 동등성 클래스가 거의 동일한 동작을 보이는 경우 병합하여 테스트 프로세스를 더욱 최적화할 수 있습니다.
  • 경계 값 테스트를 사용하여 결함 감지 개선
  • 가능하면 동등성 파티셔닝 테스트 사례를 자동화하세요.

 

동등성 분할 및 경계값 분석

소프트웨어 테스팅 자동화의 혼란 해소

동등성 파티셔닝은 파티션 내의 각 테스트가 동일한 결과를 생성한다는 가정을 전제로 합니다. 많은 경우에 해당하지만, 항상 효과가 있는 것은 아닙니다. 예를 들어, 실수로 파티션에 추가한 입력이 확인되지 않아 적용 범위가 줄어들고 향후 소프트웨어가 불안정해질 수 있습니다.

이 문제에 대한 해결책은 경계 값 테스트입니다. 이를 통해 소프트웨어 테스트 팀은 위험을 포함할 가능성이 가장 높은 영역에 집중하고 이를 기반으로 소프트웨어를 테스트할 수 있습니다. 즉, 입력 파티션의 가장자리나 경계에서 위험이 발생할 가능성이 가장 높다는 것입니다. 따라서 테스터는 다른 동등성 클래스 테스트 케이스 외에도 입력의 상한과 하한에서 테스트 케이스를 작성할 수 있습니다.

 

ZAPTEST를 통한 동등성 파티셔닝 및 자동화

최고의 무료 및 엔터프라이즈 소프트웨어 테스트 + RPA 자동화 도구

ZAPTEST와 같은 소프트웨어 테스트 자동화 도구는 팀이 테스트를 생성하고 실행하는 동안 동등성 파티셔닝을 자동화하는 데 도움이 될 수 있습니다.

이 유용한 블랙박스 테스트 접근 방식의 이점을 활용하는 데 ZAPTEST가 어떻게 도움이 되는지 살펴보세요.

 

1. 도구 선택

작업에 적합한 도구를 선택하는 것이 중요합니다. 대부분의 테스트 자동화 도구는 웹, 모바일 또는 데스크톱 테스트에 특화되어 있습니다. ZAPTEST는 다양한 플랫폼과 애플리케이션에서 테스트를 처리할 수 있으므로 확실한 선택이 될 것입니다.

 

2. 테스트 케이스 작성 및 실행

ZAPTEST 1Script를 사용하면 사용자 인터페이스를 스캔하여 테스트 자동화를 구축할 수 있습니다. 또한 개발 초기 단계에 있는 경우 애플리케이션 목업을 스캔할 수도 있습니다. 스캔 GUI 기능을 사용하면 ZAPTEST가 모든 테스트 개체를 스캔하여 개체 목록에 추가합니다.

여기에서 다이어그램에 개체를 추가하고 테스트 단계를 구축할 수 있습니다.

ZAPTEST를 사용하면 간단한 드래그 앤 드롭 인터페이스로 케이스 작성을 자동화할 수 있습니다. 코딩 전문 지식이 없어도 ZAPTEST로 테스트 케이스를 빌드할 수 있습니다. 따라서 여기에서 드롭다운 방식에서 관련 작업을 선택하고 인터페이스에 필요한 입력 값을 기반으로 테스트 케이스를 작성할 수 있습니다. 그런 다음 각 동등성에 대한 테스트 케이스를 작성하고 테스트 케이스를 실행할 수 있습니다. 테스트 케이스를 재사용하고 스텝 편집기에서 편집할 수도 있어 많은 시간을 절약할 수 있습니다.

 

3. 보고 및 테스트 사례 관리

ZAPTEST를 사용하면 테스트 케이스를 병렬로 실행하여 상당한 시간을 절약할 수 있습니다. 이렇게 하면 많은 수의 서로 다른 동등성 파티션을 한 번에 실행하거나 특정 테스트 그룹을 실행하는 데 도움이 될 수 있습니다.

각 테스트 사례와 관련된 자세한 실패/합격 보고서, 스크린샷, 실행 로그, 성능 메트릭 덕분에 결과를 쉽게 수집할 수 있습니다.

 

4. 테스트 케이스 유지 관리

또한 고품질 버전 관리 기능 덕분에 테스트 케이스를 간편하게 추적하고 유지 관리할 수 있습니다. 또한 ZAPTEST 사용자는 테스트를 복제하고 재사용하여 새로운 차원의 효율성을 달성할 수 있습니다.

ZAPTEST는 테스트 케이스 자동화 외에도 훨씬 더 많은 기능을 제공합니다. 자동화할 수 있는 모든 것이 자동화되는 하이퍼오토메이션이 지배하는 미래에서 ZAPTEST는 2-in-1 기능을 제공하여 DevOps와 BizOps 간의 격차를 해소합니다.

 

마지막 생각들

동등성 파티셔닝은 테스터가 효율성과 정확성 사이에서 균형을 맞춰야 하는 상황에 적합한 솔루션입니다. 거의 무한한 범위의 입력을 허용하는 일부 소프트웨어의 경우, 동등성 클래스 파티셔닝은 팀이 테스트 데이터를 관리하기 쉬운 한 입 크기의 덩어리로 나누어 각각을 철저히 테스트할 수 있도록 도와줍니다.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo