아무리 많은 오류를 제거한다 하더라도, 사용자의 사용 편의성을 증대시키지 못하면 좋은 프로그램이라고 할 수 없다. 테스트를 주기적으로 수행한 후 어디서 결함이 발생되었으닌, 추적하고 결함을 관리해야 하는 것도 프로그래머의 역할이다. 최종적으로는 어떻게 프로그램의 결함을 개선했는지 리포트를 뽑아야 한다.
테스트기법
1) 실행 기반 테스트
정적 테스트
- 프로그램을 실행하지 않고 요구사항 명세서, 소스 코드를 대상으로 분석한다.
- 개발 초기에 결함을 발견하고 테스트 비용을 낮출 수 있다
- 워크스루, 동료검토, 인스펙션이 있다.
- 워크스루 : 검토 회의 전에 미리 준비된 자료를 배포, 사전 검토를 진행, 검토 회의를 빠르게 진행하여 오류를 조기에 발견한다
- 동료검토 : 요구사항 명세서 작성자가 동료들에게 내용을 설명하면서 결함 발견
- 인스펙션 : 요구사항 명세서 작성자를 제외한 다른 전문가들이 명세서를 검토하여 결함, 표준위배, 문제점 등을 파악한다
동적 테스트
- 프로그램을 실행하여 결함을 찾는 테스트
- 소프트웨어 개발 생명 주기 전 단계에서 수행한다
- 블랙박스 테스트와 화이트박스 테스트가 있다
- 블랙박스 테스트 : 프로그램의 기능, 결과를 위주로 테스트
- 화이트박스 테스트 : 프로그램의 구조, 경로 등을 위주로 테스트
2) 설계 기반 테스트
명세 기반 테스트
- 사용자 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현 여부를 확인하는 테스트 방식이다
- 동등 분할, 경계 값 분석 등
구조 기반 테스트
- 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 만들어 확인하는 테스트방식이다
- 구문 기반, 결정 기반, 조건 기반 등이 있다.
경험 기반 테스트
- 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행되는 테스트다
- 요구사항 명세가 불충분하거나 시간 제약이 있는 경우 효과적이다
- 에러추정, 체크리스트, 탐색적 테스팅 등등
3) 시간 기반 테스트
ⓐ 검증 테스트 : 개발자의 입장에서 진행되며, 소프트웨어 의 완성도를 테스트한다.
ⓑ 확인 테스트 : 사용자의 입장에서 진행되며, 요구사항 구현도를 테스트한다.
4) 목적 기반 테스트
① 회복 테스트 : 시스템에 여러가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인하는 테스트
② 안전 테스트 : 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지를 확인하는 테스트
③ 강도 테스트 : 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부화 시에도 스트웨어가 정상적으로 실행되는지를 확인한다
④ 성능 테스트 : 소프트웨어의 시간 성능이나 전체적인 효율성을 진단하는 테스트, 소프트웨어의응답시간, 처리량 테스트
⑤ 구조 테스트 : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트
⑥회귀 테스트 : 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트
⑦병행 테스트 : 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트
결함의 종류
1) 오류(Error) : 결함의 원인이 되는 요소를 의미한다. 주로 사람(개발자)에 의해 생성되는 인지적인 실수다
2) 결함(Defect) : 오류가 소프트웨어에 나타나는 것을 의미, 결점과 버그도 같은 의미를 가진다
3) 장애(Failure) : 결함으로 인해 소프트웨어 및 서비스가 기대 결과를 나타내지 못하는 것이다. 오류로 인해 결함이 생기면, 소프트웨어에 장애가 발생한다.
'Programming > 정보처리기사' 카테고리의 다른 글
정보처리기사 SQL이란 DDL DML DCL 트랜젝션이란 (0) | 2022.02.04 |
---|---|
정보처리기사 데이터베이스 논리 데이터 모델 품질 검증 하는 방법 (0) | 2022.02.04 |
정보처리기사 데이터베이스 E-R 다이어그램 (0) | 2022.02.03 |
정보처리기사 선형 자료구조 종류 스택, 큐, 데크, 선형리스트, 링크드리스트 stack, queue, deque, linear list, linked list (0) | 2022.01.31 |
정보처리기사 자료구조란? (0) | 2022.01.31 |
정보처리기사 UI 프로토타입이란 (0) | 2022.01.31 |
댓글