2013. 01. 30dslab.konkuk.ac.kr/etc/kcse 2013/kcse2013/kcse2013_프로시딩/s… · •테스트...

34
2013. 01. 30

Upload: others

Post on 14-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

2013. 01. 30

Page 2: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

개 요

TMMi 기반 소프트웨어 단위시험 전략

적용 사례

결 론

Page 3: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)
Page 4: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

1) 무기체계 소프트웨어 특징 I. 개요

무기체계 소프트웨어의 비중 및 중요성이 증대되고, 소프트웨어가 체계 전체 성능을

좌우하는 핵심요소로 변화하고 있음.

4/29

최신 무기체계는 감시정찰, 지휘통제, 정밀타격이 통합된 SW 중심의 복합체계로 발전

공통기반SW, 체계기반SW, 전술응용SW 등 무기체계 제반 기능이 대부분 SW로 구현

무기체계 개발비 중 SW의 비중이 큰 부분을 차지하고 있으며, 매년 증가 추세

무기체계 소프트웨어는 무기체계의 전체 성능을 좌우하는 핵심 요소

소프트웨어 시험을 통한 소프트웨어의 품질 및 신뢰성 확보가 중요함

Page 5: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

2) 국방 소프트웨어 시험 동향 I. 개요

무기체계 소프트웨어의 비중 및 중요도 증대와 함께 방위청의 소프트웨어 신뢰성 시험 강화 등 대내외 환경 변화에 적극 대응할 필요가 있음.

5/29

환경 분석

무기체계 소프트웨어 개발 및 관리 지침 제정(‘11.8.28 시행)

제안서 內 소프트웨어 분야 평가 항목/비중 증대

SW 신뢰성 시험 수준에 대한 고객의 높은 요구조건

• 코딩 규칙 검증 치명(Critical) 또는 경고(Major) 결함 100% 제거

• 실행시간오류 검출 시험 중(重)실행시간오류 100% 제거

• 코드 실행율 확인 시험 코드 실행율 목표 값 100% 만족

• 소프트웨어 분야 4개 평가 항목으로 증대

- SW 개발방안, 개발 방법론, 품질보증, SW 신뢰성 시험 방안(신규 추가)

협력업체 SW 의 문제

• 납품 후 협력개발 SW에서 다양한 문제점들이 발생

• 무기체계내장형 소프트웨어 획득 및 관리 실무 지침서1) 제정(11.11.30)

• SW 신뢰성 시험 평가항목 : 사업별 특성 고려 조정가능

정적 시험 : 코딩규칙검증 & 실행시간오류(Runtime Error) 검출

동적 시험 : 코드 실행률(Code Coverage) 확인

TMMi 기반3)의 효율적인 소프트웨어

단위시험 전략

제품위험기반의 시험

전략수립

제한된자원의 효율적

사용

자동화 도구 기반의

효율적인 단위시험 수행

테스트 데이터 및 테스트

케이스 재활용

TMMi2) 기반 시험활동 자동화 도구의 활용

통합 적용

Page 6: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

2) 국방 소프트웨어 시험 동향 I. 개요

당사는 2007년부터 국방 SW의 신뢰성 확보 차원에서 체계적인 테스팅 활동을 수행하고 있으며, 방위사업 지침에도 활동이 의무화 되어 가고 있음

6/29

외부 동향

2011년 6월 ~ 현재

제안 RFP

SW 분야 평가항목(4개)/비중 증가

RFP 평가항목 ① SW 개발방안 ② SW 개발방법론 ③ SW 품질보증 ④ SW 신뢰성 시험

방위 사업청 동향

신뢰성 시험 시범 적용

2010. ~ 2011.7

무기체계 SW 개발 및 관리 지침 공식 발표

2011.8.28

모든 프로젝트 대상 신뢰성 시험 적용

현재

방산업체 지침 교육

2011. 12. 09

LIG 넥스원 활동

자동화 도구 기반의 SW 테스팅 수행

2007년 시작 ~ 현재까지

TMMi Level 3 달성

모든 프로젝트 SW 신뢰성 시험 의무 수행

2012. 3. 7

Page 7: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

2) 국방 소프트웨어 시험 동향 I. 개요

최근 방위사업청 내부에서 진행 중인 SW 신뢰성 시험 방안(‘12. 5월)에 의한 자료에 의하면 SW 신뢰성 시험을 아래와 같이 분류하고, 적용 수준에 대한 기준을 제시하고 있음.

