성능테스트

McCabe IQ

 개요

최근의 비즈니스 환경은 이전보다 더욱더 빠르게 변화하고 있으며 기업의 생존은 이러한 환경에 '얼마나 잘 적응하느냐'는 것과 관련이 있습니다. 이는 곧 비즈니스시스템이 빠르게 변화하는 환경에 대한 요구사항들을 신속 정확하게 반영해야 한다는 것을 의미합니다.
그러나 오랜 시간에 걸쳐 누적되어온 잦은 시스템 변경과 인력의 이동, 그리고 적당한 도구의 부족으로 인해 기존의 소프트웨어는 더욱더 복잡해져 이해하기 어려울 수 있을 뿐만 아니라, 비즈니스 요구사항에 대해 빠른 대응은 물론이거니와 정확한 결과조차 기대할 수 없게 되어버릴 수도 있습니다.
따라서, 이러한 비즈니스 환경에 부합하는 소프트웨어의 품질 문제를 해결하기 위해 화이트박스테스트, 블랙박스테스트 등의 테스트 방법론 측면에서의 소프트웨어 테스트 방법론과 그에 따른 다양한 테스트 도구들이 사용이 되고 있습니다. 최근에는 특히 소스코드의 수행율을 높이기 위한 Code Coverage 테스트 방법이 많이 사용되고 있으며 이를 도구로 McCabe IQ가 사용됩니다.

McCabe IQ는 기존의 소스코드(Source Code, 원시코드) 자체를 분석하여 모듈 간의 호출 관계를 보여주는 것부터 가장 하위 레벨까지 모듈 내의 각각의 경로에 대한 구조와 흐름, 복잡도뿐만 아니라 수행율(Code Coverage)을 분석하여 다양한 형태의 그래픽과 텍스트로 소프트웨어의 품질을 분석할 수 있도록 제공합니다. 소스코드의 수행율(Code Coverage)분석은 정량적인 방법으로 소프트웨어의 품질을 측정하여 개발 담당자에게 '품질'에 대한 '자세'를 새롭게 생각할 수 있도록 합니다. 또한, 분석하는 테스트 결과를 각각의 관점에 부합하도록 제시함으로써 서로간의 원활한 커뮤니케이션을 가능하게 합니다.

 특징

테스트 커버리지 기반 테스트 관리


  • 정량적으로 테스트 진척도 관리 (예: 테스트 목표 - code 커버리지 xx%)
  • 다양한 커버리지 종류 지원 (ex.Statement, Branch, Path, MC, DC, CDC, MCDC 등)
  • 테스트의 목표와 종료시점 결정에 활용, 데드코드 검출을 통한 소스코드 최적화
  • Untested Source Code Report를 참고로 부족한 테스트 케이스를 추가 설계 및 수행하여 테스트 케이스의 다양성, 테스트 보장성 및 충분성 확인

개발 프레임워크 연동


  • 개발 프레임워크에 McCabe IQ를 연동하여 테스트 커버리지 자동 측정
  • 테스트 도구의 자동화 적용으로 개발자의 개발단계에 업무 가중을 주지 않음
  • 테스트 커버리지는 웹기반의 대쉬보드를 통해 언제 어디서나 확인이 가능하며, 프로젝트 관리자는 대쉬보드를 통해 테스트의 진척도와 개괄적인 개발 진척도를 확인할 수 있습니다.

커뮤니케이션


프로젝트의 모든 참여자 (의사결정권자/PM/서브 PL/개발자)들이 테스트의 진척도 확인, 목표 설정 등 커뮤니케이션 도구로 활용

품질 확보


  • 분석된 프로그램의 각 모듈에 대한 Metrics 정보를 품질 측정 기준으로 활용
  • 테스트 케이스의 다양성과 테스트의 충분성을 통해 프로젝트의 품질 확보

안전성


  • 전 세계적으로 30년 이상 제공된 안정적인 솔루션
  • 다양한 개발 환경과 연동 경험으로 국내 다수의 Reference 보유

다양한 Report 제공


  • ASL(Annotated Source Listing) : Flowgraph 및 Source Code의 Hyper Text 형태로 각 모듈의 제어 구조 파악
  • Graphical Report : 소프트웨어의 품질을 측정할 수 있도록 이미 검증된 다양한 metrics를 여러 가지 형태의 다이어그램으로 표현 (Ssctterplot/Histogram/Kiviat)
  • Untested Edge Graph/Listing : Tested Graph와 Untested Graph를 제공 함으로써 사용자는 Test Coverage의 수준을 Graphical하게 인식, Test Case로 활용
  • Coverage Report : 다양한 Test Coverage (Code, Branch, Path 등) 정보 제공

손쉬운 테스트


테스트 커버리지를 측정하기 위해 담당 개발자 및 프로젝트 참여자의 개인 PC에 설치 및 운영이 아닌 개발 서버 및 테스트 서버에 적용함으로써 서버에서 모든 테스트를 수행하고 수행 결과를 확인함

 D 금융증권 차세대 시스템 구축사례