소프트웨어 시험 절차서

1. 목적

1.1. 본 절차서는 컴퓨터프로그램이 고객 요구사항대로 개발되었는지 시험하기 위한 절차를 기술한다.

2. 범위

2.1. 본 절차서는 제이에스솔루션에서 수행하는 모든 소프트웨어 설계, 개발 프로젝트의 통합 및 시험(통합시험, 확인시험, 수락시험 등) 업무에 적용한다.

3. 용어의 정의

3.1. 불일치사항 : 품목이나 업무의 품질이 불합격 또는 불확실한 특성, 문서 또는 절차상의 결함.

3.2. 컴포넌트시험(Component Testing) : 하나의 소프트웨어 요소(단위, 모듈 등) 또는 소프트웨어 요소의 집합의 설계를 구현한 것을 검증하기 위한 시험.

3.3. 소프트웨어의 확인시험 : 개발과정에서 코드(code)로 구현된 소프트웨어의 설계를 시험사례(test case)를 적용하여 요구 성능을 확인하는 과정.

3.4. 수락시험(acceptance testing) : 운영환경에서 규정된 요건을 만족하고, 예상결과와 실제 결과 간의 차이를 식별하기 위하여 수동 또는 자동화된 방법으로 시스템 또는 시스템요소를 시험 또는 평가하는 과정.

3.5. 시험 사례(Test Case) : 시험을 수행하기 위해 기본이 되는 문서화된 항목. 시험할 구체적인 내용을 문서화한 것으로 직접 시험을 수행하는 근간이 되고, 시험을 수행했다는 증거가 되며, 시험의 범위를 표현하기도 함. 일반적으로 시험 사례는 측정 가능한 상태에 대한 정보, 조건(Condition), 이벤트(Events), 입/출력 값을 포함하는 데이터로 구성됨.

3.6. 통합시험(Integration Testing) : 소프트웨어 컴포넌트, 하드웨어 컴포넌트 또는 둘 모두가 전체 시스템으로 통합될 때까지 조합되고 테스트되는 순차적으로 진행되는 시험으로 시스템이나 시스템 구성요소(컴포넌트) 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스가 정상적으로 작동하는지에 중점을 두고 수행하는 시험

3.7. 시스템시험(System Testing) : 요구사항에 적합한지를 검증하기 위해 모든 하드웨어와 소프트웨어를 시험하는 과정으로, 시스템 구성 요소(component)나 소프트웨어 프로그램의 모듈이 하나의 시스템으로 동작하게 되면서 시스템 성능과 관련된 고객의 요구 사항이 완벽하게 수행되는지를 평가하는 시험.

4. 소프트웨어 통합

4.1. 통합단계는 이전까지 개별적으로 개발된 각각의 단위 소프트웨어를 통합하는 과정으로, 단위 소프트웨어들이 전 단계의 모든 요건을 충족하여 통합되는지를 확인하여야 한다.

4.2. 설계팀장의 판단에 따라 이 단계는 생략될 수도 있으나, 문서화하는 경우 소프트웨어 간 연계사항에 따른 추적성이 확보되도록 하여야 한다.

4.3. 소프트웨어 통합 단계의 확인은 독립검토자에 의해 수행되어야 하며 결과는 소프트웨어 확인 및 검증 점검표의 통합 단계(양식 0501-04)에 기록하여야 한다.

4.4. 전형적인 소프트웨어 통합업무 흐름도는 아래와 같다.

integration flow

4.4.1. 통합환경 구축 : 설계요원은 소프트웨어 통합 환경(하드웨어, 소프트웨어, 기타 지원 환경)을 구축하여야 한다.

4.4.2. 소프트웨어 통합 : 설계요원은 하드웨어 및 소프트웨어를 설치하고, 각각 개발된 단위 소프트웨어를 하나의 소프트웨어로 통합하여야 한다.

4.4.3. 소프트웨어 통합 확인 : 독립검토자는 소프트웨어 통합 단계에 대한 내용을 소프트웨어 확인 및 검증 점검표의 통합 단계에 기록하여야 한다.

5. 소프트웨어 확인시험

5.1. 코드(code)로 구현된 소프트웨어 설계는 시험사례(test case)를 이용하여 확인하여야 한다.

5.2. 소프트웨어 확인시험에는 컴포넌트시험, 통합시험, 시스템시험, 수락시험이 있으며 각 시험에 대해 시험계획서와 시험절차서를 작성한 후 시험 수행을 한 후 시험보고서를 작성한다. 컴포넌트시험과 수락시험은 고객이 요구하지 않은 경우 생략될 수 있다.

