정보처리기사/[inflearn] 필기 (완)

정보처리기사 - 제2과목 소프트웨어 개발 / 애플리케이션 테스트 관리 (1)

web_seul 2022. 3. 30. 08:28

 제2과목 애플리케이션 테스트 관리 

▷ 애플리케이션 테스트 관리 A

> 애플리케이션 테스트

- 애플리케이션 테스트의 개념 : 잠재되어있는 결함을 찾아내는 행위, 고객의 요구사항 확인, SW기능 수행 검증

- 애플리케이션 테스트의 필요성 : 프로그램 실행전 오류발견 예방, 반복테스트-신뢰도 향상

- 애플리케이션 테스트의 기본 원리 : 잠재적 결함 감소, 완벽한 테스트는 불가능, 특정한 모듈에 집중된 결함 20%의 코드에서 80%의 결함이 발견됨(파레토 법칙), 결함이 없어도 사용자의 요구를 만족하지 못하면 품질이 높다고 할 수 없다(오류 부재의 법칙), 테스트와 위험은 반비례하며 작은 부분부터 진행된다

 

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

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

  정적 테스트 : 실행하지 않고 코드로 테스트, 초기의 발견과 SW비용 절감 ex. 워크스루, 인스펙션, 코드검사

  동적 테스트 : 실행하는 테스트, SW개발의 모든 단계에서 실행 ex. 블랙박스, 화이트박스

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

  명세 기반 테스트 : 사용자의 요구사항을 명세화하여 빠짐없이 확인 ex. 동등분할, 경계값분석

  구조 기반 테스트 : 내부 논리적흐름

  경험 기반 테스트 : 테스터 경험 기반, 요구사항 명세 불분명, 테스트 시간이 제한적일 때 효과적

- 시각에 따른 테스트 (시각에 따라)

  검증테스트 : 개발자 시각, 명세서대로 완성되었는지

  확인테스트 : 사용자 시각, 요구사항을 만족하였는지, 정상적으로 작동하는지

- 목적에 따른 테스트

  회복테스트(고의적 결함발생 후 복구 테스트), 안전테스트(불법침입으로 부터 보호), 강도테스트(과부하시)

  성능테스트(응답시간, 처리양), 구조테스트(논리적경로, 소스코드 복잡도), 회귀테스트(변경 및 수정된 코드의 결함확인)

  병행테스트(기존SW와 변경SW 비교)

 

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

- 화이트 박스테스트(White Box Test) : SW 내부의 원시코드 논리적 구조, 복잡도 테스트, 시간소요, 오류위치파악에 유용

  기초경로 검사 : 논리적 복잡성 측정, 해당 원시코드의 흐름도 작성후 논리적 복잡도 측정 (순환복잡도 : 화살표수 - 노드수 + 2), 조건검사,(논리적조건) 루프검사(반복구조), 데이터흐름 검사(변수정의, 사용위치)

- 블랙박스 테스트(Black Box Test) : 내부구조, SW 작동원리x, 입출력결과로 기능유효성 테스트, SW의 역할, 기능검사, 동치분할검사(입력자료초점 검사 사례분석), 경계값 분석, 원인효과그래프 검사(입력데이터간의 관계, 출력에 미치는 영향), 오류예측 검사(과거의 경험), 비교검사(여러버전에 동일한 자료로 동일한 결과를 내는지)

 

▷ 애플리케이션 테스트 관리 B

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

- 애플리케이션 테스트

  단위테스트-통합테스트-시스템테스트-인수테스트

- V모델

  SW개발단계 : 요구사항-분석-설계-구현-/-단위-통합-시스템-인수 : 테스트 단계

- 단위테스트 : 구조기반테스트(내부구조 복잡도 검증, 화이트박스 테스트), 명세기반테스트(실행기반, 블랙박스 테스트)

