çŸåšãèšç»ãããŠãããããžã§ã¯ãã®ååæªæºãã·ã¹ãã ã«æ¥ç¶ããŠããŸãã ãªããã¹ãŠã§ã¯ãªãã®ã§ããïŒ åŸæ¥å¡ãååãªæ å ±ãååŸã§ããªãã£ãã®ãããããŸãããã補åãä¿¡ããŠããªãã£ãã®ãããããŸãããçµå±ã®ãšããã補åã«ã€ããŠãããŒãžã£ãŒã«äŒããŠãããã€ãã®ãã¬ãŒã³ããŒã·ã§ã³ãè¡ãã ãã§ã¯äžååã§ãã ULAã®äœæè ã®äžããéçºè ãåå ãããããžã§ã¯ãç°å¢ã§ã¯ãæåã¯ããã«é«ããæåã®å®è£ ã¯å€ãã®åŽåããããã«è¡ãããŸããã
管çè ããã³ãã¹ã¿ãŒãšã®ããŒãã£ã³ã°ãéããŠULAãå®è£ ããŸããã 圌ãã¯ãã¬ãŒã³ããŒã·ã§ã³ã§ã·ã¹ãã ã«ã€ããŠè©±ããåºæ¬çãªæ©èœã瀺ããŸããã ã»ã«ããã¹ãã®éçºè ãšã®ãã®ãããªã»ãã·ã§ã³ãæ°åè¡ã£ãåŸãESFã¯æ¥ç¶çšã®ã¢ããªã±ãŒã·ã§ã³ãåŸã ã«åãåãå§ããŸããã ãŠãŒã¶ãŒããªãªãŒã¹ãåŸ ã€ããã«ãããŒã«ãäºåã«çºè¡šããŠããã°ãããè¯ãã¹ã¿ãŒããåãããšãã§ãããããããŸããã
ç§ãã¡ã«å°ããããæšæºçãªè³ªåïŒ
-ã·ã¹ãã ã¯HP ALMãšç«¶åããŸããïŒ
ããããå°æ¥çã«ã¯ãèªååããããã¹ãã®ã¡ããªãã¯ãåéãããšããç¹ã§ã
-ã·ã¹ãã ã¯ãESFã·ã¹ãã èªäœã®ãã°ãéçŽããæ¹æ³ãç¥ã£ãŠããŸããïŒ
çŸæç¹ã§ã¯ãããŸããããå°æ¥çã«ã¯ã·ã¹ãã èªäœã®ãã°ã®åæãå®è£ ããŸãã ãã®ããŒã¿ã¯åéãããè¿œå æ å ±ã®åœ¢åŒã§ãã¹ãã«æ·»ä»ãããŸãã
-ãªãELKã¹ã¿ãã¯ïŒElastic SearchãLog StashãKibanaïŒã§ã¯ãããŸãããïŒ
ããè€éãªåŠçããžãã¯ãææ決å®æ©èœãHP SMãšã®çµ±åãHP ALMãé©åãªèŠæ±ã«å¿ããŠãœãŒã¹ããŒã¿ãæå³çã«æäœããæ©èœãã€ãŸãã ã·ã¹ãã ãã°ããã®ããŒã¿ã®äžå®ã®æµãã¯å¿ èŠãããŸããã
-ãããŠã誰ãã·ã¹ãã ã䜿çšããŸããïŒ
ããã§ã¯ãã¹ãŠããããŸãã§ãã äž»ã«æåãã¹ããå®æœããèªåãã¹ããåæãããšã³ãžãã¢ã®ããŒã ããšã©ãŒã®åæã«å¯ŸåŠããå¿ èŠãããããšãç解ãããŸããã ããããããã¯åžžã«çºçããããã§ã¯ãããŸãããå®å šã«æ°ãããããžã§ã¯ãã§ã¯ãèªåãã¹ãéçºè ãä»ã®ãšã³ãžãã¢ã解æã«é¢äžããããšããããããŸãã ãããã£ãŠãã·ã¹ãã ã䜿çšããããã®ãã¬ãŒãã³ã°ãå¿ èŠãªäººãç¹å®ããããã«ãåãããžã§ã¯ãã®ç¶æ³ãæ確ã«ç解ããããšãéèŠã§ãã
次ã«ãããã€ãã®ESFãããžã§ã¯ããæ¥ç¶ããåŸã«çºçããåé¡ã«ã€ããŠèª¬æããŸãã
èªåãã¹ããã°ã®å質
åºæ¬çãªã¢ã«ãŽãªãºã ã®å€æŽãå¿ èŠãªäž»ãªåé¡ã¯ãèªåãã¹ããæžã蟌ããã°ã«åãã¿ã€ãã®ã¹ã¿ãã¯ãã¬ãŒã¹ãååšããããšã§ãã å€ãã®ãã¹ãã§TestNGã䜿çšããããšã©ãŒãçºçããå Žåãã¹ã¿ããã¯ãã°ã«å®å šãªãã¬ãŒã¹ãæžã蟌ã¿ããã¬ãŒã ã¯ãŒã¯ãçæããŸãã ãã®çµæããšã©ãŒã¡ãã»ãŒãžã®é·ãã®æ倧80ïŒ ãåæ§ã«ãªããŸãã ããã§äœããããå¿ èŠããããŸããã ãããŠç·æ¥ã«ååã ãã°ã®äžéšãããªãã³ã°ããå®å šã«åŠçããªãããšã¯ãæ ¹æ¬çã«ééã£ãŠããŸãã ãããã£ãŠã垯ç¶ç±ç¹ã®ééãå°å ¥ããããšã決å®ãããŸããã ãã¬ããŒãžãã®ãªãæ£èŠåããããã¬ãŒãºã«éã¿ãå°å ¥ããŸãã åŸæ¥ã®ã¢ã«ãŽãªãºã ã«ã¯ãã®ãããªã¢ãããŒãã¯ãããŸããã
å°æ¥ãååãªçµ±èšãåéãããããéã¿ã決å®ããããã«å¿ èŠãªå€é åŒãå°ãåºããŸãã ãããŸã§ã®ãšãããæ°çŸã®ã¡ãã»ãŒãžã衚瀺ããå Žåãã¢ãŒã¯ã¿ã³ãžã§ã³ãã®ãããã«èª¿æŽãããé¢æ°ã䜿çšããããšã決å®ãããŸããã ã¡ãã»ãŒãžã®æåã®20ãã30ã¯ãŒããäž»ãªæå³ãæã¡ããã®åŸãããããªäœäžãå§ãŸããŸãïŒã¹ã¿ãã¯ãã¬ãŒã¹ã®å§ãŸãïŒã ãã¬ãŒã¹ããŒã«ã®éèŠåºŠã¯æãäœããªããŸãã å°æ¥çã«ã¯ããã¹ãããããµãã·ã¹ãã ãšäœ¿çšããããã¬ãŒã ã¯ãŒã¯ãžã®ã¢ã«ãŽãªãºã ãã©ã¡ãŒã¿ã®äŸåæ§ãå°å ¥ããããšãå¿ èŠã«ãªãå¯èœæ§ããããŸãã
æ§èœ
ã·ã¹ãã ã®éçºäžãåã¹ããªã³ãã§è² è·ãã¹ããå®è¡ãããŸããããå®éã®ãããžã§ã¯ããæ¥ç¶ããéã®ããã©ãŒãã³ã¹ã®åé¡ãåé¿ããã®ã«åœ¹ç«ã¡ãŸããã§ããã 次ã®äºå®ã«çŽé¢ããŠããŸãã
- è² è·ã¯éåžžã«äžåäžã«åæ£ãããŸãã
- å®éã®ãšã©ãŒã¡ãã»ãŒãžã«ã¯ã1ç§è¿ãã®åæã§DBMSãµãŒããŒäžã®ã«ãŒãã«ãååŸã§ããã»ã©ã®éãããå ŽåããããŸãã
1ç§éã«æ倧200件ã®ã¡ãã»ãŒãžããã¥ãŒã«å ¥ããèç©ãå§ããŸãã ãã®çµæããã¡ããããã¹ãŠãé倧ãªç¶æ³ãªãã§åŠçãããŸããã100ïŒ ããžãŒãªããã»ããµãŒã¯WEBãµãŒãã¹ã®åäœã«åœ±é¿ãäžããŸãã ãããããã©ãŒãã³ã¹ã®åé¡ã解決ããããã«ãããŸã§ã«è¡ã£ãããšã§ãã
- ãšã©ãŒåŠçã䞊ååã§ããããã«ãããŒã¿ããŒã¹ãµãŒããŒã«ããã€ãã®CPUãè¿œå ããŸããã
- ãšã©ãŒåŠçã®ã¿ãåŠçãããã以äžã®åŠçã¯è¡ããªãç¬èªã®ããã·ãŒãžã£ã䜿çšããŠãåå¥ã®Oracle AQãµãã¹ã¯ã©ã€ããä»ããŠã·ã³ã°ã«åŠçãè¡ããŸããã ãã®æ©èœã«é¢ä¿ãªããèªåãã¹ãã®æé ã«é¢ããæ
å ±ãæ¿å
¥ãããèµ·åã®çµäºæã«ããŒã¿ã®åæãè¡ãããŸãã
- ã¡ãã»ãŒãžãããŠã³ããŒãããããã®ã¢ã«ãŽãªãºã ã®å€æŽã«åãçµã¿ãŸããããããã¢ãŒããããªã³ã©ã€ã³ã«é
æ»ãªãåãæ¿ããŸãã
ããã§ããããã©ãŒãã³ã¹ã®åé¡ã¯å®å šã«ã¯è§£æ±ºãããŠããããããŒã ã¯åŒãç¶ãäœæ¥ãç¶ããŠããŸãã
DBMSã¹ã¬ããã®åæ
Oracle AQãã¥ãŒã¯ããµãã¹ã¯ã©ã€ããŒã«é¢é£ä»ããããŠããããã·ãŒãžã£ã«ãã£ãŠè§£æãããŸãã DBMSã¯ãã«ãã¹ã¬ããã管çããŸãããè² è·ã倧ãããšåé¡ãçºçããŸããã
å®éã«ã¯ãã·ã¹ãã ã«å ¥ãã¡ãã»ãŒãžã®ã«ãŠã³ã¿ãŒãä¿æããå¿ èŠããããšããããšã§ãïŒç§ãã¡ã«ãšã£ãŠã®1ã€ã®ã¡ãã»ãŒãžã¯ããã¹ãã¹ãããã®èšé²ã§ãïŒã ã«ãŠã³ã¿ãŒã¯ãäžæã®ããªã¬ãŒIDã«ãã£ãŠã°ã«ãŒãåãããŸãã ããã¯ãçä¿¡ã¡ãã»ãŒãžã®æ°ãšäºæ³ãããã¡ãã»ãŒãžã®æ°ãæ¯èŒããèµ·åãå®äºãããã©ãããç解ãããã¹ãããªãŒãæ§ç¯ããéèšããããšã©ãŒã®è¡šã衚瀺ããããã«å¿ èŠã§ãã ãããŒåæèŠçŽ ããªããšããã®ãããªã«ãŠã³ã¿ãå ¥åã§ããŸããã ãŸãããèªè»¢è»ããçºæããMUTEXããŒãã«ãäœæããŸããããã®ããŒãã«ã¯ãã«ãŠã³ã¿ãŒå€ã®èšç®ã®éãäžç¬ãããã¯ãããŸããã éãè² è·ã®äžã§ã圌ãã¯ããããããã¯ããã£ãããå§ããŸããã 次ã«ãDBMS_LOCKããã±ãŒãžã䜿çšããŠãã«ãŠã³ã¿ãŒã§æ©èœããã³ãŒãã«ããã¯ãäœæããŸããã é·ãéã圌ãã¯æã ã«ãŠã³ã¿ãŒãééã£ãå€ã瀺ããçç±ãç解ã§ããŸããã§ããããæçµçã«åœŒãã¯åæã®åé¡ã解決ããŸããã èå³ã®ããæ¹ã¯ãããã¯ã®èœãšãç©Žã«é¢ãããã®èšäºãèªãããšããå§ãããŸãã
æ±çšæ§
ç§ãã¡ã¯ã·ã¹ãã ãæ®éçãªãã®ãšããŠäœçœ®ä»ããŠããŸããããªãèªèº«ã®èªåãã¹ãã¬ããŒãããŒãµãŒãæžãã ãã§ãã ãããå®éã«ã¯ãåãé åã«å¯ŸããŠããããè¡ãã®ã¯éåžžã«é£ããããšãå€æããŸããã å®éã«ã¯ãåãããšãããŸããŸãªæ¹æ³ã§ã¬ããŒãã«æžãããšãã§ããäžè¬çãªèŠåã¯ãããŸããã ãã®çµæã2é±éã«ããã£ãŠçµ¶ããæ¹åããå¿ èŠããããããããããã§çµããã§ã¯ãããŸããã ã¢ãªã¥ãŒã«èªäœã®ã³ãŒãã«ãŸã§å ¥ããŸããããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
ã·ã¹ãã ã®å¶éãšèšèšãšã©ãŒ
- é¡äŒŒæ§ã¢ã«ãŽãªãºã ã«ã¯å¶éããããŸããã·ã¹ãã ã¯ã4ã¯ãŒããè¶
ãããšã©ãŒã§ã®ã¿æ©èœããŸãã ESFã§ã¯ãã®ãããªçãããã¹ãã«ãŸã åºäŒã£ãŠããŸãããã念ã®ãããæ°ããã¢ã«ãŽãªãºã ãéžæããŠããŸãã
- ESFã®ãã®ã³ã°ã«ãŒã«ãæåŸãŸã§æ©èœããŠããªããããESFãµãã·ã¹ãã èªäœã®ãã°ã®éçŽã¯ãŸã è¡ãããŠããŸããã çŸåšãããšãã°ãã¬ã³ãŒããã©ã®ã»ãã·ã§ã³ã«å±ããŠããããªã©ãããã¹ããã°ãã¡ã€ã«ããæçšãªæ
å ±ãåžžã«æœåºã§ãããšã¯éããŸããã æåã«ãã·ã¹ãã ã¯ãèªåãã¹ãã§æ€åºããããšã©ãŒã«é¢ãããã®æ
å ±ããŒã¿ã®ã¿ã匷åããŸãã
- ã·ã¹ãã ãèšèšããéãHP ALMãšãã£ãŒã«ãã®æ¬¡å
ïŒãã¹ãIDããã¹ãåãã¹ãããåïŒã«çŠç¹ãåœãŠãŸããã ããããGUIãšESFãã¹ãAPIã«å ããŠãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®èªåãã¹ãã®äœæ¥ãéå§ããŸããããã®æ
å ±ã¯Jiraã«éä¿¡ããããã£ãŒã«ãã®æ¬¡å
ã¯ALMãããã¯ããã«å€§ãããªããŸãã ããã«ããã¹ãIDãã£ãŒã«ãã¯ããã¹ãã§ãã ãããããã®èšäºã®å·çæç¹ã§ã¯ãåé¡ãä¿®æ£ããŠçç£æ§ã®é«ãããŒã¿ã«åœ±é¿ãäžãããããããã§ã«æºåããŠããŸãã
èªæ
æåã«ééããAllureã®åé¡ã¯ãç°ãªããã¬ãŒã ã¯ãŒã¯ã®ã¢ããã¿ãŒã®éãã§ãã ããã¯èªåãã¹ãã®ç¹ç°æ§ã§ã¯ãªããéåžžã®æ £è¡ã§ãã ãã¹ããå®çŸ©ããããã«äœ¿çšãããtestClassããã³testMethodã©ãã«ã¯ãæ©èœtestNGã¢ããã¿ãŒã«å±ããŠããŸããããä»ã®ã¢ããã¿ãŒã¯ããã©ã«ãã§ã¯ããããæäŸããŸããã§ããã ã¢ãã«ïŒAllureModelUtilsïŒã«ã¯æ¬¡ã®ã¡ãœãããããããã2ã€ã®ã©ãã«ãè¿œå ããããšã¯é£ãããããŸããã
public static Label createTestClassLabel(String testClass) { return createLabel(LabelName.TEST_CLASS, testClass); } public static Label createTestMethodLabel(String testMethod) { return createLabel(LabelName.TEST_METHOD, testMethod); }
ããŒãµãŒã®ããžãã¯ãæžãçŽãã®ã§ã¯ãªããããã2ã€ã®ã©ãã«ãè¿œå ããç¬èªã®ãªã¹ããŒãäœæããããšã«ããŸããã
2çªç®ã®åé¡ã¯testNGã§ãã ã¢ããã¿ãŒã¯ãå®è¡äžã«ãšã©ãŒãçºçããå Žåã beforeã¡ãœããçšã«åå¥ã®ãã¹ããäœæããŸãã ãã¹ãèªäœã¯ãã£ã³ã»ã«ç¶æ ã«ãªããŸãã ãããã£ãŠãã·ã¹ãã ã§éè€ãããã¹ããåãåããŸããã
ãã®Allureæ©èœã®ä¿®æ£ã¯RoadMap Allure 2.0ã§ãã©ã°ãç«ãŠãããŸãããããããŸã§ã®ã»ãšãã©ã®ãããžã§ã¯ãã§ã¯ããŒãžã§ã³1.5以äžã䜿çšããŠããŸããã ããŒãµãŒã¯äž»ã«ãããã®ããŒãžã§ã³çšã«äœæãããŸããã åŸ ã€ããšãã§ããªãã£ãã®ã§ãåã³ãªã¹ããŒãä¿®æ£ããŸããã
ãã«ããã©ãŠã¶
èšèšæã«ã¯ãReact JSãéžæããGoogle Chromeã§ã®äœæ¥ã«çŠç¹ãåãããŸããã 圌ãã¯ãããçµå¶é£ã«èŠããä»ã®ãã©ãŠã¶ãŒã§ãã¹ããéå§ããŸããããå®éã«ã¯äœãæ©èœããªãããšãå€æããŸããã å°æ¥çã«ã¯ããã«ããã©ãŠã¶ã®åé¡ã«ããå€ãã®æéãè²»ããå¿ èŠããããŸãã çŸæç¹ã§ã¯ãã·ã¹ãã ã®WEBéšåã¯Google ChromeãMozilla FirefoxãMS IEã®ææ°ããŒãžã§ã³ã§åäœããŸãã
éŽãªãã®éŽå±
ç§ãã¡ã¯ä»ã®äººã®ãã°ã«å€¢äžã«ãªããèªåã®ãã°ãå¿ããŠããŸããŸããã ãã¡ããããã§ãããã詳现ã¯äžååã§ããã å®éã®æäœãéå§ãããåé¡ãéã£ããšããæ°æ¥ãè²»ããããã¹ãŠã®æ©èœãå®è¡ããã·ã¹ãã èªäœã§éåžžã®ãã°ãèšé²ããå¿ èŠããããŸããã ãã°ã¯ã解æãã¥ãŒãåŒã³åºãããããã·ãŒãžã£ãããã³ã·ã¹ãã ãµãŒãã¹èªäœã«ãšã©ãŒãšãšãã«æžã蟌ãŸããŸãã ãã¹ãŠã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããã°ã«èšé²ãããŸãã
éæ»
ã·ã¹ãã ã®çç£çãªéçšãžã®åºåãå éããããã«ãéåžžã®bashã䜿çšããŠãESFãã¹ãç°å¢ã®ãã¡ã€ã«ã·ã¹ãã ã§å¿ èŠãªãã°ã®æçãèŠã€ããŸããã ãã£ã¬ã¯ããªãééããå¿ èŠãªãã¡ã€ã«ãå±éããå ¥åã«è»¢éãããã»ãã·ã§ã³ã®ãšã³ããªãæ¢ããäžéçµæãäžæãã¡ã€ã«ïŒååãªå€§ããïŒã«æžã蟌ãã¹ã¯ãªãããäœæããŸããã æåŸã®ã¢ã¯ã·ã§ã³ã¯ééãã§ããã ãã®æ±ºå®ã¯ã·ã³ã°ã«ã¹ã¬ããã§ãããç§ãã¡ã«ã¯åãå ¥ããããªãããšãå€æããŸããã çŸæç¹ã§ã¯ãJavaã®ã»ãŒãã¹ãŠã®æ©èœãæžãçŽããäžéçµæã¯å®å šã«ã¡ã¢ãªã«ä¿åãããŠããŸãã
ä»åŸã®èšç»
è¿ãå°æ¥ã次ã®ããšãèšç»ããŸãã
- ãããã¯ãŒã¯ã«ã·ã¹ãã ãå±éããŠã¢ãã€ã«ããã€ã¹ããã¹ããã
- Jiraãšçµ±åããŠãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«æ¬ é¥ã確ç«ããŸãã
- ãŠãŒã¶ãŒã次ã®éå§æã«ãã¹ãã®ãªã¹ãã調æŽã§ããããã«ããªãŒãã³ããããã³ã°é害ã®èªåéç¥ãå®è£
ããŸãã
- äºåå
¥åãã£ãŒã«ãã®ã¢ã«ãŽãªãºã ãéçºããŸããããã«ãããæ°ããæ¬ é¥ãå°å
¥ããéã«æéãç¯çŽã§ããŸãã
- 管çè
ããã¹ãç°å¢ã«ãµãŒãã¹ãæäŸããã¢ããªã±ãŒã·ã§ã³ãèªåçã«äœæããããã®ã¢ã«ãŽãªãºã ãéçºããäœæ¥ãåçåããŸãã
- ãã¡ãžãŒäžèŽãæ€çŽ¢ããããã®ã¢ã«ãŽãªãºã ãæ¹è¯ããæè»æ§ãé«ããŠããšã©ãŒã®éçŽäžã«ã·ã¹ãã ããã¹ãæžããããã«ããŸãã
- èªååé¡ãšã©ãŒãäœæããŸãã ã·ã¹ãã ã¯ã以åã«è¡ã£ã決å®ãšæåã§å
¥åãããã«ãŒã«ã«åºã¥ããŠãèµ·åæã«ãšã©ãŒã¡ãã»ãŒãžãã«ããŽãªã«ããã«åé¡ããŸããããã«ããããŠãŒã¶ãŒã¯äž»ã«éèŠãªåé¡ã«æ³šæãæãããšãã§ããŸãã
- APIãã¹ãã®ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®ãããã¯ãŒã¯ãã©ãã£ãã¯ã§ããŒã¿ãå
å®ãããŸãã
- èµ·åå
šäœã®èªåã¹ãã£ã³ã®æ©èœãäœæããŸããã»ãã·ã§ã³å
ã®ãã¹ãŠã®ã·ã¹ãã ãã°ãã¹ãã£ã³ããŸãã ãŠãŒã¶ãŒã¯ãèªåãã¹ãã®éçºè
ã®èŠ³ç¹ããæ£åžžãªèµ·åãã¯ãªãã¯ããã·ã¹ãã èªäœã®ãšã©ãŒã®èªååæãå®è¡ã§ããŸãã
ãã¹ãŠã®ãã°ã«ãããããããç§ãã¡ã¯æ¥œèŠ³çã§ãããéçºã¯ãšã³ãžãã¢ãçµæãåæããæéãå€§å¹ ã«ççž®ããåæã®å質ãåäžãããã®ã«åœ¹ç«ã€ãšèããŠããŸãã çŸæç¹ã§ã¯ãèšå€§ãªããã¯ãã°ãèç©ããŠããããã®å®è£ ã«ãããæ°ããèå³æ·±ãäœéšãåŸããã補åãæ¹åãããŸãã ãããã¯ã«é¢ããã質åã«ãçãããããªãã®å®è·µãšäºäŸã«ã€ããŠåŠã³ãŸãã