7/29

1. 종류

정적 시험 동적 시험

정의 SW를 실행하지 않은 상태에서 소스코드 내 존재하는 결함 검출

요구사항 기반의 테스트케이스로 요구사항이 실행되는지를 확인하는 시험

시험 항목

1) 코딩 규칙 검증 2) 실행시간 오류 검출

1) 코드 실행률 확인

2. 위험 수준 결정 (기본은 CSCI 단위로 결정하고, CSC, CSU별 시험 기준 선정 가능)

체계의 임무 중요도, 기능 안정성 및 통제능력, 사용 빈도 등의 특성에 따라 위험 수준을 4단계로 분류

• A : 인명 손실 and 임무수행 불가능 • B : 인명 손실 or 임무수행 불가능 • C : 임무수행 가능하나 심각한 기능저하 • D : 임무수행 가능하나 사소한 기능저하

위험 수준

정적 시험 동적 시험

코딩규칙검증 실행시간 오류검출 구문 실행률 분기 실행률 MC/DC 실행률

A O O O O O

B O O O O

C O O O

D O O

3. 위험 수준별 SW 신뢰성 시험 기준

Page 8: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)
Page 9: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

1) TMMi 개요 및 소개 II. TMMi 기반 소프트웨어 단위시험 전략

TMMi(Test Maturity Model Integration)는 조직의 SW테스트 성숙도를 점검하고 개선방향을 가이드하는 모델로서 국제적으로 유일하게 인정받고 있는

SW 테스팅 분야의 공식 심사 모델임

9/29

TMMi 개발 : TMMi Foundation(비영리 독립법인) http://www.tmmifoundation.org

TMMi 평가 : TMMi Foundation에서 자격을 부여한 테스팅 컨설팅 업체에 소속된 컨설턴트에 의해 평가

국내의 경우, STA Consulting 에서 4명의 선임심사원이 활동 중임

TMMi Level 구분

Optimization

1. 결함 예방

2. 테스트 프로세스 최적화

3. 품질제어 Measured

1. 테스트 측정

2. 제품 품질 평가

3. 발전된 동료 검토 Defined

1. 테스트 조직

2. 테스트 훈련 프로그램

3. 테스트 수명주기&통합

4. 비기능 테스팅

5. 동료 검토

Managed

1. 테스트 정책&전략

2. 테스트 계획

3. 테스트 모니터링&제어

4. 테스트 설계&실행

5. 테스트 환경

Level 5

Level 4

Level 3

Level 2

Initial

Level 1

Page 10: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

1) TMMi 개요 및 소개 II. TMMi 기반 소프트웨어 단위시험 전략

TMMi Level 2와 Level 3에 각각 5개의 프로세스 영역(Process Area)의 목적은 아래와 같음

10/29

ML 프로세스 영역 목적

2

1. Test Policy and Strategy (테스트 정책 & 전략)

조직차원의 시험 정책과 시험 전략을 수립하여 당사의 소프트웨어 시험 방향을 제시

2. Test Planning (테스트 계획)

프로젝트의 시험 전략에 따라 시험계획을 구축하고 유지하기 위함

3. Test Monitoring and Control (테스트 모니터링 & 제어)

시험 진척상황과 제품 품질을 관리하고, 심각한 문제가 발생할 경우 시정조치하기 위함

4. Test Design and Execution (테스트 설계 및 실행)

시험 항목을 도출하고 시험도구 및 시험장비 등을 이용한 시험 수행활동을 하기 위함

5. Test Environment (테스트 환경)

제품 도메인의 시험 수행을 위한 적절한 시험 환경(도구, 시뮬레이터, 데이터 등)을 구축하고 유지하기 위함

3

1. Test Organization (테스트 조직)

시험을 수행하고 시험 프로세스 자산을 관리하고 개선할 수 있는 시험 전문 그룹을 식별하여 구성하기 위함

2. Test Training Program (테스트 훈련 프로그램)

시험 업무와 역할을 능률적으로 수행하기 위해, 시험 관련 지식 및 스킬 확보를 위한 교육 프로그램 개발

3. Test Lifecycle and Integration (테스트 수명주기 & 통합)

조직차원의 시험 프로세스 자산, 작업 환경 표준을 구축/유지하고, 시험 수명주기와 개발 수명주기간의 통합 개발

4. Non-Functional Testing (비기능 테스팅)

