-å人ãããã«ã¡ã¯ã ããªãæ¹ã®å€ããä»æ¥æ¥ãŠãããŠãšãŠãããããã§ãã ç§ã¯ãµã³ã¯ãããã«ãã«ã¯ããæ¥ãŸãããç§ã¯çŽ6幎éYandexã§åããŠããŸãã ç§ã¯ãããããã¿ã¯ã·ãŒãã¡ããªãã¯ãããã³æ€çŽ¢ã«å ãåœãŠãããšãã§ããŸããã 2幎éãYandex.Browser for Androidã®éçºã«åãçµãã§ããŸãã
ä»æ¥ã¯ããã©ãŠã¶ã§é©åãªã³ãŒããæäŸããæ¹æ³ã説æããŸãã Androidçšã®ãã©ãŠã¶ã¯ããªãé¢åã§ãã ååãšããŠããã©ãŠã¶ãŒã®ã³ã¢ã¯Chromiumã®ã³ã¢ã§ãããYandexãµãŒãã¹ã®ã³ã¢ãæ¯ããŠããŸãããããã¯ãã¹ãŠC ++ã§æžãããŠããããã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã¯äºãã«åã蟌ãŸããããã2ã€ã®ã³ã¢ãäžå¿ã«æžãããŠããŸãã Yandex.Browserã¯ãWindowsãMacãLinuxãAndroidãããã³iOSã§äœ¿çšã§ããŸãã åºæ¬çã«ãAndroidã®ã³ãŒããç¹ã«JavaãšKotlinã«ã€ããŠèª¬æããŸãã

Yandexã«ã¯200人ã®ã¢ãã€ã«éçºè ãããŸããã1ã€ã®ãã©ãŠã¶ãŒïŒãã¹ã¯ããããšãã®ä»ãã¹ãŠïŒã«200人ã®ãŠãŒã¶ãŒãããŸãã ãã®ãã¡çŽ30人ãAndroidã§æžããŠããŸãã ããããã®äººãããŠãããããã®ã³ãŒããæžããŸããã è¡æ°ã§ã¯ãYandexã§æ倧ã§ãã ãããŠãç§ãã¡ã®ãããžã§ã¯ãã§ã¯ãããããçç©ãšåæ§ã«ãèªç¶ãªæ¹æ³ã§ã³ãŒããçãŸããçããå€ããªããŸããããªãã¯ãããç£èŠãããã®å¥åº·ã確ä¿ããå¿ èŠããããŸãã
ã³ãŒãã®å質ã確ä¿ããããã«é©çšããããã»ã¹ãšã䜿çšããããŒã«ã«ã€ããŠé 次説æããŸãã çºçãããã°ã«ã¯ã解決ã§ããããã€ãã®ãã€ã³ãããããŸãã ãã°ãäœæããããšã¯ã§ããŸããã éçºè ã®éããŠãããšãã£ã¿ãŒãŠã£ã³ããŠã«ãããã°ã解決ã§ããŸãã åäœãã¹ãã§èŠã€ããããšãã§ããŸãã åŸã§ãã¹ããŸãã¯å®çšŒåã§èŠã€ããããšãã§ããŸãã

