최근의 소프트웨어는 개발 환경이 일반화되어 있어 프로세스나 개발 도구들이 거의 유사하기 때문에 소프트웨어 개발에 필요한 많은 자동화 도구들이 개발되고 있습니다. 개발자가 직접 하던 일들을 대신하는 자동화 도구는 시간과 장소의 제약을 없애주고 개발자가 하는 것보다 더 많고 정확한 결과를 제공하고 있습니다. 최근 들어 자동화 도구 사용을 필수로 하는 프로젝트가 점차 늘어나고 있습니다.
소프트웨어 개발 프로젝트는 사람이 하기 때문에 완벽한 개발과 일관된 테스트를 할 수 없었고, 시스템 구성과 인터페이스도 개발자의 성향에 따라 결정되기도 하였습니다. 자동화 도구는 수많은 케이스를 일관되게 적용할 수 있어 사람이 직접 하는 것보다 빠르고 정확한 결과를 나타냅니다.
테스트 분야에서 시작된 자동화 도구는 개발 효율을 높이기 위한 자동화 도구에 이어 컴포넌트 기반의 개발, UI/UX 자동화 도구까지 선을 보이고 있습니다. 이러한 자동화 도구를 통해 소프트웨어 생산성을 탁월하게 높였다는 다양한 사례가 발표되고 있습니다.
자동화에 많은 발전을 보이고 있는 테스트와 성능 측정, 빌드를 중심으로 자동화 도구의 종류와 구동 방법에 대해서 살펴보도록 합니다.
테스트 자동화
- 외부 요인에 접근하지 않고 영향을 받지 않아야 한다.
- 리소스가 반드시 있다고 전제하지 않는다.
- 테스트 중에 사용자가 개입을 하지 않는다.
- 테스트 수행 시간이 오래 걸리지 않도록 한다.
소프트웨어 성능 검증 자동화
- 목표 TPS(Transaction per Second)
- 목표 응답 시간
- System Utilization
- Availability
- 지표의 품질