본문 바로가기
자격증/정보처리기사 필기

정보처리기사 필기 요약 2과목 소프트웨어 개발 - 4장 애플리케이션 테스트 관리

by 리드민 2021. 8. 7.
반응형

정보처리기사 필기 요약 2과목 소프트웨어 개발 - 4장 애플리케이션 테스트 관리

 

SECTION 053 애플리케이션 테스트

(3) 애플리케이션 테스트의 기본 원리

애플리케이션의 결함은 특정 모듈에 집중되어 있다. 애플리케이션의 20%에 해당되는 코드에서 전체 80%의 결함이 발견된다고 하여 파레토 법칙을 정용하기도 한다.

애플리케이션 테스트에서는 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않은 '살충제 패러독스(Pesticide Paradox)' 현상이 발생한다. 

소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다. 이를 오류-부재의 궤변이라고 한다.

 

SECTION 054 애플리케이션 테스트의 분류

(1) 프로그램 실행 여부에 따른 테스트

정적 테스트 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 하는 테스트
개발 초기에 결함을 발견 가능하다
워크 스루, 인스펙션, 코드 검사
동적 테스트 프로그램을 실행
블랙박스 테스트, 화이트박스 테스트

(2) 테스트 기반(Test Bases)에 따른 테스트

명세 기반 테스트 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현
동등 분할, 경계 값 분석

(4) 목적에 따른 테스트

강도(Stress) 테스트 시스템이 과도한 정보량이나 빈도 등을 부과하여 과부화 시에도 소프트웨어가 정상적으로 실행되는지 확인

 

SECTION 055 테스트 기법에 따른 애플리케이션 테스트

(1) 화이트박스 테스트(White Box Test)

모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트

모듈 안의 작동을 직접 관찰

(2) 화이트박스 테스트의 종류

기초 경로 검사

제어 구조 검사

(3) 화이트박스 테스트의 검증 기준

문장 검증 기준

분기 검증 기준

조건 검증 기준

분기/조건 기준

(5) 블랙박스 테스트의 종류

동치 분할 검사(동치 클래스 분해) 동등 분할 기법이라고 한다.
타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 한다.
해당 입력 자료에 맞는 결과가 출력되는지 확인
경계값 분석(Boundary Value Analysis) 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 겸계값을 테스트 케이스로 선정하여 검사하는 기법이다.
원인-효과 그래프 검사(Cause-Effect Graphing Testing)  
오류 예측 검사(Error Guessing) 과거의 겸험이나 확인자의 감각으로 테스트하는 기법
비교 검사(Comparison Testing) 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법이다.

 

SECTION 056 단위 테스트

(2) 단위 테스트(Unit Test)

최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것이다.

(3) 통합 테스트(Integration Test)

통합된 컴포넌트 간의 상호 작용 오류를 검사한다.

(4) 시스템 테스트(System Test)

시스템에서 완벽하게 수행되는가를 점검하는 테스트

기능적 요구사항과 비기능적 요구사항으로 구분

(5) 인수 테스트 (Acceptance Test)

알파 테스트 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법이다.
통제된 환경에서 행해진다.
베타 테스트 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법이다
사용자가 직접 테스트, 개발자에 의해 제어되지 않은 상태에서 테스트가 행해진다.

 

SECTION 057 통합 테스트

(2) 하향식 통합 테스트

모듈 방향으로 통합

깊이 우선 통합법, 넓이 우선 통합법을 사용

주요 모듈들을 스텁으로 대체한다.

 

SECTION 062 애플리케이션 성능 분석

(1) 애플리케이션 성능

처리량(Throughput)↑ 일정시간 내에 애플리케이션이 처리하는 일의 양
응답시간(Response Time)↓ 애플리케이션에 요청을 전달한 시간 부터 응답이 도착할 때까지 걸린 시간
경과 시간(Turn Around Time)↓ 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
자원 이용률(Resource Usage)↑ 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 자원 사용률

운영체제의 성능척도 : 처리능력의 향상, 반환시간의 단축, 신뢰도의 향상, 사용가능도의 향상

 

SECTION 064 애플리케이션 성능 개선

(1) 소스 코드 최적화

클린 코드(Clean Code) : 누구나 쉽게 이해하고 수정 및 추가할 수 있는 단순, 명료한 코드 즉 잘 작성된 코드를 의미한다.

나쁜 코드(Bad Code) :

스파게티 코드 : 코드의 로직이 서로 복잡하게 얽혀있는 코드

외계인 코드 : 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드

클린 코드 작성 원칙

가독성 쉽게 읽을 수 있도록 작성한다.
의존성 배제 모듈에 미치는 영향을 최소화한다.
중복성 최소화 중복을 최소화한다.

 

반응형