ãããã®ãã¹ãŠã®æ®µéã§ãã°ã®æ倧æ°ããã£ããããããããŸã£ããçºçããªãããã«ããã»ã¹ã調æŽããããšããŸããã ãŸããã³ãŒãã¹ã¿ã€ã«ããã©ãŠã¶ã«èšé²ããŸããã 倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãé¢é£æ§ãããããµããŒããããŠããèšè¿°ãããã³ãŒãã¹ã¿ã€ã«ãããããšãéåžžã«éèŠã§ãããã³ãŒãã¹ã¿ã€ã«MDãšããŠãªããžããªã«é 眮ããŸããã ç·šéããã«ã¯ããã«ãªã¯ãšã¹ããè¡ãå¿ èŠããããŸãããã®ãããéåžžã®ã³ãŒããšããŠä¿®æ£ãããæŽç·ŽãããããŒã ãåæãããã®åŸå šå¡ããããã®ã«ãŒã«ã«åæããŸãã ãŸãã¯ãæ°ããå€æŽã«ã€ããŠè°è«ããäœæããŠããŸãã
ããŒã å šäœã«å ±éã®ã«ãŒã«ãä¿®æ£ããããšã«å ããŠãCodestyleã«ã¯æè²æ©èœããããŸãã ç§ãã¡ã«ã¯å€§ããªããŒã ããããããããã®æ°ãã人ãç§ãã¡ã®å Žæã«æåŸ ããŠããŸãã åå¿è ã¯äž»ã«Wikiãèªã¿ãå€ãã®èª¬æããããWikiã倧奜ãã§ãã ãããŠãã³ãŒãã¹ã¿ã€ã«ãèªãã§ãã ããã ãããè¡ãæ¹æ³ãšããªãæ¹æ³ã®äŸããããŸãã éçºè ã¯ãã³ãŒãã¹ã¿ã€ã«ã«åŸã£ãŠæ°ããæ©èœãäœæããåŸããããã³ãããããå¿ èŠããããŸãã åãå ¥ããããã«ãŒã«ããéžè±ããã³ãŒããã³ãããã§ããªãããã«ããããªã³ãããããã¯ãäœæããŸããã ããã¯ã³ãŒãã¹ã¿ã€ã«ã§ãããéçåæãç°¡åã«ãã£ããã§ãããã®ã§ãã ã€ãŸããã³ãŒããã³ãããã«å ¥ãã®ãé²ãããã«ãgitã¯ãã®ãããªã³ãŒããåãå ¥ããããšãæåŠããŸãã
ãã®åŸãã³ãŒãã¬ãã¥ãŒãè¡ãããšã¯å¿ é ã§ãã ç§ãã¡ã¯Bitbucketã䜿çšããŠããŸãã2人ã®ååããã®ã¢ããã°ã¬ãŒãåŸã«ã®ã¿ãã©ã®ã³ãŒãã§ããªããžããªã«ã¢ã¯ã»ã¹ã§ãããšããã«ãŒã«ããããŸãã 2人ã®çããŠãã人ãæ¥ãŠãã³ãŒããèŠãŠã楜ããã§ãã ããã ãããŠããã®ãã«ãªã¯ãšã¹ãã¯ãŸãšãŸã£ãŠããã¹ãŠã®ãŠããããã¹ãã«åæ Œããã¯ãã§ãã ãããŠãå€ãã®ãã¹ãããããŸãã ãããŠãã¬ãã¥ã¢ãŒãèŠãŠããã¹ãŠã®äºåã³ãããããã¯ã äžéšã®äººã¯ãã©ã®ãããæéããããã®ã ãããšæããããããŸãããïŒ çµå±ã®ãšããã倧ããªãããžã§ã¯ãã§ãã ãã«ãªã¯ãšã¹ããäœæããŠããã³ãŒãããªããžããªã«å ¥ãããŸã§ã®æçæéã¯çŽ30åã§ãããšèªãããèšããŸãã ããã¯ãã³ãŒãããã¹ã¿ãŒã«å°éããæå°æéã§ãã ç§ãã¡ã¯é·ãéããã«è¡ã£ãŠããŸããã ãŸããéåžžã®ChromiumããŒã¹ã®ãã©ãŠã¶ããããŸãã ãã®ãããªãã©ãŠã¶ãŒãäœæãããã¹ãŠã®ãŠãŒã¶ãŒã¯ããã«ãæéã«é¢ããŠéåžžã«å€§ããªåé¡ãæ±ããŠããŸãã 100äžè¡ã®ã³ãŒãã¯ãã³ã³ãã€ã«ããå¿ èŠããããé·æéã³ã³ãã€ã«ããŸãã ãŸãã40äžè¡ã®Javaã³ãŒããã³ã³ãã€ã«ããŠãã¹ããå®è¡ããå¿ èŠããããŸãã ããã¯ããŒã å šäœã®äœæ¥ã®çµæã§ãã ç§ãã¡ã¯çãããŒã«ã«ãŸãã¯TeamCityã§ãã«ããåŸ ã€æ¹æ³ã§ã¯ãªããããã»ã¹ã«ã€ããŠçµæãããããèããããšãã§ããããã«åãçµãã§ããŸãã
éèŠãªããšã¯ã30åãTeamCityã®æéã§ãããããŒã«ã«éçºè ã®ãã«ãã«ã¯30ç§ãããããšã§ãã 圌ã¯ãã¹ãŠã®åäœãã¹ããå®è¡ããããã§ã¯ãªãããã¹ãŠã®ãã©ãããã©ãŒã ããã¹ãŠã®çµã¿åããã®ãã¹ãŠã®ã¢ã»ã³ããªãåéããããã§ããããŸããã ãããŠãTeamCityã§åéããŸãã ããã«ãTeamCityã¯ãã¹ããå®è¡ããŸãã çŸåšããã®30åéã§çŽ20ãŠãããããããããã«ãé«å質ã®ã³ãŒãã確ä¿ããããã«ãæè¡çãªã¯ã©ãŒã¿ãå°å ¥ãããŠããŸãã ç§ãã¡ã¯ããŒã ã®æéã®30ïŒ ãããªããšãç©ã¿äžããæè¡çè² åµã®è¿æžã«è²»ãããŸãã ããŒã ã®åã¹ããªã³ãã®30ïŒ ã¯ããªãã¡ã¯ã¿ãªã³ã°ãæ¢åã®ã³ãŒãã®æ¹åãååšããªããŠããããã¹ãã®äœæããŸãã¯ããŒã«ã®æ¹åã«åãçµãã§ããŸãã
äžè¬ã«ãäœããæ¹åããã«ã¯ãéåžžã«éèŠãªã«ãŒã«ããããŸããäœããæ¹åããåã«ãããã枬å®ããå¿ èŠããããŸãã ãé¡ãããŸãã ãã®è£œåãæ¹åããããã«ãé«å質ã®ã³ãŒããšé«å質ã®è£œåãã©ãã ãããããç解ããããã«ã枬å®ããããšãææ¡ãããã®ãææ¡ããŠãã ããã ããšãã°ãããããããããšãæããŸãããããã¹ãã«ãã¬ããžã®äœããŒã»ã³ãã§ããã ããã§ãç解ãã¹ããªãã·ã§ã³ã¯ãããŸããïŒããªãã®ã³ãŒãã¯é«å質ã§ãããã©ããïŒ ã¡ãœããã®è¡æ°ã ã¯ã©ã¹ã®æ°ã å®è¡é床ãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæéããªã¹ãã®ã¹ã¯ããŒã«é床ã ã€ã³ã¿ãŒãã§ãŒã¹ã®æ°ã¯ãååãšããŠåãã¡ããªãã¯ã§ãã æ¶è²»é»åã¯è¯ãã§ããïŒ ãã«ãæéãã
ããªããåŒãã ãã¹ãŠã®ããã«ãç§ãã¡ã¯ããŒã«ãæã£ãŠããŸãã 1幎åã®ããã«ããããžã§ã¯ãã®çŸåšã®ç¶æ³ãšçŸåšã®ç¶æ³ã枬å®ã§ããŸãã ãŸããå®çšŒåç°å¢ã§ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã枬å®ããAppMetricaã䜿çšããŸããããã¯ãã€ãã³ããã¯ã©ãã·ã¥ãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ãç£èŠã§ãããããªãã¯ãµãŒãã¹ã§ãã AppMetricaã䜿çšããŠãå€ãã®æè¡çãªææšãåéããŸãã
次ã«ãClickHouseãšç¬èªã®èªäœããŒã«ã䜿çšããŠããã®ããŒã¿ããã¬ããŒããäœæããŸãã ãã®ããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ã«æè³ããç¹å¥ãªèŠæ±ãè¡ã£ããšããäºå®ã ãã®ãããAppMetricaã®å¹³åçãªãŠãŒã¶ãŒãããå°ãå€ãã®ãŠãŒã¶ãŒãããŸãã AppMetricaã䜿çšãããšãã€ãã³ãã®äºå®ãåéã§ããŸãã ã€ãã³ããçºçããŸãã-éåžžã«å€ãã®äœåã ãã ããAppMetricaã§ã¯æ°å€ããŒã¿ãèŠãããšãã§ããŸããã ããšãã°ãããã€ãã®ãªãŠã ã®ãšãã«ã®ãŒæ¶è²»éã枬å®ããå¿ èŠããããŸãã ãŸããçŸåšã®ããŒãžã§ã³ã§ã¯ãããŸããŸãªãŠãŒã¶ãŒããããã®ãªãŠã ãã©ãã ãçºçããããç解ããå¿ èŠããããŸãã ãšãã«ã®ãŒæ¶è²»ã«ãããŠãŒã¶ãŒã®ååžã¯ã©ã®ããã«èŠããŸããã éå§æå»ã«ãããŠãŒã¶ãŒã®ååžã¯ã©ã®ããã«èŠãããã FPSã®ã¹ã¯ããŒã«é床ãŸãã¯ãã¬ãŒã éã®æéã«ãããŠãŒã¶ãŒã®ååžã¯ã©ã®ããã«èŠãããã ãããŠããã®ãããªæ°å€ããŒã¿ãåéããåæããããã«ããã¹ãã°ã©ã ã䜿çšããŸããã
ç§ã®ååã¯åœŒãã«ã€ããŠéåžžã«ãã話ããŸããã圌ãã¯ããã¹ãã°ã©ã ããšããèšèã§Yandexã«ããŸããæåã®ãããªã¯ãæ°å€ææšãåéããŠåæããæ¹æ³ã«ã€ããŠã®ç§ã®ããŒã ã®ååã®è©±ã§ãã åãã€ãªã€ãã®ã³ã¯ããããã®æ°å€ææšãåéããæ¹æ³ã詳现ã«äŒããããšãã§ããŸãã ãããŠãæãããªææšããããŸã-æªè§£æ±ºã®ãã°ã 補åãããããã¹ããããããŠãŒã¶ãŒãããŸãã 圌ãã¯ãã°ãå ±åããŸãã ãã°ãå€ãã»ã©ã補åã®å質ã¯äœäžããŸãã ãããã«ãŒãã°ãå€ãã»ã©ã補åã®å質ã¯äœäžããŸãã ãããã«ãŒã®ãã°ãæªæ幎è ãšæ¯èŒãã...ãã°ããŒããã°ããªã·ãŒãæ¡ä»¶ä»ãã§è£œåã®å質ã瀺ãå¥ã®ã¡ããªãã¯ããããŸãã

