...ããã€ãã®ç¹ã§äžå®å šã§ãããšããäºå®ã«ãããããããå€ãã®çãããéšåãå«ãŸããŠããããŸãã¯ã
ãããã«ããããããããŸã«äžæ£ç¢ºã§ããããã2ã€ã®éèŠãªå©ç¹ããããŸãã
第äžã«ãããã¯å°ãå®ãã[...]ã第äºã«ããã®ã«ããŒã«ã倧ãã
ãããŠæ¥œããæçŽã§ãããããã¯ãªãïŒããšããèšè
-éæ²³ããããã€ã¯ã¬ã€ã
ããã«ã¡ã¯ãHabrïŒ
ç§ã®ååã¯Arseny Batyrovã§ããç§ã¯QA Badooéšéã§åããŠãããäž»ã«Webã¢ããªã±ãŒã·ã§ã³ã®æåãã¹ããè¡ã£ãŠããŸãã ãŸããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®æåããã³èªåãã¹ãã®ã³ãŒã¹ãæããŠããŸãã
æ°ããã³ãŒã¹ãéå§ããåã«ãåŠçã«ã©ã®ããŒã«ãæããã¹ãããèããŸããã ç§ã¯ãã·ã¢ã®ã€ã³ã¿ãŒããããšæ¯èŒèšäºãæ¢ããŠã€ã³ã¿ãŒããããèµ°ãããŸããããå¥åŠãªããšã«ãé©åãªæ å ±æºãèŠã€ããããšãã§ããŸããã§ããã ãããŠãç§ã¯èªåã§äœæããããšã«ããŸããã
ç§ã¯3ã€ã®ç®æšãè¿œæ±ããŸããïŒ
- AutoTestã¹ã¿ãã¯ã®ããŒã«ãåé¡ããŠãéå±€ãšäºææ§ãç解ã§ããããã«ããŸãã
- çŸåšåžå Žã§äººæ°ã®ããããŒã«ã瀺ããŸãã
- åã¿ã€ãã®æã人æ°ã®ããããŒã«ã«ã€ããŠè©±ããããããããã€ãã®æ¹æ³ã§æ¯èŒããŸãã
ç§ã®ä»äºã®çµæã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãèªåãã¹ãããããã®ãæã人æ°ããããæãç°¡åã«åŠç¿ã§ããããŒã«ã®ã¬ã€ãã§ãã
ããã䜿çšããŠãã ããïŒ
- ããŒã«ãéžæããŠãã ãã- æ¯èŒãã芧ãã ããã
- èªååãã¢ãã€ã«ããã€ã¹ã§ã©ã®ããã«æ©èœããããç¥ãããå Žåã¯ã åé¡ãã芧ãã ãã ã
- æ絊ãéæãããå Žå- 人æ°ã®ããŒã«ãç¿åŸããŠãã ããã
å 容
- ã¢ããªã±ãŒã·ã§ã³ãšãã¹ã
- ããŒã«åé¡
- äžè«èª¿æ»
- ããŒã«æ¯èŒ
- ãããã«
- è¬èŸ
- ããŒãã·ãŒã
- 䟿å©ãªãªã³ã¯
å 責äºé ïŒç§ã¯ãã¹ãã®ç¬¬äžäººè ã§ã¯ãªãããã®èšäºã¯å®å šãªãªã¹ãã§ã¯ãããŸããã ééããèŠã€ããããã¬ã€ãããã¯ãè£è¶³ãããå Žåã¯ãã³ã¡ã³ããæè¿ããŸã-ãããããã¹ãŠã®æçšãªæ å ±ãééããªãå ¥æã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãšãã¹ã
ãŸããããŒã«ãã©ã®ããã«æ©èœããããç解ããŸãããã
èªååã¹ã¿ãã¯ã®äžéšã§ã¯ãªããç§ãã¡ã«ãšã£ãŠéèŠãª2ã€ã®ãšã³ãã£ãã£ããããŸãããã®ã¢ããªã±ãŒã·ã§ã³ãšãã¹ãã§ãã ãã¹ãŠã®èªååããŒã«ãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããŸãã GUIãAPIããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãCLIããã®ä»ã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠããŠãŒã¶ãŒãä»ã®ã¢ããªã±ãŒã·ã§ã³ãšããåãããŸãã
API ïŒã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹ïŒ-ä»ã®ããã°ã©ã ãšå¯Ÿè©±ããããã®ã¡ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã
GUI ïŒã°ã©ãã£ãã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒ-ãŠãŒã¶ãŒãšã®å¯Ÿè©±ã«äœ¿çšãããã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã
ããã ïŒãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ïŒ-ãããã¯ãŒã¯ãä»ããŠæ©èœããäžçŽãŠãŒã¶ãŒãšããã°ã©ã ã®äž¡æ¹ã§äœ¿çšãããŸãã
ãã¹ãã§ã¯ãããããã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ã§ããŸãã æåãã¹ãã§ã¯ããã¹ã¿ãŒã¯ãã¹ããšã¢ããªã±ãŒã·ã§ã³ã®éã®ä»²ä»è ã§ãããã¹ãã±ãŒã¹ã®ããã¹ãããã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ã®1ã€ã䜿çšããã¢ã¯ã·ã§ã³ã«å€æããŸãã
èªååãè¡ãã«ã¯ããã¹ã¿ãŒã1ã€ä»¥äžã®ã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ãšå¯Ÿè©±ã§ããããŒã«ã«çœ®ãæããå¿ èŠããããŸãã ãŸããäžé£ã®ãã¹ããå®è¡ããŠåœ¢æããããã®ãŠãŒãã£ãªãã£ãå¿ èŠã«ãªããŸãã
ãããã®ããŒã«ã¯ãã¹ãŠãã»ã«ããã¹ãã¹ã¿ãã¯ãšåŒã°ããŸãã ããããã¹ã¿ãã¯äžã§ã©ã®ããã«çžäºäœçšããããç解ããã«ã¯ãããããåé¡ããå¿ èŠããããŸãã æ瀺ãããåé¡ã¯æ¡ä»¶ä»ãã§ãããäž»ã«ããŒã«ãšãã®äºææ§ãç解ããããã«å¿ èŠã§ãã
ãã©ã€ããŒãã¢ããªã³ããã¬ãŒã ã¯ãŒã¯ãã³ã³ãã€ã³ã®åèš4ã€ã®ããŒã«ã°ã«ãŒãããããŸãã ãããããã詳现ã«æ€èšããŸãããã
ããŒã«åé¡
é転æ
èªåãã¹ããŠãŒãã£ãªãã£ã¯ãä»ã®ããã°ã©ã ãšåæ§ã«ãããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã®ã¿ã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ã§ããŸããä»ã®æ¹æ³ã¯ããããŸããã ä»ã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠäœæ¥ããããã«ãç¹å¥ãªããã°ã©ã -ãã©ã€ããŒããããŸãã
ãã©ã€ããŒã¯ãã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ã®1ã€ã«APIãæäŸããããã°ã©ã ã§ãã
å®éã«ã¯APIãé€ãåã€ã³ã¿ãŒãã§ã€ã¹ã«å¯ŸããŠãç¬èªã®ãã©ã€ããŒãå¿ èŠã§ãã ããšãã°ãGUIã³ãã³ããPress the Menu Buttonãã®ãã©ã€ããŒãæå®ãããšããã©ã€ããŒã¯APIãä»ããŠãããèªèãããã¹ã察象ã®ã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ããŸãã ã¢ããªã±ãŒã·ã§ã³APIãšå¯Ÿè©±ããã«ã¯ããã©ã€ããŒã¯å¿ èŠãªãããã»ãšãã©å¿ èŠãããŸããã察話ã¯ãœãããŠã§ã¢ã§ãã ããããä»ã®ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããå Žåãããããªãã§ã¯ã§ããŸããã
ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯éä¿¡ããã°ã©ã ã®éåžžã®ã³ãŒããšã¯éåžžã«ç°ãªããããGUIã®ãã©ã€ããŒã¯éåžžæãè€éã§ãã åæã«ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®èªåãã¹ãã§ã¯ãGUIãæãé¢é£æ§ãé«ããªããŸããããã¯ãGUIãçµ±åãã¹ãã§äœ¿çšããå¿ èŠãæãå€ãããã§ãã ã¢ãã€ã«ãã¹ãã§ã®GUIã®æãäžè¬çãªãã©ã€ããŒã¯ãAndroidçšã®UIAutomatorãšEspresso ãiOSçšã®XCUITestã§ãã
ã¢ãã€ã³
ãã©ã€ããŒã®æ©èœãååã§ãªãå ŽåããŸãã¯äžäŸ¿ã§è€éââãªå Žåãå¥ã®ã¬ãã«ã衚瀺ãããŸãããããã¢ããªã³ãšåŒã³ãŸãã
ã¢ãã€ã³ã¯ã1ã€ãŸãã¯è€æ°ã®ãã©ã€ããŒãä»ããŠã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ãã䜿ãããããåäžããããæ©èœãæ¡åŒµãããããããã°ã©ã ã§ãã
ã¢ãã€ã³ã«ã¯æ¬¡ã®æ©èœããããŸãã
- åäœã®å€æŽïŒAPIãå€æŽããã«ïŒã
äŸïŒ
- è¿œå ã®ãã®ã³ã°
- ããŒã¿æ€èšŒ
- ã¢ã¯ã·ã§ã³ãäžå®æéå®äºããã®ãåŸ ã£ãŠããŸãã
- 以äžãä»ããŠãAPIæœè±¡åã®ãŠãŒã¶ããªãã£ããã³/ãŸãã¯ã¬ãã«ãæ¹åããŸãã
- æ§æç³ã®äœ¿çš-䟿å©ãªé¢æ°åãããããžã®çãåŒã³åºãããã¹ããæžãçµ±äžãããã¹ã¿ã€ã«ã
- ããšãã°ãèªåçã«åæåãããå Žåã®æé»çãªãã©ã€ããŒå¶åŸ¡ããã®ãããªåã¢ã¯ã·ã§ã³ãæåã§ç»é²ããå¿ èŠã¯ãããŸããã
- ã«ã¬ã³ããŒããã€ãã³ããéžæãããã¹ã¯ããŒã«ãªã¹ããæäœãããªã©ã®è€éãªã³ãã³ããç°¡çŽ åãã
- æç¶ãåãæµfluentãªã©ã®ä»£æ¿ããã°ã©ãã³ã°ã¹ã¿ã€ã«ã®å®è£ ã
- ãã©ã€ããŒAPIã®çµ±åã
ããã§ãã¢ãã€ã³ã¯ãè€æ°ã®ãã©ã€ããŒãåæã«æäœããããã®åäžã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã ããã«ãããããšãã°ã人æ°ã®ããAppiumã¢ãã€ã³ãšåæ§ã«ãiOSãšAndroidã®ãã¹ãã«åãã³ãŒãã䜿çšã§ããŸãã
æ çµã¿
ãã¹ãã®å察åŽã«ã¯ãèµ·åãã¬ãŒã ã¯ãŒã¯ããããŸãã ãã®èšäºã§ã¯ããŸããªãããã¬ãŒã ã¯ãŒã¯ããšåŒã³ãŸãã
ãã¬ãŒã ã¯ãŒã¯ã¯ããã¹ãã¹ã€ãŒãã®èµ·åçµæãçæãèµ·åãããã³åéããããã®ããã°ã©ã ã§ãã
ãã¬ãŒã ã¯ãŒã¯ã®ã¿ã¹ã¯ã¯æ¬¡ã®ãšããã§ãã
- äžé£ã®ãã¹ãã®åœ¢æãã°ã«ãŒãåãæŽçã
- ã»ããã®äžŠååïŒãªãã·ã§ã³ïŒã
- åšå ·ã®äœæ
- å®è¡äžã®ãã¹ã
- å®è£ ã®çµæã®ã³ã¬ã¯ã·ã§ã³ã
- ããã©ãŒãã³ã¹ã¬ããŒãã®çæïŒãªãã·ã§ã³ïŒã
ãããã®æ©èœã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ã¿ã®ãã¹ãã«é¢é£ãããã®ã§ã¯ãªãããšã«æ°ä»ããããããŸããããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãWebã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãã«ã䜿çšã§ããŸãã å®éã«ã¯ããã¬ãŒã ã¯ãŒã¯ã¯ãã¹ããšã¢ããªã±ãŒã·ã§ã³ã®çžäºäœçšãä¿èšŒãã¹ãã§ã¯ãããŸãã-ãã¹ãã§ã®ã¿æ©èœããã¢ããªã±ãŒã·ã§ã³ã®çš®é¡ã¯éèŠã§ã¯ãããŸããã
ãã©ã€ããšã¢ããªã³ããã¹ããšã¢ããªã±ãŒã·ã§ã³ã®éã«ããå Žåããã¬ãŒã ã¯ãŒã¯ã¯ãã¹ãã®äžã«ããããããã®èµ·åãæŽçããŸãã ãããã£ãŠãããã©ã€ããŒããšããã¬ãŒã ã¯ãŒã¯ãã®æŠå¿µãæ··åããªãããšãéèŠã§ãã ãã¡ãããäžéšã®ãã¬ãŒã ã¯ãŒã¯ã«ã¯ã¢ããªã±ãŒã·ã§ã³ãæäœããããã®ç¬èªã®ãã©ã€ããŒããããŸãããããã¯åææ¡ä»¶ã§ã¯ãããŸããã æã泚ç®ãã¹ãã¢ãã€ã«ãã¹ããã¬ãŒã ã¯ãŒã¯ã¯xUnitãšCucumberã§ãã
åç©«æ©
æåŸã«ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããèªååããããã«äœ¿çšããããŠãŒãã£ãªãã£ã®å¥ã®ã°ã«ãŒãã¯ããã¬ãŒã ã¯ãŒã¯ãšãã©ã€ããŒïŒã¢ãã€ã«ã®ãã®ã ãã§ãªãïŒãšéçºæ©èœãçµã¿åãããçµã¿åããã§ãã Xamarin.UITest ã Squish ã Ranorex-ãããã¯ãã¹ãŠãiOSã¢ããªã±ãŒã·ã§ã³ãAndroidã¢ããªã±ãŒã·ã§ã³ãWebã¢ããªã±ãŒã·ã§ã³ãããã³æåŸã®2ã€ã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãèªååããµããŒãããŠããŸãã
ãã®ãããããŒã«ãåé¡ããŸããã åã«ããŽãªã§æã人æ°ã®ãããã®ã決å®ããããããæ¯èŒããããšã¯æ®ã£ãŠããŸãã
äžè«èª¿æ»
æããã䜿çšãããŠãããŠãŒãã£ãªãã£ãç¹å®ããããã«ãQAãšã³ãžãã¢åãã«ããã€ãã®ãµã€ããã³ãã¥ããã£ããã£ãã«ã§ã¢ã³ã±ãŒããå®æœãã3ã€ã®ç°¡åãªè³ªåãããŸããã ããŸããŸãªçš®é¡ã®ããŒã«ãéžæããå¿ èŠããªãããã«ãåçãªãã·ã§ã³ã®æ°ãå¶éããŸããã§ããã ç¬èªã®ããŒãžã§ã³ãè¿œå ããããšãã§ããŸãããããã¯ãåé¡ã«é©åããªãããŸããŸãªãŠãŒãã£ãªãã£ããããªãé·ããããŒã«ãã衚瀺ãããæ¹æ³ã§ãã çµæã¯çµ±èšçã«æ£ç¢ºãªãµãããããã®ã§ã¯ãããŸãããã2018幎1æçŸåšã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãã¹ãèªååæ¥çã®åŸåãå®å šã«ç€ºããŠããŸãã
çµæãããããããã«ãäž»èŠãªäœçœ®ã¯WebDriverããŒã¹ã®ãŠãŒãã£ãªãã£ã§ããAppiumããã³Seleniumã«ãã£ãŠå ããããŠããŸãã ãã¬ãŒã ã¯ãŒã¯ã®äžã§æã人æ°ã®ããã®ã¯JUnitãšCucumberã§ã2çªç®ã®ãã¬ãŒã ã¯ãŒã¯ã¯ãã人æ°ããããŸã-ããã¯é©ãã¹ãããšã§ãã ã©ã®ãã©ãããã©ãŒã ã§ããå ¬åŒãã©ã€ããŒã¯éå ¬åŒãã©ã€ããŒããã人æ°ããããŸã-æããã«ããµãŒãããŒãã£è£œåãããé«å質ã®ãµããŒããšããå€ãã®æ©èœãããããã§ãã
æããã䜿çšããã3ã€ã®ããã°ã©ãã³ã°èšèªã¯ã Java ã Python ã Ruby ïŒJavaãå€§å¹ ã«ãªãŒãããŠããŸãïŒã®ããã«èŠããŸãã Cucumberã®äººæ°ã«é¢é£ããããã3ãžã®Rubyã®ãšã³ããªãŒã
æåŸã«ããã©ãããã©ãŒã å¥ã®é ä¿¡ãéåžžã«æåŸ ãããŠããŸã-Androidã¯iOSãããããªãããŒãžã³ãå ã§ã ã¢ãã€ã«Webãããã«ç¶ããŸã ã ååã®èª¿æ»ã§Windowsçšã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã«é¢ããåçã®ã¿ãé©ãããŸããããäžéšã®ããŒãã¹ã¿ãŒã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãšãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãåæã«ãã¹ãã§ããŸãã
ããŒã«ã®äººæ°ãæ±ã£ãåŸãæãéèŠãªãã®ã®æ¯èŒã«é²ã¿ãŸãã åã¿ã€ãã«ã€ããŠãããã«é¢é£ããããŒã«ã®æ©èœã®æ¯èŒè¡šãæåã«æäŸãããŸãã åæ©åšã«ã€ããŠæãé¢é£æ§ãé«ãä¿¡é Œæ§ã®é«ãæ å ±ãåéããããšããŸããããäœãèŠèœãšããŠããŸããã ãã®ããã説æã«çªç¶ãšã©ãŒãèŠã€ãã£ãå Žåã¯ãã³ã¡ã³ãã«å¿ ãæžããŠãã ããã
ããŒã«æ¯èŒ
ãã©ã€ããŒ
ã¢ãã€ã«ãã¹ãã®ãã©ã€ããŒã¯ã»ãšãã©ãªããå€ãã®å Žåããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšåãäŒç€Ÿã«ãã£ãŠéçºãããŠããŸãã Androidã«ã¯ã çŸåšããŒãžã§ã³2.0ã®UIAutomatorãšEspressoã® 2ã€ã®å ¬åŒãã©ã€ããŒããããŸãã ã©ã¡ãããGoogleãéçºããååã«ææžåãããAndroid Testing Support Libraryã®äžéšã§ãã ãããã«å ããŠããµãŒãããŒãã£äŒæ¥ã«ãã£ãŠéçºããããããžã§ã¯ãRobotiumããã³SelendroidããããŸãã 4ã€ã®è£œåã¯ãã¹ãŠãAndroid Instrumentation FrameworkïŒAndroidãã·ã¹ãã ãšå¯Ÿè©±ããããã«æäŸããåºæ¬APIïŒã§äœããã®åœ¢ã§æ©èœããŸãã
ãŸããGoogleã®ãã©ã€ããŒãèŠãŠã¿ãŸãããã ã©ã¡ãã®ããŒã«ãWebViewãšãã€ããªããã¢ããªã±ãŒã·ã§ã³ã§åäœããJavaãšKotlinã§ã®éçºããµããŒããããšãã¥ã¬ãŒã¿ãŒãšå®éã®ããã€ã¹ã®äž¡æ¹ã§åäœããŸãã
UIAutomator
UIAutomatorã¯ãAPIã¬ãã«18ïŒAndroid 4.3ïŒä»¥éã®AndroidããŒãžã§ã³ããµããŒãããŸãã ãããžã§ã¯ãã«ã³ãŒããå®è£ ããå¿ èŠã¯ãããŸãããã€ãŸããã³ã³ãã€ã«æžã¿ã®ã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ã§ããŸãã ããã«ãUIAutomatorã䜿çšããå ŽåãAndroidã·ã¹ãã ã®æ©èœãå®å šã«äœ¿çšã§ããŸããããšãã°ããžãªãã±ãŒã·ã§ã³ããªã³ã«ããã·ã¹ãã ã¢ããªã±ãŒã·ã§ã³ãåŒã³åºããããã€ã¹ããªã³ã«ããããŒã ãã¿ã³ãæŒãããã¹ã¯ãªãŒã³ã·ã§ãããæ®ããŸãã ãããã£ãŠããã®ããŒã«ã¯ãåç¬ã§ããŸãã¯ã¢ããªã³ãšãšãã«ãæ©èœçãªãšã³ãããŒãšã³ãã®ãã¹ãã«ãã䜿çšãããŸãã
UIAutomatorã«ã¯ãã¹ãçšã®ç¬èªã®ã¬ã³ãŒããŒã¯ãããŸãããããšãã¥ã¬ãŒã¿ãŒãŸãã¯å®éã®ããã€ã¹ã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã®èŠçŽ ã«é¢ããããŒã¿ãååŸãããããã®èŠçŽ ã®ãã±ãŒã¿ãŒã衚瀺ã§ããUI Automator ViewerãŠãŒãã£ãªãã£ããããŸãã ãã¹ãŠã®èŠçŽ ã®éå±€æ§é ãããã«è¡šç€ºããããã¹ãã§ãããã䜿çšããã®ã«éåžžã«äŸ¿å©ã§ãã
ãšã¹ãã¬ããœ
ãšã¹ãã¬ããœã¯ããã¯ã€ãããã¯ã¹ãã¹ãåãã«éçºããããã®ã§ãéçºè åãã®ããŒã«ãšããŠäœæãããŸããã APIã¬ãã«10ïŒAndroid 2.3.3ïŒä»¥éã®å€ãAPIããµããŒãããŠããŸãããå®è¡ããã«ã¯ãœãŒã¹ã³ãŒããžã®ã¢ã¯ã»ã¹ãå¿ èŠã§ãã ãããã£ãŠããšã¹ãã¬ããœã¯ä»ã®ã¢ããªã±ãŒã·ã§ã³ãAndroidã·ã¹ãã ãšç¬ç«ããŠåäœããããšã¯ã§ããŸããã ãã ãããã®ããŒã«ã«ã¯ã¬ã³ãŒããŒããããããã䜿çšããŠåçŽãªã¹ã¯ãªãããèšé²ããèªååã®åæ段éã§äœ¿çšã§ããŸãã
äžè¬ã«ãã·ã¹ãã ãšã®çžäºäœçšãèæ ®ããã«ã¢ããªã±ãŒã·ã§ã³ã®ã¿ããã¹ãããå¿ èŠãããããœãŒã¹ãæäœããæ欲ãšèœåãããå Žåã¯ãEspressoã䜿çšããããšããå§ãããŸãã ããã«ããã¹ããšã¢ããªã±ãŒã·ã§ã³UIã®èªååæãªã©ã®äŸ¿å©ãªæ©èœãå®è£ ãããŠãããããŸããŸãªåŸ æ©ã³ãã³ããäœæããããšã¯ã§ããŸããã
ä»ã®æ©èœãŸãã¯ã·ã¹ãã æ©èœãšçµã¿åãããŠã¢ããªã±ãŒã·ã§ã³ããã¹ãããå¿ èŠããããã¢ã¯ã»ã¹ã.apkã®ã¿ã§ããå Žåã¯ãUIAutomatorãéžæããŸãã
ãšããã§ããããã®ããŒã«ã¯åãã©ã€ãã©ãªã®äžéšã§ãããããäžç·ã«äœ¿çšã§ããŸãã 1ã€ã®ãã¹ãã§ããäž¡æ¹ã®ããŒã«ã®ã³ãã³ããçµã¿åãããããšãã§ããŸãã
ã»ã¬ã³ããã€ããšãããã£ãŠã
SelendroidãšRobotiumã¯äž¡æ¹ãšããå ¬åŒãã©ã€ããŒãç»å Žããåã«ãªãªãŒã¹ãããçŸåšãååšããŠããŸãã
Robotiumã¯ãAPIã¬ãã«8以éã®Android APIããŒãžã§ã³ããµããŒãããAPIã¬ãã«15以éã®WebViewã§åäœããŸããSelendroidã¯ãAPIããŒãžã§ã³ã®éå®ãªã¹ãïŒ10ã19ïŒã§åäœããŸãããšãã¥ã¬ãŒã¿ããã³å®éã®ããã€ã¹ã§ã®äœæ¥ããµããŒãããŸãã Robotiumã®å Žåããã¹ãã¯Javaã§äœæããå¿ èŠããããSelendroidã¯WebDriverãããã³ã«ããµããŒãããŠãããããã»ãšãã©ãã¹ãŠã®äžè¬çãªããã°ã©ãã³ã°èšèªã䜿çšã§ããŸãã
Selendroidã«ã¯InspectorãŠãŒãã£ãªãã£ããããããã䜿çšããŠèŠçŽ ã®éå±€ã衚瀺ããç°¡åãªèšé²ãšåçã®ãã¹ããèšé²ã§ããŸãã Robotiumã¯ãIntelliJ IDEAããã³Android Studioã«åæ§ã®æ©èœãåããRobotium Recorderãã©ã°ã€ã³ãæäŸããŸãã
äžè¬ã«ããããã®ããŒã«ã®éçºã¯Googleã®ãã©ã€ããŒããã掻çºã«è¡ãããŠãããã察象è ã¯ã¯ããã«éãããŠããŸãã ããã«ããããããã調æ»çµæã¯ãäžéšã®äŒæ¥ããŸã ãããã䜿çšããŠããããšã瀺ããŠããŸãã
XCUITest
iOSã§ã¯ãUIAutomationãã©ã€ããŒãã¢ããªã±ãŒã·ã§ã³ãšã®å¯Ÿè©±ã«é·æé䜿çšãããŸãããïŒãšãããAndroidãã©ã€ããŒã®ååãšã®é¡äŒŒæ§ã«ããæ··ä¹±ãåŒãèµ·ãããŸããïŒãiOS 10以éãAppleã¯ãã®ãã©ã€ããŒã®ãµããŒããåæ¢ãã代ããã«XCTestããã±ãŒãžã®XCUITestãã©ã€ããŒã衚瀺ãããŸããã
ããŒãžã§ã³9.0以éã®iOSããµããŒããããã®ãã¹ãã¯Objective-CèšèªãšSwiftèšèªãããã³ã¢ããªã±ãŒã·ã§ã³èªäœã§èšè¿°ãããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ããã¹ãããããã«ããã®ã³ãŒãã«ã¢ã¯ã»ã¹ããå¿ èŠã¯ãããŸãããXcode9以éããã©ã€ããŒã¯ã·ã¹ãã ã¢ããªã±ãŒã·ã§ã³ãå«ãè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ãåæã«ãã¹ãã§ããŸãã ããã®ãŸãŸãXCUITestã䜿çšãããšãã·ãã¥ã¬ãŒã¿ã§ã®ã¿ãã¹ããå®è¡ã§ããŸãããäžéšã®ãµãŒãããŒãã£ãŠãŒãã£ãªãã£ã䜿çšããŠãå®éã®ããã€ã¹ã§åäœãããããšãã§ããŸãã
XCUITestã«ã¯ãXcodeã€ã³ã¿ãŒãã§ã€ã¹ã«çŽæ¥çµã¿èŸŒãŸããç¬èªã®ã¬ã³ãŒããŒããããŸãã ããã䜿çšãããšãåçŽãªUIãã¹ããèšé²ã§ããã ãã§ãªããUIèŠçŽ ãšãã®ããããã£ãèŠã€ããããšãã§ããŸãã
ã¢ããªã³
ã¢ããŠã
Appiumã¯ãä»æ¥æãæåãªã¢ãã€ã³ã§ãã ã·ã¹ãã ã®ãã©ãããã©ãŒã ãã¿ã€ããããŒãžã§ã³ã«ã»ãšãã©é¢ä¿ãªããã¢ããªã±ãŒã·ã§ã³ããã¹ãã§ããŸãã ãã¡ããããã®ã¢ãããŒãã«ã¯ããã€ãã®éèŠãªé·æãšçæããããŸãã
Appiumã¯ãã¢ãã€ã«ã ãã§ãªãå€ãã®ãã©ã€ããŒããµããŒãããŠããŸãã
- iOS
- XCUITest
- ïŒéæšå¥šïŒUIAutomation
- Android
- ïŒããŒã¿ïŒãšã¹ãã¬ããœ
- UIAutomator 2.0
- ïŒéæšå¥šïŒUIAutomator
- ïŒéæšå¥šïŒSelendroid
- Windowsãã©ã€ããŒïŒãã¹ã¯ãããWindowsã¢ããªã±ãŒã·ã§ã³çšïŒ
- Macãã©ã€ããŒïŒãã¹ã¯ãããMacã¢ããªã±ãŒã·ã§ã³çšïŒ
ãã®ãããªããŸããŸãªãã©ã€ããŒã®ãµããŒãã¯ãããªãèå³æ·±ãæ¹æ³ã§å®è£ ãããŠããŸããAppiumã¯ãSelenium WebDriverã§èª°ããç¥ã£ãŠããããŒãžã§ã³ã®WebDriverã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŸãã ãŸãããµããŒããããŠããå€æ°ã®ãã©ãããã©ãŒã ã«å ããŠããã®ã¢ãããŒãã«ã¯ä»ã®å©ç¹ããããŸãã
- WebDriverããµããŒãããä»»æã®èšèªã§ãã¹ããäœæããæ©èœïŒããã³ãã®ãªã¹ãã«ã¯ãã»ãšãã©ãã¹ãŠã®äžè¬çãªããã°ã©ãã³ã°èšèªãå«ãŸããŸãïŒã ããã«ãããã«ãããã¢ããªã±ãŒã·ã§ã³ã«ããã€ãã£ããèšèªã䜿çšããããšãããã¹ãããã¢ã³ãã£ãã§ããŸãã XCUITestã§ã®ãã¹ãã¯Xcodeã§ã®ã¿èšè¿°ã§ãããããããã¯iOSã«æãé¢é£ããŠããŸãã ãã®å ŽåãAppiumã§ã¯ãä»»æã®èšèªãšäŸ¿å©ãªéçºç°å¢ã䜿çšã§ããŸãã
- ãã€ããªããããã³Webã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããžã®ç°¡åãªç§»è¡ïŒWebDriverãããã³ã«ã¯ãã§ã«ïŒã»ãŒïŒWebèªååã®æšæºã«ãªã£ãŠããŸãã
- ãã¹ããã¬ãŒã ã¯ãŒã¯ã®äœ¿çš-ã»ãšãã©ãã¹ãŠã®ãã¹ããã¬ãŒã ã¯ãŒã¯ã¯ãäœããã®åœ¢ã§WebDriverãããã³ã«ãšé£æºã§ãããããAppiumãžã®æ¥ç¶ã«åé¡ã¯ãããŸããã
- ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã«äœããè¿œå ããå¿ èŠã¯ãããŸãããã³ãŒãã«ã¢ã¯ã»ã¹ããå¿ èŠã®ãªããã©ãããã©ãŒã ããšã«ãã©ã€ããŒã䜿çšãããŸãã ããã¯ãå±éã®å®¹æãã«å ããŠãç¹å¥ãªãã¹ãã¢ã»ã³ããªã§ã¯ãªãããŠãŒã¶ãŒã«è¡šç€ºãããã¢ããªã±ãŒã·ã§ã³ã®ãã«ããæ£ç¢ºã«ãã¹ãã§ããããšãæå³ããŸãã
ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ãµããŒãã«é¢å¿ããããããUIAutomator 2.0ãSelendroidãããã³XCUITestãã©ã€ããŒã®å®è£ ã«ã€ããŠè©³ããèŠãŠãããŸãããã
æãç°¡åãªãã®ã¯UIAutomator 2.0ã§ãAppiumã¯ãããšçŽæ¥ããåãããå¿ èŠãªã³ãã³ããæž¡ããŸãã Android 5.0以éã®ããŒãžã§ã³ã§åäœããŸãã 4.2ãã5.0ã§ã¯ãUIAutomator 1ã䜿çšã§ããæ¢ç¥ã®Selendroidãã©ã€ããŒã«ãã£ãŠå€ãããŒãžã§ã³ãšã®å¯Ÿè©±ãæäŸãããŸãã XCUITestãšå¯Ÿè©±ããããã€ãã®å¶éãåé¿ããããã«ãFacebookã®WebDriverAgentïŒWDAïŒã䜿çšãããŸãã WDAã¯ã·ãã¥ã¬ãŒã¿ãŸãã¯å®ããã€ã¹ã®ã³ã³ããã¹ãã§å®è¡ãããXCUITest APIãä»ããŠã³ãã³ããæž¡ããŸãã
Appiumã®çæã¯ããã®ã¡ãªããã«ç±æ¥ããŸãã
- ã¢ãã€ã³èªäœã®ã³ãŒãã®ãšã©ãŒã®ããããã¹ãã¯ãã€ãã£ããã©ã€ããŒçšã«äœæããããã¹ããããé »ç¹ã«äžæããŸãã ããã¯ç¹ã«iOSã«åœãŠã¯ãŸããŸããWDAãããã«è¿œå ãããŠããããã§ãã
- Appiumã¯ãã¢ããªã±ãŒã·ã§ã³ã§åçãèŠã€ããŠæ¯èŒããããšããAndroidã§ã¢ã©ãŒããçŽæ¥æäœããããšãã§ããŸããã
- Android API <17ã®éå®ãµããŒãããã ããEspressoããã©ã€ããŒãšããŠæ¥ç¶ããããšã§ä¿®æ£ã§ããŸãã
- ããã«ãããããããAppiumã¢ãã€ã³ã¯éåžžã«äººæ°ããããç©æ¥µçã«éçºãããŠãããããå€ãã®åé¡ã¯å°æ¥ã³ãã¥ããã£ã§è§£æ±ºã§ããŸãã
WebDriverAgent
AppiumãiOSãæäœããããã«äœ¿çšããWebDriverAgentã¢ããªã³ã«ç§»ããŸãã å®éãããã¯WebDriverãããã³ã«ã®ãµãŒããŒåŽã®å®è£ ã§ãããiOSã§ããã€ã¹ãå¶åŸ¡ã§ããŸãã ããã«ãæ©èœã¯éåžžã«è±å¯ã§ããã¢ããªã±ãŒã·ã§ã³ã®èµ·åãšåæ¢ããžã§ã¹ãã£ã®äœ¿çšãç»é¢äžã®èŠçŽ ã®å¯èŠæ§ã®ç¢ºèªãã§ããŸãã
ã¢ãã€ã³ã¯ãã·ãã¥ã¬ãŒã¿ãŒãšå®éã®ããã€ã¹ã®äž¡æ¹ã§æ©èœããŸãã èŠçŽ ãæ€åºããããã«ããã©ãŠã¶ã§éãã€ã³ã¹ãã¯ã¿ãŒã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã ã¢ãã€ã³èªäœã¯ãFacebookããã³AppiumããŒã ã«ãã£ãŠãµããŒããããŠãããéåžžã«æŽ»çºã«éçºãããŠããŸãã åæã«ãäœããã®çç±ã§Appiumãããªãã«åããªãå ŽåãAppiumãšã¯å¥ã«äœ¿çšã§ããŸãã
ã²ãããã
次ã®éåžžã«äººæ°ã®ããã¢ããªã³ã¯ãAndroidããã³iOSçšã®Calabashã§ãã ãã®ããŒã«ã¯Xamarinã«ãã£ãŠéçºãããŸãããã2017幎ã«ãµããŒããåæ¢ããçŸåšã¯ã³ãã¥ããã£ã®ã¿ããµããŒãããŠããŸãã
åOSã«ã¯ãCalabash iOSãŸãã¯Calabash Androidãšããç¬èªã®ã¢ããªã³ããããŸãã ã©ã¡ããWebViewãã¹ããšRuby / JRubyèšèªããµããŒãããŠããŸãã Calabash Androidãæ©èœããããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãœãŒã¹ã«ã¢ã¯ã»ã¹ããå¿ èŠã¯ãããŸããããCalabash iOSã®å Žåã¯ãCalabashãã¬ãŒã ã¯ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã«æ¥ç¶ããå¿ èŠããããŸãã ãŸãããã€ãã£ãiOSã¢ããªã±ãŒã·ã§ã³ã®å€éšã§ãã¥ãŒãæäœããã«ã¯ãè¿œå ã®ããŒã«ã䜿çšãããŸããDeviceAgentã䜿çšãããšããããã®ãã¥ãŒãæ€åºããŠæäœã§ããŸãã çè«çã«ã¯ãããã¯WebViewããã¹ãã§ããããšãæå³ããŸãããå®éã«ã¯ãiOSãã¢ããªã±ãŒã·ã§ã³ã«æäŸãããã¥ãŒïŒç¢ºèªçšã®ããŸããŸãªãªãŒããŒã¬ã€ãæåã®éä¿¡ãåçã®æ¿å ¥ïŒã«å¶éããæ¹ãé©åã§ãã Calabash Androidã¯WebViewã®æäœããµããŒãããŠããŸãããã¿ãããããã¹ãå ¥åãã¢ã©ãŒããªã©ãããªãéãããèŠæš¡ã§åäœããŸãã
äžè¬ã«ãCalabashã¯ããªãå®å®ããé«éãªããŒã«ã§ãããã¢ããªã±ãŒã·ã§ã³ãç®çã®ç¶æ ïŒããã¯ãã¢ïŒã«ãã䟿å©ãªæ©èœãåããŠããããã®ãŸãŸã§Cucumberãšã®çµ±åããµããŒãããŠããŸãã ãããããã®äœ¿çšã«å¯Ÿããå ¬åŒãµããŒããäžè¶³ããŠãããããåé¡ãçºçããå¯èœæ§ããããã³ãã¥ããã£ã¯è¿ éãªè§£æ±ºãä¿èšŒã§ããŸããã
ã¢ãŒã«ã°ã¬ã€
Earl Grayã¯Espresso for iOSã®äžçš®ã®å®è£ ã§ãããGoogleã«ãã£ãŠéçºãããŠããŸãã ããã§ã¯ãã¹ãŠãiOSã¢ããªã³ã®æšæºã§ããXcodeã§ãããžã§ã¯ãã«è¿œå ããå¿ èŠããããŸããObjective-CãšSwiftã§ã®ã¿ãã¹ããèšè¿°ã§ãã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã®ã¿ããã¹ãã§ããŸããå€éšãã¥ãŒã¯è¡šç€ºãããŸããã ãã ããå®éã®ããã€ã¹ã§ã®ãã¹ãã¯ãµããŒããããŠããŸãã ã¢ãã€ã³èªäœã¯èå³æ·±ããã®ã§ãããå€ããå°ãªããå®æçã«ãµããŒããããŠããŸãããäœããã®çç±ã§ãã¹ã¿ãŒã«ââã¯äººæ°ããããŸããã
ãã¬ãŒã ã¯ãŒã¯
ãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ãã€ã«ããã€ã¹ã®ãã¹ããšã®é¢é£æ§ãæãäœãããã¹ãã§åäœãããã©ã€ããŒãã¢ããªã³ãšçµ±åãããŸãã ãããã£ãŠãç§ã¯ãããã詳现ã«æ€èšããŸããïŒã€ã³ã¿ãŒãããäžã®äœçŸãã®è³æãããã«å°å¿µããŠããŸãïŒããè¡šé¢çãªæ¯èŒã®ã¿ãè¡ããŸãã
xUnitããã³TestNG
æã人æ°ã®ããxUnitãã¡ããªãŒãã¬ãŒã ã¯ãŒã¯ã ãããã¯åäœãã¹ãçšã®ããŒã«ãšããŠäœæããããã®ã§ãæåã®ãã®ãããªãµãŒãã¹ã¯JUnitã§ããã ããã«ããããã¯åäœãã¹ãã ãã§ãªããä»ã®ãã¹ãã§ãæ©èœããŸãã ãã®æ±çšæ§ã«ãããxUnitãã¬ãŒã ã¯ãŒã¯ã¯ã©ãã§ã䜿çšãããWebã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããæ¯é ããŸãã JUnitã¯Javaã§ã®ã¿åäœããŸãããçŸåšã§ã¯ãã»ãšãã©ãã¹ãŠã®äžè¬çãªããã°ã©ãã³ã°èšèªã«ãã®ãããªãã¬ãŒã ã¯ãŒã¯ã®å®è£ ããããŸãã
ããå€æ§ãªè£å©æ©èœãæã€TestNGãã¬ãŒã ã¯ãŒã¯ã¯ããã®ã°ã«ãŒããšã¯å€å°ç°ãªããŸãã
ãã ãã
BDDãã¬ãŒã ã¯ãŒã¯ã人æ°ããããç¹ã«ãã¥ãŠãªãæåã§ãã xUnitãTestNGãšã¯ç°ãªããããã§ã¯ãã¹ããšãã®æé ã¯ããã¥ã¡ã³ãã«åºã¥ããŠåœ¢æãããèªç¶ã«è¿ãèšèªã§ããGherkinã§èšè¿°ãããŠããŸãã Cucumberã¯ãŸã åãå ¥ããã¹ããç®çãšããŠãããããæ©èœãã¹ãã®èªååãå®è£ ããããšã¯éåžžã«å°é£ã§ãã
åç©«æ©
ã·ã£ããªã³
Xamarinã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®éçºãšãã¹ãã®ããã®ãµãŒãã¹ã§ãããç¬èªã®ãã¡ãŒã ã«ã¢ãã€ã«ããã€ã¹ãšããããã®ãã¡ãŒã ãå«ããã¹ãã®èªååã®ããã®ããŒã«ããããŸãã éçºã¯äž»ã«CïŒã§è¡ãããç¬èªã®ã¬ã³ãŒããŒããããŸãã
ã©ãã¬ãã¯ã¹
Ranorexã¯ãã»ãšãã©ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãèªååããããã®ããŒã«ã§ãã Seleniumãšçµ±åãããšãã¥ã¬ãŒã¿ãŒãšå®éã®ããã€ã¹ã§ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ããã¹ãã§ããŸãã Windowsã§ã®ã¿äœ¿çšå¯èœã§ããã¹ãçšã®èšèªãšããŠCïŒããã³VB.NETã䜿çšããŸãã ãã¹ãçšã®ã¬ã³ãŒããŒããããŸãã
ã¹ããã·ã¥
Squish-Webãã¢ãã€ã«ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãèªååããæ¹æ³ãç¥ã£ãŠãããBDDããµããŒãããç¬èªã®ã¬ã³ãŒããŒãšIDEãåããŠããŸãã PythonãPerlãJavaScriptãTclããŸãã¯Rubyã䜿çšããŠãã¹ããäœæã§ããŸãã
ãã®ãããªãœãªã¥ãŒã·ã§ã³ã®äž»ãªå©ç¹ã¯ããã¹ããµã€ã¯ã«å šäœã§ãã åã ã®ãŠãŒãã£ãªãã£ãšãã®çžäºäœçšãèšå®ããå¿ èŠã¯ãããŸããã ãã ãããããã®ããŒã«ã¯ãã¹ãŠææã§ãããå€ãã®å Žåãã¯ããŒãºããœãŒã¹ã³ãŒãã䜿çšãããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãã«ã¯ã»ãšãã©äœ¿çšãããŸããã ãããã£ãŠãç§ã¯ééããªããããããå§ãããããšã¯ã§ããŸããã
ãããã«
ãã¡ãããããã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³çšã®æ©èœãã¹ãããŒã«ã®å®å šãªãªã¹ãã§ã¯ãããŸããã ãã®èšäºã®ç¯å²å€ã¯ãKIFãFrankãSilkMobileãTestCompleteãããã³ä»ã®å€ãã®ãŠãŒãã£ãªãã£ã§ãã ãã®èšäºã¯åºæ¬çãªããŒã«ã®ã¬ã€ããšããŠèæ¡ããããã®ã§ãããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ã»ã«ããã¹ãã¹ã¿ãã¯ã誰ããç解ãããµãŒãã¹ã®éžæãééããªãããã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã ãããã¯ã«äœãè¿œå ãããããšãããã°ãã³ã¡ã³ããæžããŠãã ãããç§ã¯ééããªãããããèªã¿ãããã€ãã®èå³æ·±ãããšã§èšäºãè£è¶³ããŸãã
䟿å®äžããã¹ãŠã®ããŒã«ã1ã€ã®ããŒãã«ã«é 眮ãã䟿å©ãªãªã³ã¯ã®ãªã¹ããäœæããŸããããããã®è³æã¯ã以äžã®ããããŒããããã»ã¯ã·ã§ã³ã«ãããŸãã
è¬èŸ
èšäºã®æºåãšã¬ãã¥ãŒã«ååããŠãããBadooããŒã å šäœã«æè¬ããŸãã z3us ã nizkopalããã³Viktor Karanevichã«æè¬ããŸãã
ããŒãã·ãŒã
䟿å©ãªãªã³ã¯
ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®èªååããã¹ãããããããã£ã¹ãå ±æã®çµéš
ãã¹ãŠãéå§ãããèªååã³ãŒã¹
UIAutomator 2.0ïŒ
github.com/appium/appium/blob/master/docs/en/drivers/android-uiautomator2.md
bitbar.com/how-to-get-started-with-ui-automator-2-0
developer.android.com/training/testing/ui-testing/uiautomator-testing.html
XCUITestïŒ
github.com/appium/appium/blob/master/docs/en/drivers/ios-xcuitest.md
developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html
ãšã¹ãã¬ããœïŒ
developer.android.com/training/testing/espresso/index.html
developer.android.com/training/testing/ui-testing/espresso-testing.html
RobotiumïŒ
github.com/RobotiumTech/robotium
github.com/RobotiumTech/robotium/wiki/Questions-&-Answers
ã»ã¬ã³ããã€ãïŒ
selendroid.io/setup.html
selendroid.io/faq.html
ã«ã©ããã·ã¥iOSïŒ
github.com/calabash/calabash-ios
github.com/calabash/calabash-ios/wiki/DeviceAgent
ã«ã©ããã·ã¥AndroidïŒ
badoo.com/techblog/blog/2017/01/24/break-limitations-with-calabash-android
ã¢ãŒã«ã°ã¬ã€ïŒ
github.com/google/EarlGrey
bitbar.com/how-to-get-started-with-earlgrey-ios-functional-ui-testing-framework
ã¢ããŠã ïŒ
appium.io/introduction.html
github.com/appium/appium
WebDriverAgent
github.com/facebook/webdriveragent
www.mutuallyhuman.com/blog/2017/04/20/webdriveragent-getting-started-with-automated-ios-testing
ãã ããïŒ
cucumber.io
xUnit
junit.org/junit5
Testng
testng.org/doc
Xamarin.UITestïŒ
developer.xamarin.com/guides/testcloud/uitest
developer.xamarin.com/guides/testcloud/uitest/intro-to-uitest
developer.xamarin.com/guides/testcloud/introduction-to-test-cloud/#The_Anatomy_of_the_Test_Cloud_Framework
ã¹ããã·ã¥ïŒ
doc.froglogic.com/squish/6.0/tutorials-iphone.html
doc.froglogic.com/squish/6.0/tutorials-android.html
ã©ãã¬ãã¯ã¹ïŒ
www.ranorex.com/help/latest/android-testing
www.ranorex.com/help/latest/android-testing/automation-of-system-apps
www.ranorex.com/help/latest/ios-testing