Thief of Wealth

소프트웨어 개발은 다음과 같이 동작한다.

 

요구사항정리 => 분석 => 설계 => 코딩 => 테스트

 

(정적테스트) ( 동적테스트 )

 

 

 

정적테스팅 vs 동적테스팅

 

- 동적테스팅

: 프로그램을 실제로 실행하여 결과를 확인하는 방법

: 주어진 입력 값에 대해 예상한 결과 값이 출력되는지 확인

: Validation

: 정적 테스팅에 비해 정확성을 뛰어나나 완전하진 않음

 

- 정적 테스팅

: 프로그램을 실제로 실행하지 않고, SW의 정ㅈ거인 형태를 검사, 검토, 분석하여 결함을 찾는 활동

: Run-time 시 발생할 수 있는 문제 현상에 대한 원인ㅇ르 파악하고 프로그램 코드를 분석하는 방법

: Verification 

: Checklist나 자동화된 도구를 사용하여 산출물 검증

 

 

정적테스트

=> 리뷰

    => 동료 검토

        => 탁상검사

        => 워크쓰루

        => 인스펙션

    => 공식 검토

=> 정적 분석

    => 심볼릭 실행

    => 자료흐름 분석

 

 

 

정적테스트 - 리뷰 

: 프로젝트 담당자, 관리자, 사용자 등의 이해 당사자에게 제품에 대한 의견이나 승인을 받기 위해 수행되는 프로세스나 회의

: 모든 산출물에 대해 리뷰가 가능함.

 

리뷰의 목적

: 산출물이 요구사항을 충족하는지

: 산출물로 부터 결함을 일찍 효과적으로 발견하고 제거

: 결함이 필드에 반영되는거 방지

: 산출물에 대한 위험 감소 및 신뢰 확보

 

리뷰의 효과

: 다른 관점의 확보

: 지식 전달

: 개발 시간 단축

: 재작업 및 테스팅 노력 감소

: 프로세스 개선

 

 

정적테스트 - 리뷰 - 동료검토

: 기술적인 내용이나 품질을 평가하기 위해 저자와 동료에 의해 산출물을 평가하는 소프트웨어 검토 방법

: 리뷰 대상은 모든 산출물.

 

정적테스트 - 리뷰 - 동료검토 유형

비공식 리뷰 공식 리뷰
공식적인 절차, 표준x 공식적인 절차, 표준 o
참여자 별 책임이 명확하지 않음 참여자 별 책임이 명확

 

정적테스트 - 리뷰 - 동료검토 - 탁상검사

: 1명 또는 1명 이상의 동료에게 개발 산출물에 대한 검토를 요청하여 결함을 찾아내는 기법

 

- 작성자가 동료에게 개발 산출물 검토를 요청하고 동료는 산출물에 대한 검토결과를 작성자에게 전달

- 팀을 구성하여 검토를 진행하지 않고, 개별적으로 검토를 진행

- 가장 비공식적인 형태의 동료 검토 방식

 

 

정적테스트 - 리뷰 - 동료검토 - 워크쓰루

: 개발 산출물을 작성하는 중에 산출물을 검토하고 결함을 찾아내는 기법

 

- 주로 작성자의 요청에 의해 이루어지며, 완성된 결과물이 아닌 중간산출물을 대상으로함

- 개발 산출물 작성자에 의해 진행 및 제어가 이루어진다.

- 참가자의 역할이 명확히 정의되지 않음

- 참가자들은 작업물의 개요정도만 파악하고 참여

- 산출물에 대해 자유롭게 토론하고 결함 찾고 조언

- 후속작업에 대한 검사 생략 가능

- 인스펙션에 비해 비형식적인 동료 검토

 

- 워크쓰루 단계

* 진행준비 - 계획 - 개요 - 준비 - 검토 - 후속작업

 

정적테스트 - 리뷰 - 동료검토 - 인스펙션

: 개발 표준 위반, 상위 레벨 산출물 불일치 등의 결함 발견을 위해 저자 외 다른 전문가가 검사하는 가장 공식적인 리뷰 기법으로 항상 문서화된 절차를 기반으로 한다.

 

인스펙션 목적

- 소프트웨어가 명세를 만족하는가?

- 소프트웨어가 명시된 품질 속성을 만족하는가?

- 규격, 표준과 일치하는가?

- 결함이나 수정사항 같은 데이터 수집

 

인스펙션 활동

- 요구사항분석

- 설계

- 구현

- 테스트

 -설치

 

 

일반적인 개발 vs 인스펙션을 도입한 개발

 

일반적인 개발

- 개발 초기 요구사항 정의, 분석 및 설계에 소수의 인력 투입

- 코딩이 시작되면서 투입인력 수요 급증

- 투입 인력 규모는 테스팅 단계에서 절정

- 테스팅 완료 후 소수의 유지보수 인력만 유지

 

인스펙션을 도입한 개발

- 코딩 전까지는 일반적인 개발보다 소요 인력 2배이상

