테스트 관련 서적2018. 9. 20. 00:00

 

소프트웨어 테스트 실무 가이드
국내도서
저자 : NIPA(정보통신산업진흥원),STA테스팅컨설팅
출판 : STA테스팅컨설팅 2012.09.14
상세보기



1. 소프트웨어 테스트가 필요한 이유는 무엇인지 설명하고, 총괄 테스트 계획서에 대한 내용을 자세히 설명하시오. 그리고 ISTQB에서 정의한 7가지 테스트 원리는 무엇인지 내용을 작성하시오. 또한 소프트웨어 테스트가 가진 장점은 무엇인지 학습자의 의견을 1가지 작성하고 내용을 설명하시오.




1. 소프트웨어 테스트가 필요한 이유
소프트웨어 오작동으로 금전적인 손실은 물론 시간 낭비나 사업적 이미지 손상, 심지어 상해나 사망에에 까지도 이를 수 있다. 이에 소프트웨어 품질이 곧 서비스 또는 제품의 품질이라는 인식 아래 소프트웨어 결함을 사전에 예방하고 결함을 발견하는 테스트 활동이 더욱 종요하게 되었다. 테스트는 소프트웨어 결함을 조기에 발견하고 제거해 장애를 최소화 할수 있는 가장 기본적이고 효과적인 방법이므로 소프트웨어 테스트는 필요하다.

2. 총괄테스트 계획서에 대한 내용을 자세히 설명
총괄 테스트 게획서는 식별하게된 테스트의 범위/목적, 단계, 수행방안(테스트 단계설정), 추진 체계, 산출물, 책임자, 일정(WBS) 같은 테스트 전략(이해 관계자 식별 및 참여, 리스크 식별/분석)에 대해 작성한다.




3. ISTQB에서 정의한 7가지 테스트 원리는 무엇인지 내용을 작성
- 테스팅은 결함이 존재함을 밝히는 것
테스팅은 결함이 존재함을 드러내지만 결함이 없다는것을 증명할수는 없다.
- 완벽한 테스팅은 불가능
모든 가능성/경우의 수를 테스팅 하는것은 극히 간단한 소프트웨어를 제외하고는 가능하지 않다.
- 개발 초기에 테스팅 시작
테스팅활동은 소프트웨어나 시스템 개발 수명주기에서 가능한 초기에 시작되어야 한다.
- 결함 집중
출시전의 테스팅 기간동은 적은 수의 모듈에서 대다수의 결함이 발견 되거나, 대다수의 운영상의 장애가 나타맘
- 살충제 패러독스
동일한 테스트가 반복적으로 수행된다면, 결국 동일한 테스트 케이스들로는 더 이상 새로운 버그를 찾아내지 못할 것이다.
- 테스팅은 정황에 의존적
테스티은 정황에 따라 다르게 진행된다. 예를들어 언전-최우선 소프트웨어를 테스트 하는 경우, 전자 상거래 사이트를 테스트 할때와는 다르게 진행해야 한다.
- 오류 부재의 궤변
개발된 시스템이 사용자의 필요와 기대에 부응하지 못하고 쓸모 없다면 결함을 찾고 수정하는 과정은 아무 소용 없다 


4. 소프트웨어 테스트가 가진 장점은 무엇인지 학습자의 의견 1가지 작성 및 내용을 설명
소프트웨어 테스트로 인하여 소프트웨어의 품질을 확보 할수 있는 장점이 있다. 소프트웨어 오픈 이후에 결함으로 인한 금전적 손실을 줄 일수 있으며 개발자 또한 미리 호미로 막을 것을 나중에 가래로 막게 되는 상황을 피할 수 있다.

1. 소프트웨어 테스트가 필요한 이유는 무엇인지 설명하시오.
 : 비즈니스 애플리케이션과 여러 장치 등에서 소프트웨어 비중은 점차 증가하고 있다. 소프트웨어 오작동으로 금전적인 손실은 물론 시간 낭비나 사업적 이미지 손상, 심지어 상해나 사망에까지 이를 수 있다. 이에 소프트웨어 품질이 곧 서비스 또는 제품의 품질이라는 인식 아래 소프트웨어 결함을 사전에 예방하고 결함을 발견하는 테스트 활동이 더욱 중요하게 되었다. 테스트는 소프트웨어 결함을 조기에 발견하고 제거해 장애를 최소화할 수 있는 가장 기본적이고 효과적인 방법이다

2. 총괄 테스트 계획서에 대한 내용을 자세히 설명하시오.
: 앞서 살펴보았듯이 테스팅은 유형과 종류가 많다. 완성도 높은 테스트를 위해서는 테스트 유형과 종류의 특징을 정확히 이해한 후 상황과 목적이 맞는 최적의 테스트를 선택해야 한다. 프로젝트를 생각해보자. V-모델에서 알 수 있듯이 프로젝트 관리자는 단위, 통합, 시스템, 인수 테스팅 등 여러 테스트 단계를 조율하고 통제해야 한다. 각 테스트 단계는 독립적으로 계획되고 수행되므로 자칫 테스트 단계마다 동일한 테스트를 중복 수행하거나 또는 꼭 필요한 테스트를 다른 테스트 단계로 서로 미루다 누락시킬 수도 있다.

