Ⅰ. 소프트웨어 테스트 란 ?
- 겉으로 확인되지 않은 결함(Fault)을 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차입니다.
- 소프트웨어를 사용과 관련된 오류 발견을 목적으로 프로그램을 실행하여 해당 프로그램의 품질을 평가하는 과정입니다.
- 개발된 소프트웨어의 결함과 문제를 식별하고 품질을 평가하며 품질을 개선하기 위한 일련의 활동입니다.
- 일반적으로 테스트 케이스에 따라 SW를 동적으로 실행시켜 예상결과치와 비교 분석합니다.
- SW의 동작과 성능, 안정성이 요구되는 수준을 만족하는지 확인하기 위한 결함을 발견하는 메커니즘입니다.
- 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 수동 또는 자동 방법을 동원하여 검사하고 평가하는 일련의 과정입니다.
Ⅱ. 소프트웨어 테스트 목적
- 프로그램의 잠재된 오류의 발견
- 기술적인 기능 및 성능의 확인
- 사용자 요구 만족도 향상
- 제품 신뢰도 향상
Ⅲ. 소프트웨어 테스트의 일반적인 원리
원리 | 내용 | 원인 |
결함 발견 | 결함제거가 아닌 결함의 발견을 목적으로 함 | Test 본연의 역할 |
불완전성 | 완벽한 테스팅은 불가능 무한경로, 무한입력값, 무한타이밍 |
자원의 한계 |
정황 의존 | 테스트는 테스트 주변환경에 의한 영향을 받음 | 외부요소, 심리요소 |
초기 집중 (요르돈 법칙) | 개발 설계 시 부터 테스트를 고려 결함의 조기발견 및 재유입 방지 |
품질비용 감소 |
결함 집중 | 결함의 80%는 20%코드에 집중 결함이 높은 곳에 자원집중 |
파레토 법칙 |
살충제 페러독스 | 동일한 테스트 전략, 기법을 적용할 시 내성이 생김 | 테스터의 수동적 자세 |
오류-부재 궤변 | 결함을 모두 제거하였다고 품질이 우수하다고 볼 순 없음 | SW 요구사항 불만족 |
Ⅳ. 소프트웨어 테스트 종류
테스트 종류 | 세부 내용 |
단위 테스트 (Unit Test) |
인터페이스 테스트 자료구조 테스트 수행경로 테스트 |
통합 테스트 (Integration Test) |
하향식 통합 상향식 통합 백본 통합 |
시스템 테스트 (System Test) |
보안 테스트 민감도 테스트 성능 테스트 |
인수 테스트 (Acceptance Test) |
알파 테스트 : 통제된 환경에서 선별된 사용자들(사내 직원 등)이 개발자와 함께 수행하는 테스트 베타 테스트 : 실제와 동일한 환경에서 사외의 사용자들이 테스트하게 하고 피드백을 받는 방법 |
설치 테스트 (Install Test) |
하드웨어 호환성 파일시스템 구성 다른 소프트웨어와의 연계 |
Ⅴ. 소프트웨어 테스트 접근방법에 따른 구분
소프트웨어 테스트 접근 방법 |
종류 |
정적테스트 | - 동료 검토 - 워크스루 * 개발 산출물을 작성하는 중에 산출물을 검토하고 결함을 찾아내는 기법 - 정형 기술 검토 * S/W 개발 산출물 대상 요구사항 일치여부, 표준 준수 및 결함 발생여부를 검토하는 정적 분석기법 |
동적 테스트 | - 소스 코드 열람에 따른 구분 블랙박스 테스트: 동치분할 검사, 경계값 분석, 오류 예측 검사, 비교 검사, 원인 효과 그래프 화이트박스 테스트: 조건 검사, 루프 검사, 기대값 분석, 데이터 흐름 검사 - 설계 기법에 따른 분류 명세 기반 테스트: 동치 분할, 경계값 분석, 상태 전이 모델 구조 기반 테스트: 제어흐름 테스트, 자료흐름 테스트 경험 기반 테스트: 애드혹 테스트, 탐색적 테스트 등 |
계획 정도에 따른 분류 | 애드혹 테스트: 계획 없이 휴리스틱으로 수행 탐색적 테스트: 최소한의 계획으로 수행 스크립트 테스트: 방법론 기반, 구체적 시나리오하에서 수행 |
Ⅵ. 블랙박스 테스트(Black-Box Test) 란?
- 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사입니다.
- 소프트웨어의 코드나 내부 구조에 대한 정보는 필요하지 않으며, 특징, 요구 사항 검사를 위해 공개된 설계도 등의 대외적으로 공개된 사항들을 통해 검사를 진행합니다.
- 개발자입장이 아닌 사용자 입장에서 소프트웨어 혹은 제품에 대한 요구사항과 결과물이 일치하는지 확인하기위한 테스트 기법입니다.
Ⅶ. 블랙박스 테스트 종류
블랙박스 테스트명 | 테스트 설명 |
동치 분할 기법 (Equivalence Partitioning) |
프로그램의 입력 데이터를 여러 분류로 나누어 검사 |
경계값 분석 기법 (Boundary Value Analysis) |
입력값의 경계값을 중심으로 예외 발생 검사 |
원인-결과 그래프 기법 (Cause-effect Graphing) |
입력데이터 간의 관계, 출력에 미치는 영향의 분석 그래프 이용 |
오류 예측 기법 (Fault Based Testing) |
테스터의 감각이나 경험, 지식을 통해 에러케이스를 예측 |
비교 검사 (Comparison Testing) |
테스트 대상과 비교 대상 프로그램에 같은 입력값을 넣어 데이터를 비교 |
Ⅷ. 화이트 박스 테스트(White-Box Test)
- 제품의 내부 요소들이 명세서에 따라 수행되고 충분히 실행되는가를 보장하기 위한 검사입니다.
- 모듈 안의 작동을 직접 관찰한다.
- 프로그램 원시 코드의 논리적인 구조를 커버하도록 테스트 케이스를 설계한다.
Ⅸ. 화이트박스 테스트 종류
화이트박스 테스트명 | 설명 |
기초 경로 검사 (Basic Path Testing) | Tom McCabe가 제안한 대표적인 화이트 박스 테스트 기법 수행 가능한 모든 경로 검사 |
조건 검사(Condition Testing) | 프로그램의 조건문에 초점을 맞추어 검사 |
루프 검사(Loop Testing) | 프로그램의 반복 구조에 초점을 맞추어 검사 |
데이터 흐름 검사(Data Flow Testing) | 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사 |
'어플리케이션' 카테고리의 다른 글
Tomcat 에 대해 알아보겠습니다. (0) | 2023.04.08 |
---|---|
암호기술에 대해 알아보겠습니다. (0) | 2023.02.13 |
httpd.conf 에 대해 알아보겠습니다 (0) | 2023.01.22 |
Log 4 Shell에 대해 알아보겠습니다. (0) | 2023.01.21 |
HTTP 특징과 세션,쿠키에 대해 알아보겠습니다 (0) | 2023.01.19 |