본문 바로가기

정보처리기사 실기/02. 응용SW엔지니어링

[2020 정보처리기사 실기 - 애플리케이션 테스트 관리] 2. 애플리케이션 통합 테스트하기

 

 

 

 

* 유사 학습 모듈 - 애플리케이션 테스트 수행하기 : 애플리케이션 테스트 결과 분석

- 테스트 수행 : 어플리케이션 테스트 계획에 따라 서버 모듈, 화면 모듈, 데이터 입출력, 인터페이스 등 테스트 수행

- 애플리케이션 테스트 수행으로 발견된 결함을 유형별로 기록

- 애플리케이션 테스트 수행 결과 발견된 결함에 대해 원인을 분석하고 개선 방안을 도출할 수 있음

 

* 애플리케이션 결함 조치하기 : 애플리케이션 개선 조치사항 작성

- 애플리케이션 테스트 수행 결과에서 발견된 결함을 식별하고 조치에 대한 우선순위를 결정하고 적용

- 결함이 발생한 소스를 분석하고 기존에 구현된 로직과의 연관성을 고려하여 부작용이 최소화되도록 결함을 제거

- 애플리케이션 테스트 결과 결함 조치로 변경디는 소스의 버전을 관리하고 결함조치 결과에 대한 이력을 관리

 

* 애플리케이션 통합 테스트 수행

 

1) 통합테스트 

   - SW 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법

   - 목적 : 단위테스트가 끝난 모듈 또는 컴포넌트 단위 프로그램이 설계 단계에서 제시한 것과 동일하게 구현 되는 지 확인

   - 점증적인 방법과 비점증적인 방법으로 나뉨

      점증적인 방법 : 상향식과 하향식으로 나뉨

      비점증적인 방법 : 모든 컴포넌트를 사전에 통합하여 전체 프로그램을 한꺼번에 테스트하는 것

 

   - 하향식 통합 : 메인제어 모듈로부터 아래방향으로 제어의 경로를 따라 이동하며 진행

     (1) 메인제어 모듈은 작성된 프로그램을 사용하고 더미 모듈인 스텁 개발

     (2) DFS또는 BFS에 따라 스텁이 한번에 하나씩 실제 모듈로 대체

     (3) 각 모듈 또는 컴포넌트를 통합하면서 테스트가 수행됨

     (4) 테스트가 완료되면 스텁ㅇ이 실제 모듈 또는 컴포넌트로 작성

 

   - 상향식 통합 : 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 이동하면서 구축과 테스트

     (1) 최하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 클러스터로 결합

     (2) 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈인 드라이버를 작성

     (3) 각 통합된 클러스터 단위를 테스트

     (4) 테스트가 완료되면 각 클러스터들은 프로그램 위쪽으로 결합되고, 드라이버는 실제 모듈 또는 컴포넌트로 대체

 

   - 회귀 테스트 : 통합테스트 완료 후 변경된 모듈이나 컴퓨터의 새로운 오류 여부를 확인

     모든 어플리케이션의 기능을 수행할 테스트 케이스의 대표적인 샘플 도출

     변경에 의한 영향도가 가장 높은 애플리케이션 기능에 집중한 추가적인 테스트 케이스 도출

     실제 수정이 발생한 모듈 또는 컴포넌트에서부터 시행하는 테스트 케이스 도출

 

 

