728x90

애플리케이션 테스트

애플리케이션 테스트의 개념

- 애플리케이션에 잠재된 결함을 찾아내는 과정

- 확인(Validation) : 개발된 소프트웨어가 요구사항을 만족시키는지 사용자의 입장에서 확인

- 검증(Verification) : 기능을 제대로 수행하고 명세서에 맞게 만들었는지 개발자의 입장에서 점검

- 테스트 전 개발한 소프트웨어의 유형을 분류하고 특성을 정리해서 중점적으로 테스트할 사항을 정리

 

애플리케이션 테스트의 필요성

- 미리 오류를 발견하고 새로운 오류의 유입 예방

- 사용자의 요구사항에 만족하는지 테스트해 제품의 신뢰도 향상

 

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

- 잠재적인 결함을 줄일 수 있지만 소프트웨어 자체 결함이 없다곤 할 수 없음

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

- 살충제 패러독스 현상을 방지하기 위해 테스트 케이스를 지속적으로 보완 및 개선

- 테스트를 정황에 따라 다르게 진행

- 결함을 모두 제거해도 사용자의 요구사항을 만족할 수 없으면 안 됨

- 작은 부분에서 시작해서 점점 확대하며 진행

 

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

프로그램 실행 여부

- 정적 테스트

    -> 프로그램을 실행하지 않고 소스코드나 명세서를 분석하여 테스트

    -> 개발 초기에 결함을 발견할 수 있어 비용이 절감

    ->워크 스루, 인스펙션, 코드 검사 등

- 동적 테스트

    -> 프로그램을 실행하여 테스트

    -> 개발의 모든 단계에서 진행

    -> 블랙박스 테스트, 화이트 박스 테스트

 

테스트 기반

- 명세 기반 테스트

    -> 사용자의 요구사항을 테스트 케이스로 만들어 구현하고 있는지 확인하여 테스트

    -> 동등 분할, 경계 값 분석

- 구조 기반 테스트

    -> 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 만들어 테스트

    -> 구문 기반, 결정 기반, 조건 기반, 결정 기반 등

- 경험 기반 테스트

    -> 테스터의 경험을 기반으로 테스트

    -> 요구사항에 대한 명세가 부족하거나 시간의 제약이 있는 경우

    -> 에러 추정, 체크 리스트, 탐색적 테스팅

 

시각

- 확인 테스트

    -> 사용자의 시각에서 결과를 테스트

    -> 요구사항을 만족하면서 정상적으로 동작이 되는지 테스트

- 검증 테스트

    -> 개발자의 시각에서 과정을 테스트

    -> 명세서에 맞게 완성되었는지 테스트

 

목적에 따른 테스트

- 회복 테스트 : 결함을 주고 잘 복구되는지 테스트

- 안전 테스트 : 시스템 보호 도구가 볼법적인 침입으로부터 보호할 수 있는지 테스트

- 강도 테스트 : 과부하 시 정상적으로 실행되는지 테스트

- 성능 테스트 : 응답 시간, 처리량 등을 테스트

- 구조 테스트 : 내부의 논리적인 경로, 소스 코드 복잡도 등을 평가

- 회귀 테스트 : 변경 혹은 수정에 따른 새로운 결함이 없는지를 테스트

- 병행 테스트 : 기존의 소프트웨어와 변경된 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트

 

동적 테스트

화이트박스 테스트

- 모듈의 원시 코드를 오픈하여 논리적인 모든 경로를 한번 이상 실행하면서 테스트하여 테스트 케이스를 설계

- 테스트 과정의 초기에 진행

- 설계된 절차에 초점을 둔 구조적 테스트

- 모듈 안의 동작을 직접 관찰

 

화이트박스 테스트의 종류

- 기초 경로 검사

    -> 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법

    -> 테스트 측정 결과를 통해 실행 경로의 기초를 정의

- 제어 구조 검사

    -> 조건 검사 : 프로그램 내의 논리적 조건을 테스트

    -> 루프 검사 : 프로그램 내의 반복 구조에 초점을 맞춰 테스트

    -> 데이터 흐름 검사 : 프로그램 내의 변수의 정의와 사용의 위치에 초점을 맞춰 테스트

 

화이트박스 테스트 검증 기준

- 문장 검증 기준 : 모든 구문이 한 번 이상 수행되도록 설계

- 분기 검증 기준 : 모든 조건문이 한 번 이상 수행되도록 설계