5.3. 시험계획서의 작성

5.3.1. 컴포넌트시험, 통합시험, 시스템시험 및 수락시험을 위한 시험계획서는 설계요원이 작성, 다른 설계요원이 검토하고 설계팀장이 승인하여야 한다.

5.3.2. 시험계획서는 다음 사항들이 포함되어야 한다.

  1. 목적 및 범위

  2. 서론

  3. 시험항목

  4. 시험 대상 특성

  5. 시험 대상이 아닌 특성

  6. 접근방법

  7. 항목의 성공/실패 기준

  8. 일시 중지 기준 및 재개 요구사항

  9. 시험 인도물

  10. 시험 작업

  11. 환경 요건

  12. 책임

  13. 구성원 및 교육 요건

  14. 일정

  15. 위험 요소 및 비상대처 상황

  16. 승인

  17. 시험 식별

  18. 특성의 성공/실패 기준

5.3.3. 시험계획서의 개정은 최초 작성 시와 동일한 절차에 따른다.

5.4. 시험절차서의 작성

5.4.1. 컴포넌트시험, 통합시험, 시스템시험 및 수락시험을 위한 시험절차서는 설계요원이 작성, 다른 설계요원이 검토하고 설계팀장이 승인하여야 한다.

5.4.2. 시험절차서는 수계산, 비교 가능한 증명된 컴퓨터 프로그램을 사용한 계산 또는 기술 문헌상의 경험(실험) 자료나 정보와 같은 대체방법으로 얻은 시험 결과와의 비교를 통 하여 기술적 적합성이 평가될 수 있도록 규정되어야 하며, 다음 내용 중 해당하는 사항들이 포함되어야 한다.

  1. 목적 및 적용범위

  2. 요구되는 시험 및 시험순서

  3. 입력 매개변수의 요구범위

  4. 시험이 요구되는 단계의 식별

  5. 시험사례를 설정하기 위한 기준

  6. 시험논리 분기점에 대한 요건

  7. 하드웨어 건전성에 대한 요건

  8. 예상 출력값

  9. 수락기준

  10. 보고서, 기록, 표준양식 및 규칙

5.4.3. 시험절차서의 개정은 최초 작성 시와 동일한 절차에 따른다.

5.5. 시험 수행

5.5.1. 시험은 승인된 시험절차서, 관련 규격 및 기술기준 또는 규제기관의 요구사항 등에 따라 수행되어야 한다.

5.6. 시험보고서 작성

5.6.1. 컴포넌트시험, 통합시험, 시스템시험 및 수락시험에 대한 시험보고서는 설계요원이 작성, 독립검토자의 검토 및 설계팀장의 승인을 득해야 한다.

5.6.2. 시험보고서에는 최소한 다음 사항이 포함되어야 한다.

  1. 사용된 계통 소프트웨어를 포함하여 시험된 컴퓨터프로그램(S/W명과 버전번호 포함)

  2. 사용된 컴퓨터 하드웨어(컴퓨터 식별번호 포함)

  3. 시험일자

  4. 시험자 및 확인자

  5. 사용된 시뮬레이션 모델(해당 시)

  6. 시험 시 문제점

  7. 시험결과 및 적용성

  8. 발생된 문제점에 대한 조치사항

  9. 시험결과 평가자

  10. 수락여부

5.7. 전형적인 소프트웨어 시험업무 흐름도는 아래와 같다.

testing flow

5.7.1. 시험 절차서 작성 : 본 절차서 5.4항에 따라 작성하여야 한다.

5.7.2. 시험 데이터 준비 : 설계요원은 시험 절차서에 따라 소프트웨어 기능 정합성 검증을 위한 시험데이터를 작성하여야 한다.

5.7.3. 시험 환경 구축 : 설계요원은 시험 절차서에 따라 시험 환경(하드웨어, 소프트웨어, 기타 지원장비)을 구축하여야 한다.

5.7.4. 시험 실시 : 설계요원은 시험 절차서에 따라 시험을 실시하고 시험결과의 수락여부를 시험보고서에 기술하고 설계팀장의 승인을 받아야 한다. 품질팀 기사는 시험 절차에 따라 시험이 수행되는지 확인하여야 한다.

5.7.5. 불일치사항 기록 : 설계요원은 불일치사항이 발생하면 세부 내용을 품질팀장에게 통보하여야 한다. 품질팀장은 해당 내용을 시험 예외사항 보고서(양식 0404-03)에 작성하고 시험 예외사항 목록(양식 0404-04)에 추가하여야 한다.