비기능 시험(성능 측면, 신뢰성 측면 등)에 대한 시험 프로세스 역량을 개선하기 위함

5. Peer Reviews (동료 검토)

시험 산출물에서 결함들을 발견/제거하기 위해 동료에 의해 수행되는 검토활동

Page 11: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

마스터시험계획

계획

설계(기본)

체계통합 시험

계획

설계(기본)

SW통합 시험

수행

종료

정적 시험

계획

설계(기본)

SW단위 시험

수행

종료

정적 시험

SW단위시험 설계(상세)

수행

종료

정적 시험

SW통합시험 설계(상세)

수행

종료

SW단위 시험

수행

종료

정적 시험

체계통합시험 설계(상세)

수행

종료

SW통합 시험

수행

종료

정적 시험

마스터시험종료

수행

종료

체계통합 시험 수행

종료

정적 시험

TMMi 모델을 적용한 V 자형 모델로 폭포수형 개발 수명주기와 통합된 시험 수명수기 모델이며,

정적시험과 동적시험(SW단위시험, SW통합시험, 체계통합시험)으로 구성

2) 시험 수명주기 모델4) II. TMMi 기반 소프트웨어 단위시험 전략

11/29

정적 테스팅

동적 테스팅

[ 관련 근거 ]

무기체계 소프트웨어 개발 및 관리 지침

+ TMMi 기반 시험 프로세스

Page 12: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

소프트웨어 시험 프로세스는 관리, 동적, 정적 시험 프로세스로 구분되어 수행하며,

당사의 별도의 프로세스를 구축하여 사용함.

2) 시험 수명주기 모델 II. TMMi 기반 소프트웨어 단위시험 전략

12/29

[ 소프트웨어 시험 프로세스 구조 ]

테스트 분석과 설계

[ ISTQB Fundamental Test Process ]

테스트 계획과 제어

• 테스트 목적/목표 설정 및 대상 연구

• 테스트 전략 개발

- 제품 위험 분석

- 전략 수립

• 테스트 완료 조건

• 테스트 추정

• 조직 구성

• 테스트 계획

• 테스트 관리 및 제어

• 모니터링(리포팅)

- 리포팅 계획/설계

- 진행 리포팅

• 테스트 베이시스 검토

• 테스트 상황/요구사항/데이터 식별

• 테스트 기법 할당

• 테스트 용이성(testability) 평가

• 테스트 환경 구축

테스트 구현과 실행 • 테스트 케이스 명세화, 우선순위

선정, 데이터 생성, 프로시저 작성

• 선행 테스트

• (재) 테스트 실행 (결과 기록)

• 기대 결과와 비교

테스트 완료조건의 평가와 리포팅

• 완료 조건의 달성 여부 확인

• 최종 테스트 보고서 작성

테스트 마감 활동 • 산출물 확인, 테스트웨어 보관

• 프로세스 평가(심사)

시험 관리 프로세스

정적 시험 프로세스

동적 시험 프로세스

모니터링 및 제어 종료

설계 (기본)

수행 설계

(상세)

계획

수행 동료검토

정적분석

• ISTQB에서 정의한 표준 테스트 프로세스를 참조하여

자사의 소프트웨어 시험 프로세스 구조를 구축함

Page 13: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

신뢰성 시험

소프트웨어 단위시험 이란 단위 기능을 구성하는 소프트웨어(모듈,클래스,함수 등)내에서

결함을 찾고 그 기능 및 비기능 요소를 확인하는 시험

3) 소프트웨어 단위시험 전략

13/29

소스코드 중심으로 수행되며, 보통 작성한 프로그래머가 직접 시험에 참여함.

요구사항 기반의 시험을 충실히 수행해야 함.

소스코드의 잠재적인 결함을 조기에 식별하여 제거함으로써 SW의 신뢰성을 확보하고 품질을

향상하는데 목적이 있음.

기능시험

II. TMMi 기반 소프트웨어 단위시험 전략

Page 14: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

무기체계 소프트웨어에 대한 제품위험 분석을 수행하고,

그 결과를 바탕으로 소프트웨어 단위시험 전반에 대한 시험 전략을 세움.

3) 소프트웨어 단위시험 전략-전략수립

14/29

II. TMMi 기반 소프트웨어 단위시험 전략

제품 위험 분석 도구를 활용하여

장애 발생 가능성과 영향도를 기준으로

평가하여 위험 등급을 결정함.

