인스펙션(Inspection)
체계적으로 정의된 절차를 기반으로 결함을 발견하기 위해 훈련된 엔지니어에 의해 수행되는 산출물의 동료 검토
목적
- 소프트웨어가 사양을 충족하는지 지정된 품질 속성을 나타내는지 확인하기 위해
- 결함 분석을 수행하기 위한 기반 데이터를 확보하기 위해
- 인스펙션 결과를 통해 조직에서 개선되어야 할 프로세스가 무엇인지를 식별하기 위해서
- 기술적인 정보를 공유하고, 인스펙션 참여자에게 시스템 및 인스펙션 교육을 하기 위해
인스펙션 참여자
인스펙션 리더
전체적으로 인스펙션 과정을 계획하고 실행하는 조정자의 역할을 담당
갖추어야 할 덕목(능력)
- 기술적인 지식, 능숙한 대인 관계
- 효과적인 인스펙션을 수행
- 인스펙션 수행이 정의된 절차에 따라 진행되도록 주도
- 참여자에 대한 적절한 역할 부여
- 준비되지 않은 인스펙터가 참여하지 않도록 관리
- 인스펙션 스케줄 관리
- 인스펙션 양식지가 올바른지, 충분하게 작성되었는지 점검
- 인스펙션에서 식별된 문제가 수정되었는지 점검
- 인스페션에서 얻은 결함 데이터를 조직의 히스토리 데이터베이스에 입력
인스펙션 기록자(Recoder)
인스펙션 수행 과정에서 나온 의견 및 토론 내용을 모든 기록하고 정리
요구 사항
- 프로젝트에 사용되는 용어 및 키워드에 친숙해야함
- 인스펙션 리더와 동일한 사람이 되어서는 안됨
- 정리한 내용을 실시간으로 인스펙터에게 공개
- 필요한 경우 해당 내용에 대한 의견 수렴(찬반 투표)
- 기록한 내용의 결과를 즉시 요약 정리
- 문제 보고서를 작성하고 발행
인스펙터(Inspector)
산출물 개발자(Author)
- 인스펙션에서 검토 대상이 되는 문서를 생성한 사람
- 인스펙션 문서를 체계적으로 작성할 책임
- 인스펙션 수행 과정에서 제기되는 기술적인 질문에 답변
인스펙션 발표자(Presenter)
- 산출물 개발자와 다른 사람으로 배정
- 산출물에 사용된 용어 및 기호에 능숙해야하며, 산출물의 내용을 설명하기보다 작성된 내용을 읽는 역할을 수행
인스펙션 절차
스텝 1: 계획(Planning) 활동
계획 단계에서 수행하는 활동
(1) 인스펙션 팀 구성
(2) 회의 장소와 시간 스케줄링
(3) 인스펙션을 시작하기 위한 검토 산출물의 진입 조건(Entrance Criteria) 점검
(4) 인스펙션 산출물의 배포를 확인
(5) 인스펙션 산출물이 인스펙션을 한 번 수행하는 데 적절한 규모인지 점검
(6) 인스펙션 수행 팀원이 검토 대상 산출물에 익숙한지 확인
인스펙터 선정 기준
- 일반적으로 결함이나 오류를 잘 찾아낼 수 있는 응용 영역의 전문가들로, 3~5명 선정
- 프로젝트의 성과 또는 인스펙터의 성과를 평가하는 관리자는 인스펙터로 선정하지 않음
- 해당 프로젝트에 부정적인 사람 역시 인스펙터로 선정하지 않음
- 새로운 프로젝트 참여자에게 인스펙션에 대한 정보 및 경험을 제공하기 위해 인스펙터로 참여시킬 수 있음
- 개발 조직의 직원이 아닌 외부 전문가도 인스펙터로 참여 가능
스텝 2: 오버뷰(Overview) 활동
인스펙션 절차에서 선택적으로 수행하는 단계
오버뷰 활동 수행
- 인스펙션 수행 팀이 해당 제품에 대하여 충분히 알지 못하는 경우
- 새로운 제품에 대하여 인스펙션을 수행하는 경우
- 소프트웨어 개발 조직에서 인스펙션을 처음 수행하는 경우
- 새로운 기술이 제품 개발에 적용되는 경우
산출물을 작성한 개발자가 진행
- 개발자는 제품의 이론적 근거 및 개발 의도 등을 설명
- 제품과 후속 개발 부분 간 관계, 제품의 사용 목적 및 주요 기능, 제품 개발에 사용된 접근 방법 등을 설명
스텝 3: 준비(Preparation) 활동
- 인스펙션 절차의 핵심
- 배포된 검토 대상 산출물은 각 인스펙터가 개별적으로 검토하는 단계
- 인스펙터는 자신에게 전달된 산출물을 문장 단위로 검토
- 체크리스트를 이용하여 산출물에 나타난 오류를 찾아 'Inspector Form'에 기록
- 작성한 Inspector Form을 리더에게 발송
- 리더는 모든 인스펙터에게서 받은 검토 결과를 취합
- 취합을 통해 가장 취약한 부분 또는 가장 심각한 부분이 어디인지 확인
- 핵심적으로 검토 확인해야 할 부분 체크
- 인스펙터의 점검 결과를 모두 취합하여 확인을 마치면 Inspector Form을 다시 각 인스펙터에게 반환
스텝 4: 인스펙션(Inspection) 미팅 활동
- 모든 인스펙션 역할자가 모여 인스펙터들이 점검한 검토 결과를 확인하는 활동
- 발표자가 해당 산출물을 세부 절 단위로 나워 처음부터 한 문장씩 발표
- 준비 활동에서 인스펙터가 식별한 결함/오류를 확인하고 최종 결정
- 필요 시 산출물 개발자가 기술적인 설명 진행
- 인스펙션의 리더는 식별 및 검토된 결함의 심각성과 타입을 확정하고, 기록자는 이를 인스펙션 목록에 정리
- 인스펙터가 식별한 결함을 확정하는 걱과 관련하여 토의와 논쟁이 지속되는 경우, 이를 Open 또는 Unsolved Issue로 분류하고 기록
스텝 5: 제3의 시간(Third hour) 활동
- 인스펙션 미팅 동안 해결되지 못한 오픈 이슈를 해결하는 활동
- 산출물 개발자가 발견한 결함을 어떻게 해결할지 토의할 필요가 있을 때 수행
- 오픈 이슈들은 이 활동을 통해 해결되거나 제거되어야 함
- 제 3의 시간 활동에 참여하는 역할자는 인스페션 미팅에 참여한 사람, 기타 문제 해결을 위해 투입한 추가 인력이 될 수 있음
- 관련 부서의 관리자, 외부 기술 전문가, 이슈를 해결하는데 영향을 미칠 수 있는 사람 등
스텝 6: 재작업(Rework) 활동
- 인스펙션 미팅에서 결함으로 확정된 오류들을 수정하는 활동
- 모든 중결함 수정, 시간적 여유가 있다면 경결함까지 수정
재익스펙션 활동
- 수정으로 인하여 추가 오류가 생기지 않았는지 점검하는 활동
- 인스펙션에서 결함이 많이 발견되었거나 결함 내용이 제품 개발의 많은 부분에서 중요한 영향을 미치는 경우에 진행
스텝 7: 후속 활동(Follow-Up)
-
인스펙션 리더와 산출물 개발자가 모든 결함이 수정되었음을 확인하고, 더 이상의 부가적 오류가 발생하지 않았음을 확인 후 후속 처리 과정을 진행
-
리더는 수행하는 인스펙션 과정의 출구 조건이 만족되었는지를 확인
스텝 8: 인스펙션에 대한 평가
-
인스펙션 리더는 진행된 과정이 효율적으로 수행되었는지를 확인하여 조직의 인스펙션 프로세스에 대한 개선 활동 수행
-
인스펙션 결과에 대한 보고서(Lesson-Learned Report)를 작성
- 인스펙션 절차 중 개선해야 할 부분을 식별
- 인스펙션을 통해 제품의 전반적인 프로젝트 상태나 품질 수준을 이해하였는지 점검
- 인스펙션 과정에 사용된 다양한 양식지나 도구가 효과적으로 사용되었는지 점검
- 발견된 결함 또는 오류에 대한 프로파일 생성, 조직의 데이터베이스에 저장
-
인스펙션 프로세스의 개선 방안을 찾고, 조직 내의 소프트웨어 프로세스 개선 활동에 활용
소프트웨어 리뷰 활동
관리 리뷰(Management Review)
- 프로젝트 진행 사항을 모니터링, 계획 및 일정 상태를 관리
- 요구사항이 시스템 요소로 적절하게 기능 할당이 되었는지 확인
- 프로젝트 관리의 적절성을 리뷰
- 성공적인 관리 리뷰를 수행하기 위해 기술 지식이 필요할 수 있음
- 하나의 대상에 대해 두 번 이상의 리뷰 회의가 진행될 수 있음
- 관리 리뷰에서 소프트웨어 제품 또는 프로세스의 모든 측면을 다룰 필요는 없음
기술 리뷰(Technical Review)
- 소프트웨어 제품이 의도하는 사용 적합성을 검사할 수 있는 능력, 사양 및 표준과의 일치 여부를 식별할 수 있는 능력을 갖춘 내부 팀이 수행하는 체계적인 평가
- 대안에 대한 권장 사항과 다양한 대안에 대한 검토 결과를 제공
- 프로젝트의 기술적 상태를 확인할 수 있는 증거를 경영진에게 제공