QA Outsourcing & Consulting

[CSTS AL] 2. 테스트 개념 본문

IT Trend/CSTS AL & ISO 29119

[CSTS AL] 2. 테스트 개념

인프라웨어테크놀러지(IT) 2019. 3. 21. 10:48

테스트 개념에 대해 정리합니다.


※ SW 테스트 정의

- 프로그램이나 시스템이 자신이 해야되는 일을 수행하는 확신을 주는 과정

- 컴퓨터 소프트웨어를 실행하여 그 결과가 올바른지 판단하는 과정

- 에러를 발견할 목적으로 프로그램을 실행하는 과정

- 소프트웨어 품질을 측정하고 개선하기 위한 테스트웨어를 공학화하여 사용하고 유지하기 위한 또 다른 라이프사이클 프로세스



 테스트 개념

1. 테스트 목적

▶ 소프트웨어가 올바르게 동작하지 않는 경우 다양한 문제가 발생한다. 테스팅은 이러한 소프트웨어 시스템의 문제를 최소화하기 위해 반드시 필요하다.


* 일반적인 테스트 목적

- 명시된 모든 요구사항이 충족되었는지 확인

      - 장애 및 결함 발견

      - 결함 예방

      - 사용자 및 이해관계자(stakeholders)의 요구 충족 확인

      - 품질수준에 대한 자신감 획득

      - 이해관계자가 테스트 대상의 품질 수전을 결정하는데 필요한 정보 제공


* 테스트의 관점에 따른 목적(현재의 테스트 레벨, SW 개발수명주기, 모델 등에 따름)

      - 컴포넌트 테스팅 

  : 내재되어 있는 결함(failure)을 최대한 조기에, 가능한 많이 식별하고 수정하는 것

  : 코드 커버리지를 높이는 것

      - 인수 테스팅 

  : 예상된 대로 시스템이 동작하는지 확인하고 요구사항에 맞는지 확인하는 것

  : 특정 시간에 시스템을 출시(release)하는 것의 리스크를 이해관계자(stakeholders)에게 전달하는 것

      - 유지보수 테스팅

  : 개발 과정에서 변경 작업이 일어나는 경우 새로운 결함이 유입되었는지 확인하는 것(regression testing)

      - 운영 테스팅

  : 신뢰성 또는 가용성과 같은 시스템의 특성을 평가하는 것


2. 오류, 결함, 장애

▶ 오류(Error), 결함(Defect, Fault, Bug), 장애(Failure)

- 사람은 프로그램 코드 또는 기타 작업산출물을 작성하면서 결함을 발생시키는 오류를 범할 수 있다.

  * 오류(Error)

- 사람에 의해 발생함

- 요구사항의 잘못된 이해, Typo, 프로그램/시스템에 대한 이해 부족 등으로 발생하는 실수

  * 결함(Defect, Fault, Bug)

- 사람이 오류를 범하기 쉽기 때문에 발생

  * 장애,오작동(Failure)

- 코드에 존재하는 결함은 장애의 원인이 된다.

- 의도된 대로 동작하지 않거나, 동작하면 안되는 경우 동작하는 것

- 모든 결함이 장애를 일으키는 것은 아니다.

- 결함 외 환경 조건으로 인해 발생할 수도 있다.

- 테스트 결과가 기대와 다르다고 모두 장애인 것은 아니다.

- False Positive : 정확하지 않은 data, 테스트 환경, 테스트웨어의 결함 등으로 발생하는 경우

> 기대와 달라 결함으로 보고되었으나 실제 결함이 아님

- False Negative : 비슷한 오류, 결함으로 인해 발견해야할 결함을 발견하지 못하는 경우

  * SW 오류 원인

- 요구사항 오류

: 고객의 요구사항을 불완전하거나 잘못 반영

: 시간/예산의 압박으로 인한 기능 일부를 빠뜨리는 것

: 개발자가 임의의 기능을 고객 승인 없이 추가

- 설계 오류

: 요구사항을 설계에 반영하는 과정에서 발생하는 오류(요구사항과 설계 등에 대한 프로젝트 참여자 간의 의사소통 문제가 원인이 될 수 있다.)

- 코딩 오류

: 설계 문서의 잘못된 이해, 프로그래밍 언어/개발도구 사용의 경험부족으로 발생

- 기타 오류

: 문서나 코딩 표준에 따르지 않는 경우

: 미흡한 테스트 프로세스

: 기반환경(infrastructure)의 복잡성

: 기술이나 시스템의 변경

: 수많은 시스템 상호간의 연동


3. 테스트와 품질

▶ 테스팅을 통해 발견된 결함에 근거하여 기능/비기능적 요구사항과 품질특성 관련 품질측정 가능

  * 품질관리(quality management)

: 품질 측면에서 조직이 가야하는 방향을 제시, 제어하는 모든 활동을 포함

- 품질보증(quality assurance)

  : 적절한 품질 수준을 달성했는지 확신을 얻기 위해 적절한 프로세스를 준수하도록 하는 것이 초점

  : 결함의 근본 원인에 대한 이해를 바탕으로 비슷한 결함의 재발을 방지하기 위해 프로세스를 개선하는것

- 품질제어(quality control)

  : 적합한 품질 수준을 달성하기 위한 여러 활동을 한다.

  : 테스트 활동이 이에 포함될 수 있다.

- 테스트(testing)

  : 전반적인 소프트웨어 개발, 유지보수 프로세스의 일부

  : 올바르게 설계된 테스팅은 시스템의 전반적인 리스크 수준을 감소시킨다.


Comments