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

애플리케이션 테스트

by 두두리안 2022. 6. 29.
728x90

목차

1.테스트
2.테스트 기법
3.테스트 기법에 따른 테스트 기법

1.테스트

1-1. 테스트의 개념

* 구현된 소프트웨어 대상으로 오류를 찾아내는 작업
* 사용자가 요구하는 기능의 성능, 사용성, 언전성 등을 만족하지 못하는 결함을 찾아내는 활동
* 테스트는 모든 종류의 입력에 정확하게 응답하며, 수용 가능한 시간 내에 그 기능을 수행하며 충분히 사용 가능한지 평가

1-2. 테스트의 필요성

* 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발해야 한다
* 코드리뷰: 해당 프로그램을 개발하지 않은 개발자가 소스코드를 검토
* 인스펙션: 표준사항, 명세서에 서술된 내용을 바탕으로 결과의 편차를 검증
* 사용자의 요구사항을 만족하도록 반복적인 테스트를 진행하여 신뢰도를 향상 시켜야 한다

1-3. 테스트의 원칙

1. 프로그램의 계획 단계부터 테스트를 진행
    * 소프트웨어 생명주기의 단계별로 적절한 테스트 진행
2. 완벽한 테스트는 불가능
    * 반복적인 테스트로 잠재적인 오류를 줄일수는 있지만, 모든 오류를 발견할수 없다
3. 자신이 아닌 다른 개발자가 테스트
    * 자신이 코딩한 소스코드를 제3자가 소스코드를 검토
4. 결함 집중
    * 결함은 대부분 소수의 특정 모듈에 집중, 결함의발견, 가시화, 제거, 예방등을 효율적으로 진행
5. 살충제 패러독스
    * 동일한 테스트 케이스를 반복실행하면 더이상 새로운 결함을 발견할수 없으므로 주기적으로 테스트케이스 개선
6. 오류-부재의 궤변
    * 아무리 많은 오류를 제거한다고 해도 사용자의 요구사항을 만족하지 못하는 프로그램은 품질 높다고 말할수 없다

1-4. 일반적인 테스트 프로세스

1. 테스트 계획
2. 테스트 분석 및 디자인
3. 테스트 케이스 및 시나리오 작성
4. 테스트 수행
5. 테스트 결과 평가 및 보고서 작성
6. 결함 추적 및 관리

2.테스트 기법

2-1. 실행 기반 테스트

1. 정적 테스트
    * 프로그램을 실행하지 않고 요구사항 명세서, 소스코드를 대상으로 분석
    * 워크스루: 검토 회의 전에 미리 준비된 자료를 배포하여 사전검토 진행하고, 검토 회의를 빠르게 진행하여 오류를 조기 발견
    * 동료검토: 요구사항 명세서 작성자가 동료들에게 내용을 설명하면서 결함 발견
    * 인스펙션: 요구사항 명세서 작성자를 제외한 다른 전문가들이 명세서를 검토하여 결함, 표준위배, 문제점 파악
2. 동적 테스트
    * 프로그램을 실행하여 결함을 찾는 테스트
    * 블랙박스 테스트: 프로그램의 기능, 결과를 위주로 테스트
    * 화이트박스 테스트: 프로그램의 구조, 경로 등을 위주로 페트스

2-2. 설계 기반 테스트

1. 명세기반 테스트
    * 사용자 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현 여부를 확인하는 테스트
    * 동등분할, 경계 값 분석
2. 구조기반 테스트
    * 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 만들어 확인하는 테스트
    * 구문기반, 결정기반, 조건기반
3. 경험기반 테스트
    * 유사 소프트웨어나 기술등에 대한 테스터의 경험을 기반으로 수행되는 테스트
    * 요구사항 명세가 불충분 하거나 시간제약이 있는 경우에 효과적
    * 에러추정, 체크리스트, 탐색적 테스팅

2-3. 시간 기반 테스트

