사례 연구: 테스트 자동화- 기업 보안

고객

고객사는 구성감리(configuration audit) 및 통제 분야의 선도적 기업입니다. 고객사는 고급 구성 감리기술과 솔루션을 통해 기업들이 위험을 통제하고 운영효율을 증가시키도록 해줍니다. 해당 솔루션은 IT 인프라에 걸쳐 모든 구성 이벤트의 위험을 탐지하고 분석해 줍니다.

비즈니스 수요

고객사는 가상, 물리적 IT 구성을 완벽히 통제하고, 단일 소프트웨어 솔루션에서 구성 평가기능과 변화 감리기능이 결합된 핵심제품을 보유하고 있습니다.

이 제품에 탑재된 구성 평가 정책은 내부 방침, 준거 기준, 보안모범사례에 따라 IT 구성을 사전에 평가하고 검증해주며, 방침을 벗어난 구성의 보고 기능과 상세 복원(remediation) 가이드를 제공합니다.

IT 시스템이 양호한 상태의 보편적 구성을 갖춘 이후에는, 고객사의 검증된 변화 감리기능이 부정한 변화를 탐지, 경보, 유지관리하도록 도와줍니다. 풍부한 보고 기능은 IT 인프라 상황에 대한 시각적 피드백을 즉각적으로 제공하며, 상세사항 변경을 위한 드릴다운(drilldown) 기능과 복원기능을 지원하고, 감리 증거자료를 제공합니다.

이 제품은 잦은 업그레이드와 유지관리를 거쳤으며, 고객사는 제품 유지관리를 위해 테스트 자동화 기법을 적용하기를 원합니다. 이러한 목적을 위해, 고객사는 시스템 유지관리를 위한 파트너로서 FPT 소프트웨어를 선택하였습니다.

현재 유지관리 단계에서, 제품이 변경되었을 때 고객사는 수많은 회귀분석 테스트를 실시할 필요가 있었으며, 이는 수많은 노력과 비용이 소요되었습니다. 따라서, 고객사는 FPT 소프트웨어가 테스트 자동화 기법을 사용하여 제품을 테스트해주기를 원했습니다. 테스트 자동화는 제작된 테스트 스크립트들이 재사용되고, 시스템 사용 규칙에 따라 더욱 정확한 테스트 결과가 제공되도록 보장합니다. 따라서, 이같은 접근법은 고객사가 유지관리 과정에서 막대한 노력과 비용을 절감하도록 도와줍니다.

과제

첫번째 과제는 현재 시스템의 복잡성입니다. 이 제품은 수백만 줄의 코드를 포함한 기업용 소프트웨어 솔루션과 호환되는 멀티 플랫폼입니다. 3개월마다 새로운 버전이 출시됩니다.

두번째로, 테스트 자동화는 광범위한 개념인 반면, 우리가 경험이 풍부한 분야가 아니었습니다. 우리는 시스템의 어떤 부분이 자동화 기법으로 처리되어야 할 것인지 아닌지를 선별해야 했습니다.

세번째로, 이 시스템은 멀티 플랫폼 어플리케이션이기 때문에, 다양한 플랫폼 및 환경에서 테스트 자동화를 실시해야 할 필요가 있었습니다.

솔루션

프로젝트 시작단계부터 우리는 가장 안정적인 모듈을 선택하여 테스트 자동화 기법을 적용하기로 결정하였습니다.

1단계 기간동안 우리는 업무 흐름을 이해하기 위해 QA 테스트를 직접 수행했으며, 그 다음 테스트 자동화를 위한 솔루션을 탐색했습니다.

프로젝트 팀은 6명의 인력(해외 5명, 현지 1명)으로 구성되었습니다. 3개월 동안 현지 상주 인력은 고객사의 개발자들과 테스트 자동화 프레임워크를 개발하기 위해 협력했습니다. 이 작업의 핵심기능은 RMI를 사용하여 비즈니스 계층에서 오브젝트를 고정시키고 테스트에 사용하는 것이었습니다.

1단계 종료시점에 우리는 테스트자동화 기법을 적용한 결과가 기존(manual) 테스트에 비해 5%-10%의 노력밖에 들지 않을 뿐 아니라, 더욱 많은 중간단계의 작업도 훨씬 빠른 시간내에 처리한다는 점을 깨달았습니다.

효과

이 프로젝트는 고객사로부터 훌륭한 평가를 받았으며, 매우 높은 CSS 점수를 획득했습니다. 이 작업은 장기적 관점에서 가치를 상승시키고 고객사와 FPT간 관계를 향상시키는데 기여하였습니다. 2012년 말까지 지속된 고객과 FPT 소프트웨어와의 계약이 이를 증명합니다.

사용 기술:

  • Java Core, Java Bean
  • RMI, SOAP
  • SSH protocol (Secure Shell)
  • CYGWIN
  • Oracle & MS SQL Server
  • Windows, Solaris, Linux