윈도우 GUI 테스트 자동화 기술의 비교 및 전망

http://www.51testing.com/html/16/n-170116.html

이전에 내가 쓴 UI 자동화와 테스트 , 관련 기술 약 이야기 테스트 자동화 여러 가지 기능에 필요한 도구뿐만 아니라 언급 한 윈도우 기반 기술 플랫폼 자동화 된 테스트 도구를. 아래에 비교하고 이러한 기술의 전망에 대해 말했지만 일부가 얽힌 포함 ......

  윈도우 API

  인식의 창 창 핸들에를 FindWindow 및 EnumWindows 통해보고 할 필요는, 다음 (창) 당신이 원하는 컨트롤을 찾기 위해, 윈도우 속성을 얻기 위해 다른 API (et Wi ndow Te xt는, GetWindowRect,를 GetWindowLong을 ...)를 호출

  창 및 액세스 속성 운영 : SetWindowText 및 최상위 창 SetForegroundWindow에 의해 제공되는 컨트롤에 표시되는 텍스트가 운영 et Wi ndow Te xt는 것은, GetForegroundWindow는 현재 최상위 창을 얻고, 비슷한 GetActiveWindow의 SetActiveWindow이있다. 다른 작업은 윈도우 API에 의해, 이론적으로 ...... 그들을 나열하지 않습니다 및 Windows 메시지는 대부분의 윈도우 (창 컨트롤도 창이다)을 위해, 당신은 또한 컨트롤의 속성 부분의 일부를 얻을 수있는 작업을 완료 할 수 있습니다. 그러나 장점과 단점도 분명 있습니다 :

  장점 : 매우 강력한 매우 깊은 표준 Windows의 맨 아래 인 지원이 나쁘지는 것을 제어 보인다.

  단점 : 기본 의미 복잡하고 다층 포장 수단을 필요로 낮은 개발 효율성 또한 윈도우 API에 전적으로 의존 뜻을 의미한다. 가 아닌 표준 (사용자 정의) 히트 경우, 자동화 된 도구의이 방법은 자동화를 완료하기 위해 개발 팀을 지원하기 어려운 경우에도, 무엇을해야 하는지를 실질적으로 완료 손실을 달성했다. 물론, 글로벌 좌표가 할 수 없어도으로 좌표를 계산하지만, 이것은 야만적 연습, 테스트 자동화 코드는 결과의 유지 보수 및 분석의 비용이 매우 높은, 매우 불안정합니다.

  모든 단어와 짧은 모든이, 자동화 된 테스트 도구는 물론 ...... 완전히 실현하기 위해 윈도우 API를 사용하지, 그것은 직접 또는 간접적으로 전송, 더 많거나 적은 것 본질적으로, 자동화 도구의 모든 윈도우 API를 사용하지 않은 것을 의미하지 않는다 윈도우 API에, 아무도 그가 윈도우 API는, 자동화 된 테스트 툴을 적어도 그가 얻을 수 없을 것입니다 마우스와 키보드 메시지를 시뮬레이션 할 수있을 것입니다 전송하지 않습니다라고 감히 ......

  MSAA - 마이크로 소프트 Active 내게

  가 포함 된 Windows 95에서 1997 MSAA 기술에서, 어쩌면 당신은 듣지 못했지만, 표준 컨트롤의 모두에 MSAA 인터페이스를 달성 한 마이크로 소프트 의 모든 운영 체제 통합 MSAA의 구성 요소, 여기에, 나는 MSAA의 역사와 관련 기술을 논의하지 않으며,에 감정을 조금 장황한 : MSAA는 본질적으로 그 존재를 의미하는 것은 장애를 가진 사람들에게 쉽게 개발자를 수있는 인터페이스를 제공하는 것입니다, 자동화 된 테스트를 위해 설계되지 않았습니다 개발은 모든 가족의 꿈에 컴퓨터의 광범위한 사용에 마이크로 소프트를 가능하게, (소리가 컴퓨터를 작동하는 시각 장애인을 도울 수있다, 시간을 이동 마우스 버튼)와 같은 화면 판독기로, 소프트웨어를 사용할 수 있습니다.

  MSAA는 자동화 된 테스트를 위해 설계되지 않지만, 기존의 모든 자동화 된 테스트 도구를 기반으로 또는 부분적으로 달성하기 위해 MSAA를 기반으로하지만, 입력 다음과 같습니다. MSAA 종종 직접,이 방법은 더 많은 상세 정보 제어를 얻거나 조절하는 방법들에 의해 수 그 자체는 다수의 방법을 제공하는 COM 구성 요소 중 가장 중요한하는 IAccessible 인터페이스를 달성된다하는 IAccessible라고 불리는 간단한 조작 (DoDefaultAction). 마이크로 소프트 액티브 접근성을 참조 할 수 있습니다 관심

  장점 : 윈도우 API에 비해, 사용자는,하는 IAccessible 거래를 주기적으로 업데이트이 인터페이스는 윈도우 메시지 방식에 의해 구현 될 필요가 없습니다 많은 기본 작업에 상대적으로 풍부 통해 정보를 얻을 수 제어 할 필요가있다. 또 다른 장점은 비교적 큰, 사용자 지정 컨트롤 지원은 물론, 사용자 지정 컨트롤을 작성하는 개발이,이 컨트롤은 MSAA에 의해 식별 될 수 있다는 말을하지 않는 것이하지만, 개발자가 사용자 지정 컨트롤을 구현할 때 때, 당신이하는 IAccessible 인터페이스를 구현할 수 있으며,이 인터페이스를 통해, 속성 및 운영 노출의 일부는, 테스터는 표준 컨트롤로이 컨트롤을 사용할 수 있으며, MSAA를 통해 자동화 할 수 있습니다. 이 분쟁 지역에 보이지만, 적어도 사용자 지정 컨트롤을 자동화 할 수있는 가능성을 제공합니다.

  단점 : 자연의 부족은, MSAA는 자동화 된 테스트를 위해 설계 된 적이없는, 그래서 그것은 자동화 된 테스트, 윈도우 API보다는 정보를 더 제어 액세스의 요구를 고려하지 않을 것이다, 그러나 자동화 된 테스트의 상대적 수요는 여전히 충분하지, 만입니다 기본 동작을 지원, 다른 작업은 Windows에서 메시지도해야합니다. 다른 하나는 마이크로 소프트의 WPF 이후하는 UIAutomation 인센티브 마이크로 소프트의 시작이며, (어려운 WPF 컨트롤 속성보다 풍부하고 사용자 정의, 더 많은 자유가, MSAA으로 설명하기 때문이다) MSAA 제한 더 분명.

