1. 오류, 장애, 결함
- 오류(Error): 사람이 만든 실수 (요구사항 누락, 잘못된 설계, 잘못된 코드 작성 등).
- 결함(Defect/Bug): 오류로 인해 코드나 산출물에 잘못 들어간 문제.
- 장애(Failure): 결함이 실제 실행 시 드러나서 소프트웨어가 잘못 동작하는 것.
관계: 사람의 오류 → 코드 결함 → 실행 시 장애
2. 테스팅, 디버깅, 재테스트
- 테스팅(Testing)
- 소프트웨어 실행 → 실제 결과 vs 요구사항 비교 → 차이 확인
- 결함이 존재하는지 알 수 있지만, 왜 발생했는지 해결 방법은 다루지 않음.
- 종류
- 정적 테스트: 실행하지 않고 확인 (리뷰, 정적분석)
- 동적 테스트: 실제 실행해 확인
- 디버깅(Debugging)
- 테스팅 결과 결함 발견 → 원인 분석 + 코드 수정 → 결함 제거
- 재테스트(Re-testing)
- 수정한 코드가 정말로 결함을 제거했는지 다시 실행하여 확인
3.결함의 유형 3가지
1.누락(Missing Defect)
- 정의: 요구사항에 있어야 할 기능이나 조건이 아예 구현되지 않은 경우
- 원인: 요구사항 분석 단계에서 빠뜨렸거나, 설계·코딩 과정에서 누락
- 예시
- 요구사항: "회원가입 시 이메일 인증 절차가 있어야 한다"
- 실제 구현: 이메일 인증 절차 없음
- 필수 기능이 빠져버린 상황
2.부정확한(Inaccurate Defect)
- 정의: 구현은 되었지만, 요구사항과 다르게 잘못 동작하는 경우
- 원인: 잘못된 설계, 코딩 오류, 잘못된 연산 처리
- 예시
- 요구사항: "상품 할인율은 소수점 둘째 자리에서 반올림"
- 실제 구현: 소수점 버림 처리
- 있긴 있는데, 정확하지 않게 구현된 상황
3.비관련(Irrelevant Defect)
- 정의: 요구사항에는 없는데 불필요한 기능이나 로직이 구현된 경우
- 원인: 개발자의 임의 추가, 불필요한 기능 구현, 범위 관리 실패
- 예시
- 요구사항: "로그인 성공 후 메인 페이지로 이동"
- 실제 구현: 로그인 성공 후 불필요하게 팝업 광고 창 노출
- 필요 없는 기능이 들어가 혼란을 주는 상황
예시
누락 (Missing) | 있어야 할 기능이 없음 | 이메일 인증 기능 없음 |
부정확한 (Inaccurate) | 잘못 구현됨 | 할인율 계산 오류 |
비관련 (Irrelevant) | 불필요한 기능이 포함됨 | 로그인 후 광고 팝업 |
- 누락 = 요구사항 빠짐
- 부정확 = 요구사항과 다름
- 비관련 = 요구사항에 없는 것 추가
4.테스트와 품질
ISO/IEC 25010 품질 특성 (8대 주특성)
주특성 설명
기능 적합성 | 요구된 기능을 제대로 수행하는가 |
성능 효율성 | 빠른 응답, 자원 낭비 최소화 |
호환성 | 다른 시스템과 잘 연동되는가 |
사용성 | 배우기 쉽고 쓰기 쉬운가 |
신뢰성 | 오동작 없이 안정적으로 동작하는가 |
보안성 | 데이터 보호 능력 |
유지보수성 | 수정·보수하기 쉬운가 |
이식성 | 다른 플랫폼에서도 동작 가능한가 |
기능 요구사항 중심 → 기능 테스트
품질 요구사항 중심 → 비기능 테스트
5.테스트와 품질 보증
- 테스트 < V&V < 품질보증(QA)
- 테스트: 실행해서 결함 찾기
- V&V(Verification & Validation): 검증+확인 (요구사항에 맞는지)
- 품질보증(QA): 프로세스까지 포함, 품질 보장을 위한 조직적 활동
6.테스트 설계 기법
- 정적 테스트
- 실행하지 않고 문서나 코드 점검
- 리뷰, 정적 분석
- 동적 테스트
- 실행하여 실제 동작을 확인
- 테스트 설계 접근법
- 명세 기반(블랙박스): 요구사항/설계 문서를 기반으로 → 기능 위주
(컴포넌트/통합/시스템/인수 테스트) - 구조 기반(화이트박스): 내부 코드 구조를 기반으로 → 제어·자료 흐름 위주
- 경험 기반: 테스터 경험과 직관 활용
(오류 추정, 탐색적 테스트)
- 명세 기반(블랙박스): 요구사항/설계 문서를 기반으로 → 기능 위주
7.테스트 기본 용어
- 테스트 케이스(Test Case): 입력값 + 실행조건 + 기대 결과
- 테스트 절차(Test Procedure): 케이스 실행 순서, 방법
- 테스트 환경(Test Environment): 테스트를 실행할 하드웨어·소프트웨어 환경
요약
- 오류(사람) → 결함(산출물) → 장애(실행 결과)
- 테스팅: 결함 발견 / 디버깅: 수정 / 재테스트: 수정 확인
- 품질 특성: ISO 25010 (기능, 성능, 호환, 사용성, 신뢰, 보안, 유지보수, 이식성)
- 테스트 종류: 정적 vs 동적
- 설계 기법: 명세 기반, 구조 기반, 경험 기반
- 테스트 용어: 케이스, 절차, 환경
'QA > csts' 카테고리의 다른 글
[CSTS][Part01] 2장 테스트 분류와 테스팅 방법 (0) | 2025.09.14 |
---|