1. 애플리케이션 테스트 프로세스 - 테스트 계획 -> 테스트 분석 및 디자인 -> 테스트 케이스 및 시나리오 작성 -> 테스트 수행 -> 결과 평가 및 리포팅 -> 추적 및 관리 - 테스트 계획서, 테스트 케이스, 테스트 시나이로, 테스트 결과서가 산출된다 2. 테스트 계획 - 프로젝트 계획서, 요구 명세서 등을 기반으로 테스트 목표, 대상 및 범위를 정의 - 테스트 대상의 시스템 구조 파악 - 테스트에 필요한 조직 및 비용 산정 - 테스트 시작 및 종료 조건 정의 - 계획서 작성 3. 테스트 분석 및 디자인 - 테스트 목적과 사용자 요구사항을 분석 - 테스트 리스크 분석 및 우선순위 결정 - 테스트 데이터, 환경, 도구 등을 준비 4. 테스트 케이스 및 시나리오 작성 - 테스트 케이스 및 테스트용 스..
전체 글
github.com/minyun02 myun02302@gmail.com1. 통합 테스트 - 단위 테스트가 끝난 모듈을 통합하는 과정에서 진행하는 테스트 1. 비점진적 통합 방식 - 빅뱅 통합 테스트 : 모듈 간 상호 인터페이스 고려 없이 테스트 - 주로 소규모 프로그램이나 프로그램 일부 대상일때 실시 2. 점진적 통합 방식 - 모듈 단위로 단계적으로 통합하면서 테스트 - 오류 수정이 용이, 인터페이스와 연관된 오류를 완전히 테스트할 가능성 높음 - 종류 : 하향식, 상향식, 혼합식 2. 하향식 통합 테스트 - 깊이 우선 통합법이나 넓이 우선 통합법을 사용한다 - 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있다 - 상위 모듈에서는 테스트 케이스를 사용하기 어렵다 - 하향식 통합 방법 절차 1. 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모..
1. 개발 단계에 따른 애플리케이션 테스트 - 소프트웨어의 개발 단계에 따라 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트로 분류 - 분류된 것을 테스트 레벨이라고 함 - 애플리케이션 테스트는 개발 단계에서부터 수행하므로 코드 오류뿐아니라 요구 분석 오류, 설계 오류 등을 발견 가능 - V-모델 : 테스트와 소프트웨어 개발 단계를 연결하여 표현한 것 2. 단위 테스트 - 코딩 직후 소프트웨어 설계 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 - 인터페이스, 외부적 IO, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사 - 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행 - 발견 가능한 오류 : 알고리즘 오류에 따른 원치 않는 결과, 탈출구가 없는 반복문의 ..
1. 화이트박스 테스트 - 모듈의 원시 코드를 오픈시킨 상태에서 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계 - 설계된 절차에 초점을 둔 구조적 테스트 - 프로시저 설계의 제어 구조를 사용하여 테스트 케이스를 설계하며, 테스트 과정 초기에 적용 - 모듈 안의 작동을 직접 관찰 - 프로그램의 제어 구조에 따라 선택, 반복 등 분기점 부분들을 수행함으로써 논리적 경로를 제어한다 2. 화이트박스 테스트 종류 1. 기초 경로 검사(Base Path Testing) : 수행 가능한 모든 경로를 의미 - 대표적인 화이트박스 테스트 - 절차적 설계의 논리적 복잡성을 측정할 수 있게 해줌 - 테스트 결과는 실행 경로의 기초를 정의하는 데 지침으로 사용됨 2. 제어 구조 검사(Control Structure T..
1. 프로그램 실행 여부에 따른 테스트 - 프로그램 실행 여부에 따라 정적 테스트, 동적 테스트로 나눔 1. 정적 테스트 - 프로그램 실행 X - 소스 코드를 분석 - 개발 초기에 결함 발견 가능, 따라서 개발 비용을 낮춤 - 종류 : a. 워크스루 : 개발자가 모집한 전문가들이 검토하는 것 b. 인스펙션 : 워크스루를 발전시킴. 개발 단계에서 결과물의 품질을 평가하고 개선 방법 제시 c. 코드 검사 등 2. 동적 테스트 - 프로그램 실행해서 오류를 찾는다 - 종류 : 블랙박스 테스트, 화이트박스 테스트 2. 테스트 기반에 따른 테스트 1. 명세 기반 테스트 - 요구사항을 빠짐없이 테스트 케이스로 구현해서 확인 - 종류 : 동등 분할, 경계 값 분석 등 2. 구조 기반 테스트 - 소프트웨어 내부 논리 흐..
1. 애플리케이션 테스트 개념 - 잠재되어 있는 결함을 찾아내는 행위, 절차 - 개발된 소프트웨어가 요구사항을 만족하는지 확인(Validation)하고 기능을 정확히 수행하는지 검증(Verification)한다 - 테스트 전에 소프트웨어 유형을 분류하고 특성을 정리해서 테스트 사항 정리 소프트웨어 분류 1. 상용 소프트웨어 : 보통의 사용자들이 공통적으로 필요로 하는 기능을 제공한다. 1-1 산업 범용 소프트웨어 - 시스템 소프트웨어 : 하드웨어 전체를 제어하고 운영하는 소프트웨어로, 운영체제, 데이터 관리, 스토리지 소프트웨어, 소프트웨어 공학 도구, 가상화 소프트웨어, 시스템 보안 소프트웨어로 구분 - 미들웨어 : 운영체제와 해당 운영체제에 의해 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서..
1. 빌드 자동화 도구의 개념 - 빌드란 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정 - 애자일 환경에서는 하나의 작업이 마무리될 때마다 모듈들이 지속적으로 통합(CI)되는데 이런 환경에서는 빌드 자동화 도구가 유용 2. Jenkins - 자바 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구 - 대부분의 형상 관리 도구와 연동이 가능 - 친숙한 Web GUI를 제공 - 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능 3. Gradle - Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용 됨 - 플러그인 설정으로 자바, 파이썬, C/C++도 빌드 가능 - Groovy로 만든 DSL(Domain Specif..
1. 공유 폴더 방식 - 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식 - 개발이 완료된 파일을 약속된 공유 폴더에 매일 복사한다 - 담당자는 파일을 자기 PC로 복사해서 컴파일로 이상 유무를 확인한다 - 오류가 확인되면, 해당 파일을 등록한 개발자에게 수정 의뢰 - 이상이 없다면 다음날 각 개발자들이 동작 여부를 다시 확인 - 파일의 변경 사항을 데이터베이스에 기록 관리 - 종류 : SCCS, RCS, PVCS, QVCS 2. 클라이언트/서버 방식 - 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식 - 서버 자료를 개발자별로 자신의 피씨로 복사하여 작업한 후 변경된 내용을 서버에 반영 - 모든 버전 관리는 서버에서 수행 - 하나의 파일을 서로 다른 개발자가 작업할 경우 경고 메시지를 ..