이러한 부작용을 예방하고 프로젝트 테스트 전체의 완성도를 높이기 위해서는 적절한 해법이 필요하다. 이 해법이 바로 총괄 테스트 계획서이다. 즉, 총괄 테스트 계획서는 특정 테스트 단계 계획 문서가 아니라 모든 테스트 단계를 총괄적으로 관리하기 위해 작성한 문서다. 총괄 테스트 계획서에서 프로젝트 테스트 전략과 방향을 제시하고 각 테스트 단계의 테스트 범위와 강도를 조율해 완성도를 확보한다. 총괄 테스트 계획은 각 단계 별 테스트 단위와 목적 그리고 각 단계에서 수행할 테스트 종류와 그 강도(비중)를 한번에 보여준다.


3. ISTQB에서 정의한 7가지 테스트 원리는 무엇인지 내용을 작성하시오.
: ISTQB에서는 누구나 공감하는 일곱 가지 테스트 원리를 정의했다. 누구에게나 해당되는 일반적인 내용이며 이를 잘 활용한다면 더 완성도 높은 테스트가 가능하고 테스트 전략으로도 활용할 수 있다. 
1) 원리1 : 테스팅은 결함이 존재함을 밝히는 활동임.
2) 원리2 : 완벽한 테스팅은 불가능함.
3) 원리3 : 개발 초기에 테스팅을 시작해야 의미 있고 완성도 높은 테스트를 할 수 있음.
4) 원리4 : 결함은 집중돼 있음.
5) 원리5 : 내성이 생긴 벌레는 기존의 살충제로는 막을 수 없듯이 오랜 동안 의심 없이 사용했던 테스트 케이스와 테스트 방법으로는 새로운 결함을 찾을 수 없음.
6) 원리6 : 항상 테스트를 많이 하는 것이 좋은 것은 아니며 상황과 목적에 맞도록 적절하게 테스트해야 함.
7) 원리7 : 결함이 없다고 좋은 제품이라 단정할 수 있을까? 결함을 발견하지 못했다면 가장 먼저 테스트를 제대로 수행했는지 확인해야 함. 그리고 가장 중요한 것은 결함이 없는 제품을 만들었다 해도 고객이 원하는 제품이 아니라면 의미가 없음.

 


 


 

 


 2. 결함을 관리하는 이유와 결함 관리를 통해 얻을 수 있는 것은 무엇인지 내용을 각각 설명하고, 결함관리에 필요한 기본 항목 세 가지와 각 내용을 설명하시오. 그리고 학습자의 조직에서는 결함을 어떻게 관리하고 있는지 방법을 설명하시오. 


1. 결함을 관리하는 이유

현실적으로 개발자는 정확한 결함정보를 전달 받아야 결함을 수정할 수 있고, 테스터는 개발자가 결함을 수정했는지 알아야 확인 테스트를 할 수 있다. 이 과정에 개발자와 테스터 사이에 정해진 약속(결함 처리 규칙) 이 있으면 불필요한 커뮤니케이션 낭비를 줄일 수 있다. 결함 발견부터 결함 해결까지, 전 과정을 개발자가 혼자 처리하면 결함 처리 규칙은 필요 없을지도 모른다. 하지만 결함 처리는 여러 이해관계자가 참여하는 소통 중심의 복잡한 업무다. 따라서 결함의 등록 부터 종료까지 전 과정을 추적하고 관련 정보를 공유해야 한다. 이것이 결함을 관리해야 하는 근본적인 이유다.


2. 결함관리를 통해 얻을 수 있는 것

결함 관리에서 얻을 수 있는 가장 가치 있는 정보는 '개발 및 프로세스 개선 정보'이다. 또한, 결함 정보로부터 결함 원인을 분석해 조직의 개발 취약점을 식별할 수 있고 이를 통해 결함을 예방하거나 줄일 해법을 찾을 수 있다. 테스트 중에 발견한 결함 정보는 개발 활동을 개선하고 품질을 높이는 정보로 다시 사용된다. 이는 결함을 관리 해야만 가능한 일이다.


3. 결함관리의 필요한 기본항목 3가지와 각 내용 설명

- 결함 수명 주기(defect life-cycle): 결함 관리 프로세스(defect management process)라고 하기도 함. 결함 등록에서 결함 종료까지 전 과정의 절차와 역할을 정의함(예, 결함 등록 > 결함 할당 > 결함 수정 > 수정 확인 > 결함 종료)

- 결함 관리 항목 : 결함 관리용 정보로서 기본 정보와 부가 정보로 나뉨, 결함 관리 지표와 밀접한 관계가 있으며 결함 관리 목적과 활용에 따라 결함 관리 항목을 다양하게 선정할 수 있음(예, 결함명, 결함 ID, 결함 심각도, 결함 처리 우선순위, 테스터, 수정 담당 개발자 등)