각 위험등급 별 시험전략을 세움.

제품 위험 등급 종료조건 시험 설계 기법5)

A등급 A등급 종료조건 설계기법1,2,3

B등급 B등급 종료조건 설계기법1,2

C등급 C등급 종료조건 설계기법1

D등급 D등급 종료조건 -

소프트웨어 단위시험 제품 위험 평가표

No. 위험 항목

(소프트웨어 단위(CSU)기반 기능)

장애 발생 가능성 (기술적 위험)

장애로 인한 영향도(사업적 위험)

위험 등급 (자동계산) 난이

도 (A)

상호 의존도 (B)

신규 개발 (C)

합계 (A+B+

C)

사용빈도 (D)

영향도 (E)

합계 (D+E)

1 1553 통신 제어 9 9 5 23 9 9 18 A

2 ARINC-428 제어 9 9 9 27 5 3 8 B

3 UART 제어 5 3 9 17 3 5 8 B

4 Discrete 제어 1 3 5 9 3 5 8 D

5 체계 모드 운용 9 9 5 23 9 9 18 A

6 D

Page 15: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

소프트웨어 단위시험 설계문서 및 소스코드에 대하여 동료검토 수행하고,

방위사업청에서 지정한 코딩규칙을 포함하는 69개의 사내 코딩규칙를 적용함.

3) 소프트웨어 단위시험 전략-정적시험

15/29

II. TMMi 기반 소프트웨어 단위시험 전략

• 자동화 도구를 활용하여 수행(QAC/C++ 또는 LDRA Tbvision)

• SW구현 시작 전 코딩규칙 관련 교육 수행 • SW구현 단계부터 코딩규칙검증 실시 • 소프트웨어 단위시험 기간 중 최소 2회 공식적으로

수행하여 결과 제출 • 코드 변경시 코딩규칙검증 재실시 • 발견된 오류는 nDMS를 통해 관리

코딩규칙검증 시험 수행

• 동료검토 Checklist를 활용하여 수행(시험용이성 검토) • 소프트웨어 설계문서(SDD, IDD 등) 및 소스코드에 대하여

동료검토 수행 • 발견된 오류는 nDMS를 통해 관리

동료검토 수행

Page 16: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

소프트웨어 단위시험은 총 5 단계로 수행하며,

각각의 활동 상세내용과 관련 산출물들은 아래과 같음.

3) 소프트웨어 단위시험 전략-동적시험

16/29

II. TMMi 기반 소프트웨어 단위시험 전략

확인절차 활동 내용 관련 산출물

계획

소프트웨어 위험도 분석 및 전략 수립

소프트웨어 단위시험 일정 계획 수립

시험 데이터 식별

S/W위험 분석도구

설계(기본) 시험 대상 항목 도출 및 설계

- CSU의 클래스, 모듈 단위 테스트 컨디션 명세서

설계(상세)

시험전략에 따른 테스트 설계 기법 적용

- 제어흐름테스팅,경계값분석,동등분할 등

시험 대상 항목 검증을 위한 상세 절차서 설계

시험 데이터 구체화 및 명세화

도출된 테스트 케이스는 nTMS에 등록 관리

테스트 케이스 명세서

테스트 프로시져 명세서

수행

자동화 도구(VectorCAST 또는 LDRA) 기반의

시험 수행

시험 일지 작성

결함 발생시 nDMS에 등록 관리

시험일지

자동화도구 로그

종료 종료조건(코드실행률 목표값 달성 등) 여부 확인

소프트웨어 단위시험 결과보고서 작성 및 보고 S/W단위시험 결과보고서

Page 17: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)
Page 18: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

1) 시험조직 구성 III. 적용 사례

18/29

소프트웨어 신뢰성을 높이기 위해 제3자 시험 조직을 구성하여 객관적이고 전문적인

시험을 수행할 수 있도록 하였으며, 소프트웨어 개발 조직과 유기적으로 연계하여 시험을 수행함.

통합 시험 관리자 (OOO 수석)

통합 시험 담당자 (OOO 선임)

소프트웨어 통합시험

프로젝트 관리자 (OOO 수석)

시험총괄관리자 (OOO 수석)

단위 시험 관리자 (OOO 수석)

단위 시험 담당자 (OOO 선임 외)

소프트웨어 단위시험

소프트웨어 시험 조직

소프트웨어 정적 시험

정적 시험 관리자 (OOO 수석)

정적 시험 담당자 (OOO 선임 외)

