소프트웨어 테스트 방법
동적 테스트
정적 테스트
IEEE 1028-2008
여러 전문가가 모여 프로그램을 검토하여 결함을 검출하는 방법
관리 리뷰
기술 리뷰
인스펙션
워크스루
감사
공식 검토
진행 상황을 모니터하고 계획과 현재 일정 상태 평가가 필요한 경우
자원, 일정이나 프로젝트 범위 등을 변경
설치 계획, 백업 및 회복 계획, 안정성 계획, 재난 계획, 비상 대책 계획, 진행 보고서, 테스트 결과
의사 결정자에게 전달되고 리뷰 목적이 달성되었는지 판단
유능한 인력으로 구성된 팀이
프로젝트의 기술적 상태를 확인하는 증거로
작업물을 리뷰한 후 관리자에게 제공
의도된 사용에 적합한지 평가
계획, 법규, 표준이나 명세를 충실히 지키는지 평가
변경 사항이 적절하게 구현되었는지를 평가
변경 명세에 식별된 영역에만 해당 변경이 영향을 미치는지 평가
여러 대안을 추천하거나 대안검토
대표 엔지니어가 주재하며 경우에 따라 관리자가 해결해야 한다면 참가
인스펙션
가장 형식화된 대표적인 리뷰 방식
가능한 한 개발 초기에 검사해야만 개발 초기 작업물에서 문제 검출 가능
결과적으로 품질에 투입되는 비용이 감소하며 개발 기간 단축 효과
코딩 전까지 일반적인 개발보다 소요 인력이 더 많이 필요
초기비용 증가 BUT 개발 단계의 재작업과 투입 인력 감소
= 동료검토(Peer review)
- 동료 검토 : 비슷한 수준이나 역할을 가진 사람들이 코드 등을 포함한 SW 검토하는 작업
인스펙션 참가자의 역할
중재자(Inspection leader/Moderator)
리더
참가자들 선정 , 계획
전문적으로 훈련된 퍼실리데이터(Facilitator)가 담당
작성자(Author)
회의에 필요한 자료를 제출
자료 내용에 관한 설명
질문에 대답
낭독자(Reader)
작업물에 대한 자신의 이해 및 해석을 바탕으로 작업물에 대해
회의 참가자들에게 인스펙션 회의를 이끄는 역할
기록자(Recorder)
회의에서 논쟁, 모든 질문 및 답변 등을 기록
검토자(Inspector)
결함을 찾아내고 전달받은 자료를 충분히 검토
인스펙션 과정
리뷰 계획
인스펙션 절차 개요 설명
인스펙션 작업물에 대한 개요 설명
준비
검토 회의
재작업
후속작업
비형식적인 결함 검출 방법
참가자들의 교육이나 지식 공유 목적으로도 수행
작업물을 돌아다니면서 작업물에 대한 설명을 진행하고
검출된 결함에 대한 권고 및 조치 사항들을 기록
재작업 및 후속 단계에서 작성자는 모든 조치 사항들이 종결되었음을 확인
제품 및 프로세스 규제, 표준, 가이드라인, 계획, 절차를 준수하고 있는지 평가
대표 감사자, 감사자, 기록자 or 개시자
대표 감사자가 감사를 주도하며 인터뷰나 문서들을 점검함으로써 법규나 표준 등에 부합되는지 증거를 수집
제공자, 소비자, FDA와 같은 제3기관에서 필요에 따라 요구
매우 체계적이고 엄격한 리뷰
문서화된 절차
규칙대로 이행
명확하게 정의된 역할과 책임이 존재
결함을 조기에 발견하고 수정하는 목표
공식 검토 방법
요구사항 검토 (SRR)
예비 설계 검토 (PDR)
상세 설계 검토 (CDR)
테스트 준비 검토 (TRR)
구조적 분석
데이터 흐름 분석
심볼릭 실행
주어진 경로가 실행 가능한지 검사
실행 불가능한 경로 검출
프로그램 테스트 데이터 자동 생성
자료 흐름 패턴
EX). 결함 유형
심각한 오류
잠재적 오류
정상
개발자가 프로그램을 작성할 때 지켜야 하는 규약
한 프로그램을 여러 개발자가 협력하여 작성하더라도
프로그램 모든 부분이 동일한 개발자가 코딩한 것처럼 일관성 유지
코딩스타일

새로운 블록은 공백 두 칸의 들여 쓰기로 시작
블록이 끝나면 이전 들여쓰기 수준으로 리턴
메서드 이름은 카멜 표기 방식(Camel Case)을 따르고 동사나 동사구를 사용
변수 이름은 명사를 사용
의미 있도록 작성되어야 하며 사용 의도를 드러내야함.
undefined behavior이 발생할 수 있는 경우
초기화되지 않은 변수 사용
배열의 범위를 넘어서는 인덱스 사용
0으로 나눗셈
시중에 판매되는 몇몇 정적 분석 도구로 MISRA-C 코딩 규칙 검사 가능
프로그램 복잡도 통제를 위해
신뢰할 수 있는 척도를 사용하여 복잡도 측정


