728x90
반응형
1. 동등 분할 기법 (Equivalence Partitioning)
- 정의: 입력값을 동등한 그룹(Equivalence Class)으로 나누고, 각 그룹에서 대표값을 테스트하여 전체 시스템의 동작을 확인하는 기법입니다.
- 장점: 모든 입력값을 개별적으로 테스트할 필요 없이, 각 그룹에서 하나의 값만 선택하여 테스트하므로 효율적입니다.
- 사용 예시: 숫자 입력 범위가 1~100일 경우, 1~100 사이의 숫자를 하나의 그룹으로 보고, 이 그룹에서 하나의 숫자만 선택하여 테스트하는 방식.
- 적용 상황: 유사한 값들을 처리하는 경우, 전체 테스트를 줄이기 위한 대표값 선택.
2. 경계값 분석 기법 (Boundary Value Analysis)
- 정의: 동등 분할 기법과 함께 사용되며, 입력값의 경계 값에서 결함이 발생할 가능성이 높다는 점을 고려해 경계값을 집중적으로 테스트하는 기법입니다.
- 장점: 입력값의 경계에서 발생할 수 있는 오류를 쉽게 찾아낼 수 있습니다.
- 사용 예시: 숫자 범위가 1~100일 경우, 경계 값인 1, 100, 0, 101 등의 값을 집중적으로 테스트합니다.
- 적용 상황: 경계값에서 발생할 수 있는 오류가 중요할 때 사용.
3. 결정 테이블 테스트 (Decision Table Testing)
- 정의: 여러 입력 조건들이 결합되었을 때 어떤 결과를 도출하는지에 대한 논리적 규칙을 결정 테이블 형태로 나타내고 이를 기반으로 테스트하는 기법입니다.
- 장점: 조건이 복잡한 경우나 다양한 조합에 따른 결과를 명확하게 테스트할 수 있습니다.
- 사용 예시: 보험 상품의 가입 조건이 여러 개일 때, 각 조건을 표로 정리하여 조건 간의 상호작용을 테스트합니다.
- 적용 상황: 복잡한 비즈니스 규칙이나 다양한 조건의 조합을 테스트할 때 사용.
4. 오류 추정 기법 (Error Guessing)
- 정의: 테스트 경험을 기반으로, 자주 발생하는 오류나 결함이 있을 것으로 예상되는 부분을 집중적으로 테스트하는 기법입니다.
- 장점: 경험을 기반으로 하므로 특정 오류를 발견할 가능성이 높습니다.
- 사용 예시: 예를 들어, 입력 필드에서 빈 값이나 특수 문자가 자주 문제가 되는 경우 이를 집중적으로 테스트.
- 적용 상황: 테스트 경험이 많은 경우, 자주 발생하는 오류를 미리 예상하고 테스트할 때 유용합니다.
5. 원인-결과 그래프 기법 (Cause-Effect Graphing)
- 정의: 입력(원인)과 출력(결과) 간의 관계를 그래프로 표현하여 테스트 케이스를 도출하는 기법입니다.
- 장점: 입력과 출력 간의 복잡한 상관관계를 시각적으로 표현하여, 오류를 발견하기 쉽게 만듭니다.
- 사용 예시: 시스템의 특정 입력이 어떤 결과를 초래하는지 논리적으로 그래프로 표현하여, 테스트 케이스를 도출.
- 적용 상황: 입력과 출력 간의 상관관계가 복잡한 경우.
6. 조건 커버리지 (Condition Coverage)
- 정의: 논리적 조건이 참(True)과 거짓(False) 모두 평가될 수 있도록 테스트하는 기법입니다.
- 장점: 프로그램의 모든 논리적 조건이 적어도 한 번씩 참과 거짓으로 평가되도록 보장합니다.
- 사용 예시: 조건문(if (A && B))에서 A와 B 각각이 참, 거짓일 때의 상황을 모두 테스트합니다.
- 적용 상황: 조건문이 중요한 경우에 사용.
7. 문장 커버리지 (Statement Coverage)
- 정의: 프로그램의 모든 문장(Statement)이 적어도 한 번 실행되도록 테스트하는 기법입니다.
- 장점: 프로그램의 코드가 최소 한 번씩은 실행되도록 보장합니다.
- 사용 예시: 프로그램 내의 모든 문장이 실행되었는지 확인하기 위해 각 코드 블록을 최소한 한 번 이상 테스트.
- 적용 상황: 프로그램의 코드 블록이 빠짐없이 실행되었는지 확인할 때 사용.
8. 분기 커버리지 (Branch Coverage)
- 정의: 프로그램의 모든 분기점(if, switch 등)에서 모든 가능한 분기가 최소 한 번 실행되도록 보장하는 기법입니다.
- 장점: 프로그램의 모든 분기점이 테스트되었는지 확인할 수 있습니다.
- 사용 예시: 조건문에서 참(True)일 때와 거짓(False)일 때 모두 실행되도록 테스트.
- 적용 상황: 분기 구조가 많이 포함된 프로그램.
9. 결합 커버리지 (Combination Coverage)
- 정의: 여러 조건들이 조합될 때, 모든 조합의 조건들을 테스트하는 기법입니다.
- 장점: 조건 간의 상호작용이 테스트되도록 보장합니다.
- 사용 예시: 여러 조건(A, B, C)의 조합으로 발생할 수 있는 모든 상황을 테스트.
- 적용 상황: 조건의 조합이 중요한 경우.
10. 탐색적 테스트 (Exploratory Testing)
- 정의: 정해진 테스트 케이스 없이 테스터가 주도적으로 시스템을 탐색하며 테스트를 수행하는 방식입니다.
- 장점: 새로운 결함을 발견할 가능성이 있으며, 테스터의 직관과 경험을 기반으로 시스템을 테스트할 수 있습니다.
- 사용 예시: 기존의 테스트 케이스로는 발견되지 않은 결함을 찾기 위해 자유롭게 시스템을 사용하며 오류를 탐색.
- 적용 상황: 정해진 테스트 케이스 외에 더 많은 결함을 발견하고자 할 때 유용합니다.
11. 회귀 테스트 (Regression Testing)
- 정의: 소프트웨어 수정 후, 기존 기능에 이상이 없는지 확인하기 위해 기존 테스트 케이스를 다시 실행하는 테스트.
- 장점: 새로운 수정이 다른 기능에 부작용을 일으키지 않도록 보장합니다.
- 사용 예시: 프로그램의 새로운 기능 추가 후 기존 기능에 영향이 없는지 확인하기 위해 기존 테스트 케이스를 다시 실행.
- 적용 상황: 기능 수정이나 업데이트가 발생한 경우.
12. 검증 (Verification)과 확인 (Validation)
- 검증 (Verification): 소프트웨어가 명세서에 맞게 개발되었는지 확인하는 과정입니다. 즉, "우리가 소프트웨어를 제대로 만들고 있는가?"에 대한 검토.
- 확인 (Validation): 소프트웨어가 사용자의 요구 사항을 충족하는지 확인하는 과정입니다. 즉, "우리가 만든 소프트웨어가 제대로 작동하는가?"에 대한 검토.
요약
- 동등 분할 기법: 입력값을 동등한 그룹으로 나누어 테스트.
- 경계값 분석: 입력값의 경계에서 테스트.
- 결정 테이블 테스트: 조건 조합을 테이블로 작성해 테스트.
- 오류 추정 기법: 경험을 기반으로 자주 발생하는 오류를 추정하여 테스트.
- 원인-결과 그래프 기법: 입력과 출력 간의 관계를 그래프로 표현해 테스트.
- 문장 커버리지, 분기 커버리지, 조건 커버리지: 코드의 특정 부분을 테스트하여 최소 한 번씩 실행되었는지 확인.
- 회귀 테스트: 수정된 소프트웨어의 기존 기능이 제대로 작동하는지 확인.
이러한 다양한 테스트 기법을 이해하고, 상황에 맞게 적용하면 소프트웨어 테스트의 효율성과 신뢰성을 크게 향상시킬 수 있습니다.
'Category > 정보처리기사' 카테고리의 다른 글
| 관계 대수 연산 정리 (2) | 2024.10.09 |
|---|---|
| 참조 무결성(Referential Integrity)이란? (1) | 2024.10.09 |
| Equivalence Partitioning (동등 분할 기법)이란? (1) | 2024.10.09 |
| NAT(Network Address Translation)란? (1) | 2024.10.09 |
| ATM(Asynchronous Transfer Mode)이란? (1) | 2024.10.09 |