ãã£ã¨æ¹ç¼ã®çããéããããªããåãã¡ã«ãåããï¼ãã¹ãã³ã¼ããæã«å ¥ããã®ã ï¼ #TddAdventJP
ã¿ã¤ãã«ã¯æãã¤ãã§æå³ã¯ç¡ãã§ãã
æ¬æ¥ãªããã®ãã¿ã¿ã¤ãã«ã ãã§çµãããããâ¦
TDD Advent Calendar jp: 2011 : ATNDã®19æ¥ç®ã®ã¨ã³ããªã¼ã§ãã
åæ¥ã®18æ¥ç®ã¯[twitter:@megascus]ããã®アジャイルにTDDしようとしてペアプロして失敗した話ã
ç¿æ¥ã®20æ¥ç®ã¯[twitter:@haru01]ããã®Testing と 私と 苦い出来事ã«ãªãã¾ãã
å 容
諸ã
ã®äºæ
ã§ä»å¹´ãã社å
SEã«è»¢è·ãã¾ããã
ãããªãããªã§å
ã·ã¹ãã å±ã®åæ¥è
ã¨ãã¦ä»ç¤¾ã®ç¤¾å
ã·ã¹ãã æ
å½ããã¨è©±ãããæ©ä¼ãããã¾ããã
ãã®ä¸ã§ãExcelã®ãã¯ããåºæ¥ã¾ãã¨é¢æ¥ã§è¨ã£ã¦å
¥ç¤¾ãããã
ã·ã¹ãã æ
å½ã«ãããããä¸ã«ã
ä»ã¾ã§ããã°ã©ãã³ã°çµé¨ããªãã®ã«VBAã¾ã§æ¸ããã¨ã«ãªã£ã¦ãã¾ã£ãã¨ããã
ãããããããªçµæ´ããæã¡ã®æ¹ã¨ãä¼ããããã¨ã¨ãªãã
TDDãããããæãã¦ã¿ããåãã§ãããããã
ã¨ããå
容ãgdgdã£ã¨æ¸ãã¦ã¿ã¾ãã
ãã¹ãï¼ãããªããã¯ã©ãã§ãããï¼
ç®ã®åã®äºãçã¥ããã®ã§ç²¾ä¸æ¯ï¼
ã£ã¦äººã«TDD(ã½ãï¼)ãã¨ããªã¹ã¹ã¡ãããã¨ãããã¨ãã«
ä½ãåèã«ãªãã°ãããã§ããâ¦
社å ã·ã¹ãã æ å½ããã®èæ¯
å°æ¹ã®ä¸å°ä¼æ¥ã§ç¤¾å
ã·ã¹ãã æ
å½ã¨è¨ã£ã¦ãæ¬æ¥ã®æ¥åããã¤ã¤
ã·ã¹ãã ããã¤ã³ãã©ã¾ã§ã®ä¸è©±ããã¦ããããªäººã§ãã
å
¼æ¥ç¤¾å
SEããçãªä»äºããã¦ãã¾ãã
å²ãè¾¼ã¿ã¯å½ããåã§æ¬æ¥ã®ç¹å¿æã ã¨å¸³ç¥¨1æãä½ãã ãã§
è¤éãªãã®ã ã¨å®æã¯1ã¶æå¾ã«ãªã£ããã¨ãããã¨ãããç¶æ³â¦
å¨å²ãç解ã¯ããã®ã§ãã®è¾ºãã¯è¦è¶ãã¦ãé¡ããã¦ããããã©ã
ç·æ¥æã¯ãµãæ®éãè¶ãã¦ãµãå¾¹ã«ãªããã¨ãâ¦
ããããç¶æ ããªãã¨ããªããªããã¨æã£ã¦ãã
ãããªåæã§ãã
ããã©ãããâ¦ãã確èªé§åéçºã§ãããâ¦
TDDã説æããã¨ãã«ãã¹ãé§åéçºã¨ããè¨èãåºãã¨é端ã«èª¬æã®é£æ度ãä¸ãããã¨ãããããã¾ãã
ãã®ã¨ããããã¹ãé§åéçºã¨ããè¨èã¨åºããã
- ããããã¹ãä»æ§æ¸ã¨ãç´åã®æ¸é¡ã«æ²¢å±±ãã£ã¤ãã¦ãã¦ããã©ãåºæ¥ã¦ããããã¦ãããªããã ãï¼
- ã¾ãä»®ã«ãã¡ãã¨ãã¹ãããæ¹æ³ããã£ã¦ãèªåã®ç¶æ³ããã§ããªããâ¦
ã¨ãããããªå 容ã«å¯¾ãã¦ã®èª¬æãããªãã¨ãããªããªã£ã¦ãã¾ãã¾ããã
ç¾æç¹ã§å質ã®åä¸ä»¥åã®æ®µéã®äººã«ãã¹ãã£ã¦è¨èãä¸ã
説æããã®ã¯é¢åèãã¨æãã
ããã¹ãã¨ã¯è¨ã£ããã©ã確èªé§åéçºã£ã¦è¨ã£ãã»ããããããªâ¦ã
ãªã©ã¨å£ããã§ã¾ãããããã¤ã¤ã
ãããã¯å¾ã
ã¤ããããªãã¨ããããã¯é£ãããªãã¨ãã£ã¦ã¨ããã確èªããªããä½ã£ã¦ããããæ¹ã§ããã
ã¨èª¬æããã¨ããå
·åã«è©±ãé²ãããã¾ããã
ã¾ããã®è©±ã®é²ãæ¹ã ã¨æ¬æ¥ã®TDDã¨ã¯éã£ã¦ãããã§ããã
ã¾ãã¯å§ãã¦ãããã¨ããæå³ã§ã¯ãã¼ãã«ãä¸ãããã¦ããããªã¨æã£ã¦ãã¾ãã
å°ããããã°ããã段åããã
å½ç¶ãªãããRedãGreenãRefactoringã®é»éã®ä¸è§å½¢ã¯æèãã¦ãããã®ã§ãã
TDDã®ãªãºã ã¨ãå²ãè¾¼ã¿ä¸çã®è·å ´ã§ã¯ç¡çãªä¸ãç·æ¥ã®å ´åã¯Redã®ç¶æ
ã§æ¾ç½®ãªãã¦ãã¨ãèµ·ãããã§â¦
ã¨ãããã¨ã§ãã¾ãã¯Todoã¡ã¢ãä½ã£ã¦ãä»æããå®äºãææ¡ã§ããããã«ãã¦ããã£ãã
ãã®ä¸ã§ãã¢ããã½ããå®éã«æºã£ã¦ãã¢ããä½æ¥ããªãã説æå
¥ããªãããªã©ã¨å°ä¸æéãã£ã¦ã¿ãããªããªã好è©ã§ããã
TDDãæèããã¨ãé¢æ°ãããã·ã¼ã¸ã£ã®å¤§ããã¯å°ãããªãã¾ãã
ãããªãã¨å
¨ä½ã®è¦éãããããªãã®ã§ãå²ãè¾¼ã¿ããéæ¾ãããã¨ãã«ä½æ¥ã¸ã®å¾©å¸°ã¯ãã°ãããªãã¾ãã
ãã®ä¸ãäºåã«Todoã¡ã¢ãä½ããã¨äºåã®æ®µåãã¨ãªã£ã¦ä½æ¥èªä½ã®åæ»ãçºçãã«ãããªãã¾ãã
è·å ´ã§ä½æãã¦ãããã¨ããã¹ãã³ã¼ããæ¸ããã¨ã«ã¤ãã¦ãã
ã³ã¹ããé«ãã¨ã¯æããªãã§åãå
¥ãã¦ãããã¦ããã£ãã§ãã
ã§ãä½ãã©ãã¾ã§ç¢ºèªããã°ããã®ï¼
ä½ã=ãã¹ãã³ã¼ããæ¸ãããã¹ã¦
ã©ãã¾ã§=æä½ãé¢æ°ã¬ãã«ã§éè¤ãé¤å»ããã¦Greenãªç¶æ
ã¨æ示ãã¦ã¿ããã
ä½ãâã³ããã§ä½¿ãå»»ãã¦ãã³ã¼ãã¯ãã¹ãããããªãããããªãï¼ç
ã©ãã¾ã§âã³ããäºã
â¦+Greenã¯ã¨ããããæ¥ãã§ãã¨ãã¯éè¤ãã£ã¦ãããããããªãï¼ç
ãã¹ãã³ã¼ãã®æç¨æ§ã¯ç解ãã¦ã¦ãå ¨ç¯å²ã§ãã¹ãã³ã¼ããæ¸ãã®ã¯é¢åèãããã§ãâ¦
ä¸å¿ã
ã©ã¤ãã©ãªãæ´åãã¦ã¦ã³ãããã¦ãã®ã¯ä¿®æ£ãå¿
è¦ãªã³ã¼ãã ããã§ããï¼
âä¿®æ£ãããã¨ãããã¨ã¯ãã¹ãã³ã¼ãã§ã®ç¢ºèªãå¿
è¦
å¿ããã¨ãã®éè¤æ¾ç½®ã¯ä¿®æ£ãå¿
è¦ãªã¨ãã«éè¤å
¨é¨ãä¿®æ£ããã³ã¹ãã
ä¿®æ£ã®ç¢ºèªæ¼ããããå ´åã®ãããªã©ãããä½ããªã¹ã¯ãé«ããªãã¾ããã
âã³ã¹ãããªã¹ã¯ã¯æ©ãã«ååããã»ããããã®ã§éè¤ã¾ã§ã¯é¤å»ãã¦ããã¾ãããã
ã¨ä¼ãã¯ãã¾ãããã楽天çã«ã¹ã«ã¼ãã¦ããã®ã§â¦
ãã¹ãã³ã¼ãããªãã¨ããã¯"NoTest"
éè¤é¤å»ã¾ã§ãã¦ãªãã¨ããã¯"NoRef"
ã¨ã³ã¡ã³ãå
¥ãã¦æ³¨æã¯ããããã«ãã¦ãããã¾ããã
å¾æ¥ã御æ©å«ä¼ºãããæã«ããä¾ã®ã³ã¡ã³ãå
¥ããã¨ãããç¹ã«ããã£ã¦ããã§ããâ¦ãã¨
çµµã«æãããããªçºè¨ãããã ããã®ã§ãwwwãwwwã¾wwwãwwwãã¨ç温ããã¨ã¼ã«ãéã£ããã¨ã追è¨ãã¦ããã¾ãã
確èªé§åéçºãããã¹ãé§åéçºã¸â¦
ã¨ããããã¨ãããªãã§ããâ¦
TDDã®ãã¢ããé©å½è¬ç¿ãã2ã¶æåã»ã©çµã£ã¦ãã¾ããã
ã¡ããã¨æ®æ¥ä»£ãè²°ããæéå
ã§ã®æ®æ¥ã§ä½æ¥ãã§ãã¦ããããã§ãã
ãã©ã¼ã å¨ãã®ãã¹ãã¨ããç¬å¦ã§ãã£ã¦é å¼µã£ã¦ããã¿ããã§â¦
ããã§ãExcel-DNAã«ç§»è¡ãã¦.NETãã£ã¦ä½è³ã®åå¼·ä¼ã®æ¦åã«â¦ã¨ãæã£ã¦ããã
ãã²ã¨ã¾ãä¼ç¤¾ãããªããè¨ããã¦ããããããªããã§ããã§ããããªã¨â¦
ãã¨ã俺ãä¼ç¤¾ä»¥å¤ã§ãã½ã³ã³ã¨ãããããªããã
æ¬å½ã®ããã°ã©ãããã¨ãç¸æã§ããªãã§ããâ¦ããã¾ããã
â¦ã ã£ã¦ãâ¦(´ã»Ïã»ï½)
è·æ¥ã¨ãã¦é å¼µã£ã¦ããã¨ããã
ããæå³ã§ã®è·æ¥ããã°ã©ãããã¯ãã以ä¸æã¾ãã¦ããªãããã§ãâ¦
ã¾ããããããæãã¨ããã¯å¤ã
ããã®ã§ããã
ä»ãæ®éã«ããããã¨èããããã¨ãããã®ã§ã
次ã®ã¹ããããæãã ã¨ãã«å¿ããããããã«ç§ãç²¾é²ããããã¨â¦
ã¾ã¨ã
- çµå±TDDæããããã®ãã¯ããããªãã§ãâ¦
- ã©ããªäººã§ãããã°ã©ãã³ã°ã§å°ã£ã¦ããªãTDDã試ã価å¤ã¯ããã®ã§ã¯â¦
- ãã¹ãé§åéçºã®"ãã¹ã"ã§å¼ã人ãããããã確èªé§åéçºã£ã¦ã®ãã©ããã¨æã£ã¦ã¾ãããpreTDDçãªãã®ãååã ãã§ãå ¬å¼ã§ããã¨ãããªã¨â¦"ãããããã¹ãã£ã¦ãã£ã¦ãã"çãªèª¬æé¢åèãâ¦
- TDDã£ã¦å®éã«äººã«æãã¦ããã£ãã»ããç解ããããã¨æãã
- TDDBCã¯ãªã¹ã¹ã¡
- TDDBCã«åå ã§ãããã«ãªãorTDDç¥ã£ã¦ãããªäººãããªããªãtwitterã®#TddAdventJpã§è¿ãã®äººãæ¢ãã¦æãã¦ãããªãã交æ¸ãã¦ã¿ãã
- æãã¦ããã人ãåå¼·ä¼ã®éå¬ãå¸æãã¦ããªãã§ããéãã¯ãµãã¼ãããããâ¦
- ãã£ãã®ãã¨ã"俺æ§ã«TDDãæããåå¼·ä¼"ã主å¬ãã¦ã¿ãã(æ®éã®åå¼·ä¼ã ã¨ä¸»å¬è ã¯åå¼·ã§ããªããããã®ã§â¦)
- ä½è³ã¯3ææ«ã¾ã§ã«ä½ãããããããã¾ããã
- AdventCalendarãGoogleChromeã§æ¸ãã®ã¯ãããã»ããããã
ã¨ãããã¨ã§gdgdã¨æ¸ãã¦ã¿ã¾ããã
ããã§ã¯ã¿ãªããããã¯ãªã¹ãã¹ãï¼