먼지 쌓인 키보드

[문배 정리] 2.소프트웨어 수명주기와 테스팅 본문

소프트웨어 QA

[문배 정리] 2.소프트웨어 수명주기와 테스팅

Under_Desk 2020. 1. 22. 19:40
반응형

 

 

 

 

 

 

 

 

 

 

2. 소프트웨어 수명주기와 테스팅

 

* 수명주기 모델에서 테스팅

- 모든 개발 활동은 테스팅 활동과 대응

- 각 테스트 레벨은 그레벨에 맞는 특정한 목적을 가짐

- 개발 활동과 같이 시작

- 테스터는 개발 수명주기동안 테스팅을 준비하고 개발 중간 산출물을 리뷰하는 활동에 참가

 

 

* 폭포수 모델 vs V-모델

* 폭포수 모델

- 개발활동이 순차적으로 이루어지며 테스트활동은 모든 개발활동을 완료한 후 이루어짐

* V-모델

- 테스팅을 초기에 시작하면 좋다는 원리를 토대로 테스트 프로세스를 전반적인 개발 프로세스에 통합

- 폭포부 모델을 변행해 개선

- 개발 단계와 테스팅 활동이 어떻게 통합될 수 있는 설명

- 각 개발 단계에 테스트 레벨을 부여함으로써 조기 테스팅을 좀 더 적극적으로 구현

- 개발 리스크를 조기에 감소시킬수있음

- 개발단계와 테스팅 단계는 반드시 일대일 대응을 갖는건 아님

 

 

* 베리피케이션 프로세스

- 시스템이나 컴포넌트를 평가하는 프로세스

- 주어진 개발 단계의 제품이 그 단계에서 처음 정의한대로 만족하는지 결정

= 명세된 요구사항이 충족됐는지를 조사에 의해서나, 객관적인 증거 제공으로 확인하는 것

 

 

* 반복적 개발 모델

- 민첩(Agile) 개발 모델, 래셔녈 통합 프로세스, 래피드 애플리케이션 개발, 프로토타이핑

 

 

* V모델

- 각 테스트 레벨에서 테스트 주체와 목적은 다르다

- 개발이 시작된 후에 진행

- 각 레벨의 테스트는 독립적인 테스트 수명주기를 가짐

* 반복점증모델

- 요구사항이 변경됐을 때 빠르게 반영가능

 

* 컴포넌트 테스트 통합 테스트

- 컴포넌트 테스트 : 소프트웨어 단위 모듈 자체만을 테스트

- 통합 테스트 : 모듈간 연계성을 고려해 테스트

 

 

* 인수테스팅

- 예상된 대로 시스템이 동작하는지 확인하고 요구사항에 맞는지 확신을 얻음

 

 

* 시스템 테스트

- V-모델에서 상위레벨 테스트에 속함

- 기능 테스트와 비기능 테스트 유형을 모두 테스트 범위로 함

- 주로 블랙박스 테스팅으로 접근

- 테스트의 독립성을 고려해 개발팀에서도 수행 가능

 

 

* 각 테스트 레벨에 대한 설명

- 컨포넌트(단위) 테스팅 :

코드레벨에서 또는 일반적으로 개발환경에서 개발자가 직접 수행

소프트웨어를 테스트 가능한 단위로 구분해 단위내에서 결함을 찾는 활동

- 통합 테스팅 :

시스템, 시스템 구성요소, 소프트웨어 프로그램의 데이터, 인터페이스가 정상적으로 작동하는지

컴포넌트간 인터페이스 테스트

체계적이고 순차적인 통합전략을 권장

- 시스템 테스팅 :

시스템간의 상호작용에 대한 테스트, 독립적인 테스트팀이 수행하는 경우가 대부분

전체 기능상의 결함 발견, 비기능적 품질 특성 확인을 목적

실제 시스템과 유사한 테스트 환경에서 진행

- 인수 테스팅 :

시스템에 대한 확신을 갖기 위한 테스팅, 결함 발견이 목적이 아님

리스크 기반 전략을 근거로 사업적 리스크에 집중해 테스트

주로 고객이나 사용자가 전담해 수행

반드시 최종단계에서 수행하는건 아님

(운영상의 인수 테스팅 : 유지보수와 관련된 인수테스팅)

 

* 알파 테스팅 베타 테스팅

- 알파 테스팅 : 개발 조직 내에서 잠재 고객에 의해 수행

- 베타 테스팅 : 사이트 인수 테스팅이라고 불림

고객또는 사용자가 자신의 업무 환경에서 수행

사용자 환경에서 실제 고객이나 잠재 고객에 의해 수행

 

 

* 리그레션 테스팅

- 이미 테스트된 프로그램의 테스팅을 반복

- 결함 수정 이후 변경으로 인해 유입됐거나 발견되지 않았던 다른 결함을 발견

* 확인 테스팅

- 이전 결함을 제거했는지 확인

 

 

* 비기능 테스팅

- 소프트웨어 제품 특성 테스팅

- 시스템이 어떻게 동작하는가를 테스팅

- 성능, 부하, 스트레스, 신뢰성 테스팅을 포함

 

 

* 기능 테스팅

- 시스템이 수행하는 무엇

 

 

* 테스트 용이성

- 제품 요구사항 리뷰시, 테스터가 가장 주의깊게 봐야할 것

 

 

* 부하 테스팅

- 실제 환경을 가정하고 요구사항에서 제시하는 부하의 최대치를 발생시켜 시스템이 안정적으로 작동하는지 테스트

 

* 유지보수 테스팅

- 이미 운영되고 있는 시스템에서 수행

- 개발 중 변경이 발생한 경우 확인, 리그레션 테스팅 등을 수행

- 변경이나 단종됐거나 마이그레이션 될 때 발생

 

 

* 시스템 통합 테스팅

- 개발한 시스템을 다른 시스템과 통합

 

 

* 종료조건

* 인수테스트 종료조건

- 최종 사용자가 모든 비즈니스 알고리즘을 테스트

- 최종 사용자가 모든 핵심 경로와 동작을 테스트했고, 사용자 요구사항을 모두 만족

 

* 통합 테스트 종료조건

- 모든 주요 통합 인터페이스를 테스트

 

* 시스템 테스트 종료조건

- 오픈돼있는 심각한 결함이 없음

- 모든 기능/비기능 테스트 아이템을 테스트함

 

 

 

 

 

 

 

 

 

반응형
Comments