소프트웨어 개발 조직

Page 19: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

1) 시험조직 구성 III. 적용 사례

19/29

각 조직의 시험활동 관련 활동은 아래와 같이 수행하며 nTMS(1)를 통해 서로 유기적으로 협력함.

협력회사6)에 대한 SW 신뢰성 시험 교육을 수행하며, 납품 전 SW 신뢰성 확인 시험을 수행함.

SW 시험 관리

단위시험을 위한 SW 위험분석

단위시험 전략 수립

단위시험 계획 수립

단위시험 환경 설정

단위시험 결과 보고

정적 시험 수행

동적 시험 설계

코딩 규칙 검증 (QAC/C++)

실행시간오류 검출 (CodeSonar)

기본 설계 (테스트컨디션 도출)

상세 설계 (테스트케이스 도출)

시험 결과 분석

신뢰성 시험 교육

신뢰성 확인 시험

SW 시험조직 SW 개발조직

CSU(함수) 구현

시험 검토

시험 수행 모니터링

SW 결함 조치

SW 협력회사

OOO 담당 회사

정적 시험

동적 시험

정적 시험 평가기준 만족

동적 시험 코드 커버리지 목표 값 만족

위험 분석 결과 및 시험 전략 검토/합의

시험 계획 검토/합의

시험 결과 검토

시험성과지표

※ 구현과 시험설계와 시험 병행 (1) nTMS(Test Management System)

nTMS(1) 활용

Page 20: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

2) 마스터 시험 계획 수립 III. 적용 사례

20/29

TMMi 기반의 구축된 프로세스에 따라서 프로젝트에서는 마스터 시험 계획서(MTP)를

작성하여 모든 시험단계 별 시험 계획을 수립하여 관리함.

• 시험 목적 및 범위 • 시험 일정 및 조직 • 참여 인력 및 이해 관계자 참여 계획 • 교육 계획 • 시험 성과 지표

시험 개요

• 소프트웨어 항목 • 하드웨어 및 펌웨어 항목 • 자동화 도구 • 시험 데이터 • 기타 요소

시험 환경

• 시험 방법 정의 • 정적 시험 계획 : 동료검토, 정적 분석 • 동적 시험 계획 - 체계 통합 시험 : 제품위험분석시험 전략계획설계수행결과 보고 - SW 통합 시험 : 제품위험분석시험 전략계획설계수행결과 보고 - SW 단위 시험 : 제품위험분석시험 전략계획설계수행결과 보고

• 시험 종료

시험 계획

시험 산출물

추적성 확인

Page 21: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

3) 단위시험 전략 수립 III. 적용 사례

21/29

고객과 합의된 내용을 기반으로 효율적인 소프트웨어 단위시험 수행을 위한 시험 전략을 수립함.

한정된 Resource 내 고품질의 소프트웨어 개발을 위한 효율적인 전략을 수립하고자 함

CSCI CSC 위험수준

시험항목

코딩 규칙

런타임 에러

구문 실행률

분기 실행률

MC/DC

OOO CSCI

AAA CSC A ● ● ● ● ●

BBB CSC A ● ● ● ● ●

XXX CSCI

CCC CSC D ● ●

DDD CSC C ● ●

EEE CSC D ● ●

Page 22: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

4) 단위시험 분석 및 설계 III. 적용 사례

22/29

시험전략에 따라 시험 설계 기법5)을 적용하여

테스트 컨디션, 테스트 케이스, 테스트 프로시저 명세서를 작성함.

• 개발조직과 합의된 양식으로 명기된 소스코드 주석을 기반으로 함. Input / Output / 동작특성 등.

• 단위 함수의 기능을 검증하기 위한 테스트 케이스 작성.

• 예외처리 확인을 위한, 동등 분할 / 경계값 분석 기법을 적용하여 테스트 케이스 작성.

명세 기반의 기능 시험 테스트 케이스 설계

• 명세 기반의 기능 시험으로 충족하지 못한 코드실행율 달성을 위한 시험.

• MC/DC 커버리지 목표치 달성을 위해 자동화 도구에서 제공하는 MC/DC Pairs를 활용함.

코드실행률 달성을 위한 시험 테스트 케이스 설계

테스트 케이스/ 테스트 프로시저

입력

Page 23: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

5) 단위시험 수행 및 결함 조치 (1/2) III. 적용 사례

23/29

