1. 정적 기법과 테스트 프로세스
정적 기법은 소프트웨어를 실행하지 않고 테스팅하는 기법으로 리뷰와 같은 수동적 기법과 정적 분석 자동화 도구를 활용한 정적 분석이 있다.
리뷰는 코드를 포함하여 소프트웨어 개발 및 테스트 산출물을 검토하고 테스팅 하는 방법이며, 동적 테스팅을 실행하기 전에 적절하게 수행할 수 있다. 리뷰는 동적 테스팅에서 발견하기 어려운 개발 산출물의 누락과 같은 결함을 발견할 수 있다.
리뷰의 이점 :
- 조기 결함 발견 및 수정
- 개발 생산성 향상
- 개발 기간 단축
- 테스팅 비용 감소 및 시간 단축
- 개발 수명주기 전체에 걸친 비용 감소
- 결함 감소(품질 향상)
- 커뮤니케이션 향상
정적 기법은 동적 테스팅과는 달리 장애 자체보다는 장애의 원인(결함)을 발견한다.
개발 산출물을 테스트하는 정적 기법이 결함 예방을 위한 테스팅의 중심을 이룬다. 이와 같이 개발 프로젝트 초기에 결함을 줄이는 활동은 테스팅 관점에서 조기 테스트 설계와 직접적으로 연계되어 있다.
2. 리뷰 프로세스
리뷰 프로세스의 형식도 정도는 개발 프로세스의 성숙도, 테스트 프로세스의 성숙도, 법적 또는 규제적 요구사항 또는 감사에 대한 필요성과 관련이 있다.
리뷰 방식은 리뷰를 통해 달성하고자 하는 합의된 목적에 맞는 형태를 취하게 된다. 여기서 목적은 결함 발견, 이해도 증진, 합의에 의한 결정과 이에 도달하기 위한 토론 등이고, 각각의 목적에 맞는 리뷰 방식과 형식을 따르도록 한다.
공식적 리뷰의 단계
프로젝트 전반의 리뷰 활동에 대한 계획은 테스트 계획 단계에 수립되어 계획서에 해당 내용이 명시되어야 한다.
정적 테스트 프로세스는 크게 정적 테스트 준비 단계, 리뷰/분석 단계, 후속 처리 확인 단계의 3단계로 구성된다. 리뷰를 성공적으로 진행하기 위해서는 절차를 준수해야 한다. 비공식적인 리뷰의 경우, 절차를 생략할 수 있지만 기본적인 골격을 이루는 절차는 따르는 것이 바람직하다.
공식적인 리뷰 절차 : 계획활동 - 시작(Kick off) - 개별 준비 - 리뷰 미팅 - 재작업(Reworkd) - 후속 처리 확인(Follow-up)
역할과 책임
리뷰는 역할과 책임이 명확해야 성공적이다. 공식적일수록 역할과 책임이 분명하며 모든 참여자가 리뷰 미팅 진행을 위해 역할을 맡게되면, 일반적으로 검토자의 역할을 병행한다.
관리자(Manager) : 리뷰의 실행여부를 결정하고, 프로젝트 일정에 리뷰 시간을 할당하고, 리뷰의 목적 달성 여부를 확인하고 승인한다.
중재자(Moderator) : 리뷰를 계획하고, 미팅을 진행하고, 미팅 후속 조치의 처리 여부 등을 추적하고 관리한다. 필요시에는 참석자들의 다양한 관점을 중재하며, 많은 경우 리뷰의 성패를 좌우한다.
저자(Author) : 리뷰 대상 문서(산출물)의 작성자 또는 책임자이다.
검토자(Reviewer) : 기술적, 비즈니스무 적 배경을 갖춘 사람으로 리뷰 대상에서 인시던트를 발견하고 기술하는 사람이다. 인스펙터라고도 불린다.
기록자(Scribe or recorder) : 리뷰 미팅에서 발견된 모든 이슈, 문제점, 미해결점 등을 기록하고 문서화한다.
리뷰의 유형
인스펙션(Inspection)
일반적으로 Fagan 인스펙션과 같이 공식적인 경우가 많다. 인스펙션 프로세스는 일반적으로 공식적인 리뷰 프로세스를 따르며, 프로세스 개선 단계가 인스펙션 미팅과 재작업 단계 사이에 존재한다. 프로세스 개선 단계에서는 향후에 결함 발견의 효과성을 향상하기 위해서 계획 활동, 시작(overview), 개별 준비, 인스펙션 미팅 단계를 검토하고 재작업(rework) 단계에서 결함을 처리할 수 있도록 체계적으로 결함을 식별하고 수정하는 방법을 제안한다.
인스펙션 대상은 모든 개발 산출물과 테스트 산출물이다.
인스펙션 절차 : 분량(capacity)계획 > 인스펙션 수행 > 분석 및 평가
리뷰의 성공 요소
- 각각의 리뷰 활동에는 명확하게 기존 정의된 목적이 있어야 한다.
- 리뷰 목적에 적합한 인력이 선택되어야 한다.
- 사람관련 이슈는 심리적인 측면이 고려되어야 한다.
- 소프트웨어 개발 산출물과 검토자의 수준과 타입을 고려하여 리뷰 기법을 적절히 적용해야 한다.
- 결함은 객관적으로 표현되어야 한다.
- 효과적이고 효율적인 결함 발견을 위해 필요시 체크리스트 및 역할 분담 활용한다.
- 리뷰 기법에 대한 교육 훈련을 제공해야 한다.
- 관리자가 적극적으로 리뷰 프로세스를 지원해야 한다.
- 학습과 프로세스 개선을 강조한다.
- 리뷰 경험과 효과를 내재화하여 지속적으로 적용하는 것이 필요하다.
3. 도구에 의한 정적 분석
정적 분석의 목적은 소프트웨어의 소스코드와 모델에서 결함을 발견하는 것이다. 소프트웨어의 코드를 실행하여 수행하는 동적 테스팅에 비해, 정적 분석은 조사 대상 소프트웨어를 실제적으로 실행하지 않는 상태에서 도구의 지원으로 수행하는 것이다.
정적 분석은 동적 테스팅으로 찾기 힘든 결함을 발견하고, 리뷰와 마찬가지로 장애보다는 결함을 발견한다. 도구의 도움을 받아 수행하고 정적 분석 도구는 프로그램 코드를 분석하는 것은 물론, html이나 xml과 같이 생성된 결과물도 분석한다.
정적 분석의 가치는 테스트 실행 전에 조기 결함을 발견하는 데에 있다. 높은 복잡도 측정치와 같은 메트릭을 계산하여 코드와 설계의 의심스러운 부분에 대한 조기 경보를 한다. 또 코드와 설계의 유지보수성을 향상하며 소프트웨어 모델상의 의존도와 불일치성을 발견한다.
전형적인 결함으로는 정의되지 않은 값으로 변수 참조, 모듈과 컴포넌트 간에 일관되지 않은 인터페이스, 사용되지 않은 변수와 코드, 코딩 표준 위반, 보안 취약성, 코드와 소프트웨어 모델의 구문 규칙 위반이 있다.
출처 : 개발자도 알아야 할 소프트웨어 테스팅 실무 제3판
'ISTQB 공부 > CTFL' 카테고리의 다른 글
6. 테스트 관리 (0) | 2020.12.11 |
---|---|
5. 테스트 설계기법 - 상태전이 테스팅 (2) | 2020.11.29 |
4. 테스트 설계 기법 (0) | 2020.11.26 |
2. 소프트웨어 수명주기와 테스팅 (0) | 2020.11.16 |
1. 소프트웨어 테스팅의 기초 (0) | 2020.11.15 |
댓글