2) 테스트 자동화 도구

   - 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현, 

      테스트 시간 단축과 인력 투입 비용을 최소화하고 쉽고 효율적인 테스트를 수행할 수 있는 방법

   - 장점 : 테스트데이터 재입력 작업의 자동화, 일관성 검증, 객관적 평가, 다양한 표시 가능, UI없이 정밀한 테스트 가능

   - 단점 : 도구 사용 학습 필요, 단계별로 시간 비용 노력 필요, 상용 도구의 경우 고가, 유지 관리 비용이 높음

 

   - 도구 유형

     정적분석 도구 : 실행하지 않고 분석, 남은 결함을 발견하기 위해 사용, 소스 코드에 대한 이해를 바탕으로 도구로 분석

     테스트 실행 도구 : 테스트를 위해 작성된 스크립트를 실행

                                       데이터 주도 접근 방식 - 테스트 데이터를 스프레드시트에 저장, 스크립트 언어에 익숙하지 않아도 가능

                                       키워드 주도 접근 방식 - 키워드를 이용해 수행동작 정의, 특성에 맞춰 키워드에 대해 테일러링을 수행

     성능 테스트 도구 : 처리량, 응답시간, 경과시간, 자원사용률에 대해 가상 사용자를 생성하고 테스트를 수행

     테스트 통제 도구 : 테스트 계획 및 관리를 위한 테스트 관리 도구, 수행에 필요한 데이터와 도구를 관리하는 형상 관리 도구,

                                       결함에 대해 관리하고 협업 지원하는 결함 추적/관리 도구

     테스트 장치 : 테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 스크립트, 목 오브젝트

 

 

 

* 애플리케이션 테스트 결과 분석

 

1) 테스트 결과 분석

   - 소프트웨어 결함 : 에러 결함 결점 버그 실패와 같은 용어 사용

   - 에러 오류 : 에러는 결함의 원인,  일반적으로 사람에 의해 생성된 실수

   - 결함/결점/버그

   - 실패/ 문제 : SW 제품에 포함된 결함이 실행될 때

   - 테스트 완료 조건 : 프로젝트 특성에 따라 일정 비용 조직 등에 제약이 있고 최적의 완료 조건을 계획해야 함

   - 테스트 리포팅 : 결과 정리, 요약 문서, 품질 상태, 텟트 결과서, 테스트 실행 절차 및 평가

 

2) 결함관리

   - 각 단계별 테스트 수행 후 발생한 결함의 재발 방지를 위해 유사결함 발견 시 처리 시간 단축을 위해 결함을 추적하고 관리

   - 에러 등록, 에러 분석, 결함 확정, 결함 할당, 결함 조치, 검토 및 승인

 

3) 결함 추이 분석

   - 결함추이 분석에는 분포 분석 추세 분석 에이징 분석 등의 유형이 있음

   - 결함 분포 : 각 애플리케이션 모듈 또는 컴포넌트 특정 속성에 해당하는 결함의 수를 측정하여 분석

   - 결함 추세 : 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 결함 추세를 분석

   - 결함에이징 : 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정하여 분석

 

4) 결함분류

   - 시스템 결함 : 비정상적인 종료/중단, 응답시간 지연, 데이터베이스 에러

   - 기능 결함 : 요구사항 미반영/불일치, 부정확한 비즈니스 프로세스, 스크립트 에러, 타 시스템 연동 시 오류

   - GUI 결함 : 응용 프로그램 UI 비일관성, 부정확한 커서/메세지, 데이터 타입의 표시 오류

   - 문서 결함 : 의사소통과 기록이 원활하지 않은 경우 발생하는 결함으로 온라인/오프라인 매뉴얼의 불일치

                           요구사항 분석서와 기능 요구사항의 불일치로 인한 불완전한 상태의 문서의 경우를 말함

 

5) 결함심각도

   - HIGH : 시스템이 중단되어 더 이상 프로세스를 진행할 수 없게 만드는 결함

                   핵심 요구사항 미 구현, 시스템 다운, 장시간 시스템 응답 지연, 시스템 복구 후 데이터 왜곡 등

   - MEDIUM : 시스템의 흐름에 영향을 미치는 결함

                          부정확한 기능, 부정확한 업무 프로세스, 데이터 필드 형식의 오류, 데이터베이스 에러, 보안 관련 오류 등

   - LOW : 시스템의 흐름에는 영향을 미치지 않는 결함이나 상황에 맞지 않는 용도와 화면 구성 결함

                  부정확한 GUI 및 메세지, 에러 시 메시지 미출력, 화면상의 문법/철자 오류 등을 말함