- 결함 관리 지표(metrics) : 결함 관리에서 얻은 각종 데이터를 목적에 맞게 가공한 의미 있는 정보. 결함 관리 지표는 결함 관리 항목에 영향을 받음. 새로운 결함 관리 지표가 필요하면 결함 관리 항목을 추가할 필요가 있음. 결함 관리 지표는 각종 도표나 차트 형태로 표현됨(예, 단위 모듈당 결함 수, 결함 별 평균 경과 시간, 심각도 별 결함수, 미수정 결함 수, 결함 누적 추이 등)


4. 조직에서는 결함을 어떻게 관리하고 있는지 방법을 설명

우리 조직에서는 결함을 아틀라시안이 개발한 Jira를 사용하고 있다. 워크 플로우는 커스터마이징하여 사용하고 있고 보안 이슈로 인하여 사내 네트워크에서만 접속 가능하게 사용하고 있다. 애자일 프로젝트인 경우에는 스크럼보드/칸반 보드를 사용하고 있다.


1. 결함을 관리하는 이유를 설명하시오.

: 결함 관리 필요성을 이야기하기 전에 왜 테스트를 하는지 생각해보자. 시간과 노력을 들여 테스트 계획을 작성하고, 열심히 테스트하는 것은 결함을 발견하기 위해서다. 이렇게 공들여 발견한 결함을 소홀히 관리할 수 있는가?

현실적으로 개발자는 정확한 결함정보를 전달 받아야 결함을 수정할 수 있고, 테스터는 개발자가 결함을 수정했는지 알아야 확인할 수 있다. 이 과정에서 개발자와 테스터 사이에 정해진 약속이 있으면 불필요한 커뮤니케이션 낭비를 줄일 수 있다. 결함 발견부터 결함 해결까지, 전 과정을 개발자가 혼자 처리하면 결함 처리 규칙은 필요 없을지도 모른다. 하지만 결함 처리는 여러 이해관계자가 참여하는 소통 중심의 복잡한 업무다. 따라서 결함의 등록부터 종료까지 전 과정을 추적하고 관련 정보를 공유해야 한다. 이것이 결함을 관리해야 하는 근본적인 이유다.


2. 결함 관리를 통해 얻을 수 있는 것은 무엇인지 내용을 설명하시오.

: 리스크가 큰 심각한 결함이라면 개발자에게 즉시 수정하도록 알려야 하지 않을까? 테스트 종료 조건 달성 여부 확인에 필요한 '미수정 결함 수'와 같은 통계 정보도 알 수 있어야 하지 않을까? 결함 관리를 통해 이러한 요구를 쉽게 해결할 수 있다. 결함 정보에 '결함 처리 우선순위'를 추가해 개발자가 우선순위에 따라 결함을 수정하도록 한다. 또 수집된 결함 데이터를 가공한다면 '미수정 결함 수' 외에도 '심각도별 결함 수', '개발 단계별 결함 수', '누적 결함 수 ' 등 가치 있고 다양한 정보를 얻을 수 있다.

결함 관리에서 얻을 수 있는 가장 가치 있는 정보는 '개발 및 프로세스 개선 정보'이다. 또한, 결함 정보로부터 결함 원인을 분석해 조직의 개발 취약점을 식별할 수 있고 이를 통해 결함을 예방하거나 줄일 해법을 찾을 수 있다. 테스트 중에 발견한 결함 정보는 개발 활동을 개선하고 품질을 높이는 정보로 다시 사용된다. 이는 결함을 관리해야만 가능한 일이다.


3. 결함 관리에 필요한 기본 항목 3가지와 각 내용을 설명하시오. 


1) 결함 수명 주기: 결함 관리 프로세스라고 하기도 함. 결함 등록에서 결함 종료까지 전 과정의 절차와 역할을 정의함.

2) 결함 관리 항목: 결함 관리용 정보로서 기본 정보와 부가 정보로 나뉨. 결함 관리 지표와 밀접한 관계가 있으며 결함 관리 목적과 활용에 따라 결함 관리 항목을 다양하게 선정할 수 있음.

3) 결함 관리 지표: 결함 관리에서 얻은 각종 데이터를 목적에 맞게 가공한 의미 있는 정보. 결함 관리 지표는 결함 관리 항목에 영향을 받음. 새로운 결함 관리 지표가 필요하면 결함 관리 항목을 추가할 필요가 있음. 결함 관리 지표는 각종 도표나 차트 형태로 표현됨


개발 프로젝트 초기에 개발 중간 산출물을 테스팅 관점에서 리뷰하고 테스트 케이스를 미리 만드는 과정에서 결함을 발견하는 작업도 테스팅 활동의 중요한 부분으로 인식되고 있습니다. 테스팅과 디버깅인은 근본적으로 구분되는 개념입니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터