소스코드의 Call Graph를 분석하여 단위시험을 수행 순서를 결정하며, 작성된 테스트 케이스를 자동화 도구를 사용하여 시험활동을 수행4)하고, 결함 발생 시 nDMS에 등록하여 관리함.

① Call Graph 분석

② Test Case 입력

③ 결과 확인

성공여부 및 코드실행률

④ 시험 수행 이력을 관리하기 위해 시험 일지를 작성함.

⑤ 결함 발생시 nDMS로 관리 및 공유

Page 24: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

5) 단위시험 수행 및 결함 조치 (2/2) III. 적용 사례

24/29

사내코딩규칙 준수여부를 자동화 도구를 활용하여 주기적으로 검사하고,

결함이 발생되면 nDMS에 등록하여 관리함.

① 자동화 도구를 사용하여 분석수행

③ 발생한 결함은 nDMS로 관리 및 공유

② 소프트웨어 정적시험 결과보고서

작성

Page 25: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

6) 단위시험 성과지표 및 모니터링 III. 적용 사례

25/29

시험 성과지표를 통해 시험 진행 현황과 제품 위험 완화여부를 모니터링하고,

문제점 및 이슈를 조치함

조직차원의 시험 성과지표

특성 지표 명 측정 시기

기능성 요구사항 커버리지 소프트웨어통합시험

체계 통합 시험

신뢰성

결함 밀도 소프트웨어단위시험

소프트웨어통합시험

체계 통합 시험

결함 조치율

테스트 커버리지

테스트 성숙성

구문 커버리지

소프트웨어단위시험 유지보수성

소스코드 주석율

코딩표준 준수율

복잡도

(Cyclomatic Complexity)

상호운용성

상호운용성

요구사항 커버리지 소프트웨어통합시험

체계 통합 시험 표준적합성

요구사항 커버리지

시험일정 관리(진척도)

성과지표 모니터링

• WBS 기반의 일정 대비 진척상황 모니터링 • 시험관리자가 작성하여 프로젝트 관리자에게

주기적으로 보고 • 일정 관련 문제 발생시 대책 방안 및 해결방안 제시 • 성과지표 모니터링을 통한 제품 위험 완화여부 확인

가능

주기적인 성과지표 모니터링

Page 26: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

8) 동료 검토 III. 적용 사례

26/29

정적 시험 차원에서 개발자가 작성한 SW기술문서(SDD)와 소스코드를 시험용이성 측면에서

동료검토를 수행하고, 그 결과를 결함관리시스템을 통하여 관리함

• 검증을 위한 시험 설계가 가능하도록 설계 되었는가? • 시험 항목을 도출할 수 있도록 설계되었는가? • 시험Pass 기준인 시험 기대 결과를 도출할 수 있는가?

동료검토체크리스트-시험용이성 확인 항목 예

결함관리시스템

등록

[ 개별검토 시 확인 방법 ]

* 동료검토체크리스트

* 코딩규칙

결함관리시스템 (nDMS)

Page 27: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

9) 단위시험 종료 III. 적용 사례

27/29

단위시험에 대한 성과 목표 달성 여부, 시험 수준 별 시험 성과를 측정하고 분석하여

소프트웨어 제품의 신뢰성을 최종 관리하고 프로젝트 관리자에게 보고함.

시험 결과 상세

특성 지표 명 목표 실측 측정시기

신뢰성

결함 밀도(건/KLOC) 6.2 5.2

소프트웨어단위시험 소프트웨어통합시험

체계 통합 시험

결함 조치율 100% 94%

테스트 커버리지 100% 100%

테스트 성숙성 90% 86%

MC/DC 커버리지 90% 95%

소프트웨어단위시험 유지 보수성

소스코드 주석율 30% 이상 31%

코딩표준 준수율 100% 96%

복잡도 (Cyclomatic complexity)

(평균치) 20이하 15

상호 운용성

상호운용성

요구사항 커버리지 NA NA

체계 통합 시험 소프트웨어 통합시험 표준적합성

요구사항 커버리지 NA NA

단위 시험 수행 결과

대상 CSU 시험 일시 테스트케이스 개수 미수행 또는

실패 사유 계획 실패 미수행

A 5 1 0 00오류1건

B 3 0 0

C 4 0 0

합계 - 총 12개 총 1개 총 0개

단위 시험 결함 조치 결과

차수 대상 CSU 시험 일시 결함 건수 주요 결함

예외처리 사유 총 검출 예외 미 수정

