Istqb 3-정적테스팅기법-2015

26
2015, 봄 게임콘텐츠스쿨 이종원 교수 ISTQB 강의노트 3 정적 테스팅 기법

Transcript of Istqb 3-정적테스팅기법-2015

Page 1: Istqb 3-정적테스팅기법-2015

2015, 봄

게임콘텐츠스쿨이종원 교수

ISTQB 강의노트 3

정적 테스팅 기법

Page 2: Istqb 3-정적테스팅기법-2015

학습내용v 정적테스팅 기법의 정의v 리뷰 프로세스v 정적 기법 도구 활용

Page 3: Istqb 3-정적테스팅기법-2015

정적 테스팅(Static testing) 기법 개요

소프트웨어를 실행하지 않고 테스트하는 기법

수동적 기법 : 리뷰

자동화 방법 : 정적 분석 도구 활용

동적 테스팅(Dynamic Testing)구현된 소프트웨어/시스템을 실제로 실행시켜서

테스트 하는 방법

Page 4: Istqb 3-정적테스팅기법-2015

리뷰(Review)

v 리뷰 : 코드를 포함하여 소프트웨어 개발 및 테스트 산출물을 검토하고 테스팅하는 방법• 각종 계획서, 설계서, 테스트 케이스 등

v 개발 수명주기 초기에 리뷰를 통해 발견하는 결함의 수정비용은 동적 테스팅을 통해 나중에 발견하는 결함의 수정비용에 비해 낮음

Page 5: Istqb 3-정적테스팅기법-2015

리뷰의 장점v 조기 결함발견 및 수정 가능v 개발 생산성 향상 및 개발 기간 단축v 테스팅 비용 감소 및 시간 단축v 개발 수명주기 전체에 걸친 비용 감소v 결함 감소로 품질향상v 커뮤니케이션 향상

Page 6: Istqb 3-정적테스팅기법-2015

리뷰로 발견하기 쉬운 결함들v 표준 위반v 요구사항 결함v 개발 설계 결함 및 부정확한 인터페이스 명세v 불충분한 유지보수성

정적기법: 결함(장애의 원인) 발견

동적테스팅: 장애 발견

중점 포인트

Page 7: Istqb 3-정적테스팅기법-2015

BUT

v 시스템 명세는 자주 변경될 수 있음– 초기에 모든 테스트 케이스를 만드는 것은 현명치 못할

수도 있음

– 리스크가 높거나 핵심 기능 위주로 테스트 케이스를 도출하는 것이 바람직함

Page 8: Istqb 3-정적테스팅기법-2015

리뷰 프로세스는 어떻게?v 문서로 작성된 지침이 없는 비공식 리뷰와 문서화된 절차가

있는 시스템적 리뷰까지 다양

v 공식/비공식 리뷰 프로세스는 어떻게 결정?

– 개발 프로세스의 성숙도– 테스트 프로세스의 성숙도– 법적 또는 제도적 요구사항– 감사(audit trail)에 대한 필요성

Page 9: Istqb 3-정적테스팅기법-2015

공식적 리뷰 예 – 페이건 인스펙션v Fagan 인스펙션은 초반부터 전문 인력을 대거 투입하여 조

기 불량률을 낮추고 품질향상으로 도모하며 비용을 감소시키는 방법

인력

설계 코딩 테스트 출시시간

계획

요구사항

전체 비용의15%

2배수의 (능력있는)인력요구

기존방법

녹색선은흑색선에 비해초반 비용은많이 들어가지만, 결과적으론두배 이상의비용 감소와시간 절약이 된다

Page 10: Istqb 3-정적테스팅기법-2015

공식적 리뷰 절차

1) 계획활동 : 참가인원 선정 및 역할 할당. 시작과 종료 기준정의. 리뷰 대상 정의

2) 시작(Kick-Off)미팅 : 문서 배포. 리뷰의 목표/절차/문서를참석자에게 설명

