티스토리 뷰
1. 리스크 관리 개요
조직은 목표 달성에 영향을 미칠 수 있는 다양한 내부 및 외부 요인에 직면한다. 리스크 관리는 이러한 요인으로 인해 발생할 수 있는 부정적 영향을 줄이고, 목표 달성 가능성을 높이며, 제품 품질을 개선하는 데 필수적이다.
주요 리스크 관리 활동
- 리스크 분석
- 리스크 식별: 발생 가능한 리스크를 체계적으로 탐색하고 기록한다.
- 리스크 평가: 리스크의 발생 가능성과 영향을 분석하여 리스크 수준을 결정한다.
- 리스크 통제
- 리스크 완화: 리스크 수준을 줄이기 위한 조치를 취한다.
- 리스크 모니터링: 리스크 완화 조치의 효과를 평가하고, 새로운 리스크를 지속적으로 식별한다.
테스트 활동과 결합된 리스크 관리 접근법을 리스크 기반 테스트라 하며, 이는 테스트 노력의 우선순위를 지정하고 자원을 효율적으로 활용하는 데 도움을 준다.
2. 리스크 정의와 속성
리스크는 발생 시 부정적인 영향을 초래할 가능성이 있는 잠재적 사건, 위험, 위협, 또는 상황을 의미한다.
리스크의 두 가지 주요 속성
- 리스크 발생 가능성
- 특정 리스크가 발생할 확률.
- 값은 0보다 크고 1보다 작은 실수로 표현된다.
- 리스크 영향(피해)
- 리스크가 발생했을 때 초래되는 결과.
- 금전적 손실, 신뢰도 저하, 사용자 불만족 등 다양한 형태로 나타날 수 있다.
리스크 수준 계산
- 공식:
코드 복사리스크 수준 = 발생 가능성 × 영향코드 복사리스크 수준 = 0.2 × 50 = 10
3. 프로젝트 리스크와 제품 리스크
프로젝트 리스크
프로젝트 리스크는 프로젝트 일정, 예산, 범위에 영향을 미칠 수 있는 리스크를 의미한다.
- 예시:
- 조직적 문제: 작업 산출물 지연, 부정확한 추정.
- 인적 문제: 기술 부족, 갈등, 의사소통 문제.
- 기술적 문제: 낮은 도구 지원, 불완전한 요구사항 정의.
- 공급업체 문제: 제3자 제공 실패, 지원 회사의 파산.
제품 리스크
제품 리스크는 소프트웨어의 품질 특성과 관련이 있다.
- 예시:
- 누락되거나 잘못된 기능.
- 런타임 오류, 낮은 아키텍처 품질.
- 보안 취약점, 낮은 사용자 경험.
- 비효율적인 알고리즘, 응답 시간 부족.
제품 리스크의 부정적 결과
- 사용자 불만족 및 수익 손실.
- 유지보수 비용 증가.
- 헬프데스크 과부하.
- 법적 문제 및 형사 처벌.
- 심각한 경우, 신체적 피해나 사망.
4. 제품 리스크 분석
목표
제품 리스크 분석의 주요 목표는 리스크를 평가하여 테스트 노력을 집중시키고, 남은 리스크 수준을 최소화하는 것이다.
구성 요소
- 리스크 식별
- 브레인스토밍, 워크숍, 원인-결과 다이어그램과 같은 도구를 활용하여 리스크를 포괄적으로 탐색한다.
- 리스크 평가
- 정량적 접근법:
코드 복사리스크 수준 = 발생 가능성 × 영향
- 정성적 접근법: 리스크 매트릭스를 사용하여 저위험, 중위험, 고위험으로 리스크를 분류한다.
- 정량적 접근법:
결과 활용
- 테스트 범위 및 우선순위 결정.
- 테스트 수행 시 사용할 기법 및 커버리지 수준 정의.
- 테스트 외의 리스크 감소 활동 제안.
- 테스트 레벨별 작업량 추정 및 자원 배분.
5. 제품 리스크 통제
리스크 완화
리스크 수준을 줄이기 위해 다음 조치를 취한다.
- 적합한 기술과 경험을 갖춘 테스터 선정.
- 테스트 독립성 유지.
- 정적 분석 및 리뷰 수행.
- 적절한 테스트 기법과 커버리지 수준 적용.
- 동적 테스트 및 회귀 테스트 수행.
리스크 모니터링
리스크 통제의 두 번째 단계로, 다음 활동을 포함한다.
- 리스크 완화 조치의 효과 평가:
- 초기 예상과 실제 결과를 비교한다.
- 새로운 리스크 식별:
- 프로젝트 진행 중 새롭게 발생할 수 있는 리스크를 지속적으로 모니터링한다.
통제 옵션
- 테스트를 통한 리스크 완화
- 위험 수준이 높은 기능을 우선 테스트하여 리스크를 줄인다.
- 리스크 수용
- 리스크를 감수할 수 있는 수준으로 판단되면 그대로 진행한다.
- 리스크 전가
- 외부 공급업체나 제3자에게 리스크를 전가한다.
- 비상 계획 수립
- 리스크가 현실화될 경우에 대비한 대안을 준비한다.
6. 리스크 관리 사례
6-1. 프로젝트 리스크 관리 사례
- 프로젝트 예산 부족:
- 초기 단계에서 세부적인 예산 계획을 수립하고, 비용 초과 시 비상 계획을 준비한다.
- 실제 사례: 2012년, 영국의 NHS(National Health Service) IT 프로젝트는 예산 초과로 인해 중단된 사례가 있다. 프로젝트 초기 단계에서 비현실적인 목표와 불충분한 예산 계획이 주요 원인이었다.
- 초기 단계에서 세부적인 예산 계획을 수립하고, 비용 초과 시 비상 계획을 준비한다.
- 기술 부족:
- 외부 컨설턴트를 고용하거나 추가 교육을 통해 기술 격차를 해결한다.
- 실제 사례: 미국의 Healthcare.gov 초기 출시 당시, 기술적인 문제와 개발자의 기술 부족으로 인해 웹사이트 성능 저하 및 수많은 오류가 발생했다. 이로 인해 사용자 불만이 폭발했고, 수백만 달러의 손실이 발생했다.
- 외부 컨설턴트를 고용하거나 추가 교육을 통해 기술 격차를 해결한다.
6-2. 제품 리스크 관리 사례
- 보안 취약점 발견:
- OWASP의 보안 테스트 기법을 활용하여 취약점을 탐지하고 수정한다.
- 실제 사례: 2017년 Equifax 데이터 유출 사건은 패치되지 않은 보안 취약점(아파치 Struts 프레임워크의 결함)으로 인해 발생했다. 이 사고는 1억 4천만 명 이상의 개인 정보가 유출되면서 회사의 평판과 재정에 큰 타격을 입혔다.
- OWASP의 보안 테스트 기법을 활용하여 취약점을 탐지하고 수정한다.
- 사용자 불만족:
- 사용자 피드백을 적극적으로 반영하여 인터페이스와 기능을 개선한다.
- 실제 사례: Instagram은 초기 버전에서 사용자 인터페이스(UI)가 복잡하고 사진 업로드 속도가 느리다는 사용자 피드백을 받았다. 이러한 불만을 반영해 개선이 이루어진 후 세계적인 플랫폼으로 성장했다.
- 사용자 피드백을 적극적으로 반영하여 인터페이스와 기능을 개선한다.
결론
리스크 관리는 소프트웨어 품질 보증과 프로젝트 성공을 위해 필수적인 활동이다. 리스크 분석과 통제를 통해 테스트 노력을 효과적으로 분배하고, 제품 품질을 높이는 동시에 이해관계자의 신뢰를 구축할 수 있다. 특히, 리스크 기반 테스트를 적용하면 테스트 활동의 우선순위를 명확히 하고, 제한된 자원으로 최대의 품질을 확보할 수 있다.
'소프트웨어 테스팅' 카테고리의 다른 글
애자일 소프트웨어 개발 (0) | 2025.01.13 |
---|---|
테스트 도구 (1) | 2025.01.13 |
설정 관리와 결함 관리 (0) | 2025.01.13 |
테스트 모니터링, 통제 및 완료 (0) | 2025.01.13 |
테스트 계획 및 추정 (0) | 2025.01.13 |
테스트 활동 관리 (0) | 2025.01.13 |
협업 기반 테스트 접근법 (0) | 2025.01.13 |
경험 기반 테스트 기법 (0) | 2025.01.13 |