ããã¯ã100äžã»ãã·ã§ã³ããšã®ã¯ã©ãã·ã¥æ°ãåéããå®éã®ããŒã«ã®ã¹ã¯ãªãŒã³ã·ã§ããã§ãã ããŸãã¯ã£ãããšã¯èŠããŸããããäžçªäžã®ã°ã©ãã¯Javaã§ã®ã¯ã©ãã·ã¥ã®æ°ã§ããã100äžã»ãã·ã§ã³ãããçŽ200ã§ãã äžäœ2ã€...æåã«ããã€ãã£ãã§ã¯ã©ãã·ã¥ãçºçããŸãããChromiumã³ã¢ããããå€ãã®ããã©ã¹ãããããããéåžžã«å€ãçºçããŠããŸãã æé«ã¯åèšã§ãã éåžžããã®ææšã管çããæ¹åã«åãçµãã§ããŸãã ã¹ã±ãžã¥ãŒã«ãçãã»ã©è¯ãã ããã¯æšå¹Žã®ããã§ãããç§ãã¡ã¯åããæ¹åããŠããŸãã
åãããšãæ¶è²»é»åãã¹ã¯ããŒã«é床ããã®ä»ãã¹ãŠã«åãã°ã©ãã£ãã¯ããããŸãã

ããã«ãSonarQubeãå®è£ ããéåžžã«ç©æ¥µçã«äœ¿çšããŠããŸããçããã«ã¢ããã€ã¹ããŸãã ããªããã€ã³ãã£ãŒéçºè ã§ããããããŒã ã®äžå¡ã§ãããã«ããããããããªãã¯ãããèªåèªèº«ã«çœ®ãããšãã§ããŸãã ããã¯ãéçã³ãŒãã¢ãã©ã€ã¶ãŒãããçãã§ãããã©ãããã©ãŒã ã§ãã ãªãŒãã³ãœãŒã¹ã§ãããç¡æã§ãããçºçããã»ãšãã©ãã¹ãŠã®ããã°ã©ãã³ã°èšèªãåæã§ããŸãã ç§ãã¡ã¯ãããå®è£ ããŸããããçŸåšã¯ãããžã§ã¯ãã®å¥åº·ææšãç£èŠããããã«çµ¶ãã䜿çšããŠããŸãã ãã®ã¹ã©ã€ãã®å 容ãç°¡åã«ç¢ºèªããŠãã ããã ããã¯ããã¥ã¡ã³ãã«èšèŒãããŠããããéåžžã«éèŠã§ãããããŸãæ確ã§ã¯ãããŸããã
ããã¯å®éã®ããã·ã¥ããŒãã®ã¹ã¯ãªãŒã³ã·ã§ããã§ãã ããããã®ãã°ããããŸãã ã»ãã¥ãªãã£ã®è匱æ§ãããã€ããããŸãã ããã¯ã52.7ïŒ ã®ãã¹ãç¯å²ã§ãã ãããŠãéåžžã«å€ãã®åäœãã¹ãã ããã¯ã¯ãŒã«ãªããã§ãã çŸåšãYandexã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®æ倧ã®ã«ãã¬ããžããããŸãã éè€ã³ãŒãã®å²åã枬å®ããŸãã èå³æ·±ãããšã«ããã¹ãŠã®Yandexã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠãã®ããšãèšå®ãããããžã§ã¯ãéã§éè€ãç£èŠã§ããŸãããããéåžžã«ã¯ãŒã«ã§ããã©ã€ãã©ãªã«å ¥ãã䟡å€ã®ããã³ãŒãéšåã匷調ããŠãããéè€ããªãããã«ããã®ã«åœ¹ç«ã¡ãŸãã
ããããã¹ãŠåéããæãéèŠãªã¡ããªãã¯ã¯ããã¹ãŠã®æã§ããããåäžã®ç解å¯èœãªå³ã§ãã©ã®ãããžã§ã¯ããè¯ããæªããã瀺ããŠããŸãã ããã¯æè¡çãªçŸ©åã§ããç§ãã¡ã¯ããããã®åé¡ããã¹ãŠè§£æ¶ãããããã«æ©èœããªããã°ãªããªã204æ¥éãæ¡ä»¶ä»ãããããããŒã®æ¡ä»¶ä»ãäœæ¥æ¥ãç空ã«çœ®ããŠããŸãã ããã¯å€§ããªè² åµãå°ããªè² åµã ãšæããŸããïŒ ç§ãã¡ã«ã¯30人ã®å€§èŠæš¡ãªããŒã ããããŸãã åŒãåããå Žåãéãããæéãã®åµåãè¿æžããŸãã åã£ãŠããŠå§ãããšãã«ãšããœãŒãããããŸãã-SonarQubeã®ãã¹ãŠã®ãããã«ãŒãä¿®æ£ããŸãããã ãããŠã圌ãã¯ããããä¿®æ£ãå§ããŸããã
ãã ãã1ã€ã®æ©èœããããŸãã ããã¯ç¹å¹è¬ã§ãã ãããžã§ã¯ãã§éç解æãèŠã€ãããã°ã®æ°ã¯åé¡ã§ã¯ãããŸããã æ°ãããã°ãäœæããªãããšãéèŠã§ãã ãã°ã®ä¿®æ£ãããã¯è¯ãããšã§ããããã€ãããã«ãããã®ããã«é·ãéååšãç¶ããŸãã ãããã圌ã¯èµ·ãããŸããã§ããã圌ã¯ãã¹ãã§èŠã€ãããŸããã§ããã圌ã®åäœãã¹ãã¯èŠã€ãããŸããã§ããã ã»ãšãã©ã®å Žåã圌ã¯æã¡ãŸããã ãããŠãå€ããã°ã®ä¿®æ£ã¯ãæ°ããå®éã®ãã°ãæã£ãŠãããšããäºå®ã«ã€ãªãããå®éã®ã¯ã©ãã·ã¥ã«ã€ãªãããŸãã
äž»ãªããšã¯ãå€ããã°ãä¿®æ£ããããšã§ã¯ãªããæ°ãããã°ããªãããšã確èªããããšã§ãã ããã·ã¥ããŒãã¯å¥ã®ææšã§ã-éå»14æ¥éã§1æ¥ã®æ°èŠåµåãèç©ããŸããã ã¯ããã§ããŸãããéåžžã«ç©ããã§ãã æè¡çãªè² åµæ¯çã®ææšããããã³ãŒãå šäœã®ããªã¥ãŒã ã«å¯Ÿããè² åµã®å²åã¯çå®ã«æžå°ããŠããŸãã ãããŠãããã¯ç§ãã¡ããã¹ãŠãæ£ããè¡ã£ãŠããããšã瀺ãæé«ã®ææšã§ãã