1. 검증(Verification) 테스트: 개발자의 입장에서 진행되며, 소프트웨어의 완성도를 테스트
2. 확인(Validation) 테스트: 사용자의 입장에서 진행되며, 요구사항 구현도를 테스트

2-4. 목적 기반 테스트

1. 회복(Recovery) 테스트
2. 안전(Security) 테스트
3. 강도(Stress) 테스트
4. 성능(Performance) 테스트
5. 구조(Structure) 테스트
6. 회귀(Regression) 테스트
7. 병행(Parallel) 테스트

3.테스트 기법에 따른 테스트 기법

3-1. 화이트박스(White Box) 테스트

1. 화이트박스의 개념
    * 모든 소스코드의 논리적인 경로를 테스트 케이스로 설계하는 방법
    * 코드의 제어구조 설계절차에 초점을 맞춰 테스트 케이스를 설계, 주로 테스트 과정 초기에 적용
    * 소스코드의 모든 문장을 한번 이상 테스트 수행하여 선택, 반복 등의 분기점을 테스트
2. 화이트박스 테스트의 종류
    * 기초 경로 테스트
        - 측정 결과를 기반으로 실행 경로의 기초를 정의
        - 복잡도 = 간선수 - 노드수 + 2
    * 기로 경로 복잡도 판정
        - 5 이하: 단순함
        - 10 이하: 구조적, 안정적
        - 20 이상: 매우복잡
        - 50 이상: 비구조적, 불안정
    * 제어 구조 검사
        - 조건검사: 소스코드의 논리적 조건을 테스트
        - 루프검사: 소스코드의 반복구조를 중점적으로 테스트
        - 데이터 흐름검사: 소스코드의 변수정의, 사용을 중점적으로 테스트

3-2. 블랙박스(Black Box) 테스트

1. 블랙박스의 개념
    * 요구사항 명세서를 기반으로 구현된 기능을 테스트 케이스로 설계하는 방법
    * 소프트웨어 인터페이스에서 실행되며 기능 테스트라고도 한다
    * 기능 및 인터페이스, 데이터 접근, 성능등의 오류를 발견하기 위해 테스트 후반부에 적용
2. 블랙박스 테스트의 종류
    * 동치 분할 검사
    * 경계값 분석
    * 원인-효과 그래프 검사
    * 오류 예측 검사
    * 비교검사

3-3. 테스트 커버리지

1. 테스트 커버리지의 개념
    * 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준
    * 테스트의 정확성과 신뢰성을 향상시키는 역할
2. 기능기반 커버리지
    * 애플리케이션의 전체기능을 모수로 설정하고 테스트
    * 실제 테스트가 수행된 기능의 수를 측정하는 방법
3. 라인기반 커버리지
    * 전체 코드의 라인수를 모수로 설정하고 테스트
    * 테스트 시나리오가 수행한 코드의 라인수를 측정하는 방법으로, 단위테스트에서는 라인기반 커버리지를 척도로 삼기도 한다
4. 코드기반 커버리지
    * 프로그램의 테스트 수행정도를 나타내는 값으로 테스트 수행의 완벽성을 측정
    * 구문 커버리지: 모든 명령문을 적어도 한번은 수행하는 커버리지
    * 결정, 분기 커버리지: 전체 결정문이 적어도 한번은 참과 거짓의 결과를 수행
    * 조건 커버리지: 결정 명령문 내의 각 조건이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 커버리지
    * 변경조건/결정 커버리지: 각 개별 조건식이 다른 개별 조건식에 영향을 받지않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지
    * 다중조건 커버리지: 결정조건내 모든 개발 조건식의 모든 가능한 조합을 100% 보장하는 커버리지

참고자료 : 이기적 환상콤비 정보처리기사

728x90

'자격증 > 정보처리기사' 카테고리의 다른 글

성능분석 및 품질평가  (0) 2022.06.30
애플리케이션 테스트 종류  (0) 2022.06.30
소프트웨어 패키징  (0) 2022.06.29
인터페이스  (0) 2022.06.27
통합구현도구(IDE)  (0) 2022.06.27