9-1 테스트 개요
- 테스트와 소프트웨어 테스트
- 소프트웨어 개발에서의 테스트
- 소프트웨어 개발은 인간 중심의 활동이며 지적 활동
- 결함을 낮추는 방법
- 테스트
- 테스트의 필요성과 특징
- 소프트웨어 테스트의 정의
- 소프트웨어 테스트의 목표
- 작은 의미
- 원시 코드 속에 남아 있는 오류를 발견
- 결함 생기지 않도록 예방
- 큰 의미
- 개발된 소프트웨어가 고객의 요구를 만족시키는지 확인시켜주는 것
- 개발자와 고객에게 사용하기에 충분한 소프트웨어임을 보여주는 것
- 작은 의미
- 소프트웨어 테스트 수행의 어려움
- 테스트 케이스 적어 효과에 한계
- 완벽한 테스트 케이스를 도출하기 어려움
- 작은 실수를 발견하기 어려움
- 소프트웨어 테스트 결함 관련 용어
- 오류
- 결함
- 고장, 실패, 문제, 장애
- 테스트 절차
- 측정 도구나 장비를 이용해 구현된 소프트웨어가 사용자의 요구를 만족하는지를 테스트하는 절차
- 테스트 목표 정의
- 요구분석명세서를 기반으로 테스트할 목표를 정의
- 테스트 대상 및 범위 결정
- 테스트할 대상과 범위를 결정하는데, 이때는 업무 시스템별로 구분할 수 있음
- 테스트 계획서 작성 및 검토
- 오류 추적 및 수정
- 테스트 결과 어디에서, 어떤 종류의 오류가 발생했는지 확인하고 수정
9-2 테스트 분류
- 시각 테스트
- 검증 테스트
- 문서 기반의 정적인 분석 과정
- 확인 테스트
- 실제 제품을 검사하고 테스트하는 동적인 과정
- 개요
- 각 단계에서 개발자의 시각으로 테스트하는 것으로, 설계서대로 만들었는지를 테스트
- 이전 단계에서 생성된 산출물이 현 단계의 산출물에 정확히 반영되었는지를 테스트
- 한계
- 설계서가 요구분석명세서를 완벽하게 반영하지 않을 경우에는 결국 틀린 요구사항으로 개발
- 검증 테스트
- 사용 목적에서 따른 테스트
- 성능 테스트
- 소프트웨어의 효율성을 진단하는 테스트
- 스트레스 테스트
- 평소보다 많은 비정상적인 값, 양, 빈도, 부피 등으로 부하를 발생시켜 부하가 최고치인 상황에서 시세틈의 반응을 살피고 이때 발생하는 오류를 찾는 것
- 보안 테스트
- 부당하고 불법적인 침입을 시도해, 시스템을 보호하기 위해 구축된 보안 시스템이 불법적인 침투를 잘 막아내는지 테스트
- 안정성 테스트
- 며칠 동안 부하를 주면서 시스템이 안정적으로 돌아가는지를 테스트
- 복원 가능성 테스트
- 소프트웨어를 고장 나게 해 놓고 소프트웨어 복구가 잘 되는지 확인해보는 테스트
- 성능 테스트
- 사용 목적에서 따른 테스트
- 정적 테스트
- 프로그램을 실행하지 않고 코드를 검토하여 오류를 찾는 방법
- 실패보다는 결함을 찾아내는 방법
- HTML, XML과 같은 산출물도 검토할 수 있음
- 비공식 검토
- 공식 검토
- 계획 → 착수 → 개별 준비 → 검토회의 수행 → 재작업 및 수정 → 완료 작업
- 동적 테스트
- 프로그램을 실행하면서 찾는 경우
- 명세 기반 테스트(블랙박스 테스트)
- 입력 값에 대한 예상 출력 값을 정해 놓고 그대로 결과가 나오는지를 체크
- 신텍스 기법
- 가장 단순한 방법으로, 문법에 기반을 둔 테스트
- 문법을 정해 놓고 적합/부적합 입력 값에 따른 예상 결과가 제대로 나오는지 테스트
- 동등 분할 기법
- 각 영역에 해당하는 입력 값을 넣고 예상되는 출력 값이 나오는지 실제 값과 비교
- 경계 값 분석 기법
- 경계에 있는 값을 테스트 데이터로 생성하여 테스트하는 방법
- 원인- 결과 그래프 기법
- 여러 입력 조건을 결합해 결과를 하나 이상 얻을 수 있으므로 이 단점을 극복할 수 있음
- 구현 기반 테스트(화이트박스 테스트)
- 테스트 데이터 적합성 기준을 선정
- 테스트 데이터를 생성
- 테스트를 실행한다.
- 분기 기반 검증(결정 검증 기준)
- 사용시 분기 시점에서 조건과 관련된 오류를 찾을 수 있고, 또 분기가 합류하는 위치에서 오류를 발견할 가능성이 높음
- 조건 검증 기준
- 개별 조건식을 모두 만족하면서 전체 조건식도 만족하는 테스트 케이스
- 정적 테스트
9-3 개발 단계별 테스트
- 단위 테스트(모듈 테스트)
- 프로그램 기본 단위인 모듈을 테스트
- 드라이버와 스텁
- 테스트 드라이버 : 상위 모듈의 역할을 하는 가상의 모듈
- 단위 테스트 수행 후 발견오류
- 잘못 사용한 자료형
- 잘못된 논리 연산자
- 통합 테스트
- 개요
- 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생할 수 있는 오류를 찾는 테스트
- 모듈 통합 방법에 따른 분류
- 한꺼번에 하는 테스트 : big-bang 테스트
- 점진적으로 하는 방법 : 하향식 기법, 상향식 기법
- 개요