2011-04-09 2 views
14

내가 작업중인 프로젝트에서 우리는 셀레늄을 통해 작성된 기능 테스트를 가지고있다. 애플리케이션은 각 기능 릴리스와 함께 기능적 변경을 겪습니다.기능 테스트를위한 커버 분석

자동화 된 기능 테스트에서 간격을 추적 할 수있는 도구가 있습니까? 최소한 수동 테스터가이 영역을 감시 할 수 있도록해야합니까?

참고 : 우리는 FTDD를 수행하지 않으므로 높은 단위 테스트 적용 범위를 보장하기는하지만 기능 테스트 커버리지는 매우 낮을 수 있습니다. NCover를 사용하여 단위 테스트 적용 범위를 확인합니다.

+0

NCover를 사용하여 기능 테스트 범위를 측정 할 수 없습니까? –

+3

@Bas - 기능 테스트는 코드와 직접 상호 작용하지 않습니다. 이로 인해 기능 테스트에서 코드 변경을 인식하지 못합니다. 필자는 FT가 애플리케이션의 비즈니스 흐름에 밀접하게 관련되어 있고 UT가 클래스 및 코드와 관련되어 있음을 확인하면서 기능 테스트를 코드에 연결하는 방법이 있다고 개인적으로 생각하지 않습니다. 그러나, 나는 누군가가 FT에 대한 커버리지 분석을 시도한 어떤 방법이 있는지 찾아 내려고 노력 중이다. 기능적 범위 일 수 있으며 코드 범위가 아닐 수도 있습니다. –

+0

어떤 웹 서버를 사용하고 있습니까? NCover가 IIS에서이 작업을 수행 할 수 있음을 알고 있습니다. –

답변

4

IIS 응용 프로그램의 적용 범위 데이터를 캡처하기 위해 IIS 프로세스에 연결할 수있는 도구가 적어도 2 개 (상용이지만 값이 싼) 있습니다.

NCover :

NCover는 // IIS 명령 줄 스위치가 포함되어 있습니다. 이 스위치는 IIS 내에 적용 환경을 설정하고 은 웹 서버를 다시 시작합니다. 당신은 당신의 웹 애플리케이션에 적용 을 분석하기 위해이 같은 NCover를 실행합니다 :이 방법으로 NCover를 실행하면

NCover.Console.exe의 NUNIT - Console.exe를 TestAssembly.dll // IIS가 될 것입니다 IIS 을 다시 시작하여 NCover가 을 모니터링하도록하고 테스트를 실행합니다. 완료되면 NCover는 IIS를 중지하고 자체를 분리합니다.

참조 : JetBrains의에 의해 http://docs.ncover.com/how-to/code-coverage-of-asp-net-applications-on-iis/

DotCover :

Dotcover 당신이 원하는 것입니다 경우에 당신이 할 것 같은 방법으로 IIS 응용 프로그램에 연결할 수 있습니다 비주얼 스튜디오 통합을 가지고 IIS 응용 프로그램을 추적하십시오. 이것은 실제로 시도한 적이 없지만 명령 줄 dotCover 도구로 시작할 수도 있습니다.

http://www.jetbrains.com/dotcover/

내가하여 Rational 생각하고 마이크로 소프트 Teamsystem는 솔루션을 가지고 있지만 그들은 조금 더 비싸 참조하십시오.

3

우리는 사람이 기능의 수동 테스트를위한 텍스트 서술 (테스트 스크립트)을 만드는 테스트 시스템을 사용합니다. 이것은 어떤 방식으로 열거됩니다 (예 : [기능] -001). 그런 다음 셀렌 테스트는 이러한 열거 형 중 하나 이상을 다루는 것으로 기록됩니다.

새 기능이 구축되면 새 테스트 스크립트가 작성되고 열거됩니다. 그런 다음 Selenium 테스트를 통해 열거 형 테스트 스크립트와 관련하여 자동화 된 항목 목록을 비교할 수 있습니다. 델타는 수동으로 테스트해야하는 항목입니다.

0

NDepend에는 다른 버전간에 코드 범위 델타를 표시하는 기능이 있습니다.

NDepend 사이트 (http://www.ndepend.com/Features.aspx # Coverage) :

자동 테스트를 작성하는 것은 코드 정확성을 높이는 데있어 핵심적인 방법입니다. 코드의 어느 부분이 자동 테스트의 적용을 받는지 알면 테스트 개선에 도움이되므로 결과적으로 코드 정확성이 향상됩니다.

NDepend는 NCover ™ 및 Visual Studio Team System ™에서 코드 적용 범위 데이터를 수집합니다. 이 데이터에서 NDepend는 메서드, 형식, 네임 스페이스 및 어셈블리에 대한 일부 메트릭, 즉 PercentageCoverage, NbLinesOfCodeCovered, NbLinesOfCodeNotCovered 및 BranchCoverage (NCover에서만 제공)를 유추합니다.

이러한 측정 항목은 다른 NDepend 기능과 함께 사용할 수 있습니다. 예를 들어, 마지막 릴리스 이후에 어떤 코드가 추가되거나 리팩토링되었는지를 알 수 있으며 테스트에서 완전히 다루어지지 않습니다. 클래스 집합이 100 % 적용되는지 계속 확인하기 위해 CQL 제약 조건을 작성할 수 있습니다. 어떤 복잡한 메소드가 더 많은 테스트가 필요한지 열거 할 수 있습니다.

비디오 데모

은 여기에 있습니다 : http://s3.amazonaws.com/NDependOnlineDemos/Coverage_viewlet_swf.html

1

우리 Test Coverage 도구 중 일부는 (현재, 자바, C# 및 COBOL)은 이런 종류의 일을 처리 할 수 ​​있도록 설계되어있다.

응용 프로그램을 실행하고 특정 기능을 사용하는 경우이 테스트 적용 도구를 사용하여 특정 기능에 대한 코드 적용 범위 데이터를 수집 할 수 있습니다. 본질적으로 이것은 기능이 수행하는 모든 코드의 기록입니다. 간단한 스크립팅을 통해 각 기능 테스트를 실행하고 해당 테스트의 코드 적용 범위 데이터를 얻을 수 있습니다.

수집 된 테스트 커버리지 벡터는 전체 기능 테스트 세트를 기반으로 코드에 대한 코드 커버리지 번호를 제공하는 툴에 의해 요약 벡터로 결합 될 수 있습니다.

코드 기반을 변경하면 테스트 적용 범위 도구는 변경된 코드 블록을 알려주며 (차이점에 대한 메서드 수준에서 비교). 이것은 차례로 개별 기능에 대해 수집 된 테스트 커버리지 벡터에 적용될 수 있습니다. 교차점이있는 경우 의존성이있는 코드가 변경되면 기능 테스트를 다시 실행해야합니다.

이 방법을 사용하면 변경 후에 어떤 기능을 다시 테스트해야하는지 결정할 수 있습니다.