1차 A 3 1 0 OS Lib 오류

2차 A 1 0 0 -

3차 B 2 0 0 -

합계 - 총 3회 총 6건 총 1건 총 0건

대상 CSU 주요 이슈 사항 조치 사항

A 시험 도중 특이한 결함 발생한 경우

B 중대한 결함이 발생한 경우

C 조치가 어려운 결함이 발생한 경우

D 갑작스런 요구사항 변경이 발생한 경우

단위 시험 주요 이슈

Page 28: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

Ⅵ. 결론

통합/체계통합 시험 이전에 활발한 소프트웨어 단위시험 활동을 수행함으로써

추후 시험 수행 시, 오류 발생 가능성을 크게 낮출 수 있는 효과를 기대할 수 있음.

전문 시험조직이 소프트웨어 시험활동을 전담하므로써 효과적이고 효율적인

단위시험이 가능함.

방위사업청의 “무기체계 소프트웨어 개발 및 관리 지침” 신뢰성 시험 활동을

포함할 수 있는 전략을 제시하여 원활한 신뢰성 시험 활동을 가능하게 함.

TMMi 인증을 통해 공식적으로 검증된 소프트웨어 시험 프로세스와 적용사례를

조직내에 지속적으로 내재화하여, 소프트웨어 품질향상을 위해 노력하겠음.

28/29

Page 29: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

References

1) 방위사업청, "무기체계 내장형 소프트웨어 획득 및 관리 실무 지침서", 2011

2) TMMi Foundation, "Test Maturity Model integration(TMMi) Framework v3.1, Erik van Veenendaal, 2010

3) 이혜진, "TMMi 기반의 시험 프로세스 적용을 통한 무기체계 소프트웨어 신뢰성 향상 연구", 2012.6

4) 이주현, "TMMi 기반의 효율적인 전투체계 소프트웨어 단위 테스팅 수행 전략 연구", 2012.6

5) 김상기, "전투체계 소프트웨어의 신뢰성 확보를 위한 테스트 설계기법 적용 연구", 2012.6

6) 이주리, "TMMi 프로세스 적용을 통한 고품질의 협력개발 소프트웨어 획득 방안 연구", 2012.6

29/29

Page 30: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)
Page 31: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)
Page 32: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

[참조] 방위사업청 소프트웨어 신뢰성 시험 평가 기준

방위청에서는 소프트웨어 신뢰성 확보를 위해 정량적이고 객관적인 소프트웨어 신뢰성 시험 평가 기준을 제시함.

적용 범위

1) 적용 기관 : 방위사업청, 청 출연기관, 연구개발주관기관 2) 적용 사업 : 무기체계 연구개발사업 3) 적용대상 소프트웨어 : 개발기관에서 개발한 무기체계 내장형 소프트웨어

소프트웨어 신뢰성 시험 평가 시기 및 장소

1) 시험 평가 시기 : 개발시험평가(DT&E) 기간 내 ※ 필요 시 운용시험평가(OT&E)에도 적용 가능 2) 시험 평가 장소 : 개발기관 또는 지정된 장소 3) 시험 평가 조종 및 통제 : 분석 시험 평가국(통합시험평가팀) ※ 시험 주관 및 수행(Operator) : 개발기관 ※ 입회/참관(Witness) : 통합시험평가팀, IPT, SW기술팀, 소요군, 기타 관련 부서

소프트웨어 신뢰성 시험 평가 항목 및 방침

1) 소프트웨어 형상항목(CSCI) 단위로 실시 2) 시험 평가 항목 : 코딩 규칙 검증, 실행시간오류(Runtime Error) 검출,코드 실행률(Code Coverage) 확인 3) 시험 평가 항목에 대한 세부 계획, 절차, 결과보고 STP, STD,

STR 4) 개발주관기관에서 보유한 도구를 우선 적용

Page 33: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

[참조] 방위사업청 소프트웨어 신뢰성 시험 평가 기준

코드 실행율 확인 시험을 수행하고, 목표 값을 달성해야 함을 제시

Page 34: 2013. 01. 30dslab.konkuk.ac.kr/Etc/KCSE 2013/KCSE2013/KCSE2013_프로시딩/S… · •테스트 상황/요구사항/데이터 식별 •테스트 기법 할당 •테스트 용이성(testability)

[참조] 방위사업청 소프트웨어 신뢰성 시험 평가 기준

시험 성적서 양식