3) 개별 준비 : 미팅 전에 참석자별로 사전 리뷰활동을 통해 잠재적 결함이나 질문, 의견 정리

4) 리뷰 미팅 : 개별 준비 내용 토의 및 문서화5) 재작업 : 발견된 결함을 대상 문서의 저자가 수정6) 후속처리 확인(Follow-up) : 발견된 결함이 조치되었는지

확인

Page 11: Istqb 3-정적테스팅기법-2015

공식적 리뷰의 역할과 책임

중재자 검토자 저자 기록자

관리자

v 리뷰 실행여부 결정v 리뷰 시간 할당v 리뷰의 목적 달성 여부 확인/승인

Page 12: Istqb 3-정적테스팅기법-2015

공식적리뷰 역할과 책임v 문서의 리뷰를 리드.v 공식적인 리뷰 또는 인스펙션에서는 중재자는 반드시 리뷰

중재자 교육을 받도록 함v 리뷰를 계획하고, 미팅을 진행하고, 후속처리 조치 여부 추

적하고 관리v 리뷰의 성패를 좌우중재자

검토자

v 해당 분야의 기술적 또는 비즈니스적 배경을 갖춘 사람v 검토자는 인스펙터라고도 함v 리뷰 대상에서 인시던트(결함 포함)를 발견하고 기술하는

사람.

Page 13: Istqb 3-정적테스팅기법-2015

공식적리뷰 역할과 책임

저자

기록자

v 리뷰 미팅에서 발견된 모든 이슈, 문제점, 미해결점 등을기록하고 문서화함

v 기록자는 다른 참가자가 두번째 역할로 수행할 수도 있다.v 검토자가 기록자를 병행하는 것은 좋지 않음v 중재자가 기록자 역할을 할 수 도 있음

v 리뷰 대상 산출물을 작성한 사람 또는 책임자

Page 14: Istqb 3-정적테스팅기법-2015

공식적리뷰 역할과 책임v 테스트 전문가

– 테스트 전문가는 일반적으로 검토자로서 리뷰에 참여함.

– 이때 테스트 전문가는 다른 검토자들과 달리 테스팅관점에서 발견한 결함과 검토의견을 가지고 리뷰에 참석함

v 이외에 사용자, 유지보수자, 운영자 등 다양한 입장에 기반한 체크리스트를 사용하면 이슈 발견에 도움을 줄 수 있음

테스트전문가

Page 15: Istqb 3-정적테스팅기법-2015

리뷰의 유형v 비공식적인 리뷰(Informal review)v 기술적 리뷰(Technical review)v 워크쓰루(Walkthrough)v 인스펙션(Inspection)

Page 16: Istqb 3-정적테스팅기법-2015

비공식적인 리뷰v 공식적인 절차가 없음v 동료에 의한 리뷰이거나 기술 선임자가 설계와 코드를 리뷰

하는 것일 수 있음v 선택적으로 문서화할 수 있음v 리뷰하는 사람에 따라 성과가 좌우됨

v 주요목적: 저렴한 방법으로 일정 수준의 성과 달성

Page 17: Istqb 3-정적테스팅기법-2015

워크스루(Walkthroughs)v 저자에 의한 진행 및 제어

– 저자가 자신이 궁금한 것을 질문하고 검토자가 답변v 성격 : 시나리오 사용, 예행 연습, 동료 그룹 검토v 시간 및 인원수 등에 제한이 없고 상황에 따라 변경할 수 있

는 오픈 세션v 선택적으로 미팅 전 준비과정 거침v 실무에서는 공식적 또는 비공식적일 수 있음

v 주요목적 : 학습, 시스템에 대한 이해 향상, 결함 발견

Page 18: Istqb 3-정적테스팅기법-2015

기술적 리뷰(테크니컬 리뷰)v 동료와 기술전문가가 참여v 결함발견을 위한 문서화되고 정의된 프로세스가 존재v 관리자 개입 없이 동료 검토 형태로 수행할 수 있음v 이상적으로는 저자가 아닌 중재자가 미팅을 주도함v 미팅전 사전 준비 필요v 선택적으로 체크리스트, 리뷰 리포트, 발견한 인시던트 리스

