정보처리기사

정보처리기사 - 7장 애플리케이션 테스트 관리

ToMakeSure 2023. 4. 18. 00:20
반응형

[ 애플리케이션 테스트 ]

 - 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차, 확인 및 검증

 

[ 애플리케이션 테스트의 기본 원리 ]

 - 완벽한 테스트 불가능 : 잠재적인 결함을 줄일 수 있지만 결함이 없다고 증명할 수는 없음

 - 파레토 법칙 : 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙

 - 살충제 페러독스 : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상

 

[ 프로그램 실행 여부에 따른 테스트 ]

 - 정적 테스트 : 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트 , 워크스루, 인스펙션

 - 동적 테스트 : 프로그램을 실행하여 오류를 찾는 테스트 , 블랙박스 테스트, 화이트박스 테스트 

 

[ 테스트 기반에 따른 테스트 ]

 - 명세 기반 테스트 / 구조 기반 테스트 / 경험 기반 테스트

 

[ 시각에 따른 테스트 ]

 - 검증 테스트 ( 개발자 시각 ) / 확인 테스트 ( 사용자 시각 )

 

[ 목적에 따른 테스트 ] 

 - 회복 테스트 / 안전 테스트 / 강도 테스트 / 성능 테스트 / 구조 테스트 / 회귀 테스트 / 병행 테스트 

 

[ 테스트 기법에 따른 애플리케이션 테스트 ]

[ 화이트박스 테스트 ]
 - 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법 / 모듈 안의 작동을 직접 관찰 / 모든 문장을 한 번 이상 실행함으로써 수행 

[ 화이트박스 테스트 종류 ]
 - 기초 경로 검사 : 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정 할 수 있게 해주는 테스트 기법
 - 제어 구조 검사 : 조건검사 / 루프검사 / 데이터 흐름 검사

[ 화이트박스 테스트의 검증 기준 ] 
 - 문장 검증 기준 / 분기 검증 기준 / 조건 검증 기준 / 분기,조건 기준

[ 블랙박스 테스트 ] 
 - 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트
 - 인터페이스를 통해 사용자의 요구사항 명세를 보면서 구현된 기능을 테스트한다.

[ 블랙박스 테스트의 종류 ] 
 - 동치 분할 검사 : 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 결과가 맞게 출력되는지 확인
 - 경계값 분석 : 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용
 - 원인-효과 그래프 검사 : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법 
 - 오류 예측 검사 : 과거의 경험이나 확인자의 감각으토 테스트 
 - 비교 검사 : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트 

 

[ 개발 단계에 따른 애플리케이션 테스트 ] 

[ 단위 테스트 ] 

 - 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 

 - 인터페이스, 외부적 I/O, 자료 구조, 독립적 기초 경로 등을 검사 

 - 주로 구조 기반 테스트를 시행

 

[ 통합 테스트 ]

 - 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트

 - 모듈 간 또는 통합된 컴포넌트 간의 상호 작용 오류를 검사

 - 혼합식 통합 테스트 : 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용

 - 회귀 테스팅 : 통합테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인

 

[ 시스템 테스트 ] 

 - 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는 가를 점검

 - 기능적 / 비기능적 요구사항을 구분하여 테스트

 

[ 인수 테스트 ] 

 - 개발한 소프트웨어가 사용자의 요구사항을 충적하는지에 중점을 두고 테스트

 - 사용자가 직접 테스트

 - 알파테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 / 개발자와 함께 테스트

 - 베타테스트 : 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트 / 실업무를 가지고 사용자가 직접 테스트

 

[ 테스트 케이스 ] 

 - 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행조건, 기대결과 등으로 구성된 테스트 항목에 대한 명세서

 

[ 테스트 시나리오 ] 

 - 테스트 케이스를 적용하는 순서에 따라 여러개의 테스트 케이스를 묶은 집합

 

[ 테스트 오라클 ]

 - 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참값을 대입하여 비교하는 기법

 

[ 테스트 자동화 ] 

 - 스크립트 형태로 구현하는 자동화 도구를 적용해 쉽고 효율적으로 테스트를 수행 할 수 있도록 한 것

 

[ 결함 ] 

 - 소프트웨어가 개발자가 설계한 것과 다르게 동작 / 다른 결과가 발생되는 것

 

[ 애플리케이션 성능 지표 ] 

 - 처리량 / 응답시간 / 경과시간 / 자원 사용률

 

[ 복잡도 ] 

 - 시스템이나 시스템 구성 요소 또는 소프트웨어의 복잡한 정도를 나타내는 말

 

[ 시간 복잡도 ] 

 - 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것 

 - 빅오 표기법 : 알고리즘의 실행시간이 최악일 때를 표기하는 방법

 - 세타 표기법 : 알고리즘의 실행시간이 평균일 때를 표기하는 방법

 - 오메가 표기법 : 알고리즘의 실행시간이 최상일 때를 표기하는 방법

 

[ 순환 복잡도 ]

 - 논리적인 복잡도를 측정하기 위한 소프트웨어의 척도

 

[ 클린 코드 작성 원칙 ] 

 - 가독성 / 단순성 / 의존성 배제 / 중복성 최소화 / 추상화

반응형