Software Engineering
[소프트웨어공학] 제5장 소프트웨어 테스트
iseop
2023. 5. 15. 21:29
1. 단원 요약
- 소프트웨어 테스트: 결함을 찾기 위한 목적으로 프로그램을 실행하는 것으로, 품질보증 활동이다.
- 결함 테스트: 코드를 확인(verify)하여 결함을 찾는 것
- 검증 테스트: 시스템을 검증(validate)하는 것
- SW 테스트 원칙
- 테스트 케이스 구성 요소: 입력, 예상결과, 실행조건, 절차, 목적
- 자가 테스트 금지
- 테스트 후반부에서도 소홀히 하지 말 것
- 모든 경우를 고려할 것
- 테스트 케이스를 재사용할 것
- 오류가 발견된 곳에서 추가 오류가 존재할 가능성이 높다.
- 테스트 작업 절차
- Test Case 설계➡️Test Data 준비➡️Test 실행➡️결과 비교➡️보고서 작성
- 테스트 작업 우선순위
- 개별 모듈 테스트 < 전체 시스템 테스트
- 새 기능 테스트 < 오래된 기능 테스트
- 예외적 상황 테스트 < 일반적 상황 테스트
- 단계별 테스트
- 단위 테스트: 개별 모듈 테스트, driver와 stub 활용
- 통합 테스트
- 주로 블랙박스 테스트 수행
- 통합 방식
- 빅 뱅 통합: 한꺼번에 통합
- 점증적 통합
- 상향식 통합: 밑에서 위로
- 하향식 통합: 위에서 밑으로
- 샌드위치 통합: 혼합
- 회귀 테스트: 코드 수정으로 인한 오류 발생 여부를 확인하기 위함
- 시스템 테스트(Release Test, Acceptance Test)
- 블랙박스 테스트 수행
- 화이트박스 테스트: 프로그램의 제어 흐름을 기반으로 한다.
- 테스트 케이스 선정 기준
- 문장 검증 기준: 모든 문장 한 번 이상 실행
- 분기 검증 기준: 분기가 존재하는 경우, 모든 경우의 문장을 한 번 이상 실행
- 조건 검증 기준: 모든 분기에서 조건식을 구성하는 단일조건들의 참/거짓을 한 번 이상 수행한다.
- 따라서 분기 검증 기준을 충족하지 못할 수도 있다.
- 조건/분기 검증 기준: 두 기준을 모두 충족하도록 한다.
- 수정된 조건/분기 검증 기준
- 복수 조건 검증 기준: 잘 모르겠습니다.
- 경로 검증 기준: 존재하는 모든 경로를 테스트한다. 사실상 불가능하다.
- 기본 경로 테스트: 시작 노드에서 종료 노드까지 선형 독립적(linearly independent)인 경로를 테스트한다.
- 테스트 케이스 선정 기준
- 블랙박스 테스트: 요구사항 명세서(SRS)를 기반으로 한다.
- 완전 테스트
- 랜덤 테스트
- 동치 분할
- 경계값 분석
- 원인-결과 그래프
- 시스템 테스트/비기능성 테스트
- 성능 테스트
- 부하 테스트: 성능 요인을 변화시키면서 테스트
- 스트레스 테스트: 설계 한도를 벗어난 요구를 테스트
- 보안성 테스트
- 가용성, 무결성, 기밀성
- 성능 테스트
2. 연습문제 요약
- 조건 검증 기준은 분기 검증 기준을 만족할 수 없을 수도 있다.