5.7.6. 불일치사항 분석 및 해결 : 설계요원은 시험 중 발견된 불일치사항을 분석하고 영향을 받는 항목을 식별 및 해결 방안을 도출하여 해결하여야 한다. 불일치사항 해결로 작업 산출물 변경 및 수정을 해야 하는 경우가 발생하면 형상관리 프로세스에 따라 작업 산출물을 변경하여야 한다.

5.7.7. 불일치사항 해결 확인 : 설계요원은 불일치사항 해결 방안을 확인하여 불일치사항이 종결되고, 소프트웨어가 동작하는지 확인하여야 한다. 불일치사항이 해결되지 않으면 “불일치사항 기록” 항목으로 이동하여 재수행하여야 한다.

5.7.8. 불일치사항 해결 종료 : 모든 불일치사항이 해결되면 설계요원은 시험결과 보고서 및 시험 불일치사항 보고서(양식 0404-03)에 조치 결과를 작성하여 설계팀장의 승인 및 품질팀장의 최종 확인을 받아야 한다.

5.7.9. 시험결과 확인 : 설계팀장은 작성된 시험결과 보고서를 승인하고, 소프트웨어 확인 및 검증 점검표의 시험 단계(양식 0501-04)를 이용하여 확인하여야 한다. 단, 컴포넌트 시험보고서인 경우 소프트웨어 확인 및 검증 점검표의 구현 단계(양식 0501-03)를 이용하여 확인하여야 한다.

5.8. 소프트웨어 시험 문서의 확인 및 검증

5.8.1. 소프트웨어 시험 문서(시험계획서, 시험절차서, 시험보고서)는 독립검토자에 의해 수행되어야 하며 결과는 문서 종류에 따라 소프트웨어 확인 및 검증 점검표의 시험계획(양식 0501-05), 소프트웨어 확인 및 검증 점검표의 시험절차(양식 0501-06) 또는 소프트웨어 확인 및 검증 점검표의 시험보고(양식 0501-07)에 기록하여야 한다.

5.8.2. 소프트웨어 시험 문서는 종류에 따라 아래와 같은 단계에서 작성되고 해당 단계의 다른 산출물과 함께 확인 및 검증 되어야 한다.

  1. 설계요건단계 : 수락시험계획서, 시스템시험계획서

  2. 설계단계 : 통합시험계획서, 컴포넌트시험계획서

  3. 구현단계 : 수락시험절차서, 시스템시험절차서, 통합시험절차서, 컴포넌트시험절차서, 컴포넌트시험보고서

  4. 시험단계 : 수락시험보고서, 시스템시험보고서, 통합시험보고서

5.9. 소프트웨어 시험 단계의 확인 및 검증

5.9.1. 다음의 시험 단계 산출물로 소프트웨어 시험 단계 확인 및 검증을 한다.

  1. 수락시험보고서

  2. 시스템시험보고서

  3. 통합시험보고서

5.9.2. 소프트웨어 시험 단계의 확인 및 검증은 독립검토자에 의해 수행되어야 하며, 소프트웨어 확인 및 검증 점검표의 시험 단계(양식 0501-04) 및 소프트웨어 확인 및 검증 점검표의 시험보고(양식 0501-07)에 기록하여야 한다.

5.9.3. 독립검토자는 “IEEE Std 1012, Standard for Software Verification and Validation“(적용 기술기준은 고객 요구사항을 우선으로 함)에 따라 “소프트웨어 시험 단계의 확인 및 검증 보고서”를 5.9.3항에서 기록한 점검표를 포함하여 작성하여야 하며, 다른 품질요원의 검토 및 품질팀장의 승인을 득하여야 한다.

6. 소프트웨어 인증서

6.1. 품질팀장은 최종 소프트웨어가 품질보증계획의 절차에 따라 개발되었는지 검토하고 이를 보증하는 소프트웨어 인증서(양식 0404-02)를 작성하여 대표의 서명을 받아야 한다.

7. 기록

7.1. 설계팀장은 통합 결과 및 시험계획서, 시험절차서, 시험보고서를 설계팀 내 파일에 편철하여 보관하여야 한다.

7.2. 품질팀장은 시험 불일치사항에 대한 기록을 품질팀 내 파일에 편철하여 보관하여야 한다.

8. 양식

8.1. [양식 0404-01] 소프트웨어 시험 보고서

8.2. [양식 0404-02] 소프트웨어 인증서

8.3. [양식 0404-03] 시험 불일치사항 보고서

8.4. [양식 0404-04] 시험 불일치사항 목록