정보처리기사 필기발행일 2024. 3. 4.원본 https://blog.naver.com/jword_/223368297665 ↗

단위테스트란? 인수테스트란?

단위테스트란? 인수테스트란? — #정보처리기사 #개발자의도구들 #단위테스트 #인수테스트 24년도 1회차 정보처리기사 필기 시험대비 공부를...

#정보처리기사 필기#Naver Blog

#정보처리기사 #개발자의도구들 #단위테스트 #인수테스트

​

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)

사용자의 요구사항을 충족시키는지에 대해 중점을 두고 테스트

​

사용자가 직접 테스트 한다. 문제가 없다면 인수가 완료되고 프로젝트는 종료된다.

​

종류

알파 테스트: 사용자가 개발자 앞에서 직접 테스트 하는 기법. 통제된 환경에서 진행되며, 오류와 사용상의 문제점을 함께 보며 기록한다.

​

베타 테스트: 필드 테스팅이라고 불리며, 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스팅 기법이다.

​

실업무를 가지고 사용자가 직접 테스트 하는 것으로, 개발자에 의해 제어되지 않는 상태에서 테스트가 행해진다. 발견된 오류와 사용상의 문제는 개발자에게 주기적으로 보고된다.

​

-> 장소에 따라 나뉜다고 생각하면 기억하기 쉽다.

​

​