단위테스트란? 인수테스트란?
단위테스트란? 인수테스트란? — #정보처리기사 #개발자의도구들 #단위테스트 #인수테스트 24년도 1회차 정보처리기사 필기 시험대비 공부를...
#정보처리기사 #개발자의도구들 #단위테스트 #인수테스트
24년도 1회차 정보처리기사 필기 시험대비 공부를 진행하였습니다.
\* 본글은 PC버전에 최적화 되어있습니다.
**\\ **공부방법론은 가장 첫글에 있습니다. 참고하실 분들은 참고하세요! \\ - 개발자의도구들
\\ 정보처리기사 전체 총 정리는 여기 있습니다!! \\
2과목, 소프트웨어 설계
view
정보처리기사에는 애플리케이션 테스트에 대한 방대한 내용을 균형있게 물어보고 있습니다. 이번글에는 테스트에 관한 최대한 많은 내용을 담아보았습니다.
애플리케이션 테스트
애플리케이션에 잠재되어 있는 결함을 찾아내는 행위를 포괄적이게 일컫는 말입니다.
확인과 검증
확인은 사용자의 입장에서 개발한 소프트웨어가 요구사항에 잘 구현되어있는지를 확인 하는 것
검증은 개발자의 입장에서 개발한 소프트웨어가 명세서를 잘 만족했는지를 검증한 것
애플리케이션 테스트 관련용어
결함집중(Defect Clustering)
: 대부분의 결함이 소수의 특정 모듈에 집중해서 발생하는 것이다.
파레토 법칙(Pareto Priciple)
: 20 : 80법칙 - 테스트에서도 동일하게 적용된다. 20%의 모듈에서 80%의 오류가 발견된다.
살충제 패러독스(Pesticide Paradox)
: 살충제를 지속적으로 뿌리면 벌레가 내성이 생겨 죽지 않는 현상을 의미하는 것으로. 동일한 세트의 케이스로 반복해서 테스트를 할 경우 새로운 오류를 발견하는 능력이 점점 감소함을 의미한다.
오류-부재의 궤변(Absence of Errors Fallacy)
소프트웨어 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어의 품질은 높다고 말할 수 없다는 것을 의미한다.
정적 테스트 vs 동적 테스트
정적 테스트
: 프로그램을 실행하지 않고 명세서, 소스 코드를 분석하는 방법이다. 개발 초기의 결함 발견에 용이하고 그 결과 비용을 낮추는데 도움이 된다.
종류: 워크스루, 인스펙션, 코드검사
동적 테스트
: 프로그램을 직접 실행하여 오류를 찾아내는 테스트. 소프트웨어 개발의 모든 단계에서 테스트 수행이 가능하다.
종류: 블랙박스 테스트,화이트 박스 테스트
기반에 따른 테스트
무엇을 중점으로 둘지 기반에 따른 테스트를 분류할 수 있다.
명세기반 테스트: 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 잘 구현되고 있는지에 대해 확인하는 테스트
구조 기반 테스트: 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트
종류: 구문 기반, 결정 기반, 조건 기반 등
경험 기반 테스트: 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트
명세가 불충분하거나, 테스트 시간에 제약이 있는 경우 수행하면 효과적이다.
목적에 따른 테스트
무엇을 목적으로 하는 테스트인지에 따라 테스트가 또 나뉜다.
회복 테스트: 여러 결함을 주어 실패하도록 유도한 뒤 올바르게 복구되는지 테스트
안전 테스트: 불법적인 침입으로부터 보호가 가능한지 테스트
강도 테스트: 과도한 정보량이나 빈도 등을 부과하여, 과부화시에도 정상작동 여부를 확인
성능 테스트: 실시간 성능, 전체적인 효율성, 응답시간, 처리량 등을 테스트
구조 테스트: 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트
회귀 테스트: 변경 또는 수정된 코드에 새로운 결함이 없는지
병행 테스트: 변경된 소프트웨어와 기존 소프트웨어에 동일 입력을 넣어 결과를 비교하는 테스트
단위 테스트(UNIT TEST)
소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 하는 것
인터페이스, 외부적 I/O, 자료구조, 독립적 기초 경로, 오류처리 경로, 경계 조건 등을 검사한다.
사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행한다.
단위 테스트는 구조 기반 테스트와 명세 기반 테스트로 나뉘지만 주로 구조 기반 테스트를 시행한다.
발견 가능 오류: 알고리즘의 원치 않는 결과, 탈출구가 없는 반복문, 틀린 계산 수식 등
인수 테스트(Acceptance TEST)
사용자의 요구사항을 충족시키는지에 대해 중점을 두고 테스트
사용자가 직접 테스트 한다. 문제가 없다면 인수가 완료되고 프로젝트는 종료된다.
종류
알파 테스트: 사용자가 개발자 앞에서 직접 테스트 하는 기법. 통제된 환경에서 진행되며, 오류와 사용상의 문제점을 함께 보며 기록한다.
베타 테스트: 필드 테스팅이라고 불리며, 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스팅 기법이다.
실업무를 가지고 사용자가 직접 테스트 하는 것으로, 개발자에 의해 제어되지 않는 상태에서 테스트가 행해진다. 발견된 오류와 사용상의 문제는 개발자에게 주기적으로 보고된다.
-> 장소에 따라 나뉜다고 생각하면 기억하기 쉽다.