- 조건 검증 기준 : 모든 조건문에 대해 참/거짓인 경우가 한번 이상 수행되도록 설계

- 분기/조건 기준 : 모든 조건문과 조건문에 포함된 개별 조건식의 결과가 참/거짓인 경우가 한번 이상 수행되도록 설계

 

블랙박스 테스트

- 소프트웨어가 수행할 특정 기능을 알기 위해 기능이 완전히 작동되는 것을 입증하는 기능 테스트

- 테스트 과정의 후반부에 진행

- 사용자의 요구사항 명세를 보면서 구현된 기능을 테스트

- 소프트웨어 인터페이스에서 실시

 

블랙박스 테스트의 종류

- 동치(동등) 분할 검사 : 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사

- 경계값 분석 : 입력 조건의 경계값을 테스트 케이스로 선정하여 검사

- 원인-효과 그래프 검사 : 입력 데이터 간의 관계과 출력의 영향을 미치는 상황을 분석 후 효용성이 높은 테스트 케이스를 선정하여 검사

- 오류 예측 검사 : 과거 경험이나 확인자의 감각으로 테스트

- 비교 검사 : 여러 프로그램에 동일한 테스트 자료를 제공하여 동일한 출력이 나오는지 확인하는 검사

 

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

단위 테스트

- 코딩 직후 모듈이나 컴포넌트에 초점을 맞춰 테스트

- 인터페이스, 외부적 I/O, 자료 구조 등을 검사

- 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행

- 구조 기반 테스트 : 화이트 박스 테스트를 시행하여 제어 흐름이나 조건 결정을 목적으로 함

- 명세 기반 테스트 : 블랙 박스 테스트를 시행하여 동등 분할이나 경계값 분석을 목적으로 함

 

통합 테스트

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

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

- 비점진적 통합 방식

    -> 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트

    -> 빅뱅 통합 테스트 방식 

    -> 오류 발견 및 장애 위치 파악이 어려움

- 점진적 통합 방식

    -> 모듈 단위로 단계적으로 통합하면서 테스트

    -> 하향식 / 상향식 / 혼합식 테스트 방식

    -> 오류 수정이 용이하고 인터페이스 관련 오류를 완전히 테스트할 수 있음

- 하향식 통합 테스트

    -> 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트

    -> 깊이 우선 통합법이나 넓이 우선 통합법 사용

    -> 상위 모듈에선 테스트 케이스 사용이 어려움

    -> 스텁 : 상위 모듈은 있지만 하위 모듈이 없는 경우 하위 모듈 대체

- 상향식 통합 테스트

    -> 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트

    -> 하나의 주요 제어 모듈과 종속 모듈의 그룹인 클러스터가 필요

    -> 드라이버 : 상위 모듈 없이 하위 모듈이 있는 경우 하위 모듈 구동

- 혼합식 통합 테스트

    -> 하위 수준에서는 상향식 통합 상위 수준에서는 하향식 통합을 사용하여 최적의 테스트를 지원

    -> 샌드위치 통합 테스트

- 회귀 테스팅

    -> 이미 테스트된 프로그램의 테스팅을 반복

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

 

시스템 테스트

- 개발된 소프트웨어가 원하는 환경에서 수행되는지 테스트

- 실제 환경과 유사하게 만든 테스트 환경에서 진행

- 기능적 요구사항 : 명세서 기반의 블랙박스 테스트

- 비기능적 요구사항 : 구조적 요소에 대한 화이트박스 테스트

 

인수 테스트

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

- 사용자가 직접 테스트

- 사용자 인수 테스트 : 사용자가 시스템 사용의 적절성 여부 확인

- 운영상의 인수 테스트 : 시스템 관리자가 시스템 인수 시 수행

- 계약 인수 테스트 : 계약상의 조건을 준수하는지 확인

- 규정 인수 테스트 : 규정에 맞게 개발되었는지 확인

- 알파 테스트 : 개발된 환경에서 사용자가 개발자 앞에서 수행

- 베타 테스트 : 사용자의 환경에서 사용자가 직접 테스트 수행

실기 정리

 

2021 정보처리기사 실기 정리

본 정리 글은 시나공 정보처리기사 실기책과 2020년 기출문제 등을 참고하여 작성하였습니다. -> 책 정보 확인하기 시나공 정보처리기사 실기 수험생들의 궁금증을 100% 반영시험에 나올만한 내

1d1cblog.tistory.com

 

728x90

+ Recent posts