ç»é¢äžã®å®éã®ã¹ã¯ãªãŒã³ã·ã§ããããã®åãæãã ãããšåãSonarã䜿çšãããšããã«ãªã¯ãšã¹ãã«ã³ã¡ã³ããè¿œå ã§ããŸãã 2人ã®ã¬ãã¥ã¢ãŒãæ¥ãŠã³ã¡ã³ããæ®ããããã«3人ç®ã®ã¬ãã¥ã¢ãŒããããããå ¥ããŸãã 圌ã¯ãæãããªåé¡ãã³ãŒãã¹ã¿ã€ã«ãã³ãŒãèšèšã«é¢ããã³ã¡ã³ããæ®ããã»ãã¥ãªãã£ã®è匱æ§ãçºèŠããŸããã 人ã ã¯åœŒãæããŠããŸãã æ°ããè² åµã¯è¿œå ãããŸããã
ããã«ãSonarã§ã¯æ¢åã®ãã°ã確èªã§ããŸãã ã³ãŒãããŒã¹å šäœã衚瀺ããéåžžã«äŸ¿å©ãªãã¥ãŒã¢ããããåè¡ã«ã€ããŠãã©ã®åé¡ããããããã€è¿œå ãããäœãè¡ããããã確èªã§ããŸãã èè ã«æ¥ãŠã次ã®ããã«èšãããšãã§ããŸããç§ã®å人ãéå»2é±éã§5ã€ã®ãããã«ãŒãè¿œå ããŸããã åå ã«å¯ŸåŠããŠæé€ããŸãã ç§ãã¡ã¯åžžã«åé¡ãæ ¹æ¬çã«è§£æ±ºãããã®ãããªåé¡ã®å¯èœæ§ãæé€ããããšããŸãã ååãšããŠããã°ã蚱容ã§ããªãããã«ãäœããã®ããŒã«ãæºåããããäœæããŸãã
ãã¹ãã®äœæã«éåžžã«ç©æ¥µçã§ãã ãã¹ãã倧奜ãã§ãã æè¿ã圌ãã¯ããããæžãããšã§å€§ããªé²æ©ãéããŸããã

