본문 바로가기
Testing/SW테스팅

테스팅

by 요섹남 2022. 4. 19.

- 테스팅 -

* 테스팅의 필요성?

1. 정상적으로 동작하지 않는 소프트웨어에서 야기될 수 있는 부정적 상황을 예방

2. 결함 발견, 예방

3. 소프트웨어 시스템의 품질 향상

4. 의사 결정을 위한 정보 제공

 

* 테스팅 이란?

사용자의 기대 수준과 요구 사항에 맞게 구현되고 동작하는지를 확인

 

* 테스팅 일반 원리

1. 테스팅은 결함이 존재함을 밝히는 활동 : 결함이 없다는 것은 증명할 수 없음

2. 완벼한 테스팅은 불가능 : 무한경로, 무한 입력 값, 무한 타이밍 -> 리스크 분석과 결정된 우선 순위에 테스팅을 집중

3. 테스팅을 개발 초기에 시작 : 개발 시작과 동시에 테스트를 계획 , Test Case를 도출하면서 문서상의 결함 발견

4. 결함은 지중 : 적은 수의 모듈에서 대다수의 결함 발견, 신기술 정도, 개발자의 능력에 따라 발견

5. 살충제 패러독스

6. 테스팅은 정황에 의존적

7. 오류 - 부재의 궤변

테스팅의 7가지 일반 원리

- 테스트 프로세스 -

* SW 품질 프로세스 "용어, 산출물, 프로세스, 설계기법"

1. 테스트 계획과 제어 - 테스트 계획, 테스트 관리 및 제어. 모니터링(리포팅) 계획,설계, 진행 리포팅, 리스크 분석

2. 테스트 분석과 설계 - 테스트 베이시스(개발 산출물, 기획서, 요구사항 등), 요구사항 체크후 논리적(High Level) 설계 및 우선순위 선정

3. 테스트 구현과 실행

4. 완료 조건의 평가와 보고 - 만족하면 다음 단계, 불만족이면 전 단계로 돌아가 다시 실행

5. 테스트 마감 활동

* 리스크(Risk) = 프로젝트 리스크 + 제품 리스크

1. 프로젝트 리스크(Project risk) "사람과 간련된"

2. 제품 리스크(Product risk) "소프트웨어나 시스템과 관련된"

3. 리스크 분석은 개발자와 같이 실행 - 개발자의 경험 미흡 같은 부분은 테스터가 캐치를 못하게 때문

 

* 리스크 관리 - 절차

- 리스크 식별 -> 리스크 분석 -> 리스크 계획 -> 리스크 추적

- 리스크 분석 : 리스크 운선순위 결정 "중요하고, 복잡하고, 잠재적으로 결함이 많은 부분" 리스크 = 장애 발생 빈도 X 장애로 인한 영향

- 리스크 계획(리스크 완화 계획)

1. 리스크 분석 결과를 근거로 대처 방안 수립, 즉 리스크를 줄이는 "테스트" 를 생성하는 것

2. 리스크 영역이 높은 리스크 아이템일 경우 우선적으로 주어진 시간과 자원을 고려하여 공식적인 기법을 적용한 강력한 테스팅으로 진행하고 리스크 영역이 낮은 리스크 아이템일 경우 자유롭게 시간이 허용하는 범위에서 테스팅 진행

3. 리스크를 최소화 하기 위한 전략을 수립

 

* 테스트 단계 - V모델

"각각의 개발 단계에 맞게 테스팅을 하자"  v모델

- 시스템이 빨리 안정화가 되고 적은 비용으로 결함을 잡을수 있다

각각의 개발 단계에서 옆에있는 테스트를 진행 하는 모습

* 재테스팅, 리그레션 테스팅

- 결함이 발견 되었을때 실행하는 것

- 재테스팅 : 결함 수정후, 결함이 성공적으로 제거되었는지 확인하기 위해 다시 테스트 하는 것

- 리그레션 테스팅 : 테스팅을 여러번 반복하는 것(테스트 스위트), 수정과 변경으로 인해 새로운 결함을 찾는 것

  = 자동화 테스트의 대상 (성공적인 사례 보기 힘듬)

  = 리그레션 테스팅은 모든 테스트 레벨에서 수행할 수 있다

'Testing > SW테스팅' 카테고리의 다른 글

테스트 케이스  (0) 2022.04.19