먼지 쌓인 키보드

[문배 정리] 1.소프트웨어 테스팅의 기초 본문

소프트웨어 QA

[문배 정리] 1.소프트웨어 테스팅의 기초

Under_Desk 2020. 1. 16. 00:50
반응형

 

 

 

 

 

 

 

 

1.소프트웨어 테스팅의 기초

 

* 소프트웨어 품질의 정의

- 컴포넌트, 시스템, 프로세스가 명시된 요구사항은 물론 사용자와 고객의 필요와 기대를 충족시키는 정도

 

 

* 오류, 결함, 장애

오류 : 잘못된 결과를 낳는 인간의 행위, 실수와 동의어 (결함발생)

결함 : 일반적으로 버그, 결함, 결점은 동의어로 사용 / 요구된 기능을 적절히 처리하지 못하는 것 (장애발생)

장애 : 코드에 존재하는 결함의 실행

 

 

* 테스팅을 종료하는 조건

- 미리 정해둔 기준을 모두 달성한 것이 가장 의미있는 조건 (+ 시간이나 예산 소요)

 

 

* 독립적인 테스트 조직은 시스템 테스팅에 투입

 

 

* 효과적인 테스트

- 계획됐거나 원했던 테스트 결과 산출

- 효과적인 테스터 : 테스팅 노력으로부터 어던 결과를 도출할 것인지 결정

* 효율적인 테스트

- 계획된 테스트를 생산적(효율적)으로 수행

- 효율적인 테스터 : 가용한 리소스(시간, 자금, 인력)를 적절하고 현명하게 배치

 

 

* 결함과 품질

- 기능 및 비기능 테스트에서 찾은 결함은 소프트웨어의 품질을 판단하는 수단

- 과거 프로젝트같은 관련 경험이 현재 프로젝트의 품질 향상에 기여

 

 

* 테스트의 목적

- 결함찾기, 품질 수준에 대한 자신감 확보, 결함 예방

(비교) 디버깅 : 결함의 원인 식별

 

 

* 테스팅의 7가지 원리

1. 테스팅은 결함이 존재함을 밝히는 활동이지, 결함이 없음을 밝히는 활동이 아니다.

2. 완벽한 테스팅은 불가능하다.

3. 조기 테스팅으로 시간과 비용을 절약할 수 있다.

4. 결함은 집중된다.

5. 살충제 패러독스에 유의하라.

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

7. 오류 부재는 궤변이다

 

 

* 테스트 케이스는 수정 및 업데이트해 재사용

 

 

* 테스트 프로세스

테스트 계획 및 제어 : 계획 대비 진행상황 비교

테스트 분석 및 설계 : 테스트 조건, 요구사항, 테스트 항목, 명세, 동작과 구조 분석을 기초로 테스트

                            데이터를 정의

                            테스트 베이시스 리뷰

                            요구사항의 테스트 용이성을 평가

테스트 구현 및 실행 : 테스트케이스 개발과 우선순위 선정

                            효과적인 테스트 실행을 위해 테스트케이스로부터 테스트 스위트를 작성

테스트 마감 : 회고 및 테스팅 과정에서의 교훈 분석

 

 

 

* 테스트 베이시스 리뷰 대상

- 요구사항 분석

- 아키텍쳐(소프트웨어 구조)

- 개발 설계 문서

- 인터페이스

 

 

* 테스트 프로세스의 순서

계획/제어 -> 분석/설계 -> 구현/실행 -> 완료조건 평가/리포팅 -> 마감

 

 

* 결함의 심각도

- 결함의 심각한 정도를 명확하게 구분해 의미를 적절하게 표현

- 시스템이 중지되거나 데이터가 손실되는 결함 : 1~2번째 심각도

- 개발자가 결함의 우선순위를 판단하는 근거가 됨.

- 심각도가 높다고 반드시 먼저 수정해야하는 것은 아님

(예를 들어 기간이 정해져있는 경우 다른 결함을 우선 처리하는 게 유리할 수 있음)

 

 

* 테스트 정책 : 테스팅을 위한 관리 방침을 명확히 하는 최상위 수준의 문서

 

 

* 테스트 프로세스 심사모델

- MMAST, TAP, TCMM, TIM, TOM, TPI, TSM

- 대표적인 것은 TMMI, TPI Next

 

* 개발자와 테스터의 의사소통

- 다툼보다는 협력으로 시작

- 소프트웨어를 개발한 사람에 대해 비평없이 중립적이고 사실에 근거하여 제품에서 찾아낸 사항을 전달

- 다른 인원이 어떻게 느끼는지, 애 그렇게 반응하는지 이해하도록 노력

- 상호간에 의사소통했던 것을 상대방이 정확하게 이해했는지 확인

 

 

* 테스트 독립성 (낮은 순서)

1. 개발자

2. 개발조직내 독립적 테스트

3. 조직내 독립적인 테스트팀

4. 비즈니스 조직, 사용자 커뮤니티, it 조직 소속의 독립적 테스터

5. 사용성, 보안성, 인증 테스터처럼 특정 테스트 분야를 전문으로 하는 독립적 테스트 전문가

6. 아웃소싱 도는 외부의 독립적 테스터

 

 

* 테스팅 독립성 특징

- 인소스드 테스팅 < 아웃소스드 테스팅

- 개발 이해관계 조직과 소통을 잘해야 가능성 높음

 

* 테스트 독립성 높을수록

- 정보의 고립

- 잘 정의한 요구사항의 필요성

- 결함보고에 적극적이지 않을수있음

 

 

 

 

 

 

 

 

 

 

반응형
Comments