ð ãã®èšäºã¯ãããªæ¹ã«ãããã
- ãã¹ãèªååãšããèšèã¯èããããšããããã©ãããããããªãæ¹
- æåãã¹ããšã®éããå ·äœçã«ç¥ããããšã³ãžãã¢ã»QAæ åœè
- ãã¹ãèªååã®å°å ¥ãæ€èšããŠããããŒã ã®ãªãŒããŒã»ãããŒãžã£ãŒ
- ããããQAãšã³ãžãã¢ãç®æãããæ¹
â ãã®èšäºãèªããšãããããš
- ãã¹ãèªååãšã¯äœããæåãã¹ããšã®æ¬è³ªçãªéã
- ãã¹ãèªååã®3ã€ã®çš®é¡ïŒåäœã»çµåã»E2EïŒ
- èªååããã¹ããã¹ããšããŠã¯ãããªããã¹ãã®èŠåãæ¹
- å®åã§ãã䜿ãããèªååããŒã«ã®çš®é¡
ð ãã®èšäºã®çµè«
ãã¹ãèªååãšã¯ããœãããŠã§ã¢ã®ãã¹ããããŒã«ãã¹ã¯ãªããã䜿ã£ãŠèªåçã«å®è¡ããææ³ã§ããæåãã¹ããããé«éã»æ£ç¢ºã«ãã¹ããç¹°ãè¿ãå®è¡ã§ãããããçŸåšã®ãœãããŠã§ã¢éçºã§ã¯å質åäžãšéçºå¹çåã®äž¡é¢ã§éèŠãªåœ¹å²ãæã£ãŠããŸãã
ããã¹ãèªååã£ãŠäœïŒããæåãã¹ããšã©ãéãã®ïŒãââãããªçåãæã€ãšã³ãžãã¢ãQAæ åœè ã¯å€ããšæããŸãã
ãã¹ãèªååã¯ä»ããœãããŠã§ã¢éçºã«æ¬ ãããªãæè¡ã§ããããäœãèªååããã°ããã®ãããã©ãããå§ããã°ããã®ããããããããå°å ¥ããããã£ãŠããããŒã ãå°ãªããããŸããããã®èšäºã§ã¯ããã¹ãèªååã®åºæ¬æŠå¿µããæåãã¹ããšã®éããå®åã§ã®äœ¿ãåããŸã§ããããããã解説ããŸãã
- ãã¹ãèªååãšã¯ïŒ
- æåãã¹ããšã®éã
- ãã¹ãã®3ã€ã®çš®é¡ïŒãã¹ããã©ãããïŒ
- èªååãã¹ããã¹ãã»ãã¹ãã§ãªããã¹ã
- ãã¹ãèªååã®ã¡ãªããã»ãã¡ãªãã
- äž»ãªãã¹ãèªååããŒã«
- ãã®ããã°ã§åŠã¹ãããšïŒã·ãªãŒãºç޹ä»ïŒ
- ãŸãšã
ãã¹ãèªååãšã¯ïŒ
ãã¹ãèªååãšã¯ããœãããŠã§ã¢ã®ãã¹ãäœæ¥ãããã°ã©ã ãããŒã«ã§èªåçã«å®è¡ããä»çµã¿ã®ããšã§ãã
人éãæäœæ¥ã§ãã©ãŠã¶ãæäœããããAPIãå©ããããã代ããã«ãã³ãŒããèªåã§ãã®æäœãåçŸããæåŸ éãã®çµæã«ãªã£ãŠããããæ€èšŒããŸãã1åæžãããã¹ãã¯äœåºŠã§ãç¹°ãè¿ãå®è¡ã§ãã人éãå¯ãŠããéã§ãããªãªãŒã¹ã®ãã³ã«èªåã§å質ãã§ãã¯ãèµ°ãããã«ãªããŸãã
⌠ãã¹ãèªååã®åºæ¬çãªæµã
|
ãã¹ãã³ãŒã
Python / JS
|
â |
èªåå®è¡
CI / ããŒã«ã«
|
â |
çµæãæ€èšŒ
PASS / FAIL
|
â |
ã¬ããŒãåºå
CSV / HTML
|
æåãã¹ããšã®éã
æåãã¹ãã¯äººéããã©ãŠã¶ãæäœããŠåäœã確èªããæ¹æ³ã§ããçŽæçã§ããããããåé¢ãæéã»ã³ã¹ãã»ãã¥ãŒãã³ãšã©ãŒã®åé¡ãã€ããŸãšããŸãã
| é ç® | ð æåãã¹ã | ð€ ãã¹ãèªåå |
|---|---|---|
| å®è¡æ¹æ³ | 人ãæäœããŠãã¹ã | ã¹ã¯ãªããã§èªåå®è¡ |
| å®è¡é床 | å®è¡ã«æéãããã | çæéã§ç¹°ãè¿ãå®è¡ã§ãã |
| æ£ç¢ºæ§ | 人çºãã¹ãèµ·ãããã | å®å®ããçµæãåŸããã |
| é·æã³ã¹ã | å®è¡ã®ãã³ã«äººä»¶è²»çºç | åæã³ã¹ãåŸã¯äœã³ã¹ã |
| æè»ãªå€æ | çŽæçã«å¯Ÿå¿ã§ãã | ã³ãŒãå€ã®å€æã¯èŠæ |
⌠æåãã¹ã vs ãã¹ãèªåå æ¯èŒ
| æ¯èŒé ç® | ð æåãã¹ã | ð€ ãã¹ãèªåå |
|---|---|---|
| â± å®è¡é床 | é ãïŒäººéã®æäœéåºŠïŒ | éãïŒã³ã³ãã¥ãŒã¿ãŒéåºŠïŒ |
| ð ç¹°ãè¿ãå®è¡ | ç²åŽã»ãã¹ãå¢ãã | äœåã§ãåã粟床ã§å®è¡ |
| ð° é·æã³ã¹ã | å®è¡ã®ãã³ã«äººä»¶è²»çºç | åæã³ã¹ãåŸã¯äœã³ã¹ã |
| ð§ æè»ãªå€æ | çŽæçã«å¯Ÿå¿ã§ãã | ã³ãŒãå€ã®å€æã¯èŠæ |
ãã¹ãã®3ã€ã®çš®é¡ïŒãã¹ããã©ãããïŒ
ãã¹ãèªååã«ã¯å€§ãã3ã€ã®çš®é¡ããããŸãããã®3å±€æ§é ãããã¹ããã©ãããããšåŒã³ãå®åã§ã®çæ³çãªãã¹ãæ§æã®æéãšããŠåºã䜿ãããŠããŸãã
⌠ãã¹ããã©ããã
æå°åäœã®åäœç¢ºèªãé«éã»äœã³ã¹ãã§æ°ãå€ãã»ã©è¯ããpytestã代衚ããŒã«
è€æ°ã®ã¢ãžã¥ãŒã«ãAPIã飿ºããŠæ£ããåããã確èªãrequestsã代衚ããŒã«
å®éã®ãã©ãŠã¶ãæäœããŠãŠãŒã¶ãŒã®æäœãããŒãåçŸãSeleniumã»Playwrightã代衚ããŒã«
èªååãã¹ããã¹ãã»ãã¹ãã§ãªããã¹ã
ãå šéšèªååããã°ããããšæããã¡ã§ããããã¹ãã«ã¯èªååã«åããŠãããã®ãšåããŠããªããã®ããããŸããå®åã§ã¯æ£ããèŠæ¥µããããšãéèŠã§ãã
⌠èªååã«åããŠãããã¹ã vs åããŠããªããã¹ã
â èªååã«åããŠãã
- æ¯ååãæé ã§ç¹°ãè¿ããã¹ã
- ãªãªãŒã¹ã®ãã³ã«å®è¡ããååž°ãã¹ã
- 倧éããŒã¿ã䜿ã£ããã¹ã
- ãã°ã€ã³ã»ãã©ãŒã å ¥åãªã©ã®å®åæäœ
- APIã®ã¬ã¹ãã³ã¹æ€èšŒ
- ã¹ããŒã¿ã¹ã³ãŒãã»ãšã©ãŒãã§ãã¯
â èªååã«åããŠããªã
- ãã¶ã€ã³ã®èŠãç®ã»é è²ã®ç¢ºèª
- 䜿ããããïŒUXïŒã®è©äŸ¡
- æ¢çŽ¢çãã¹ãïŒçŽæã§æäœããŠæ¢ãïŒ
- äžåºŠããå®è¡ããªãèšæãã¹ã
- 仿§ãé »ç¹ã«å€ãããã¹ã
- 人éã®ææ§ãå¿ èŠãªå€æ
ãã¹ãèªååã®ã¡ãªããã»ãã¡ãªãã
â ã¡ãªãã
人éãæ°æéããããã¹ããæ°åã§å®äºãäœåºŠã§ãåãå質ã§å®è¡ã§ãã
ç²åŽã«ããèŠèœãšããæäœãã¹ããªããªãããã¹ãå質ãå®å®ãã
ãããã€ã®ãã³ã«èªåã§ãã¹ããèµ°ããå質ãç¶ç¶çã«æ ä¿ã§ãã
åææè³ã¯å¿ èŠã ããé·æçã«ã¯æåãã¹ãããå€§å¹ ã«ã³ã¹ããåæžã§ãã
â ïž ãã¡ãªããã»æ³šæç¹
ãã¹ãã³ãŒããæžãæéãšæè¡ã¹ãã«ãå¿ èŠãããã«ã¯å¹æãåºãªã
仿§å€æŽã®ãã³ã«ãã¹ãã³ãŒããæŽæ°ãå¿ èŠãæŸçœ®ãããšå£ãããŸãŸã«ãªã
ãã¶ã€ã³ãUXãªã©ã人éã®ææ§ãå¿ èŠãªãã¹ãã¯èªååã§ã¯ä»£æ¿ã§ããªã
äž»ãªãã¹ãèªååããŒã«
ãã¹ãã®çš®é¡ã«ãã£ãŠäœ¿ãããŒã«ãç°ãªããŸããå®åã§ãã䜿ããã代衚çãªããŒã«ãæŽçããŸããã
| ããŒã« | çš®å¥ | åŸæãªããš | èšèª |
|---|---|---|---|
| Selenium | E2Eãã¹ã | ãã©ãŠã¶èªåæäœã»ãã©ãŒã ãã¹ã | Python / Java / JS |
| Playwright | E2Eãã¹ã | ã¢ãã³ãªãã©ãŠã¶èªååã»é²ç»æ©èœ | Python / JS / TS |
| pytest | åäœã»çµåãã¹ã | Python颿°ã»APIã®ãã¹ã管ç | Python |
| requests | APIãã¹ã | REST APIã®HTTPãªã¯ãšã¹ãã»æ€èšŒ | Python |
| JUnit | åäœãã¹ã | Javaã®åäœãã¹ãæšæºããŒã« | Java |
| Cypress | E2Eãã¹ã | ããã³ããšã³ãç¹åã®é«éãã¹ã | JavaScript |
ð å®éã®ãã¹ãèªååã®äŸã¯ãã¡ã
ãã®ããã°ã§åŠã¹ãããšïŒã·ãªãŒãºç޹ä»ïŒ
æ¬ã·ãªãŒãºã§ã¯ããã¹ãèªååã®åºç€ããå®è·µãŸã§äœç³»çã«è§£èª¬ããŠãããŸãã
ð ã·ãªãŒãºæ§æ
- â ãã¹ãèªååãšã¯ïŒïŒæ¬èšäºïŒâ ä»ãã
- â¡ Seleniumã§ãªã³ã¯åããèªåæ€åº â èšäºãèªã
- ⢠Seleniumã§ãã°ã€ã³ãã©ãŒã ã®ããªããŒã·ã§ã³ãã¹ã â èšäºãèªã
- ⣠Playwrightã§E2Eãã¹ããèªåå â èšäºãèªã
- †pytest + requestsã§APIãã¹ããèªååïŒè¿æ¥å ¬éïŒ
ãŸãšã
ãã®èšäºã§ã¯ããã¹ãèªååã®åºæ¬æŠå¿µããæåãã¹ããšã®éãããã¹ãã®çš®é¡ãèªååã«åããŠãããã¹ããŸã§ã解説ããŸããã
| ãã€ã³ã | å 容 |
|---|---|
| ãã¹ãèªååãšã¯ | ãã¹ãäœæ¥ãããã°ã©ã ã§èªåçã«å®è¡ããä»çµã¿ |
| æåãã¹ããšã®éã | é床ã»ç¹°ãè¿ã粟床ã»é·æã³ã¹ãã§èªååãåªäœ |
| 3ã€ã®çš®é¡ | åäœãã¹ãã»çµåãã¹ãã»E2Eãã¹ãïŒãã¹ããã©ãããïŒ |
| èªååãã¹ããã¹ã | ç¹°ãè¿ãå®è¡ããå®åãã¹ãã»ååž°ãã¹ãã»APIãã¹ã |
| 代衚ããŒã« | Seleniumã»PlaywrightïŒE2EïŒ/ pytestã»requestsïŒåäœã»APIïŒ |
ð ãã®èšäºã®ãŸãšã
- ãã¹ãèªååã¯ãœãããŠã§ã¢ãã¹ããã¹ã¯ãªããã§èªåå®è¡ããä»çµã¿
- æåãã¹ãããé«éã»æ£ç¢ºã«ãã¹ããç¹°ãè¿ãå®è¡ã§ãã
- åäœãã¹ãã»çµåãã¹ãã»E2Eãã¹ãã®3çš®é¡ãããïŒãã¹ããã©ãããïŒ
- ç¹°ãè¿ãå®è¡ããå®åãã¹ãã¯èªååãæ¢çŽ¢çãã¹ãã¯æåã§äœ¿ãåããéèŠ
- å質åäžã»éçºå¹çæ¹åã»ã³ã¹ãåæžã«åœ¹ç«ã€
çŸåšã®ãœãããŠã§ã¢éçºã§ã¯ããã¹ãèªååã¯éåžžã«éèŠãªæè¡ã®äžã€ã§ãããŸãã¯èº«è¿ãªç¹°ãè¿ããã¹ããèªååãããšããããå§ããŠã¿ãŸãããã
次ã®èšäºããã¯å®éã®ã³ãŒãã䜿ã£ãŠåããŒã«ã®äœ¿ãæ¹ã解説ããŠãããŸãããŸã㯠Seleniumã§ãªã³ã¯åããèªåæ€åºããæ¹æ³ ããèªã¿é²ããŠã¿ãŠãã ããð
