Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Automatizované testy uživatelského rozhraní
Michael Juřek Software Architect Microsoft s.r.o.
2
Agenda Co je test UI a kdy ho použít? Anatomie testu UI
Pokročilé možnosti Doporučení
3
Proč vytvářet testy UI? Šetří čas nutný pro funkční testování aplikace
Brání regresním chybám: Pokud přestane něco fungovat, zjistíte to okamžitě Kdy se vyplatí? Pokud: PočetOpakováníTestu * DobaManuálníhoTestu > PracnostVytvořeníAutomatickéhoTestu
4
Vhodný příklad použití
Controller Model View Integrační testy Unit testy Testy UI
5
Zapojení do životního cyklu
Test UI je speciální unit test (C# nebo VB): Spravován a verzován spolu s kódem Vytvořen ve VS 2010 Premium nebo Ultimate Test Case je nový typ pracovní položky Přiřazením testu UI se stane automatizovaným Možnosti spouštění testu UI: Na vývojářské stanici (jako unit test) Během týmového buildu (jako test case), společně s nasazením aplikace do virtuálního prostředí Z nástroje Test Manager (jako test case)
6
Vytvoření testu UI Dva způsoby:
Z manuálního test casu nahraného pomocí Test Manageru Nutno dodat kontroly výsledků Z Visual Studia 2010: Nástroj Coded UI Test Builder
7
demo Vytvoření testu UI
8
Agenda Co je test UI a kdy ho použít? Anatomie testu UI
Pokročilé možnosti Doporučení
9
Architektura komponent
Web Plug-ins (MSHTML/DOM) Interpreter Coded UI Test Code Generation Test Manager Playback Recorder Rich Client Plug-ins (UIA/MSAA) Filter/ Aggregation Rules API Property Provider 3rd Party Plug-ins Technology Abstraction Layer Browser Service
10
Podporované platformy
Plně podporováno: WPF 3.5+ (pozor na ovládací prvky třetích stran) WinForms 2.0+ (pozor na ovládací prvky třetích stran) Webové aplikace v IE7 a IE8 Podporováno s omezeními: Silverlight 4.0 (nutný Feature Pack 2, pouze v prohlížeči, nutná reference na helper DLL) Webové aplikace ve Firefox 3.6+ (nutný Feature Pack 2, pouze přehrávání, ne nahrávání) Nepodporováno, ale rozumně funguje: C++ (MFC, Win32, …) Nefunguje: Ostatní prohlížeče, Office, Flash, Java na klientovi, SAP, …
11
Mapa uživatelského rozhraní
Soubor s příponou .uitest Dvě části: Strom použitých (ne všech) ovládacích prvků Každý prvek je definován vyhledávacími kritérii Posloupnosti kroků – jsou volány z vlastního testu Akce (Actions) Kontroly (Assertions) Nástroje: Vytváření/Nahrávání – Coded UI Test Builder Editace – Coded UI Test Editor (součást Feature Pack 2)
12
Složky mapy UI Jmeno.uitest Jmeno.Designer.cs Jmeno.cs
Deklarativní XML definice ovládacích prvků a akcí Vytvářen a upravován speciálními nástroji Jmeno.Designer.cs Generován při každé změně .uitest Nedotýkat se! Jmeno.cs Sem můžete doplňovat svůj kód (partial class) Sekvence akcí, kontroly podmínek, parametrizované metody apod. V editoru je části XML možné převádět do tohoto souboru
13
Mechanismus nahrávání/přehrávání
Odfiltrování irelevantních akcí v UI Agregace na co nejvyšší úroveň abstrakce Click na textbox, stisky kláves -> vložení textu do textboxu Přehrávání: Vyhledání prvku podle definovaných vyhledávacích kritérií Wait for ready (WFR) – čeká se, dokud není připraven na vstup Kontrola viditelnosti ovládacího prvku Provedení akce Kontrola, zda prvek opravdu příslušnou akci provedl
14
demo Anatomie testu UI
15
Agenda Co je test UI a kdy ho použít? Anatomie testu UI
Pokročilé možnosti Doporučení
16
Parametrizace Veškeré konstantní hodnoty jsou při nahrávce parametrizovány Výchozí (nahrané) hodnoty jsou nastaveny ve vlastnostech mapy UI: JmenoAkceParams JmenoKontrolyExpectedValues Možnost změny hodnot během testu: V kódu nastavte parametry prostřednictvím odpovídající vlastnosti mapy UI Zavolejte metodu mapy UI (bez parametrů)
17
Testy UI řízené daty Test UI lze běžet vícekrát pro různé kombinace vstupů a očekávaných výsledků Postup: Definování zdroje dat - .csv, .xml, databáze Nastavení vazby mezi testem a zdrojem dat Parametrizace s využitím TestContext.DataRow Viz Možnost využít jako zdroj dat parametry zadané v definici test case:
18
Parametrizace, testy řízené daty
demo Parametrizace, testy řízené daty
19
Více map UI v jednom projektu
Pro testování reálné složitější aplikace se jedna mapa UI stane brzo nepřehlednou Vytvoření více map umožňuje logické strukturování podle částí UI Viz Je vhodné udržovat poměr 1:1 mezi mapami a testovacími třídami
20
PlaybackSettings Třída pro nastavování jemných parametrů přehrávání:
Ve velké většině případů vyhovuje výchozí nastavení
21
Agenda Co je test UI a kdy ho použít? Anatomie testu UI
Pokročilé možnosti Doporučení
22
Identifikace ovládacích prvků
Prvek je možné identifkovat mnoha způsoby: TextBox s ID rovným txtLastName TextBox hned vedle popisky „Příjmení“ TextBox v pořadí 5. na formuláři Fungují v principu všechny způsoby Mají ale různou odolnost vůči budoucím změnám uživatelského rozhraní
23
Identifikace u webových aplikací
Používejte ID u ovládacích prvků, které jsou: Jednoznačné Opakovatelé Co nejlépe lidsky čitelné V případě ASP.NET Web Forms aplikace vhodně využijete ClientIdMode
24
Identifikace u WPF/SL aplikací
Jednoznačné, opakovatelné, lidsky čitelné identifikátory Databinding a návrhový vzor MVVM je ale nevyžadují Přesto je vhodné je používat - dvě možnosti: Name – zvětšuje množství vygenerovaného kódu AutomationProperties.Name – nezvyšuje množství kódu, ale je pouze ve WPF Objekty používané pro databinding v seznamech by měly mít jednoznačný a opakovatelný výsledek volání ToString() Viz
25
Další doporučení Používejte dobře čitelná jména u generovaných metod, kontrol i ovládacích prvků Každá mapa UI operuje nad jednou stránkou, formulářem, dialogem (použijte více map UI) Každá metoda operuje nad jednou stránkou, formulářem, dialogem Maximálně 10 akcí na vygenerovanou metodu Jedna kontrola na vygenerovanou metodu Využívejte co nejvíce definici v XML a co nejméně kód
26
Další informace Blog speciálně věnovaný testům UI
Test and Lab Team’s Blog Demo / Trial VHD se cvičeními
27
9/8/2018 7:52 PM Závěrem Automatizované testování UI může ušetřit čas při testování aplikací Návratnost investice závisí na počtu budoucích provádění testu – vhodné zejména pro klíčové scénáře v aplikaci VS 2010 nabízí prostředky, díky kterým je vytváření automatických testů UI relativně snadné, s robustním výsledkem © 2007 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.
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.