- 초기 프로젝트 비용이 증가하지만, 성공적인 인스펙션 결과, 코딩 단계에서의 재작업과 투입인력 감소

- 결과적으로 품질 비용 감소, 개발 기간 단축

 

인스펙션 팀

- 저자를 포함하여 관련된 작업 산출물들의 개발자이거나 품질 보증에 대해 비슷한 관심을가진 구성원

- 경영자는 팀에서 제외 (표면적인 오류들만 찾아내려는 경향 발생)

 

인스펙션 참가자

- 주재자 (필수)

: 계획, 자료전달, 상황관리

- 검토자 (필수)

: 오류 발견 및 보고, 오류해결을 위해 노력하지말고 간단한 의견만 제시

- 작성자 (필수)

: 자료내용설명, 적극적으로 토의 참가, 후속조치

- 기록자

: 기록, 문서화, 충분한 도메인 지식, 검토자입장

- 판독자

: 회의 진행속도 조절, 작성자가 맡으면 안됨, 부연설명

- 테스터

: 부수적인 참가자, 실제로 테스트진행할사람.

 

 

인스펙션 단계

- 계획

: 주재자는 인스펙션 계획하고 팀편성 후 역할 할당.

: 체크리스트 이요해서 인스펙션 착수 조건 확인

: 사전교육 유무 결정

: 일정 및 장소 결정

- 개요

: 작성자가 수행하는 간단한 형태의 교육

: 소프트웨어에 대해 간단한 설명

: 해결책 제시는 하지 말기

: 생략가능

- 준비

: 참가자에게 인스펙션 자료 제공하고 개인별 역할 준비

: 2시간 내에 할 수있는 분량

- 인스펙션 회의

: 실제 결함을 찾는 과정으로 체크리스트 이용

: 작성자에 대한 평가하지말기 (방어적이 될 수있음)

: 오류를 제거하고 해결하는 방안에 대한 토론은 하지말기

: 결함이라고 판단되면 기록하고 종류 구별

- 프로세스 개선

: 주재자 책임하에 인스펙션 결과 분석

- 재작업

: 작성자는 결함의 내용을 충분히 이해한 뒤 작업을 면밀히 살펴보고 수정

: 인스펙션 회의 필요시 다시 개최

- 후속작업

: 결함이 바르게 수정되었는지 확인

: 직접만나서 검사

: 품질관리자에게 종합보고하고 제출하고 종료

 

 

 

정적테스트 - 리뷰 - 공식검토

: 소프트웨어 각 개발 단계의 종료시점에서 산출물에 대해 수행되어지는 정적 테스팅 기법

: 검토결과에 따라 다음단계로 진행할지 여부 확인

: 직급의 높은 참가자로 팀 구성

 

공식검토 종류

- 요구사항 검토

- 예비설계 검토

- 상세설계 검토

- 테스트 준비 검토

 

공식검토 참가자

- 관리자

- 주재자

- 작성자

- 검토자

- 기록자

 

공식검토 단계

- 계획

- 킥오프

- 개별 준비

- 리뷰 회의

: 완전승인 or 부분승인

- 재작업

- 후속 작업

 

 

 

 

워크쓰루 vs 인스펙션 vs 공식검토

 

  검토시점 검토대상 진행주체 검토규정 검토산출물 후속처리
워크쓰루 임의 시점 중간 산출물 개발 산출물 작성자 정식 검토 규정이 존재하지 않음 - -
인스펙션 개발 산출물 작성 완료 시점 개발 산출물 완성본 훈련된 리더 정식 검토 규정 및 프로세스가 존재 인스펙션 결과서,
결함 리포트
검토 재작업
후속처리 확인
공식검토 개발 단계 종료시점 각 개발 단계 전체 산출물 훈련된 리더 정식 검토 규정 및 프로세스가 존재 공식검토 결과서,
후속 작업 계획
승인 결과에 따른 후속처리

 

 

 

정적테스트 - 정적분석

 

정적테스트 - 정적분석 - 심볼릭실행

: 프로그램의 입력 변수를 기호화해서 표현하며, 심볼릭 실행 수행 시 프로그램의 출력은 기호화된 입력 변수들로 이루어진 논리적, 수학적 수식

: 심볼릭 실행 트리를 통해 주어진 경로가 실행가능한지를 검사

: 심볼릭 실행 결과의 활용

 

(교재 참고, 실습 필요)

 

 

정적테스트 - 정적분석 - 자료흐름분석

: 프로그램 상에서 자료의 흐름에 이상 패턴이 있는지 분석하는 방법

: 변수가 정의되고 참조된 위치에 따라 프로그램의 테스트패스 결정

 

(교재 참고, 실습 필요)

 

'개발 > QA' 카테고리의 다른 글

칸반과 스크럼이란?  (0) 2020.09.12
디버깅과 테스팅의 차이  (0) 2020.09.11
14. 블랙박스 테스트 3  (0) 2020.07.10
13. 블랙박스 테스트2  (0) 2020.07.10
12. 블랙박스 테스트  (0) 2020.07.09
profile on loading

Loading...