본문 바로가기
공부

정보처리기사 공부 애플리케이션 테스트 관리

by IMHz 2021. 2. 22.
반응형

소프트웨어 테스트

 

소프트웨어 테스트는 응용 애플리케이션이 사용자가 요구하는 기능과 성능 사용성, 안전성 등이 만족하는지를 확인하고 숨겨진 소프트웨어의 결합을 찾아내는 활동입니다.

 

소프트웨어 테스트는 프로그램에 잠재된 오류를 발견해 수정을 하기 위한 오류 발견 관점과 프로그램을 실행하기 전 동료 검토나 워크스루, 인스펙션을 통해 사전에 예반하는 오류 예방의 관점과 마지막으로 사용자의 요구사항에 만족하도록 반복적 테스트를 거쳐 제품의 신뢰도를 향상시키는 품질 향상의 관점에서 필요합니다. 

 

소프트웨어 테스트 원리

원리 설명
테스팅은 결함 존재를 밝히는 것 결함이 존재하는 것을 밝히고 결함을 줄이는 활동입니다.
완벽한 테스팅은 불가능 완벽하게 테스팅하려 시도하는 것은 시간과 자원을 낭비하는 일입니다.
개발 초기에 테스팅 시작 초기 테스트 설계시 결과를 빠르게 알 수 있고 테스팅 기간 단축과 재작업이 줄어들어 개발기간과 결함이 예방됩니다.
결함집중 20% 적은 수의 모듈에서 80%인 대다수의 오류가 발견되는 법칙입니다.
살충제 패러독스 동일한 테스트 케이스를 이용한 반복적인 테스트는 새로운 버그를 찾을 수 없는 법칙입니다.
테스팅은 정황에 의존적 소프트웨어의 성격에 맞춰 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행해야 합니다.
오류-부재의 궤변 요구사항을 충족시킬수 없단면 결함이 없도 품질이 높은 것은 아닙니다.

 

소프트웨어 테스트 유형

프로그램 실행 여부에 따라 동료 검토와 워크스루, 인스펙션과 같이 프로그램의 실행없이 구조를 분석해 논리성을 검증하는 정적 테스트와 화이트박스 테스트, 블랙박스 테스트 처럼 프로그램 실행을 요구하는 동적 테스트가 있습니다. 

 

테스트 기법에 따른 분류로는 화이트 박스 테스트와 블랙박스 테스트가 있습니다.

 

화이트박스 테스트(구조 테스트)는 프로그램 내부 로직과 구조를 기반으로 직접 보며 수행하는 테스트입니다. 화이트박스 테스트는 소프트웨어의 논리적 복잡도를 측정해 수행 경로의 집합을 정의하는 제어구조 테스트와 프로그램의 루프 구조를 이용해 실시하는 루프 테스트가 있습니다.  

 

화이트박스 테스트는 구문 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지 등을 포함합니다.

 

 

블랙박스 테스트(기능 테스트)는 외부 사용자의 요구사항 명세를 보며 수행하는 기법입니다. 블랙박스 테스트의 유형으로는 경계 값 분석 테스트, 결정 테이블 테스트 등이 있습니다.

유형 설명
동등 분할 테스트 입력 데이터의 영역이 유사한 도메인으로 유효 값/무효 값을 그룹핑하여 대표 값을 도출하는 테스트 기법입니다.
예를 들어 0<X<100이 있다면 X=10, X=-100, X=1000 다음의 대표 값을 통해 X의 값을 테스트 할 수 있습니다.
경계 값 분석 테스트 등가 분할 후 경계 값 부분에서 오류가 발생할 가능성이 높기 때무에 경계 값을 포함한 테스트 케이스들을 설계하여 테스트하는 기법입니다.
예를 들어 0<X<100이면 X=0, 1, 99, 100을 테스트하면 경계 값 부분을 확인할 수 있습니다.
결정 테이블 테스트 요구사항을 논리와 발생조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합 후 테스트하는 기법입니다.
상태전이 테스트 테스트 대상또는 시스템이나 객체의 상태를 구분해 이벤트에 의해 어느 상태에서 다른 상태로 전이 되는 경우의 수를 찾는 테스트 기법입니다.
유즈케이스 테스트 실제 사용되는 유즈케이스로 시스템이 모델링 되어 있으면 프로세스를 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법입니다. 
분류트리 테스트 SW의 일부나 전체를 트리 구조로 표현하여 분석해 테스트 케이스를 설계하는 기법입니다.
페어와이즈 테스트 테스트 데이터 값들 간 최소 한번씩 조합하는 방법으로 커버 할 기능적 범위가 모든 조합에 비해 상대적으로 적은 양이므로 이를 테스트 셋으로 구성하는 기법입니다.

 