트, 관리자 참여 활용v 실무에서는 공식적 또는 비공식적일 수 있음v 공식적인 경우 문서화는 필수

v 주요목적 : 기술적 문제 해결, 토론, 의사결정, 대안 평가, 결함 발견, 명세서 또는 표준과의 적합성 검토

Page 19: Istqb 3-정적테스팅기법-2015

인스펙션-공식적 리뷰v 저자가 아닌 훈련된 중재자에 의한 진행 제어v 역할이 정의되어 있음

– 중재자, 저자, 검토자, 기록자v 메트릭을 수집하고 활용함v 체크리스트와 규칙을 기반으로 시작과 종료 조건이 있는 정

식 프로세스 존재v 미팅 전 준비과정 필요v 인스펙션 리포트와 발견사항 리스트 산출v 정식적인 후속 처리 확인(follow-up) 프로세스 존재

v 주요목적 : 결함 발견

Page 20: Istqb 3-정적테스팅기법-2015

동료 검토v 워크쓰루, 기술적 리뷰, 인스펙션은 같은 조직 레벨에서 동

등한 그룹 동료들 사이에서 수행될 수 있음– 이를 “동류 검토”라고 부름

Page 21: Istqb 3-정적테스팅기법-2015

리뷰의 성공요소v 각각의 리뷰 활동에는 명확하게 기 정의된 목적이 있어야

함v 리뷰 목적에 적합한 인력이 선택되어야 함v 결함 발견은 언제나 환영하는 분위기이고 결함은 객관적으

로 표현되어야 함v 사람관련 이슈와 심리적인 측면이 고려되어야 함v 소프트웨어 개발 산출물과 검토자의 수준과 타입을 고려하

여 리뷰 기법을 적절히 적용해야함v 필요시 체크리스트와 역할 분담 활용v 리뷰 기법에 대한 교육 훈련 제공v 관리자가 적극적으로 리뷰 프로세스를 지원해야 함v 리뷰 경험과 효과를 내재화하여 지속적으로 적용하는 필요

Page 22: Istqb 3-정적테스팅기법-2015

도구에 의한 정적 분석v 도구에 의한 정적 분석의 목적은 소프트웨어의 소스코드와

모델에서 결함을 발견하는 것이다.

v 정적 분석은 대상 소프트웨어를 실제적으로 실행하지 않는상태에서 도구의 지원으로 수행하는 것이다.

Page 23: Istqb 3-정적테스팅기법-2015

정적 분석의 특징

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

HTML이나 XML과 같이 생성된 결과물도 분석함

Page 24: Istqb 3-정적테스팅기법-2015

정적 분석의 가치v 테스트 실행 전에 조기 결함 발견v 높은 복잡도 측정치와 같은 메트릭을 계산하여 코드와 설계

의 의심스러운 부분에 대한 조기 경보v 동적 테스팅으로는 발견하기 어려운 결함 발견v 소프트웨어 모델상의 의존도와 불일치성 발견v 코드와 설계의 유지보수성 향상v 결함 예방 가능

Page 25: Istqb 3-정적테스팅기법-2015

정적분석 도구를 통해 발견하는 결함v 정의되지 않은 값으로 변수 참조v 모듈과 컴포넌트 간에 일관되지 않은 인터페이스v 사용되지 않은 변수v 사용되지 않은 코드v 코딩 표준위반v 보안 취약성v 코드와 소프트웨어 모델의 구문규칙 위반

Page 26: Istqb 3-정적테스팅기법-2015

정적분석 도구는 누가 사용?v 단위(컴포넌트) 테스팅과 통합 테스팅 동안에 주로 개발자에

의해 사용v 소프트웨어 모델링하는 동안에는 설계자에 의해 사용