어플리케이션

소프트웨어 테스트에 대해 알아보겠습니다.

forward error correction Circle 2023. 1. 26. 08:02
반응형

Ⅰ. 소프트웨어 테스트 란 ?

- 겉으로 확인되지 않은 결함(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) 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사

 

반응형