테스트 종류에 따른 분류는 프로그램의 요구사항 명세서를 기반으로 테스트 케이스를 선정하는 명세 기반 테스트(블랙박스 테스트)와 소프트웨어 내부 논리 흐름을 따라 테스트 케이스를 선정하는 구조 기반 테스트(화이트박스 테스트) 마지막으로 유사 소프트웨어나 테스터의 경험을 토대로 수행하는 테스트 기법인 경험 기반테스트가 있습니다.

 

 

 


통합 테스트

 

통합 테스트(Integration Test)는 소프트웨어 각 모듈 간의 인터페이스 관련 오류와 경함을 찾아내기 의한 테스트 기법입니다. 

 

하향식 통합(Top Down)은 메인으로 부터 아래 방향으로 이동하며 깊이우선 또는 너비우선 방식으로 하향식으로 통합됩니다. 모듈과 모든 하위 컴포넌트를 대신하는 더미 모듈인 스텁(Stub)을 이용하여 하위 모듈의 반환 값을 전달해 통합을 진행합니다. 

 

상향식 통합(Bottom Up)은 최하위 레벨의 모듈또는 컴포넌트로 부터 위쪽 방향으로 이동하며 구축과 테스트를 진행하는 방식입니다. 상향식 통합에서는 상위 모듈의 입력과 출력을 확인하기 위한 더미 모듈인 드라이버(Driver)와 하위 모듈의 기능을 수행하는 클러스터(Cluster)를 이용해 통합을 진행합니다.

 

 


테스트 커버리지

 

테스트 커버리지(Test Coverage)는 주어진 테스트 케이스에 의해 수행되는 소프트웨어 테스트의 범위를 측정하는 기준이며 테스트의 정확성과 신뢰도를 향상시키는 역할도 합니다. 

 

테스트 커버리지는 테스트 대상 애플리케이션의 전체 기능을 모수로 두고 100% 달성을 목표로 실제 테스트가 수행된 기능의 수를 측정하는 기능 기반 커버리지와 애플리케이션의 전체 소스 코드의 라인 수를 모수로하여 시나리오가 수행한 소스 코드의 라인 수를 측정하는 라인 커버리지, 소스 코드의 구문과 조건 등의 구조 코드가 얼마나 테스트 되었는지 측정하는 코드 커버리지가 있습니다.

 

코드 커버리지 유형

 

유형 설명
구문 커버리지 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지입니다. 구문 커버리지는 조건문의 결과와 상관없이 구문 실행 수로 계산됩니다.
결정 커버리지 프로그램 내의 전체 결정문이 적어도 한 번은 참과 거짓 결과를 수행하는 커버리지입니다. 
if A and B라는 조건이 있다면 A와 B의 결과가 아닌 전체 조건식인 A and B의 결과로 참과 거짓이 나오도록 수행시키는 것을 말합니다.
조건 커버리지 결정 명령문 내의 각 조건이 적어도 한 번 참과 거짓의 결과가 되도록 수행하는 커버리지 입니다.
위와 같이 if A and B라는 조건이 있다면 A의 결과로 참과 거짓이 나오고 B의 결과로도 참과 거짓이 되도록 수행시켜야합니다.
조건/결정 커버리지 조건 커버리지와 결정 커버리지의 최소한의 조합으로 전체 조건식도 참과 거짓이 나오고 개별 조건식 또한 참과 거짓이 나와야합니다.
변경 조건/결정 커버리지 개별 조건식이 다른 조선식에 영향 받지 않고 전체 조건식에 독립적으로 영향을 주도록 변형시킨 커버리지입니다.
다중 조건 커버리지 결정 조건 내의 모든 개발 조건식의 모든 가능한 조합을 100% 보장하는 커버리지입니다.

관련글

 

2021년 정보처리기사 시험일정 총정리

2021년을 맞이해 이번년도의 정보처리기사의 일정, 시험과목 등 모든 정보에 대해서 알아보도록 하겠습니다. 한국산업인력공단에서 시행하는 국가자격증인 정보처리기사 자격증은 프로그램 설

kauphj17.tistory.com

 

정보처리기사 공부 요구사항확인

요구사항 요구사항이란 문제의 해결 또는 목적 달성을 위하여 고객에 의해 요구되거나, 표준이나 명세등을 만족하기 위하여 시스템이 가져야 하는 서비스 또는 제약사항입니다. 요구사항 파악

kauphj17.tistory.com

 

 

정보처리기사 공부 서버 프로그램 구현

개발환경 구축 개발환경 구축이란 개발환경 구성 시 시스템 요구사항을 정확히 이해한 뒤 개발 도구와 서버를 선정과 개발에 사용되는도구의 사용 편의성, 성능, 라이센스를 확인합니다. 개발

kauphj17.tistory.com

 

반응형

댓글