애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차.
워크 스루: 개발자의 작업 내역을 개발자가 모집한 전문가들이 검토. 오류의 조기 검출을 목표.
인스펙션: 워크 스루의 발전된 형태. 개발 단계에서 산출된 결과물의 품질을 평가.
종류
종류
소프트웨어 개발 단계: 요구사항 --> 분석 --> 설계 --> 구현 (요분설구)
테스트 단계: 단위 테스트 --> 통합 테스트 --> 시스템 테스트 --> 인수 테스트 (단통시인)
단위 테스트: 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트
통합 테스트: 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류, 결함을 찾음
시스템 테스트: 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는가를 점검
인수 테스트: 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트 (알파테스트, 베타테스트..)
단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법.
비점진적 통합 방식: 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트. 단시간에 테스트 but 오류의 위치 파악이 힘듦. (ex) 빅뱅 테스트.
점진적 통합 방식: 모듈 단위로 단계적으로 통합하며 테스트. 오류 수정 용이, 인터페이스 오류 테스트의 완전성 높음. (ex)하향식, 상향식, 혼합식 통합 방식.
하향식 통합 테스트: 프로그램의 상위 모듈 -> 하위 모듈 방향으로 통합하며 테스트.
-깊이 우선 통합법, 넓이 우선 통합법
-테스트 초기부터 사용자에게 시스템 구조를 보여줄 있음.
-주요 제어 모듈은 작성된 프로그램 사용. 모르는 모듈들은 스텁(Stub)으로 대체.
-모듈이 통합될 때 마다 테스트 실시.
-새로운 오류가 발생하지 않음을 보증하기 위해 회귀 테스트 실시.
상향식 통합 테스트: 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트.
-하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)가 필요.
-상위 모듈에서 데이터의 입출력을 확인하기 위해 더미 모듈인 드라이버(Driver) 작성
-통합된 클러스터 단위로 테스트.
회귀 테스트: 이미 테스트된 프로그램의 테스팅을 반복하는 것
사용자 인수 테스트: 사용자가 시스템 사용의 적절성 여부를 확인
운영상 인수 테스트: 시스템 관리자가 시스템 인수 시 수행
계약 인수 테스트: 계약상의 인수/검수 조건을 준수하는지 확인
규정 인수 테스트: 소프트웨어가 정부 지침, 법규, 규정 등에 맞게 개발되었는지 확인
알파 테스트: 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트
베타 테스트: 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트
테스트 케이스 : SW가 사용자 요구사항을 정확하게 준수했는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
테스트 시나리오: 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스들을 묶은 집합
테스트 오라클: 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교
- 참 오라클: 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클. 발생한 모든 오류를 검출할 수 있다.
- 샘플링 오라클: 특정 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클.
- 추정 오라클: 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공, 나머지 입력 값들에 대해서는 추정으로 처리
- 일관성 검사 오라클: 애플리케이션의 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인.
테스트 자동화: 사람이 반복적으로 수행하던 테스트 절차를 스크립트 형태로 구현 (쉽고 효율적으로 테스트 o)
테스트 하네스 도구 (Test Harness Tools): 테스트를 지원하기 위해 생성된 코드와 데이터
<테스트 하네스 도구>
-테스트 드라이버: 테스트 대상의 하위 모듈을 호출, 파라미터 전달, 모듈 테스트 수행 후의 결과를 도출
-테스트 스텁: 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행
-테스트 슈트: 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
-테스트 스크립트: 자동화된 테스트 실행 절차에 대한 명세서
-목 오브젝트: 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체.
결함 등록 --> 결함 검토 --> 결함 할당 --> 결함 수정 --> 결함 조치 보류 --> 결함 종료 --> 결함 해제
결함 분포: 모듈 or 컴포넌트의 특정 속성에 해당하는 결함 수 측정
결함 추세: 테스트 진행 시간에 따른 결함 수 추이 분석
결함 에이징: 특정 결함 상태로 지속되는 시간 측정
처리량 (Throughput): 일정 시간 내에 애플리케이션이 처리하는 일의 양
응답 시간 (Response Time): 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
경과 시간 (Turn Around Time): 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
자원 사용률 (Resource Usage): 애플리케이션이 의뢰한 작업을 처리하는 동안의 자원 사용률
클린 코드 (Clean Code): 누구나 쉽게 이해하고 수정 및 추가할 수 있는 단순 명료한 코드.
나쁜 코드 (Bad Code): 프로그램의 로직이 복잡하고 이해하기 어려운 코드.
클린 코드 작성 원칙 : 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화
참고
https://jooona.tistory.com/125
https://sujl95.tistory.com/51