Testautomation av sammansatta och mobila applikationer Magnus Nilsson Lemontree
Agenda Kravställning och rapportering Hur hanterar man manuella tester tillsammans med automatiska tester Genomgång av lösningar som möjliggör effektiv testautomation Testning av komposita och mobila applikationer Beskrivning av lyckade testautomationsprojekt avseende teknik, affärsmodell och strategi
Strategisk testautomation Initieras, drivs och följs upp av ett business case Regler inom organisationen för hur testautomation ska utföras. Beskriver en standardlösning av hur verktygen ska användas. Generisk lösning som inte är beroende av individer Fokus på underhållet Sammanbinds med verksamheten genom ett testcenter Säkerställs av ett ramverk Implementeras genom testautomationsprojekt Kravställning Rapportering
Strategisk testautomation Initieras, drivs och följs upp av ett business case Regler inom organisationen för hur testautomation ska utföras. Beskriver en standardlösning av hur verktygen ska användas. Generisk lösning som inte är beroende av individer Fokus på underhållet Sammanbinds med verksamheten genom ett testcenter Säkerställs av ett ramverk Implementeras genom testautomationsprojekt Kravställning Rapportering
Test genom komponenter Funktionalitet tillgängligt i test Utveckla testfall när dessa blir tillgängliga Fas 1 Fas 2 Funktion 3 Funktion 4 Krav Funktion 1 Funktion 2 Design och utveckling Test Funktion 1 Funktion 2 Funktion 1 Funktion 2 Varje funktionalitet är en del av en komponent (eller en egen komponent) Kravställning Rapportering
Bygga upp komponenter - exempel Funktion 1: Skapa kund genom kundtjänst KundtjänstKund 7
Bygga upp komponenter - exempel Funktion 2: Skapa kund genom mobil applikation MobilAppKund 8
Kravställning - analysstruktur Användarfall Process Vad används systemet för? Hur görs det? Krav Vilka krav finns det på processnivå? Exempel Kund Kundtjänst Datavillkor 1 Datavillkor 2» Vilka datavillkor täcks av användarfallen? Skapa Privat Kravställning Företag Rapportering
Kravställning - analysstruktur Användarfall/ produkter Krav Kund Konto Abonnemang Folder area Process Beskrivning Prio Skapa Avsluta Nytt Ändra Avbryt Nyteckning Sälj Kundtjänst Internet 1 Sälj Mobil applikation Telefon, surf 31 1 1 3 1 1 1 3 1 15 1 1 3 Sälj Webbutik Online 2 1 1 1 1 3 Produkt Prislistan Kundtjänst 2 1 1 1 Produkt Utbud ProduktDB 1 Kravställning Rapportering
Komponenter - analysstruktur Komponenter Krav Kundtjänst MobilApp Kund Konto Kund Folder area Kravprocess Datavillkor testfall Prio Kundtjänst Sälj TF23 Skapa 1 R1.1 kund Mobil app Sälj TF12 Skapa 1 R2.3.4 kund Kundtjänst Avsluta Sälj TF1 2 R2.4.1 kund Registrera Sälj TF45 Kundtjänst bankkonto 2 R4.1.1 Sälj Testfall TF6 Kundtjänst R4.1.1 Ändra bankkonto 1 Skapa Avsluta Nytt Ändra Avbryt Skapa Kravställning Rapportering
Kravställning och rapportering Status Inte täckt Inte kört Inte klart Fel Godkänt Kund 1 3 2 7 Testrapport för Skapa kund säger Bristfällig täckning Buggar i funktionaliteten Ej avslutad testning Eller? Kravställning Rapportering
Kravställning och rapportering Status Inte täckt Inte kört Inte klart Fel Godkänt Kund Kundtjänst 1 1 3 2 7 2 1 Skapa Inte klart 2 1 Webbutik Avsluta Skapa Inte täckt Godkänt 1 3 3 Mobil applikation Skapa Fel 1 1 2 3 2 3
Kravställning och rapportering, exempel HP ALM Automatiska Manuella tester
Möjliggöra testautomation av mobila appar En applikation Bankapplikation Hundratals kombinationer av plattform och OS Lösningar
Lösningar urval av telefoner Testa urval av telefoner Versioner/Modeller iphone4 iphone5 i9300 Galaxy S III HTC One HTC Hero ios 4.x ios 5.x ios 6.x Android 2.1 Eclair Android 2.3 Gingerbread Olika OS, samma enhet Android 3.2 Honeycomb Android 4.0.3 Ice Cream S. Android 4.1 Jelly Bean Android 4.2 Jelly Bean Samma OS, olika enheter Android 1.6 Donut
Lösningar - åtkomst Testa urval av telefoner Åtkomst Simulatorer Manuella enheter Desktop Privata nätverk Publika nätverk Lösningar
Lösningar automatisk exekvering Testa ett urval av telefoner Åtkomst Automatisk exekvering Desktop Molnet Lösningar
Testautomation- identifiering Instrumentera applikationer med källkod (native) Applikationskontroll Känner igen nativa ID ios: bygger app med bibliotek Android: laddar applikationspaket (.apk) Jailbroken ios Full kontroll Installerar en agent som laddar bibliotek i applikationen 14 Mobila applikationer
Testautomation- identifiering Nativ identifiering Källkodsobjekt Text OCR (Object Character Recognition) Textigenkänning Web DOM (Document Object Model) Identifierar och kontrollerar webbelement Visuellt Använder bilder och positioner Kombination Nativ, OCR, DOM samt bilder kan användas för att identifiera ett och samma objekt. Logga in Användarnamn Välj Kod BankID Kod BankID 1 2 3 4 5 6 7 8 9 0 Mobila applikationer
Identifiering applikation/os Applikation Bild Text Webb Nativ Nativ Webb Hybrid Visuell identifiering enkel Textidentifiering kan oftast användas direkt på flera OS För nativa objekt måste både Android och ios-objekt lagras. Även möjlighet att använda beskrivande objekt, dessa lagras inte. Dela upp objektlagringen i flera skilda behållare separat för ios och Android. applikationer
Nativ identifikation - exempel Problem: Olika nativa identifierare Problem: Nativa hittar objektet Användarnamn Namn UITextFieldLabel, Namn usernametextfield htc Användarnamn Namn Välj Välj Kod BankID UIButtonLabel, Kod codebutton Kod BankID Lagrade objekt Lösning: Använd OS-beroende identifierare Lösning: Bildidentifiering hittar felet
Exekvering, E2E - exempel OrderDB Mobil Strategi
Exekvering, E2E - exempel TestdataDB Namn Plattform Kundnr Kund1 ios 1234 ObjektDB Kund2 Android 1235 Objekt Objektbehållare MobilApp [SkapaKund] Kundtjänst [SkapaKonto] Kundtjänst [SkapaOrder] ios Objektbehållare Android Mobil Strategi
Exekvering, E2E - exempel TestdataDB Namn Konto Kundnr Kund1 121 1234 ObjektDB Kund2 122 1235 Objekt CRMSida MobilApp [SkapaKund] Kundtjänst [SkapaKonto] Kundtjänst [SkapaOrder] Dialog Tabell LoginSida Mobil Strategi
Order Tjänstelager Exekvering, E2E - exempel TestdataDB Namn Order Kundnr Kund1 123 1234 ObjektDB Kund2 124 1235 Objekt Order MobilApp [SkapaKund] Kundtjänst [SkapaKonto] Kundtjänst [SkapaOrder] Tabell Text LoginOrder Mobil Strategi
Projektorganisation - Testautomationscenter Utveckling Exekvering Underhåll Projekt Testautomation
Testautomationsprojekt Testfall Planerade Levererade Fas 0 The business case Vecka Fas 1 Analys Detaljerad design Utveckling Systemtest Acceptancetest Plan nästa fas Fas 2 Detaljerad design Utveckling Vecka Projekt Testautomation
Tack! Magnus Nilsson Lemontree Solution Manager magnus.nilsson@lemontree.se