Building up test automation from scratch the inno games way

Post on 13-Apr-2017

197 views 0 download

Transcript of Building up test automation from scratch the inno games way

2

3

Ã  Developerwithobsessionforqualityandautoma7onÃ  HeadofQualityEngineering&QAatInnoGamesÃ  Since2005inonlineentertainmentÃ  Agile,con7nuousdelivery,automa7on

ABOUTMYSELF

hNp://www.linkedin.com/in/rainar@rainary(

4

AUTOMATEDTESTINGINGAMINGLIKEAMYSTICALUNICORN

Automatedtes7ngofgamesislikethemythicalUnicorn-Everyoneisspeakingaboutit,butnoonehasreallyseenit

5

IndustryStandardExcusesÃ  No7meÃ  NotoolsGamedevelopersExcusesÃ  ComplexuserinterfacetechnologiesÃ  Heavygamelogic

WHYAUTOMATIONINGAMESHASN’TYETHADITSBREAKTHROUGH

6

Gamesareso)ware.Ifitispossibletoautomateso)waretes4ngitshouldbepossibletoautomategamestes4ng

7

SCOPE

Focus

8

§  Timetomarket§  Dependencytoexternalproviders§  Cost

WHYWEDECIDEDTOSWITCH

9

WHATWEHAD?

Organisa7on§  QAsi]nginaseparatedroom§  Resourcessharedacrossmul7ple

projects

Skills§  Productexper7se§  Knowhowtes7ngworks§  Curiosity

§  0automatedtests§  1testerwithexperienceofwri7ng

code§  Ratherscep7ca]tudefromthe

products

10

WHATWEHAD?

11

WHATWEWANTEDTOHAVE

12

CHANGES

Understand§  Benefitsofautoma7on§  Gamestech.solu7ons§  Basiccoding

§  Testersworkcloselywithdeveloper

§  Dedicatedtestersforeachproduct

Organisa7on§  QAsi]nginaseparatedroom§  Resourcessharedacrossmul7ple

projects

Skills§  Productexper7se§  Knowhowtes7ngworks§  Curiosity

13

Businesspeoplecaninterpretnumbers–showthemhowmuch4meorcostarewesaving

WHENNOTEVERYONEISONBOARD

14

Developersunderstandvaluesofautoma4on,buttheydon’talwaysunderstandthetes4ngprocess–showthemaworkingsolu4onandtheywillembraceit

15

Benefitsofautoma7onÃ  FasterÃ  CheaperÃ  IncreasecoverageÃ  Moreaccurate

Ã Feedback

WHENEVERYONEISNOTONBOARD

WHENNOTEVERYONEISONBOARD

16

DEVELOPMENTPROCESSMANUALQA

Featureready?

IntegrateUnittestimplement

Versioncontrol

test

Reproduce

Fix

UserStory

BugFound!

Developmentprocess Testprocess

17

DEVELOPMENTPROCESSAUTOMATEDQA

Unittest Integrate releaseimplement

Automatedtests

Bugfoun

d

Fix

Featureready!

UserStory

18

FEEDBACK

Lifecycleofadefect

Developer Tester PM Developer Tester Ops

Manual DevelopCheck-incode

CheckoutTest

OpenbugPriori7zebug Fixbug Retest

Closebug Deploy

Automated

DevelopCheck-incodeAutomated

testFix

Finalchecks Deploy

19

Ã  Gettheorganisa7onrightÃ  GetthetestersonboardÃ  GeteveryoneelseonboardÃ  Increaseskillsetandawarenessofautoma7on

TAKEAWAYS

20

Part2–Technicalsolu7ons

21

Ã  SupportvarietyofUI-s–  Flash–  Cocos2dx

Ã  iOSÃ  Android

–  UnrealEngineÃ  iOSÃ  Android

–  HTML5+AngularJS–  AdobeAir

Ã  Genericsolu7onÃ  Enabledatadriventes7ngÃ  Easytoscript

