Automatisches Testen ohne Frust mit CodedUI Nico Orschel Consultant AIT TeamSystemPro
Was ist CodedUI? Framework für UI Testautomatisierung Verfügbar ab Visual Studio 2010 Premium Unterstützung verschiedener Technologien durch spezifische Provider (z.B. WinForms, WPF, Webanwendungen, Silverlight 4.0 ) Microsoft Testmanager und CodedUI verwenden identisches Tracking-Framework
Unterstützte Plattformen
Tracking Technologien UI Test Implementierung Windows Forms Microsoft Active Accessibility (MSAA) Windows Presentation Foundation UI Automation (UIA) Internet Explorer MSHTML Firefox JavaScript und Firefox DOM Silverlight Code Injection und Reflection
UITest Architecture Technology Abstraction Layer Web Plug-ins (MSHTML/DOM) Interpreter Coded UI Test Code Generation Test Runner Playback Recorder Rich Client Plug-ins (UIA/MSAA) Filter/ Aggregation Rules API Property Provider 3rd Party Plug-ins Action Invoker My UI Custom properties & code Customize recording Write a client that does something else! Technology Abstraction Layer Add/Modify API Write technology adapters
MSAA MSAA = Microsoft Assessabilty Automation Standard zur Ansteuerung von Anwendungen für Screenreader Verfügbar/Bestandteil seit Windows 95 Testautomatisierung von WinForms Controls erfolgt über MSAA Wichtige Properties im Zusammenhang mit Testautomatisierung AccessabiltyName und AccessabiltyDescription
Accessabilty Problemdiagnose Probleme mit den Standards MSAA und UIA ohne Hilfsmittel schwierig zu identifizieren Diagnose mit folgenden Programmen möglich Custom Tool UISpy (nur MSAA, Windows SDK) AccChecker (UIA und MSAA Best Practice Scan) Download unter https://acccheck.codeplex.com/
demo… WinForms
Tip 1: MSAA: AccessibilityName und AccessibilityDescription zuweisen
Tip 2: ACChecker - dein Freund und Helfer (bei MSAA / UIA Problemen)
UIA UIA = User Interface Automation Nachfolger des Standards MSAA Bestandteil des System ab Windows 2003 und Vista Standard WPF Controls (.NetFx 3.0 und neuer) implementieren UIA UIA Properties AutomationId und AutomationName sind essentiel für die Testautomatisierung Definition kann implizit oder explizit erfolgen
demo… WPF
Tip 3: UIA: AutomationName und AutomationID zuweisen
Silverlight Support für Silverlight 4.0 Anwendungen mit Feature Pack 2 verfügbar Unterschiede zu WPF Einbindung der Assembly Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper Gemeinsamkeiten mit WPF: AutomationProperties analog zu WPF AutomationId AutomationName
demo… Silverlight
Tip 4: UIA: AutomationName und AutomationID zuweisen
Web Erweiterung für das CodedUI Framework Ursprung: Microsoft Product Group Vereinfacht die Entwicklung und Wartung von automatischen Tests (von Webanwendungen) Vorteil “Keine” UIMap mehr notwendig Weniger, lesbarer und warbarerr Code Ausführen von JavaScript Code
demo… Web
Tip 5: Wartbarer Testautomation-Code mit CUITe
Tip 6: “If you don’t know what you want tested, how are you going to automate it?”
Info to Speakers Please add the following two Slides to the End of your Deck! Thank you!
Give us your feedback! Please help us make TechDays even better by Evaluating this Session. Thank you!
AIT TeamSystemPro Team TeamSystemPro@aitgmbh.de
3/28/2017 8:10 PM © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Weiterführende Informationen AIT Gmbh & Co. KG http://www.aitgmbh.de Artikelserie zu CodedUI Optimierung http://blog.aitgmbh.de/2011/01/07/codedui-diagnose-von-msaa-oder-uia-problemen-in-anwendungen-teil-1/ http://blog.aitgmbh.de/2011/01/20/codedui-wpf-anwendungen-fr-codedui-vorbereiten-teil-2/ http://blog.aitgmbh.de/2011/01/28/codedui-winforms-anwendungen-fr-uitest-vorbereiten-teil-3/ Set a Unique Automation Property for Silverlight Controls for Testing http://msdn.microsoft.com/en-us/library/gg413373.aspx
Weiterführende Informationen CUITe (Coded UI Test enhanced) Framework https://cuite.codeplex.com/ UI Accessibility Checker https://acccheck.codeplex.com/ Using UI Automation for Automated Testing http://msdn.microsoft.com/en-us/library/aa348551.aspx