Post on 13-Apr-2017
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(