애플리케이션 테스트 관리
소프트웨어 테스트의 기본 원칙
테스팅은 결함이 존재함을 밝히는 활동, 완벽한 테스팅은 불가능, 테스팅은 개발 초기에 시작, 결함 집중, 살충제 페러독스,
테스팅은 정황에 의존, 오류-부재의 궤변
테스트 프로세스
테스트 계획 -> 테스트 분석 및 디자인 -> 테스트 케이스 및 시나리오 작성 -> 테스트 수행 -> 테스트 결과 평가 및 리포팅
소프트웨어 테스트의 유형
정적 테스트: 프로그램 실행 없이 소스 코드의 구조를 분석하여 논리적으로 검증하는 테스트
ex)인스펙션, 코드검사, 워크스루
동적 테스트: 프로그램의 실행을 요구하는 테스트
ex)블랙박스 테스트, 화이트박스 테스트
블랙박스 테스트: 프로그램의 외부 사용자 요구사항 명세를 보면서 테스트
화이트박스 테스트: 프로그램의 내부 로직을 보면서 테스트
테스트 목적으로는 회복, 안전, 강도, 성능, 구조, 회귀, 병행 테스트가 있다
테스트의 종류는 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트가 있다
단위테스트: 응용 시스템 개발팀에서 SW 준비, 테스트 데이터 준비 테스트 환경을 준비하고 결함을 수정하는 역활
통합 테스트 : 응용 시스템 개발 팀에서 통합 테스트 환경 준비 결함 수정 및 통합 테스트 수행
시스템 테스트: 프로젝트 테스트 팀에서 시스템 테스트를 계획, 설계, 수행 및 보완 역활
인수 테스트: 인수 테스트 계획, 설계, 수행 및 결과 보고의 역활
통합 테스트
하향식 통합: 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하면서 테스트 진행, 메인 제어 모듈에 통합되는 하위 모듈과 최하위 모듈은 깊이-우선 또는 너비-우선 방식으로 통합된다
상향식 통합: 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 시작한다
회귀 테스팅: 통합 테스트가 완료된 후에 변경된 모듈이나 컴포넌트가 있다면 새로운 오류 여부를 확인하기 위해 회귀 테스트를 수행한다
테스트 커버리지
기능 기반 커버리지: 테스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정하는 방법으로 기능 기반 테스트 커버리지는 100% 달성을 목표로 하며, 일반적으로 UI가 많은 시스템의 경우 화면 수를 모수로 사용할 수도 있다
라인 커버리지: 애플리케이션 전체 소스 코드의 Line 수를 모수로 테스트 시나리오가 수행한 소스 코드의 Line 수를 측정하는 방법으로 단위 테스트에서는 이 라인 커버리지를 척도로 삼기도 한다
코드 커버리지: 소프트웨어 테스트 충분성 지표 중 하나로 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트 되었는지를 측정하는 방법니다