TECHNICALREQUIREMENTS

22

AUTOMATIONTECHNIQUES

UIobjectaccess ScreenshotrecogniKon

•  Builtintostandardtechnologies(HTML,na7vemobile)

•  Faster•  Fail-safe•  Dynamic

•  Workseverywhere•  Easytoscript

Ã  Waystoperformautomatedendtoendtes7ng–  UIobjectaccess–  Imagerecogni7on

23

HOWUIWORKS?

Container

UIObjectUIObject

UIObject

UIObject

UIObject

UIObject

UIObject

xcoordinateycoordinateObjecttype*Value

•  IsObjectpresentonscreen•  Performaninput•  Readobjectvalue•  Changeobjectvalue

24

SUPPORTINGSEVERALTECHNOLOGIES

GAME1

UIContainer

SELENIUM

Testcloud

Test

Test

Test

Test

25

SUPPORTINGSEVERALTECHNOLOGIES

GAME1HTML5 UI

Container

SELENIUM

Testcloud

Test

Test

Test

GAME2Cocos2dx UI

Container

PLUGIN1

GAME3UnrealEngine UI

Container

PLUGIN2

26

SUPPORTINGSEVERALTECHNOLOGIES

Testcloud

Test

Test

Test

GAME2Cocos2dx UI

Container

PLUGIN1

GAME3UnrealEngine UI

Container

PLUGIN2

Proxy

27

Help–I’vecreatedmyfirst200testsandI’mspendingmostofmy4memaintainingit?

28

Ã  Modelesapplica7onundertestaspagesÃ  ReducestestcodeÃ  TestsmorereadableÃ  Easiermaintenance

PAGEOBJECTSPATTERN

Webpages

Testframework

LoginPage

Registra7onPage

LoginTest

29

SAMPLETESTCODE

packagecom.innogames.qa.iforge.tests.ba(le.campaignmap;importcom.innogames.qa.iforge.testcommon.SimpleTestTemplateWithLogin;importnet.thucydides.core.annotaKons.WithTagValuesOf;importorg.junit.Test;/***ThistestchecksifArmyManagementwindowcanbeopenedproperlyonthecampaignmap*/@WithTagValuesOf({"feature:BaNle","story:CampaignMap","level:Smoke"})publicclassFOE1363extendsSimpleTestTemplateWithLogin{@TestpublicvoidopenArmyManagementWindowFOE1363(){player.atCityScreen().clicksExpandBuNonInMainMenu();player.atCityScreen().clicksArmyManagementBuNon();player.atArmyManagementPage().shouldSeeArmyManagementWindow();player.atArmyManagementPage().clicksCloseBuNon();}}

30

TIMELINE

2013 20152014~200testsw

ri(en

~1500autom

ated

testcases

~2500autom

ated

testcases

Trainings

Firstsmok

etestsp

rojects

010203040506070809101112 010203040506070809101112 010203040506070809101112

31

Ã  Startwiththeeasiestsolu7onÃ  Donotkeeplookingfortheperfecttool–thereisnoneÃ  Takingcareaboutautoma7ontoolsbuildingandtrainingsisafull7mejobÃ  Buildatoolforyourtesters,notforyourself

TECHNICALSOLUTION-TAKEAWAYS

32

Ã  Automa7onisapplicablefortes7nggamesÃ  BreakingawayfromtheoldmindsetmightbedifficultTosucceed:Ã  Createaorganisa7onalstructurethatsupportsautomatedtes7ngÃ  Makesureeverybodyunderstandsthevaluesaddedbyautoma7onÃ  Therearenoperfecttechnicalsolu7onforanyofthedomain,youhavetomakethem

work!

CONCLUSION

33

Q&A

Q&A

hNp://www.linkedin.com/in/rainar@rainary(

34

ThankYou!

Q&A

hNp://www.linkedin.com/in/rainar@rainary(