JUnitã䜿çšããŠå®è¡ããããã¹ãã¯éåžžã«å€ãããããã¯ãã¹ããã·ã³äžã§å®è¡ããããã¹ãã§ãããJavaãšRobolectricã®ã¿ã§ãã ãããŠãAndroid Instrumentation Testsã ä»ã¯ãããããããŸãã
ãã®æ°ã®ãã¹ããäœæããªãããããã€ãã®æ®µéãçµãŸããã ãã¹ããæžãå¿ èŠããããŸãã誰ãããã¹ããæžããŸããé«å質ã®è£œåãå¿ èŠã§ããæžããŸãããã ç§ãã¡ã¯æ¬åœã«ããããã®åé¡ãããéããŸããã æ°ãããã¹ããäœæããŸããå€ããã®ã¯åžžã«å£ããŠããããµããŒãã«å€ãã®æéãå¿ èŠãšããŸããããã°ã¯èŠã€ãããŸããã ã³ãŒããå€æŽãããšãæ°åã®ãã¹ããäžæããããã¹ããä¿®æ£ããŸãã 幞ããªããšã«ãç§ãã¡ã¯ãã®å±æ©ã«åæ ŒããŸããããã¹ãã¯ã³ãŒãã®ããã¥ã¡ã³ããæäŸããéçºè ã«ã³ãŒããæ£ããèšè¿°ãããŠãããšããèªä¿¡ãäžããŸãã çŸåšãããŒã å šäœããã¹ãã®äœææ¹æ³ãåŠã³ãéåžžã«ç©æ¥µçã«ãã¹ããäœæããŠããŸãã åã®ã¹ã©ã€ãã¯ãæ°ããã³ãŒãã®ã«ãã¬ããžã55ïŒ ã§ããããšã瀺ããŠããŸãã ããã¯å€ããã®ãããå€ããæ£ããæ¹åã«é²ãã§ããŸãã ããã«é«ããªããšè¯ãã®ã§ãããä»ã®ãšããã¯ã
ç§ãã¡ã¯Robolectricãç©æ¥µçã«äœ¿çšããŠããŸããããã«æºè¶³ããŠããŸããããã«ãããæ¿¡ããããå®éã®Androidã亀æãããããããšãã§ããŸãããåæã«ãã¹ããã¯ããã«é«éã«å®è¡ã§ããŸãã 9000åã®ãã¹ãã¯ãããããããŸãã ãããã®ãã¡ãçŽ600ããšãã¥ã¬ãŒã¿ã§å®è¡ãããæ®ãã®ãã¹ãã¯ãã¹ããã·ã³ã§å®è¡ãããŸãã ãã«ããšãŒãžã§ã³ãã¯é«éã§ã16ã³ã¢ã§ããããã¹ãŠãè¿ éãã€ç°¡åã§ãã ãšãã¥ã¬ãŒã¿ãŒãäžãããšãã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãã¹ããé·æéã«ããã£ãŠçã¿ã䌎ãå®è¡ããå§ããŸãã ãããåé¿ããããšããŠããŸãã ãããšã¬ã¯ããªãã¯ã¯ãšãŠãè¯ãã§ãã
ã€ã³ã¿ãŒãã§ã€ã¹ãç©æ¥µçã«äœ¿çšããŠããŸãã ç§ãã¡ã¯çŽç²ãªã³ãŒãã®ãµããŒã¿ãŒã§ãããå¶åŸ¡ã®å転ãäŸåé¢ä¿ã®æ³šå ¥ãç©æ¥µçã«äœ¿çšããã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãäœæããã³ãŒããããã©ãããã©ãŒã ãåé¢ããŸãã RobolectricãåŠå®ãã人ã ãããŸãã圌ãã¯ã€ã³ã¿ãŒãã§ãŒã¹ã ããå¿ èŠã§ãããRobolectricã¯æªã§ãããšèšããŸãã ç§ãã¡ã¯åççãªã¢ãããŒãã®æ¯æè ã§ãã ç§ãã¡ã¯ç©æ¥µçã«Mockitoã䜿çšããæå³çã«Powermockãã«ããããŸãããããã¯æªããã¹ãã¹ã¿ã€ã«ãåŒãèµ·ãããããã§ãã ããã¯æªã§ãããéçãªãã¡ã€ã«ããã¡ã€ã«ãã·ã³ã¯ããããšãã§ããäžè¬çã«ãã¹ãŠãå£ããæªãã¢ãŒããã¯ãã£ãåŒãèµ·ãããŸãã
ç§ãã¡å šå¡ãææžåãããã®ã¹ã©ã€ãã®äž»ãªèŠçŽã¯ãä»ã®ãã®ãšåãã§ãã ããããªãããšããã¹ã¿ã€ã«ã§é²é³ããŸãã ãã¹ãã®åãããããŸããå¥ã®ããŒãžã§ã¯ããéåžžã«æªãããéåžžã«è¯ããã¢ãŒãã§ãã¹ããæžããšãã«çºçããå žåçãªåé¡ãä¿®æ£ãããŸãã ãããŠãæ°ããéçºè ã¯ãæ¥ããšãããã®ããšã¯å€§ãã«åœ¹ç«ã€ãšèšããŸãããªããªãããããããªãæ¹æ³ã®äŸã ãã§ãªããå€ãã®äººããããè¡ãæ¹æ³ã®å³åŽãèŠãŠããããã§ãã æšæž¬ã§ããªãããªãã¯ãããŒã«ãæ°å€ããããŸããããããçµéšã§ç解ããããçµéšããåŠã¶å¿ èŠããããŸãã ãããŠããã§ãç§ãã¡ã¯åœŒãå šå¡ã«éã®å€§ç¿ã§äŒããŠããŸãã