UIAutomation

  자동화 된 테스트 응용 프로그램을 더 널리뿐만 아니라, WPF의 출시와 함께, MSAA 캡슐화에 근거하여 마이크로 소프트의 MSAA는, 마이크로 소프트는 자동화 된 테스트, 다시의 필요에 따라 재 설계 UIAutomation 라이브러리 (.NET)을 구현 자동화 된 시스템을 구현, 우리는이보다 정확한 아래의 차트를 볼 수 있습니다. 자동화 테스터가 넓은 푸른 하늘에 안내에서 (여전히 작은 구름 부동 소수점 있지만 ...), 또한 몇 가지 작은 엉킴이있을 것이다 :

  가. UIAutomation (UIA 다시로 약칭 함) 대 MSAA

  출시 때 UIA는 기반 MSAA 자동화 도구는 자신의 자동화 도구의 개발에 모든 사람이, 당신은 MSAA를 사용해야합니다 ... 같은 Silktest 및 WinRunner로, 매우 성숙 개발되었다, 또는 UIA는? UI 자동화 및 Microsoft Active 내게이 문서에서는 둘 사이의 대략적인 관계를 제공 할 수 있습니다. 마이크로 소프트의 아이디어와 디자인에 따라, UIA는 MSAA는 자동화 된 테스트의 표준 라이브러리가 대체하는 것입니다, 그리고 WPF가 들어 UIA는 일류 시민입니다. 구조적으로 기본적으로 MSAA 기능을 포함, UI 자동화 프록시를 통해 표준 컨트롤 시간에 UIA, MSAA 서버라는 말 :

  지도보기의 상단에서 이론적으로 완전히 UIA MSAA를 대체 할 수 있어야하지만, 이상과 현실은 UIA의 고전으로, 실용적인 관점에서, UIA가 완전히 MSAA를 대체 할 수 종종 큰 차이입니다 예외 :

  예외

  타임 스탬프 : 2009-10-09 오후 4시 37분

  요소 : 요소를 사용할 수 없습니다 자세히 설명합니다.

  이름 : TreeValidationException

  메시지 : UI 자동화 트리 탐색이 끊어집니다. 자손 중 하나의 부모는 존재하지만 자손은 부모의 자식이 아닌

  스택 추적 : UISpy.Base.Tree.BuildTree에서 (AutomationElement를 요소)

  UISpy.Base.Tree.BuildTreeAndRelatedTrees에서 (AutomationElement를 소자)

  마우스를 이동하여 컨트롤을 식별 할 때만큼 사용 된 UI 스파이 기본적으로 가로 질러 온다 (UIA 가제트, 당신은 전체 트리 UIA 컨트롤, 유사한 AccExplorer을 볼 수 있습니다)로,이 예외의 상단을 볼 수있다, 이 UI 트리를 구성 할 때, UIA 실패, 마우스가 불법 제어 할 수 가리키는 것을 의미한다. 당신이보기 AccExplorer 포인트를 사용하는 경우, 그것은 아무 문제가, 컨트롤 트리의 구조가 상대적으로 손상되지 않는다. 그것은 당신이 화면 좌표를 사용하는 경우, 물론,이 AutomationElement를하여 다음과 물론 (모든 작업을 수행 할 수있는 컨트롤 구조가 제어 트리 UIA에 간단하지 않기 때문에 당신이, 당신이 나무를 통과하여 제어 할 컨트롤을 찾을 수 있다는 것을 의미합니다 .FromPoint)을 수행하는, 또는 할 수 있지만 화면 좌표를 사용하는 것이 유의하시기 바랍니다. 그 다음 큰 프로젝트 및 사용자 정의 케이스의 많은 경우, 명확하지 않을 수있는 몇 가지 작은 프로그램으로, 문제는 의미,이 예외가 컨트롤을 많이 삼킬 블랙홀처럼, 확대됩니다 이 문제를 해결하는 코드를 작성하는 곳이 많이 필요뿐만 아니라 유지 보수 비용의 상당한 증가를 가져왔다.

  비. 관리되지 않는 대 관리

  UIA 라이브러리 내가 생각하지 않지만, 연맹은 언어를 쓰는 닷넷하고, 성능 문제 중 하나가되고있다 닷넷에서 관리 힙을 실행할 수 있다는 것을 의미한다 .Net3.0 릴리스의 일부로 큰 문제, 일반적으로 UI 응답 시간에서 자동화 된 테스트 프로그램이 작은 성능 차이보다 훨씬 더 많은 대기.

  기음. 인 - 프로세스 아웃 프로세스 대

  대부분의 자동화 된 테스트 도구 및 테스트 코드 있지만 과정이 부족하지만, 당신이해야하는 테스트 자동화 API를 보장하기 위해, 일부 특수 응용 프로그램 등의 API 테스트, UI 상호 작용에 대한 필요성과 그 과정에서 할 필요가있다 만들기에있는 자동화 된 스크립트를 작성합니다. MASS는 처리중인 작업을 지원하는 것뿐만 아니라, 알 수없는 문제가 발생할 수있는 공정에 사용하는 경우 성능 문제가 많이있을 것입니다, UIA 지원을 발표하지 않았다.

  D. 사용자 제어 지원

  연맹은 제공자의 실현 한, 자연 장점을 가지고뿐만 아니라, 개발자의 지원, 두 종류 제공자 UIA가 내장 된 아웃 보드에 자신을 달성 할 수 테스터의 능력을해야합니다 사용자 정의 컨트롤은 UIA에 대한 완벽한 지원이 될 수 있습니다. 물론, 표준이 그것을 제어, 마이크로 소프트는 이러한 컨트롤에 해당하는 좋은 클라이언트 공급자를 달성하기 위해 도움이 될 것입니다, 그래서는 Win32 컨트롤과의 WinForm 컨트롤 이후에 출시 된 UIAutomation는 이전 Win32 및의 WinForm 제어를위한 UIA는을위한 완벽한 지원입니다 표준 WPF 컨트롤이되지 제공자 지원에 태어난 언급. 특히 I가 시작되지 않습니다, 우리는이 볼 수 관심이 : UI 자동화 공급자 개요

 윈도우 자동화 API 3.0

  이것은 새로운 자동화 된 테스트 기술이 아니라, 더 정확하게, UIAutomation (UIA)과 MSAA는 UIA SP1 인 업그레이드에,하지만 이름은 MSAA 버전으로 참조되지 모르겠어요 3.0, 1.0 및 2.0로 직접 이동 그래서 우리는 방법 후이 이름을보고 기절하지 않는 ...... 마이크로 소프트 물건에 대한 잔소리는 누군가가 말했듯이, 시간에 수행하지 않는 Microsoft의 상황이 아이들 즉시 서비스 팩 출시 일정 기간 동안의 다음 릴리스에 나가서 보인다 마이크로 소프트의 제품은 SP1을 사용하는 때까지 기다려야합니다, 그래서이 아주 정확합니다 :) 자세한 내용은 우리는이 블로그 볼 수 있습니다 : 마이크로 소프트 윈도우 UI 자동화 블로그

  나는, 윈도우 자동화 API 3.0은 윈도우 7 자체가 말을 너무 윈도우 자동화 API 3.0 구성 요소와 기능, 다시 단어를 통합하는 것을 의미합니다 윈도우 7의 출시, 동반에 대해 뭔가 말을 여기입니다 자동화 된 테스트에 윈도우 7이 지원은 더 좋을 것이다. (수 상부에 대응 UIA 교락) 다음 메인 갱신은 :

  가. 업데이트 후, 기본적으로 깨진 이전 트리 문제, 내가보기에는 7 윈도우 지점의 테스트 결과를 수정, 문제를 찾을 수 없습니다

  나. 추가 된 무인 API와 COM API를, 그래서 네이티브 C ++의 직접적인 사용은 UIA의 자동화 도구에 또한 기반으로 개발 될 수있다

  후 COM API를 C., 그것은 프로세스에서-문제가되지 않습니다 보인다

  디. ...

  보기 위하여 아름다운 윈도우 자동화 API 3.0, 기본적으로 내가 위에서 말했다 UIA의 문제를 해결, 사람들은 UIA이 버전의 MSAA 것들에 진짜 대안입니다 생각합니다. 그러나 윈도우 자동화 API 나를 잠시 동안 얽힌하자, 거의 UIA을주고 싶어, 코드는 MSAA에 이식 재, 주요 이유는, 윈도우 자동화 API 3.0은 Windows 7, XP / Vista에서 설치할 수 없습니다 지원 에, 나중에 업데이트의 바닥과의 투쟁을 통해 : http://social.msdn.microsoft.com/Forums/en-AU/windowsaccessibilityandautomation/thread/46e83c55-47b8-4874-9222-7ce2fa58751d

  따라서, 현재의 상황 윈도우 자동화 API 3.0은 다음과 같습니다

  당신은 Windows 7에서 자동화 된 테스트를 할 경우, 축하, 당신은 윈도우 자동화 API 3.0의 모든 기능을 사용할 수 있습니다, 모두 관리되는 코드로 할 수있는, 당신은 또한 관리되지 않는 코드로 할 수 있습니다.

  나중에 Vista에서 사용하려면 업데이트를 설치, 그것에 있어야합니다, 나는 시도하지 않은 ......

  당신은 XP / Server2003에 사용하려는 경우, 당신은 (:) 곧)이 올해 말까지 언제까지 기다릴 필요

  즉, 윈도우 7, 어떻게 XP / 비스타 / Server2003에 만 닷넷을 사용, 아무것도 (/ 무인 관리)를 수행 할뿐만 아니라, 나무를 제어하지 않습니다 일부 제어가 발생했습니다. 따라서, 우리는 저 그것의 끝에서 업데이트를 기대합니다 ......

추천

출처www.cnblogs.com/dhcn/p/11128243.html