- 통합테스트 : 모듈의결합 테스트

  비점진적 통합방식(모듈 결합 전체) : 빅뱅

  점진적 통합방식(모듈 단계별 결합) : 하향식 통합테스트(스텁(시험용모듈)), 상향식 통합테스트(상하위 모듈간의 인터페이스 역할), 혼합식 통합테스트

- 시스템 테스트

  기능적 요구사항(블랙박스), 비기능적 요구사항(화이트박스)

- 인수테스트

  사용자 인수테스트, 운영상의 인수테스트(관리자), 계약인수 테스트, 규정인수 테스트, 알파테스트(사용자가 개발자앞에서 테스트), 베타테스트(개발자없이 여러명의 사용자가 테스트)

 

> 애플리케이션 테스트 프로세스

- 애플리케이션 테스트 프로세스 : SW가 사용자의 요구대로 만들어졌는지 테스트 절차

  테스트 계획 -> 테스트 분석 및 디자인 -> 테스트 케이스 및 시나리오 작성 -> 테스트 수행 -> 테스트 결과평가 및 리포팅 -> 결함추적 및 관리

  테스트 계획서(목적, 범위, 일정, 절차, 대상, 책임역할), 테스트 케이스(입력값, 실행조건, 기대결과), 테스트 시나리오(수행 동작순서), 테스트 결과서

1) 테스트 계획 : 대상, 범위

  테스트 시작 조건 : 계획, 일정, 환경, 요구사항 명세서, 인력 역할, 책임

  테스트 종료 조건 : 테스트완료, 일정만료, 비용소진

2) 테스트 분석 및 디자인 : 테스트 목적, 원칙, 검토, 사용자 요구사항 분석 및 검토

3) 테스트 케이스 및 시나리오 작성 : 테스트 케이스 작성 -> 검토확인 -> 시나리오 작성

4) 테스트 수행 : 테스트 환경 구축(실제시스템과 유사한 SW, HW, 네트워크시설 구축) -> 테스트수행

5) 테스트 결과 평가 및 리포팅 : 비교분석, 결과작성, 결함중점 기록

6) 결함 추적 및 관리 : 에러발견, 에러등록, 에러분석, 결함확정, 결함할당, 결함조치, 결함 조치 검토 및 승인

 

> 테스트 케이스/테스트 시나리오/테스트 오라클

- 테스트 케이스(Test Case) : SW가 사용자의 요구사항을 준수했는가, 입력값, 실행조건, 기대결과, 명세서 / 테스트오류 감소, 인력과 시간 감소, 시스템설계

- 테스트 케이스 작성순서

  테스트 계획 검토 및 우선순위 결정 : 계획서 재검토, 범위, 접근방법 검토

  위험 평가 및 우선 순위 결정 : 위험정도에 따른 우선순위 결정, 초점 결정

  테스트 요구사항 정의 : 요구사항, 테스트대상 재검토

  테스트 구조 설계 및 테스트 방법결정 : 테스트 케이스에 대한 형식, 분류방법

  테스트 케이스 정의 : 입력, 실행조건, 예상결과 등 기술

  테스트 케이스 타당성 확인 및 유지보수 : 갱신

- 테스트 시나리오(Test Scenario) : 테스트케이스 순서에 따른 구체적 절차, 누락방지

- 테스트 시나리오 작성시 유의사항 : 시스템, 모듈, 항목별 여러개의 시나리오, 사용자의 요구사항 토대로, 정상적인 업무흐름인지

- 테스트 오라클(Test Oracle) : 사전에 정의된 참값을 대입하여 비교하는 기법, 예상결과 계산, 확인

  제한된 검증(몇몇 특정항목 제한), 수학적 기법, 자동화 가능(수행실행, 결과비교)

- 테스트 오라클의 종류

  참 오라클(true, 기대하는 결과, 모든 오류 검출), 샘플링 오라클(몇몇 데이터케이스에 대한 기대결과값 제공), 추정 오라클(샘플링오라클 개선, 기대결과와 추정), 일관성 검사 오라클(수행전 후가 동일한지)

 

반응형