최초 작성일: 2024-09-03
최종 작성일: 2024-09-03
목표 : 정처기 합격 및 CS 지식 쌓기
1. 결함관리 도구 -특수한 형태의 게시판
(1) 결함관리 도구의 개념 및 중요성
테스트 수행 후 발생한 결함을 추적하고 관리할 수 있게 해주는 도구
팀 간의 커뮤니케이션 향상, 결함 상태 및 추적성 향상
(2) 결함관리 프로세스
에러 발견
에러 등록
에러 분석
결함 확정
결함 할당
결함 조치
결함 조치 검토 및 승인
(3) 결함 추이 분석
1) 결함 추이 분석
테스트 완료 후 발견된 결함의 결함 관리 측정 지표의 속성 값들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 향후 어플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업
2) 결함 관리 측정 지표
l 결함 분포: 각 애플리케이션 모듈 또는 컴포넌트의 특정 속성에 해당하는 결함의 수를 측정하여 결함의 분포를 분석할 수 있다.
l 결함 추세: 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 결함 추세를 분석할 수 있다
l 결함 에이징: 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정하여 분석할 수 있다
(4) 결함의 식별
1) 단계별 결함 유입 분류
기획시 유입되는 결함
설계시 유입되는 결함
코딩시 유입되는 결함
테스트 부족으로 유입되는 결함
2) 결함 심각도별 분류
치명적 결함(Critical)
주요 결함
보통 결함
낮은 결함
3) 결함 우선순위
결정적(critical) : 24시간 이내 즉시 수정, 전체 기능이 동작하지 않고 더 이상 테스트를 할 수 없다
높음(high): 일반적인 결함으로 인해 하나의 기능을 사용할 수 없다
보통(medium): 어떤 기능이 기대치에 못 미칠 경우
낮음(low): 종료 기준에 따라 수정하지 않아도 되는 경우
(5) 결함 관리 항목
결함 내용, 결함 id, 결함 유형, 발견일, 심각도, 우선순위, 시정조치 예정일, 수정 담당자, 재테스트 결과, 종료일
(6) 결함 관리 도구 종류
종류 | 설명 | 도구 종류 |
S/W 테스트 관리 | 테스트 계획 및 추적 | TEST LINK, REDMINE, OPENPROJ, GANTTPROJECT |
결함 추적관리 | 결함의 상태 및 진행 상황 추적 | MANTIS, BUGZILLA, TRAC |
2. 테스트 자동화 도구
(1) 테스트 자동화 도구의 개념
테스트를 효과적으로 수행하기 위해 스크립트나 도구를 활용하여 반복적인 테스트 작업을 자동화하는 방법
테스트 시간 단축, 비용 절감, 그리고 테스트의 효율성과 일관성 향상을 목표로 한다
(2) 테스트 자동화 도구의 장/단점
장점: 반복 테스트의 효율과/ 즉각적인 피드백 제공/ 다양한 테스트 결과 분석과 시각화
단점: 초기 도입 비용과 시간/ 도구의 사용방법 교육 필요/ 변경사항에 대한 테스트 스크립트 수정 필요/ 특정 테스트 도구의 한계로 인한 제약사항 발생 가능
(3) 테스트 자동화 도구 유형
1) 정적 분석 도구(Static analysis tools)
애플리케이션을 실행하지 않고 분석하는 방법
코드 표쥰, 스타일, 복잡성 및 잠재적 결함 등을 확인하는데 사용
종류: pmd, sonarqube, cppcheck, checkstyle 등
2) 테스트 실행 도구
사전에 작성된 테스트 스크립트나 시나리오를 실행하는 도구
데이터 주도 및 키워드 주도 방식을 활용할 수 있다
종류: selenium, junit, testing
3) 성능 테스트 도구
시스템의 성능, 부하, 스트레스 테스트를 위한 도구
종류: jmeter, loadrunner
4) 테스트 통제 도구
테스트의 전체 프로세스를 관리하는 도구
테스트 관리 도구, 형상관리 도구, 결함 추적/관리 도구
5) 테스트 장치(test harness)
테스트 장치의 개념 : 애플리케이션의 단위 또는 모듈 테스트에 사용하는 환경 및 도구
구성요소 | 설명 |
테스트 드라이버 – 상향식 | 테스트 대상 하위모듈을 호출하고, 파라미터를 전달하고, 모듈 테스트 수행 후의 결과를 도출하는 등 상향식 테스트에 필요하다 |
테스트 스텁 - 하향식 | 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 하향식 테스트에 필요하다 |
테스트 suites | 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합을 말한다 |
테스트 케이스 | 입력 값, 실행 조건, 기대 결과 등의 집합을 말한다 |
테스트 스크립트 | 자동화된 테스트 실행 절차에 대한 명세를 말한다 |
목 오브젝트 | 사용자의 행위를 조건부로 사전에 입력해두면, 그 상황에 예정된 행위를 수행하는 객체를 말한다. |
3. 통합 테스트
(1) 통합 테스트의 개념
소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트 기법
각각의 모듈이 서로 어떻게 동작하는 지도 확인하는 작업이 포함된다
수행방법으로는 비점증적 방식(빅뱅), 점증적 방식(상향식, 하향식)이 있다
(2) 통합 테스트 수행방법의 분류
1) 하향식 통합 테스트(top-down)
메일 제어 모듈로부터 아래 발향으로 제어의 경로에 따라 이동하면서 하향식으로 통합하면서 테스트 진행
깊이-우선 또는 너비-우선 방식으로 통합
아직 개발되지 않은 하위 모듈은 더미 모듈인 스텁을 개발하여 테스트 진행
장점: 장애 위치 파악이 쉬움/중요 모듈은 먼저 테스트 수행
단점: 많은 스텁이 필요함/ 하위 모듈의 불충분한 테스트
2) 상향식 통합 테스트(bottom-up)
최하위 레벨의 모듈로부터 위쪽 방향으로 제어의 경로에 따라 통합하면서 테스트 진행
하위 모듈은 클러스터로 결합하면서 위쪽 방향으로 진행
아직 개발되지 않은 상위 모듈은 더미 모듈인 드라이버를 개발하여 테스트 진행
하위 수준의 모듈은 클러스터로 결합
드라이버 작성 -> 클러스터 검사 -> 드라이버 제거 후 상위로 결합
장점: 장애 위치 파악 쉬움/ 모든 모듈 개발을 위한 시간 낭비가 불필요
단점: 중요 모듈들이 마지막에 테스트될 가능성이 높음
3) 빅뱅 테스트
모든 구성 요소들을 한꺼번에 통합하여 테스트
소규모 시스템에 편리한 테스트 방식
장점: 단시간에 테스트를 할 수 있다
단점: 장애가 일어난 위치를 파악하기 어렵다/ 모든 모듈들이 설계된 후에 시작할 수 있기 때문에 테스트 시간이 적어진다
4) 백본 테스트
샌드위치 테스트
상향식과 하향식의 장점을 이용하는 방식
드라이버/스텁을 필요에 따라 만들어 사용
대규모 프로젝트에 사용하는 방식
비용이 많이 들어간다
(3) 통합 테스트 수행 순서
1) 계획서 검토
2) 테스트 환경 준비
3) 케이스 및 시나리오 검토
4) 요구사항을 충족하는 지 테스트 수행
5) 통합 테스트 결과를 기록
'스터디스터디 > 정처기' 카테고리의 다른 글
[실기] 소프트웨어 구축- 국제표준 제품 품질특성 (2) | 2024.09.08 |
---|---|
[실기] 소프트웨어 구축- 애플리케이션 성능 개선 (2) | 2024.09.03 |
[실기] 소프트웨어 구축- 애플리케이션 테스트케이스 계획 (2) | 2024.09.01 |
[실기] 소프트웨어 구축- 소프트웨어 유지보수 (0) | 2024.09.01 |
[실기] 소프트웨어 구축- 객체지향 설계 (1) | 2024.09.01 |