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

Post on 21-Jul-2015

211 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

2015, 봄

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

ISTQB 강의노트 3

정적 테스팅 기법

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

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

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

수동적 기법 : 리뷰

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

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

테스트 하는 방법

리뷰(Review)

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

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

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

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

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

동적테스팅: 장애 발견

중점 포인트

BUT

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

수도 있음

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

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

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

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

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

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

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

인력

설계 코딩 테스트 출시시간

계획

요구사항

전체 비용의15%

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

기존방법

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

공식적 리뷰 절차

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

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

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

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

확인

공식적 리뷰의 역할과 책임

중재자 검토자 저자 기록자

관리자

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

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

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

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

검토자

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

사람.

공식적리뷰 역할과 책임

저자

기록자

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

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

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

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

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

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

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

테스트전문가

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

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

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

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

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

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

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

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

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

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

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

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

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

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

v 주요목적 : 결함 발견

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

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

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

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

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

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

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

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

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

정적 분석의 특징

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

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

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

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

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

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

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

top related