문제

우리는 신규/수정된 GUI 기능을 측정하는 대규모 프로젝트를 진행하고 있습니다.과거에는 새로운 기능을 추가할 때 관련 코드에 새로운 문제가 자주 발생하는 것을 발견했습니다.

기술적인 지식이 없는 사용자도 테스트를 수행하지만 종종 부품을 놓치거나 버그가 빠져나가는 경우가 많습니다.

내 질문:WinForms 프로젝트의 UI 테스트를 구성하기 위한 모범 사례가 있습니까?자동화할 수 있는 방법이 있나요?

감사해요!

도움이 되었습니까?

해결책

버튼 등을 클릭해 주는 GUI 테스트 도구가 있지만 내 경험으로는 꽤 취약합니다.

가장 좋은 방법은 UI 레이어를 최대한 얇게 유지하는 것입니다.이벤트 핸들러 클래스는 테스트 가능한 다른 클래스를 호출하는 한두 줄만 사용하는 것이 가장 좋습니다.이렇게 하면 실제로 버튼을 클릭하지 않고도 단위 테스트에서 비즈니스 논리를 테스트할 수 있습니다.

다른 팁

다음을 사용하여 GUI 테스트를 자동화할 수 있습니다. 하얀색 뼈대.

또한 TDD 친화적인 디자인을 사용하는 것을 고려해보세요.사용 MVP/MVC 무늬.

Microsoft 패턴 및 실무 팀의 설명서를 읽어 보시기 바랍니다.

특히 다음을 살펴보세요. 복합 UI 애플리케이션 블록 그리고 복합WPF.

테스트 기반 UI를 포함한 GUI 앱 개발의 모범 사례를 제공하기 위해 특별히 설계된 이러한 프로젝트입니다.

GUI 레이어를 가능한 한 얇게 유지하십시오.마이클 페더스 기사, 겸손한 대화 상자, 고전입니다.마틴 파울러(Martin Fowler)의 글도 확인해 보세요. 패시브 뷰.나는 또한 "자동 버튼 클릭기"가 취약하고 코드를 유지하는 것보다 테스트를 유지하는 데 더 많은 시간을 소비하기 쉽다는 말을 들었습니다.

누군가가 이것이 유용하다고 생각하는 경우:

GUI 테스트 도구 목록 위키피디아에서 찾았습니다.

다음 책은 해당 주제에 대한 소개입니다.개발자의 수만큼 방법은 많습니다..

http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby

White와 같은 오픈 소스 솔루션부터 HP QuickTest Pro와 같은 고가의 상용 솔루션에 이르기까지 WinForms 테스트를 자동화할 수 있는 도구와 라이브러리가 많이 있습니다.자체 자동화 프레임워크를 롤링하려는 경우 .NET에 UIAutomation 네임스페이스도 있습니다.그러나 자동화의 실제 비용은 구현에 필요한 시간과 전문 기술에 있습니다.유지 관리 가능성은 자동화된 테스트 설계의 가장 중요한 측면 중 하나이기도 합니다.애플리케이션의 자동화 자산을 최신 상태로 유지하기 위해 과도한 리소스를 소비하고 싶지 않습니다.또한 특정 애플리케이션 및 조직에 따라 자동화 결정에 영향을 미치는 많은 요소가 있습니다.

가장 좋은 방법은 해당 주제에 대해 더 많은 조사를 하고 다음과 같은 전문 테스트 사이트를 확인하는 것입니다. http://www.sqaforums.com.

나는 다양한 브라우저에서 웹 페이지 레이아웃을 테스트하는 빠르고 더러운 방법을 찾았습니다.그것은 ~라고 불린다 browsershots.org.우리 클라이언트는 현재 5개 브라우저의 지원이 필요하며 전체 회귀 테스트에는 약 일주일이 걸립니다.이 서비스는 약 70개 이상의 브라우저 및 버전의 스크린샷을 제공합니다.나는 그것을 인쇄하고 빛에 페이지를 비췄습니다.정렬되지 않으면 레이아웃 문제가 있는 것입니다.

구성이나 모범 사례에 대해서는 실제로 도움을 드릴 수는 없지만 NUnit 양식 테스트에 확장 프로그램을 사용할 수 있는 것 같습니다. NUnitForms.

이 제품과 유사한 평가판 다운로드를 사용했습니다(http://www.tethyssolutions.com/product.htm) 및 이 상품(http://www.mjtnet.com/macro_scheduler.htm) 몇 년 전 결과에 만족했습니다.이는 매우 저렴한 솔루션이며 이러한 매크로 레코더 제품 중 일부는 실제로 자동화된 테스트에 사용될 수 있습니다.

현재 사용 가능한 새로운 방법은 Ruby gem을 통해 Ruby를 사용하는 것입니다. win32-autogui.이는 Windows GUI 앱을 테스트하기 위한 프레임워크를 제공합니다.Ruby 도구 RSpec 및 Cucumber와 결합하면 매우 강력한 테스트 프레임워크가 됩니다.

UI 테스트를 구성하는 방법은 테스트 사례를 디자인하는 방법에 따라 다릅니다.

단위 테스트 수준에서 Windows Forms 애플리케이션을 자동화하려면 NUnit과 같은 TDD 프레임워크를 사용할 수 있습니다.또는 NSpec과 같은 BDD 프레임워크를 사용하세요.

기능 테스트 수준에서 Windows Forms 응용 프로그램을 자동화하면 White, CodedUI를 사용하거나 직접 사용할 수도 있습니다. Windows 자동화 API 3.0 (UI 자동화 및 MSAA).

위에 언급된 모든 항목은 솔루션이라기보다는 기술이므로 자동화된 테스트 작성을 시작하기 전에 이러한 기술을 기반으로 몇 가지 기본적인 테스트 자동화/스크립팅 프레임워크를 구축하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top