3장 정적 기법

ISTQB 2013. 9. 26. 21:21

정적 기법과 프로세스

리뷰는 코드를 포함하여 개발 및 테스트 산출물 을 검토하고 테스팅 하는 방법으로 결함 발견시 결함 수정비용이 작다

  • 조기 결함 발견 및 수정
  • 개발 생산성 향상
  • 개발 기간 단축
  • 테스팅 비용 감소 및 시간 단축
  • 개발 수명주기 전체에 걸친 비용 감소
  • 결함 감소(품질 향상)
  • 커뮤니케이션 향상 
동적 테스팅에서 발견하기 어려운 개발 산출물 누락 등의 결함 발견 가능. 
리뷰를 통해 발견 되는 결함. 
  • 표준 위반
  • 요구사항 결함
  • 계발 설계 결함
  • 불충분한 유지보수성
  • 부정확한 인터페이스 명세 

리뷰 프로세스 

페이건(Fagan) 인스펙션
일반적 : 개발초기 (요구사항정의 , 분석/설계) 인력이 소수 투입 코딩이 시작도면 투입인력 급증
인스펙션도입 : 코딩 전까지 일반적 방법보다 2배의 인력이 필요 -> 코딩 결과 재작업과 투입인력이 줄게 되어 품질 비용이 감소하고 개발 기간을 단축 할 수 있다.

계획 활동 - 시작 - 개별준비 - 리뷰 미팅 - 재작업 - 후속처리 확인 
  • 관리자 : 리뷰의 실행여부를 결정, 프로젝트에 리뷰시간 할당, 리뷰의 목적달성 여부 확인하고 승인
  • 중재자 : 문서의 리뷰를 리드한다. 리뷰의 성패를 좌우함.
  • 저자 : 리뷰 대상 문서(산출물)의 작성자 또는 책임자
  • 검토자 : 리뷰대상에서 인시던트(결함포함)을 발견하고 기술하는 사람 -> 테스트 전문가.
  • 기록자 : 리뷰미팅에서 발견된 모든 이슈, 문제점, 미해결점 등을 기록하고 문서화 한다.
리뷰의 유형
비공식적 리뷰
  • 공식적인 절차가 없음
  • 페어 프로그래밍에 의한 리뷰, 기술선임자가 설계와 코드를 리뷰
  • 선택적으로 문서화 가능
  • 리뷰하는 사람에 따라 성과가 좌우됨
  • 저럼한 방법으로 일정 수준 성과 달성
기술적 리뷰
  • 동료와 기술전문가가 참여, 결함 발견을 위한 문서화되고 정의된 프로세스 존재
  • 기술적 문제 해결, 토론, 의사결정, 대안 평가, 결함 발견, 명세서 또는 표준과의 적합성 검토
워크쓰루 
  • 저자에 의한 진행 및 제어
  • 성격 : 시나리오 사용, 예행 연습(Dry runs), 동료 그룹 검토 
  • 시간 및 인원수의 제약이 없고 상황에 따라 변경 가능
  • 학습, 시스템에 대한 이해 향상, 결함 발견
인스펙션
  • 저자가 아닌 훈련된 중재자에 의한 진행 및 제어
  • 동료검사, 역할이 정의되어 있음
  • 미팅전 준비 , 매트릭을 수집하고 활용함, 체크리스트와 규칙기반 시작과 종료조건이 있는 정식 프로세스 존재
  • 결함발견 이 주요목적
리뷰의 성공요소 
  • 각각의 리뷰 활동에는 명확하게 기 정의된 목적이 있어야 함
  • 리뷰목적에 적합한 인력이 선택되야 함
  • 결함 발견은 언제나 환영하는 분위기이고 결함은 객관적으로 표현해야함.
  • 사람관련 이슈와 심리적 측면 고려
  • 소프트 웨어 개발 산출물과 검토자의 수준과 타입을 고려하여 리뷰기법을 적절히 적용해야함
  • 리뷰기법에 대한 교육 훈련 제공 (공식적인 기법에 대해서 중재자는 별도의 교육을 반드시 이수 )
  • 관리자가 적극적으로 리뷰 프로세스를 지원해야 함
  • 학습과 프로새스 개선에 대한 강조
  • 리뷰 경함과 효과를 내재화 하여 지속적으로 적용하는것이 필요

도구에 의한 정적 분석

정적 분석의 특징

  • 정적 분석은 동적 테스팅으로 찾기 힘든 결함을 발견함
  • 리뷰와 마찬가지로 정적 분석은 장애 보다는 결함을 발견함
  • 도구의 도움을 받아 수행함
  • 정적 분석 도구는 프로그램 코드를 분석하는 것은 물론, HTML이나 XML 과 같이 생성된 결과물도 분석함.

정적 분석의 가치

  • 테스트 실행전에 조기 결함 발견
  • 높은 복잡도 측정치와 같은 메트릭을 계산하여 코드와 설계의 의심스러운 부분에 대한 조기 경보
  • 동적 테스팅으로는 발견하기 어려운 결함 발견
  • 소프트웨어 모델상의 의존도와 불일치성 발견
  • 코드와 설계의 유지보수성 향상
  • 결함 예방 가능

정적분석을 통해 발견되는 결함.

  • 정의 되지 않는 값으로 변수 참조
  • 모듈과 컴포넌트 간의 일관되지 않은 인터페이스
  • 사용되지 않는 코드
  • 코딩 표준 위반
  • 보안 취약성
  • 코드와 소프트 웨어 모델의 구문 규칙 위반

 

Posted by 마법수정화살
,