ãã®ã°ã©ãã¯ããèªäœãç©èªã£ãŠããŸãã ãã®ããŒã¿ã¯ãæšå¹Ž6æããçŸåšãŸã§ã®ãã®ã§ãã ãã¹ãã«ãã¬ããžã«åãçµã¿ããã¹ããäœæããŸããã ãããããã£ãšéèŠãªããšã¯ãç§ãã¡ã¯ãã£ãšããŠããªãã£ããæé·ãããšããããšã§ãã
åäœãã¹ãã«å ããŠãèªåãã¹ãã䜿çšããŸãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ããã©ãã¯ããã¯ã¹ãšããŠãã¹ããããã¹ãã®æ¡ä»¶ä»ãã®ååã§ãã ããã€ã¹ãŸãã¯ãšãã¥ã¬ãŒã¿ãŒã§èµ·åãããŽã ã®æã§æ¡ä»¶ä»ãããããããªã¹ããã¹ã¯ããŒã«ãããã¿ã³ãçªããŠãæšæºã·ããªãªã«åŸã£ãŠã¢ããªã±ãŒã·ã§ã³ãäžæããããšããŸãã èªåãã¹ãã§ã¯ãæåã®ãã¹ã¿ãŒã«ââ代ãã£ãŠãã¹ã¯ãªãããäœåºŠãç¹°ãè¿ããããææ矩ãªããšãããã»ããããçããŠãã人ã ãããŸãã ååž°ãå éããæ°ãããªãªãŒã¹ãé©åã§ãããæ¬çªç°å¢ã«ç§»è¡ã§ããããšã確èªããŠããŸãã çŸåšã3é±éããšã«ãªãªãŒã¹ãããŠããããã®ã¡ãªããã®ããªãã®éšåã¯ãæåãã¹ããèªåãã¹ãã«ç§»è¡ããããšã§ãã ãã¹ãã®60ïŒ ä»¥äžãèªååãããŠããŸãã

