자동화된 빌드에서 자동화된 테스트 실행

요구사항에 대한 변경 요청이 들어왔을 때 다음 절차

  1. 코드를 조금 수정한다.
  2. 기존 기능을 망가뜨리지 않았는지 확인하기 위해 모든 테스트를 실행한다.
  3. 수정된 부분이 다른 부분과 잘 통합되는지 확인해서 수정된 부분에 의존하는 다른 프로젝트들이 잘 돌아가는지 확인한다.

코드 통합을 위해 다음 절차

  1. 최신 버전의 소스코드를 소스코드 저장소에서 받아온다
  2. 전체를 로컬 머신에서 컴파일을 시도해 본다.
  3. 로컬 머신에서 모든 테스를 실행한다.
  4. 망가진 것이 있으면 고친다.
  5. 소스코드를 체크인한다.

자동화된 빌드

  1. 모든 프로젝트의 최신 버전을 가져온다.
  2. 모든 프로젝트를 최신 버전으로 컴파일한다.
  3. 빌드 출력물을 테스트 서버에 배포한다.
  4. 로컬 머신이나 테스트 서버에서 테스트를 실행한다.
  5. 날짜와 빌드 번호를 기반으로 해서 빌드 출력물들을 보관해 둔다.
  6. 출력물을 스테이징 서버에 배포하거나 심지어는 제품 서버에 배포한다.
  7. 대상 서버에서 컴포넌트를 설정하고 설치한다.
  8. 이 단계 가운데 하나라도 실패하면 관련 있는 사람들에게 알린다. (이메일로)
  9. 데이터베이스들을 통합한다.
  10. 빌드 품질, 이력, 테스트 상황에 대한 보고서를 생성한다.
  11. 특정 과업이 실패할 경우 과업 또는 작업 아이템을 자동으로 생성한다.(팀 시스템) 작업이 아이템을 추가한다거나 해서).

자동화된 빌드 종류

  1. 야간 빌드(nightly build)
    1. 오래 걸리는 테스트를 전부 실행한다.
    2. 시스템 테스트를 실행한다.
  2. 릴리즈 빌드(release build)
    1. 야간 빌드를 실행한다.
    2. 서버에 배포하고 결과물을 보관해둔다
  3. 지속적인 통합(CI) 빌드
    1. 금방 끝나는 테스트를 전부 실행한다.
    2. 10분 안에 끝난다.

테스트를 작성하는 과정에서 테스트들을 실행시간에 따라 분류하는 것이 좋다.

  1. 금방 끝나는(fast-running) 테스트
  2. 오래 걸리는(slow-running) 테스트

테스트가 실패의 몇 가지 이유

  1. 테스트 대상 코드에 버그가 존재한다.
  2. 테스트가 작성된 방식에 문제가 있다
  3. 테스트가 이제는 적절하지 않다.
  4. 실행하는 데 설정이 필요하다

 

 

댓글 남기기