ç§ãã¡ã®èªåãã¹ãã¯Appiumã§æžãããŠãããããã¯Yandexã®ããªãæšæºçãªããŒã«ã§ããWebããã¹ããã人ãšäžç·ã«Webããã¹ãããããšããçãŸããŸããã ããã§ãAppiumã§çŽ3000ã®ãã¹ããäœæãã25ã®ãšãã¥ã¬ãŒã¿ãŒãå®è¡ããããšãã§ããã€ã³ãã©ã¹ãã©ã¯ãã£ãå±éããŸããã ããããããã§ããã¹ãŠãéåžžã«ãã£ãããšå€æããŸãã çŸåšãååž°ã®èµ·åã«ã¯æ°æéãããããã«ãããšã«ãããç¶ç¶çã«è¡ãããšã¯ã§ããŸããã ãããè¡ãã®ã«ååãªãªãœãŒã¹ãšããŒããŠã§ã¢ããããŸããã ãããŠããããã®ããŒã«ã ãããªãŒãã³ãœãŒã¹ã«éåžžã«ç©æ¥µçã«è²¢ç®ããŠããŸããYandexQA Toolsã® GitHubã«ã¯å€ãã®ããŒã«ããããããããã¹ãŠã眮ãã¢ã¯ãã£ããªã³ãã¥ããã£ããããŸãã
ããã§ç§ãã¡ãèŠããã§ãããšèšãããšãã§ããå¥ã®ãã®ã§ãã åœåãèªåãã¹ãã¯å®éã«ã¯éçºè ã§ã¯ãªãå人ã«ãã£ãŠäœæãããŸããã ãã³ããã¬ãŒãããããèªååããå¿ èŠããããŸãã æåã®åå¿-ãã³ããã¬ãŒããããããã«çœ®ãæããŠæžã蟌ã¿ãŸãããããã©ãŠã¶ãšã¯å¥ã«ãã³ãŒããæžãããŠããå Žæã«ãªããžããªããããŸãã ãã¹ã¿ãŒã®ããã«ãåãJUnitã§ããJavaã§ã³ãŒããæžããŠããããã§ãã ããããæçµçã«ã¯ãããŒã ãçµåããçµ±åããŠããã¹ãŠã®éçºè ãèªåãã¹ããäœæã§ããããã«ãªããŸããã èªåãã¹ããã©ã®ããã«æžãããŠãããã誰ããç¥ã£ãŠããããã«ãç§ãã¡ã¯ç¹å¥ã«äººã亀代ãããŸãã èªåãã¹ãã§ã¯ãäž»ãªçã¿ã¯ãããããåžžã«èœã¡ãŠå£ããåžžã«èµ€ãããšã§ãã

ãã®åé¡ã解決ãã1ã€ã®æ¹æ³ã玹ä»ããŸãã ããã¯ããã®ãã¡ã®1ã€ã§ããç§ã®ãªãã£ã¹ã®ãã¬ãã§ãã ç§ãã¡ã¯äžè¬çã«ã°ã©ãã£ãã¯ã¹ä»ãã®ãã¬ãã奜ãã§ãã ããããããã¯èªåãã¹ãã«é¢ãããã¬ãã§ãã ç·-æ£åžžã«å®äºãé»è²-æ¢ç¥ã®çç±ã§èçç¶ãèµ€-æªç¥ã®çç±ã§ã ç§ãã¡ã¯åžžã«ãããèŠãŠããŸãã ç§ãã¡ã¯ãåžžã«å€åãããã¹ãã§äœãèµ·ããããç£èŠããå¥ã®ã¢ãã³ãã³ããå²ãåœãŠãŸããã èœã¡ããã¹ããè ããªãããã«ããããšã¯éåžžã«éèŠã§ãã ããã«ãã¹ããåãäžããŠçç±ãèŠã€ããªããã°ãæçµçã«ãã®ãã¹ãã¯çµäºããéçºã«è²»ãããåŽåã¯ç¡é§ã«ãªããŸãã ãã®ããããã¹ãŠã®ãã¹ããå転ããçç±ãåžžã«ç£èŠããææ¡ããŠããŸãã ãããã®ãã¹ãã§ã¯ãå®éã«ãªã°ã¬ãã·ã§ã³ãæ¬çªã³ãŒãã§çºçããåé¡ãèŠã€ããŸãã ã³ãŒããå®çšŒåã«ç§»è¡ããããšã¯ã§ããŸãããèªåãã¹ãã§ãã¹ãŠãèŠã€ããããã確èªããããã«ãã³ããã¬ãŒãããããŸããã

ãŸãããšã¹ãã¬ããœãç©æ¥µçã«äœ¿çšããŠããŸãã , Espresso , Appium, Espresso . , . â . Espresso . , . , . - . . , .
, Espresso, Kotlin, DSL, , , . , .
â . . â .

, . , , . . , , , . - . , .

- â . , , , , . , . , .