{"id":6126,"date":"2011-07-05T19:22:29","date_gmt":"2011-07-05T11:22:29","guid":{"rendered":"https:\/\/lifeparty.idv.tw\/blog\/?p=6126"},"modified":"2012-08-16T13:49:30","modified_gmt":"2012-08-16T05:49:30","slug":"%e4%b8%8d%e8%a6%81%e6%8a%8a-tdd-%e5%92%8c%e5%81%9a%e6%b8%ac%e8%a9%a6%e6%b7%b7%e7%82%ba%e4%b8%80%e8%ab%87","status":"publish","type":"post","link":"https:\/\/lifeparty.idv.tw\/blog\/archives\/6126","title":{"rendered":"\u4e0d\u8981\u628a TDD \u548c\u505a\u6e2c\u8a66\u6df7\u70ba\u4e00\u8ac7"},"content":{"rendered":"<p>\u6700\u8fd1\u8b80\u5230\u4e00\u7bc7\u6587\u7ae0\u3008<a href=\"http:\/\/blog.xdite.net\/?p=2478\">\u4e0d\u8981\u76f2\u76ee\u7684 BDD \/ TDD\uff0c\u6211\u5c0d\u5beb\u6e2c\u8a66\u7684\u770b\u6cd5<\/a>\u3009\uff0c\u770b\u5b8c\u4f5c\u8005 <a href=\"http:\/\/blog.xdite.net\/\">XDite<\/a> \u53cd\u5c0d\u4e0d\u8ad6\u5982\u4f55\u90fd\u8981\u5c0e\u5165 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Test-driven_development\">TDD<\/a> \u7684\u7406\u7531\uff0c\u8b93\u540c\u4eba\u60f3\u63d0\u51fa\u6211\u5c0d\u9019\u7bc7\u6587\u7ae0\u7684\u770b\u6cd5\u3002<!--more--><\/p>\n<p>XDite \u5728\u6587\u7ae0\u4e2d\u524d\u534a\u6bb5\uff0c\u63d0\u5230\u4ed6\u5c0d\u505a\u6e2c\u8a66\u7684\u770b\u6cd5\uff1a<\/p>\n<blockquote><p>\u6211\u500b\u4eba\u7684\u770b\u6cd5\u662f\u8a8d\u70ba\u5728\u5927\u591a\u6578\u7684\u60c5\u5f62\u4e0b\uff0c\u4f60\u9700\u8981\u5c0d\u4f60\u7684\u300c\u8edf\u9ad4\u300d\u5beb &#8220;Test&#8221;\uff0c\u800c\u4e14\u662f\u8981\u5148\u5beb &#8220;Test&#8221; \u518d\u884c\u64b0\u5beb\u7a0b\u5f0f\uff0c\u4e5f\u5c31\u662f  Test-Driven Development\u3002\u56e0\u70ba\u7a0b\u5f0f\u78bc\u6703\u9010\u6f38\u9f90\u96dc\uff0c\u6c92\u6709\u4eba\u53ef\u4ee5 write code without bug\uff0c\u4e5f\u4e0d\u53ef\u80fd\u6bcf\u6b21\u90fd\u6709\u8fa6\u6cd5\u7528\u624b\u6e2c\u51fa\u4f86\uff0c\u52a0\u4e0a\u6709\u6642\u5019\u5beb\u932f\u7a0b\u5f0f\u6642\u7684\u640d\u5931\u4e0d\u662f\u4e8b\u5f8c\u4fee\u7406\u5c31\u6709\u8fa6\u6cd5\u5f4c\u88dc\u7684\uff0c\u6240\u4ee5\u6211\u5011\u5fc5\u9808\u8981\u5beb Test  Case\uff0c\u53ca\u65e9\u6293\u51fa\u554f\u984c\u3002<\/p><\/blockquote>\n<p>XDite \u8aaa\u9019\u662f\u6240\u8b02\u5beb<a href=\"http:\/\/en.wikipedia.org\/wiki\/Test_case\">\u6e2c\u8a66<\/a>\u7684\u91cd\u8981\u6027\u3002\u4f46\u4ed6\u5f37\u8abf\u9019\u537b\u4e0d\u662f\u7a0b\u5f0f\u8a2d\u8a08\u5e2b\u300c\u53ef\u4ee5\u300d\u4e0d\u5408\u6642\u5b9c\u7684\u76f2\u76ee\u5728\u300c\u4efb\u4f55\u985e\u578b\u300d\u7684\u5c08\u6848\u5f37\u884c\u5c0e\u5165 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Behavior_driven_development\">BDD<\/a> \/ TDD \u7684\u85c9\u53e3\u3002XDite \u6307\u51fa\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u4f86\u78ba\u4fdd\u7a0b\u5f0f\u6b63\u78ba\u6027\u7684\u89e3\u6c7a\u65b9\u6848\uff0c\u5b58\u5728\u8457\u984d\u5916\u591a\u4ed8\u6210\u672c\u7684\u4ee3\u50f9\uff0c\u4ea6\u5373\uff1a<\/p>\n<ol>\n<li>\u300c \u5beb\u6e2c\u8a66 + \u5beb\u7a0b\u5f0f\u300d \u6240\u82b1\u7684\u6642\u9593\uff0c\u5927\u6982\u662f\u7d14\u5beb\u7a0b\u5f0f\u7684 1.5 -2 \u500d\u6642\u9593\u3002<\/li>\n<li>\u300c\u6703\u5beb Test\u300d\u3001\u300c\u6b63\u78ba\u7684\u6e2c\u5230\u8a72\u6e2c\u7684\u90e8\u4efd\u300d\u3001\u300c\u5beb\u51fa\u597d\u7684\u6e2c\u8a66\u300d\uff0c\u90fd\u9700\u8981\u5b78\u7fd2\u6642\u9593\u4ee5\u53ca\u529f\u529b\u3002<\/li>\n<\/ol>\n<p>\u65bc\u662f XDite \u63d0\u51fa\u4e86\u56db\u9ede\u539f\u56e0\uff0c\u7528\u4f86\u7576\u6210\u53cd\u5c0d\u76f2\u76ee BDD\/TDD \u7684\u7406\u7531\u3002\u5373\u4f7f\u662f\u7a0b\u5f0f\u8a2d\u8a08\u5e2b\u56e0\u70ba\u53ad\u5026\u4e86\u7dad\u8b77\u5728\u4e4b\u524d\u7684\u5c08\u6848\u5f8c\u671f\u7684\u7dad\u8b77\uff0c\u56e0\u70ba\u4fee\u6539\u7a0b\u5f0f\u78bc\u800c\u4e00\u518d\u767c\u751f\u7684\u554f\u984c\uff08\u7121\u8ad6\u662f\u5c0f\u554f\u984c\uff0c\u5927\u554f\u984c\uff09\uff0c\u800c\u6c7a\u5b9a\u5728\u4e0b\u500b\u5c08\u6848\uff0c\u7121\u8ad6\u4ec0\u9ebc\u5c08\u6848\u985e\u578b\u90fd\u8981\u5c0e\u5165 TDD \/ BDD\uff0cXDite \u8a8d\u70ba\u9019\u5728\u4ed6\u773c\u4e2d\u8a8d\u70ba\u9019\u662f\u76f8\u7576\u4e0d\u6b63\u78ba\u7684\u4e8b\u60c5\u3002<\/p>\n<blockquote><p>1. \u6bcf\u500b\u5c08\u6848\u985e\u578b\u4e0d\u76e1\u76f8\u540c\uff0c\u6709\u7684\u662f\u8981\u6c42\u9ad8\u6b63\u78ba\u6027\u4e14\u727d\u626f\u5230\u91d1\u6d41\u554f\u984c\u4e14\u958b\u767c\u6642\u9593\u5145\u88d5\u3002\u6709\u7684\u7d14\u7cb9\u53ea\u662f event\uff0c\u7528\u904e\u6975\u4e1f\u3002\u6709\u7684\u662f\u5e6b\u4eba\u5916\u5305\uff0c\u53ea\u8981\u6c42\u898f\u683c\u6b63\u78ba\uff0c\u958b\u767c\u6642\u9593\u4e0d\u5bec\u88d5\u3002\u6709\u4e9b\u5247\u662f\u6df7\u5408\u578b\u3002\u6709\u4e9b\u90e8\u5206\u7684\u7a0b\u5f0f\u78bc\u5247\u662f\u76f8\u7576\u96e3\u4ee5\u5beb\u6e2c\u8a66\uff08\u5982 View\uff09\uff0cC\/P \u503c\u6975\u4f4e\u3002\u61c9\u8a72\u8003\u616e\u6bcf\u500b\u5c08\u6848\u7684\u985e\u578b\u751a\u81f3\u662f component \u53bb\u6c7a\u5b9a\u54ea\u90e8\u5206\u8a72\u56b4\u53b2\u7684\u898f\u5b9a\u5beb\u6e2c\u8a66\uff0c\u800c\u54ea\u4e9b\u90e8\u5206\u53ef\u6709\u53ef\u7121\u3002<\/p>\n<p>2. Startup \u524d\u671f\u61c9\u4e0d\u61c9\u8a72\u5c0e\u5165 TDD\/BDD ? \u6211\u8a8d\u70ba\u4e0d\u61c9\u8a72\u3002\u70ba\u4ec0\u9ebc\uff0c\u5f88\u591a\u4eba\u90fd\u8a8d\u70ba TDD \/ BDD \u662f\u70ba\u4e86\u78ba\u4fdd\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\uff0c\u6240\u4ee5\u7121\u8ad6\u5982\u4f55\u6211\u5011\u90fd\u61c9\u8a72\u57f7\u884c\u3002\u537b\u5ffd\u7565\u4e86 Startup \u7684\u6210\u529f\u8981\u7d20\u662f\u300c\u5feb\u901f\u9a57\u8b49\u4f60\u7684 Idea \u7684\u6b63\u78ba\u6027\u300d\u3001\u300c\u5feb\u901f\u61c9\u4ed8\u5e02\u5834\u8b8a\u5316\u8abf\u6574\u7684\u901f\u5ea6\u300d\u3001\u300c\u5728\u5e02\u5834\u5edd\u6bba\u4e2d\u7bc0\u7701\u6210\u672c\u5b58\u6d3b\u4e0b\u4f86\u300d\u3002<\/p>\n<p>3. \u5beb\u6e2c\u8a66\u53ea\u662f\u70ba\u4e86\u8981\u80fd\u81ea\u52d5\u9a57\u8b49\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\u3001\u964d\u4f4e\u300c\u7a0b\u5f0f\u51fa\u932f\u7684\u6a5f\u7387\u300d\uff0c\u4f46\u5718\u968a\u5408\u4f5c\u958b\u767c\u7a0b\u5f0f\u6700\u91cd\u8981\u7684\u662f\u5718\u968a\u4e2d\u7684\u300c\u6e9d\u901a\u300d\uff0c\u5927\u5bb6\u5c0d function \u548c\u67b6\u69cb\u8981\u6709\u4e00\u5b9a\u7a0b\u5ea6\u4ee5\u4e0a\u7684\u7406\u89e3\uff0c\u5171\u540c\u64b0\u5beb\u7a0b\u5f0f\u8981\u6709\u4e00\u5b9a\u7a0b\u5ea6\u4ee5\u4e0a\u7684 convention\u3002\u8b8a\u66f4\u4efb\u4f55\u91cd\u5927\u67b6\u69cb\uff08\u5982 core function, db schema, \u5e95\u5c64\u8a2d\u8a08\u524d\uff09\u90fd\u8981\u63d0\u9192\u5927\u5bb6\u3002<\/p>\n<p>\u5982\u679c\u6bcf\u500b\u4eba\u90fd\u53ea\u5beb\u81ea\u5df1\u7684\uff0c\u7136\u5f8c\u60f3\u6539\u4ec0\u9ebc\u6771\u897f\u7167\u81ea\u5df1\u5fc3\u60c5\uff0c\u6c92\u6709\u4eba\u60f3\u8209\u624b\u4e4b\u52de\u901a\u77e5\u5927\u5bb6\u3001\u8ddf\u968a\u53cb\u6e9d\u901a\u3002\u5766\u767d\u8aaa\uff0c\u90a3\u5beb\u6e2c\u8a66\u6709\u500b\u5c41\u7528\uff0c\u53ef\u80fd\u53ea\u662f\u4e0d\u6703\u7206 production code\uff0cdevelopment \u62c9\u4e0b\u4f86\u9084\u662f\u721b\u5149\u5149\uff0c\u9084\u662f\u8981\u4fee\u5230\u6b7b\u3002<\/p>\n<p>\u5b8c\u5168\u4e0d\u6e9d\u901a\u3001\u4e0d\u5236\u5b9a\u898f\u7bc4\uff0c\u537b\u671f\u5f85\u5beb\u6e2c\u8a66\u80fd\u5920\u89e3\u6c7a\u4e00\u5207\uff0c\u9019\u6a23\u7684\u60f3\u6cd5\u4e0d\u662f\u5f88\u5947\u602a\u55ce\uff1f<\/p>\n<p>4. \u7121\u8ad6\u5982\u4f55\uff0c\u5c31\u7b97\u5beb\u4e86\u518d\u5b8c\u7f8e\u7684\u6e2c\u8a66\uff0c\u518d\u5b8c\u7f8e\u7684\u7a0b\u5f0f\u78bc\u3002\u7a0b\u5f0f\u9084\u662f\u53ef\u80fd\u5728\u4f60\u5b8c\u5168\u9810\u671f\u4e0d\u5230\u7684\u72c0\u6cc1\u7206\u6389\uff0c\u6240\u4ee5\u61c9\u8a72\u505a\u7684\u662f\u8981\u63a5\u53d7\u7121\u8ad6\u5982\u4f55\u5c31\u662f\u8981\u4fee bug \u7684\u9019\u4ef6\u4e8b\uff0c\u7136\u5f8c\u60f3\u8fa6\u6cd5\u628a\u4fee bug \u7684\u6210\u672c\u5118\u91cf\u58d3\u4f4e\uff0c\u4e5f\u628a\u56e0\u70ba bug \u6703\u7522\u751f\u7684\u640d\u5931\u4e5f\u5118\u91cf\u58d3\u4f4e\u3002<\/p>\n<p>\u4e0d\u8981\u671f\u5f85\u6e2c\u8a66\u662f\u842c\u9748\u4e39\u3002\u5426\u5247\u671f\u5f85\u8d8a\u5927\uff0c\u5931\u671b\u4e5f\u5927\u3002<\/p><\/blockquote>\n<h4>\u5230\u5e95\u662f\u8a55\u8ad6 TDD\u3001\u9084\u662f\u505a\u6e2c\u8a66\uff1f<\/h4>\n<p>\u540c\u4eba\u89ba\u5f97 XDite \u9019\u7bc7\u6587\u7ae0\u7684\u8ad6\u9ede\u4ee4\u4eba\u6df7\u6dc6\uff1b\u4ed6\u5230\u5e95\u662f\u5728\u8a55\u8ad6\u76f2\u76ee\u5c0e\u5165 TDD \u7684\u884c\u70ba\u3001\u9084\u662f\u5728\u63a2\u8a0e\u958b\u767c\u8005\u8a72\u4e0d\u8a72\u591a\u82b1\u6642\u9593\u5beb\u6e2c\u8a66\u7a0b\u5f0f\uff0c\u4ee5\u78ba\u4fdd\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\uff1f\u9019\u5169\u8005\u5b8c\u5168\u662f\u4e0d\u80fd\u76f8\u63d0\u4e26\u8ad6\u7684\u4e8b\u60c5\uff0c\u540c\u4eba\u5f88\u4e0d\u80fd\u7406\u89e3\u5728\u524d\u9762\u63d0\u5230\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u4f86\u78ba\u4fdd\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\u9700\u8981\u82b1\u66f4\u5927\u7684\u4ee3\u50f9\uff0c\u800c\u4e0b\u4e00\u6bb5\u5c31\u62ff\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u5fc5\u7136\u6703\u5ffd\u7565\u5176\u5b83\u958b\u767c\u6d3b\u52d5\uff08\u5982\u6e9d\u901a\u3001\u4fee\u6b63\u7a0b\u5f0f <a href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_bug\">bug<\/a> \u7b49\u6d3b\u52d5\uff09\u4f86\u5426\u5b9a TDD\/BDD \u7684\u50f9\u503c\u3002<\/p>\n<p>\u96e3\u9053 XDite \u4ee5\u70ba TDD \u5c31\u53ea\u662f\u5728\u505a\u78ba\u4fdd\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\u4e4b\u6e2c\u8a66\u800c\u5df2\u55ce\uff1f\u5047\u5982 XDite \u771f\u7684\u662f\u9019\u6a23\u8a8d\u70ba\uff0c\u90a3\u9ebc\u986f\u7136\u4ed6\u628a TDD \u8aa4\u89e3\u6210\u662f\u5728<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_testing\">\u505a\u6e2c\u8a66<\/a>\u3002\u4e0d\u904e\uff0c\u5c0d\u65bc\u540c\u4eba\u5728\u6587\u7ae0\u5f8c\u9762\u7559\u8a00\u63d0\u51fa\u7684\u8cea\u7591\uff0cXDite \u56de\u61c9\u5426\u5b9a\u4ed6\u628a TDD \u8aa4\u89e3\u6210\u5beb\u6e2c\u8a66\uff0c\u800c\u662f\u4e0d\u559c\u6b61\u4e00\u4e9b\u6c92\u6709\u628a TDD \u641e\u6e05\u695a\u7684\u4eba\uff0c\u5f37\u884c\u8981\u628a\u300cTDD\u300d\u548c\u300c\u6e2c\u8a66\u300d\u6df7\u5728\u4e00\u8d77\uff0c\u7d81\u5728\u4e00\u8d77\u8981\u6c42\u7121\u8ad6\u5982\u4f55\u90fd\u8981\u300cTDD\u300d\u3002\u4ed6\u63d0\u51fa\u4e86\u4e00\u7a2e\u5178\u578b\u628a\u6e2c\u8a66\u8ddf TDD \u6df7\u6dc6\u7d81\u5728\u4e00\u8d77\u7684\u72c0\u6cc1\uff0c\u662f\u9047\u5230\u4e0b\u9762\u9019\u7a2e\u6df7\u86cb\u908f\u8f2f\uff1a<\/p>\n<blockquote><p>\u56e0\u70ba\u7a0b\u5f0f\u6703\u7206\u70b8\uff0c\u6216\u8005\u662f\u4ee5\u5f8c\u6539\u4f86\u6539\u53bb\u53c8\u6703\u66b4\u5f88\u9ebb\u7169 =&gt; \u6240\u4ee5\u6211\u5011\u9700\u8981\u5beb\u6e2c\u8a66 =&gt; \u65e2\u7136\u8981\u5beb\u6e2c\u8a66\uff0c\u4e5f\u8a31\u6211\u5011\u4e0d\u61c9\u8a72\u4e8b\u5f8c\u88dc\u5beb Test Case\uff0c\u800c\u662f\u61c9\u8a72\u4f86\u8a66\u8457 TDD\u3002<\/p><\/blockquote>\n<p>\u53e6\u5916\uff0cXDite \u9084\u63d0\u5230\u7406\u60f3\u72c0\u6cc1\u958b\u767c\u8005\u53ef\u4ee5\u7528 TDD \u4f86\u958b\u767c\u7522\u54c1\uff0c\u5148\u5beb\u6e2c\u8a66\u53bb\u5236\u5b9a\u51fa\u898f\u683c\uff0c\u7136\u5f8c\u5beb\u51fa\u5be6\u969b\u7a0b\u5f0f\u901a\u904e\u6e2c\u8a66\uff0c\u9054\u5230 <a href=\"http:\/\/en.wikipedia.org\/wiki\/System_design\">System Design<\/a>\u3002\u63a5\u8457\u85c9\u7531\u4e0d\u65b7\u7684\u5beb\u65b0\u6e2c\u8a66\u3001\u65b0\u898f\u683c\uff0c\u7136\u5f8c\u5beb\u51fa\u66f4\u591a\u7684\u7a0b\u5f0f\uff0c\u908a\u4fee\u908a\u6e2c\u5230 boundary\u3002\u4f46\u73fe\u5be6\u72c0\u6cc1\u662f\uff0c\u5c31\u7b97\u662f\u719f\u6089 TDD \u7684\u958b\u767c\u8005\uff0c\u4ed6\u537b\u4e0d\u4e00\u5b9a\u662f\u300c<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_specification\">\u898f\u683c<\/a>\u300d\u3001\u300c<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_design\">\u8a2d\u8a08<\/a>\u300d\u7684\u4e3b\u5c0e\u8005\u3002<\/p>\n<p>XDite \u8aaa\u5728\u9019\u6a23\u7684\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\uff0c\u5f88\u591a\u6642\u5019\uff0c Team \u88e1\u9762\u6709\u958b\u767c\u8005\u4e0d\u80fd\u5f37\u8feb\u5c0e\u5165 TDD \u7684\u74b0\u7bc0\u3002\u5f37\u884c\u63a8\u52d5\u53ea\u662f\u4e92\u76f8\u7d46\u5012\u548c\u62d6\u57ae\u5f7c\u6b64\u7684\u6642\u7a0b\u3002XDite \u8a8d\u70ba TDD \u53ea\u5728\u67d0\u7a2e\u300c\u55ae\u7d14\u300d\uff08\u5c08\u6848\u6210\u54e1\u7d20\u8cea\u63a5\u8fd1\u4e00\u81f4\uff0c\u6c92\u6709 highly dynamic factor\uff0c\u76ee\u6a19\u55ae\u7d14\uff09\u7684\u5c08\u6848\u3001\u74b0\u5883\u3001Component \u4e0b\u9069\u7528\u3002<\/p>\n<p>\u96d6\u7136 XDite \u5c0d\u4ed6\u7684\u89c0\u9ede\uff0c\u4f3c\u4e4e\u4e26\u6c92\u6709\u7559\u4e0b\u548c\u540c\u4eba\u7e7c\u7e8c\u8a0e\u8ad6\u7684\u7a7a\u9593\uff1b\u6211\u767c\u73fe\u6211\u5f8c\u4f86\u7684\u7559\u8a00\u88ab\u7576\u6210 spam \u8655\u7406\u3002\u540c\u4eba\u731c\u60f3\u4e5f\u8a31\u4ed6\u7684\u6587\u7ae0\u8aaa\u6b61\u8fce\u6307\u6559\uff0c\u4f46\u6211\u7684\u7559\u8a00\u8b93\u4ed6\u611f\u5230\u5a01\u8105\u3001\u6216\u662f\u89ba\u5f97\u518d\u7e7c\u7e8c\u8a0e\u8ad6\u58d3\u529b\u592a\u5927\uff0c\u65bc\u662f\u60f3\u4e2d\u6b62\u548c\u6211\u5c31\u9019\u500b\u8b70\u984c\u7e7c\u7e8c\u8a0e\u8ad6\u3002\u540c\u4eba\u4e0d\u60f3\u8cac\u602a\u4ed6\u5c0d\u6211\u7559\u8a00\u7684\u53cd\u61c9\uff0c\u5373\u4f7f\u4ed6\u9019\u6a23\u505a\u53ea\u662f\u8981\u8868\u9054\u5167\u5fc3\u60c5\u7dd2\u7684\u4e0d\u6eff\uff0c\u4f46\u6211\u4ecd\u7136\u4e0d\u6703\u505c\u6b62\u5c0d TDD \u7684\u9019\u500b\u8a0e\u8ad6\u4e3b\u984c\u7684\u601d\u8fa8\uff0c\u4e26\u4e14\u6703\u900f\u904e\u7db2\u8a8c\u4f86\u8868\u9054\u6211\u7684\u89c0\u9ede\u3002<\/p>\n<h4>\u8a55\u8ad6 XDite \u7684\u56db\u9ede\u7406\u7531<\/h4>\n<p>XDite \u63d0\u5230\u4ed6\u4e0d\u559c\u6b61\u628a\u300c\u6e2c\u8a66\u300d\u548c\u300cTDD\u300d\u7d81\u5728\u4e00\u8d77\u7684\u6df7\u86cb\u908f\u8f2f\uff0c\u4f46\u5b83\u53cd\u5c0d\u4e0d\u7ba1\u600e\u6a23\u90fd\u8981\u5c0e\u5165 TDD\/BDD \u7684\u539f\u56e0\uff0c\u537b\u53c8\u4ee5\u5beb\u6e2c\u8a66\u6848\u4f8b\u7684\u300c\u6975\u7aef\u300d\u73fe\u8c61\u4f86\u53cd\u99c1 TDD \u7684\u50f9\u503c\uff0c\u986f\u5f97\u4e0d\u5408\u908f\u8f2f\u3002<\/p>\n<p>\u5728 XDite \u5beb\u7684\u56db\u9ede\u539f\u56e0\u4e2d\uff0c\u9664\u4e86\u7b2c\u4e8c\u9ede\u6709\u660e\u767d\u5730\u8868\u9054\u4e0d\u8a72\u5728 startup \u524d\u671f\u5c0e\u5165 TDD \u4e4b\u5916\uff0c\u5176\u5b83\u4e09\u9ede\u770b\u8d77\u4f86\u90fd\u597d\u50cf\u662f\u5728\u6279\u8a55\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u7684\u554f\u984c\uff08\u9084\u4e0d\u8ad6\u662f\u4e0d\u662f\u5148\u5beb\u6e2c\u8a66\u7a0b\u5f0f\uff09\u3002\u56e0\u6b64\uff0c\u9019\u6a23\u770b\u4f86\u5c31\u5f88\u4ee4\u540c\u4eba\u8cbb\u89e3\uff1b\u5982\u679c\u771f\u5982 XDite \u6240\u8aaa\u7684\u4ed6\u4e0d\u559c\u6b61\u4eba\u5011\u628a\u6e2c\u8a66\u548c TDD \u7d81\u5728\u4e00\u8d77\uff0c\u600e\u9ebc\u6703\u628a\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u51fa\u7684\u554f\u984c\u90fd\u7b97\u5728\u76f2\u76ee\u5c0e\u5165 TDD\/BDD \u7684\u982d\u4e0a\uff1f\u5982\u679c\u9023\u81ea\u5df1\u5728\u8ac7 TDD \u7684\u6642\u5019\uff0c\u90fd\u6703\u548c\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u7684\u554f\u984c\u727d\u626f\u4e0d\u6e05\uff0c\u90a3\u9ebc\u53c8\u600e\u9ebc\u80fd\u8cac\u602a\u5225\u4eba\u628a\u300c\u6e2c\u8a66\u300d\u548c\u300cTDD\u300d\u7d81\u5728\u4e00\u8d77\u5462\uff1f<\/p>\n<p>\u540c\u4eba\u8a8d\u70ba\u5728 XDite \u6240\u63d0\u5230\u7684\u56db\u9ede\u539f\u56e0\uff0c\u5b83\u5011\u4e26\u975e\u932f\u8aa4\uff0c\u800c\u662f\u4e26\u6c92\u8fa6\u6cd5\u7576\u4f5c\u53cd\u5c0d\u4e0d\u7ba1\u5982\u4f55\u90fd\u8981\u5c0e\u5165 TDD\/BDD \u7684\u539f\u56e0\u3002\u96d6\u7136\u5728\u7b2c\u4e00\u9ede\u539f\u56e0\u4e2d XDite \u4e26\u6c92\u6709\u8aaa\u932f\uff0c\u6709\u4e9b\u7a0b\u5f0f\u50cf\u662f\u4f7f\u7528\u8005\u754c\u9762\u7a0b\u5f0f\u7684\u6e2c\u8a66\u7a0b\u5f0f\u5c31\u5f88\u96e3\u5beb\uff0c\u56e0\u6b64\u7684\u78ba\u4e0d\u5927\u9069\u5408\u5f37\u884c\u5c0d\u4ed6\u5011\u9032\u884c TDD\u3002\u7136\u800c\uff0c\u7576\u9047\u5230\u9019\u7a2e\u60c5\u6cc1\u7684\u6642\u5019\uff0c\u4f7f\u7528\u8005\u9084\u662f\u53ef\u4ee5\u9078\u64c7\u7528 Mock Object \u628a\u90a3\u4e9b\u6c92\u8fa6\u6cd5\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u7684\u7269\u4ef6\u5340\u9694\u8d77\u4f86\uff0c\u7136\u5f8c\u91dd\u5c0d\u6700\u591a\u90e8\u5206\u53ef\u6e2c\u8a66\u5177\u6709\u6f14\u7b97\u908f\u8f2f\u7684\u7a0b\u5f0f\u4f86\u9032\u884c TDD\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u4f7f\u7528\u8005\u754c\u9762\u7a0b\u5f0f\u6c92\u8fa6\u6cd5\u5efa\u69cb TDD \u7684\u6e2c\u8a66\u7a0b\u5f0f\u5c0d\u65bc TDD \u800c\u8a00\uff0c\u4e26\u4e0d\u662f\u4ec0\u9ebc\u592a\u5927\u7684\u554f\u984c\u3002\u56e0\u70ba\u57fa\u672c\u4e0a TDD \u4e0d\u662f\u7528\u4f86\u7576\u505a\u6e2c\u8a66\u7684\u5de5\u5177\uff0c\u800c\u662f\u7528\u4f86\u8a2d\u8a08\u53ef\u4ee5\u9a57\u8b49\u7b26\u5408\u4f7f\u7528\u8005\u771f\u5be6\u9700\u8981\u7684\u5de5\u5177\u3002\u6240\u4ee5\u958b\u767c\u8005\u53ea\u8981\u91dd\u5c0d\u53ef\u6e2c\u8a66\u3001\u6216\u8a72\u6e2c\u8a66\u7684\u90e8\u5206\u5efa\u69cb\u6e2c\u8a66\u6848\u4f8b\u5c31\u5920\u4e86\u3002TDD \u7684\u76ee\u7684\u662f\u8981\u78ba\u8a8d\u82b1\u8cbb\u6700\u5c0f\u7684\u52aa\u529b\u4f86\u6eff\u8db3\u4f7f\u7528\u8005\u7684\u9700\u6c42\uff0c\u6e2c\u8a66\u6848\u4f8b\u6240\u8981\u6c42\u7684\u4e0d\u662f\u5168\u9762\u7684\u5b8c\u6574\uff0c\u800c\u53ea\u662f\u78ba\u8a8d\u9054\u5230\u525b\u597d\u9054\u5230\u6eff\u8db3\u9700\u6c42\u7684\u908a\u754c\uff0c\u9019\u5c07\u6703\u4fc3\u4f7f\u958b\u767c\u8005\u5148\u4ee5\u754c\u9762\u7684\u601d\u7dad\u4f86\u6574\u5408\u7cfb\u7d71\u5404\u8981\u4ef6\u3002\u5c0d TDD \u6e2c\u8a66\u6848\u4f8b\u6bd4\u8f03\u91cd\u8981\u7684\u554f\u984c\uff0c\u662f\u5982\u4f55\u8a2d\u8a08\u53ef\u6e2c\u5143\u4ef6\u8207\u975e\u53ef\u6e2c\u6a21\u7d44\u4e4b\u9593\u7684\u754c\u9762\u3002<\/p>\n<p>\u81f3\u65bc XDite \u63d0\u5230\u5c0d\u65bc\u67d0\u4e9b\u7a0b\u5f0f\u6c92\u6709\u5fc5\u8981\u5beb TDD \u7684\u6e2c\u8a66\u7a0b\u5f0f\uff0c\u540c\u4eba\u5012\u6703\u5f88\u597d\u5947\u6709\u4ec0\u9ebc\u5ba2\u89c0\u6a19\u6e96\u3001\u6216\u662f\u6709\u8ab0\u53ef\u4ee5\u6c7a\u5b9a\u4ec0\u9ebc\u7a0b\u5f0f\u6c92\u6709\u5efa\u69cb TDD \u6e2c\u8a66\u6848\u4f8b\u7684\u5fc5\u8981\uff1f\u5728\u540c\u4eba\u5c0e\u5165 TDD \u7684\u7d93\u9a57\u4e2d\uff0c\u5c31\u66fe\u7d93\u6709\u958b\u767c\u8005\u8981\u6c42 Business Object \u4e0d\u8981\u5beb TDD \u7684\u6e2c\u8a66\u6848\u4f8b\uff0c\u7576\u6642\u4ed6\u5011\u7684\u7406\u7531\u662f\u5b83\u5011\u6c92\u6709\u4ec0\u9ebc\u592a\u8907\u96dc\u7684\u908f\u8f2f\u3001\u800c\u4e14\u4e0d\u5927\u5bb9\u6613\u6703\u8b8a\u52d5\uff0c\u6240\u4ee5\u61c9\u8a72\u4e0d\u9700\u8981\u70ba\u5b83\u5011\u5efa\u69cb TDD \u7684\u6e2c\u8a66\u7a0b\u5f0f\u3002<\/p>\n<p>\u7136\u800c\uff0c\u4e8b\u5be6\u8b49\u660e\uff0c\u63a5\u53d7\u958b\u767c\u8005\u9019\u500b\u8981\u6c42\u7684\u6c7a\u5b9a\uff0c\u662f\u6574\u500b\u7cfb\u7d71\u767c\u751f\u82e6\u96e3\u7684\u958b\u59cb\u3002\u56e0\u70ba\u6240\u6709\u7684\u554f\u984c\u90fd\u5f9e Business Object \u7684\u7455\u75b5\u958b\u59cb\u5f15\u7206\uff0c\u76f4\u5230\u628a Business Object \u4e5f\u7d0d\u5165 TDD \u6e2c\u8a66\u6848\u4f8b\u7684\u7bc4\u570d\uff0c\u7cfb\u7d71\u7a0b\u5f0f\u7684\u54c1\u8cea\u624d\u80fd\u9054\u5230\u4ee4\u4eba\u63a5\u53d7\u7684\u6c34\u6e96\u3002<\/p>\n<p>\u518d\u4f86\uff0c\u5c0d\u65bc XDite \u552f\u4e00\u6709\u8a0e\u8ad6\u5230\u5c0e\u5165 TDD \u7684\u7b2c\u4e8c\u9ede\uff0c\u4ed6\u8a8d\u70ba startup \u524d\u671f\u4e0d\u61c9\u8a72\u5c0e\u5165 TDD\uff0c\u56e0\u70ba startup \u7684\u6210\u529f\u8981\u7d20\u662f\u300c\u5feb\u901f\u9a57\u8b49\u4f60\u7684 Idea \u7684\u6b63\u78ba\u6027\u300d\u3001\u300c\u5feb\u901f\u61c9\u4ed8\u5e02\u5834\u8b8a\u5316\u8abf\u6574\u7684\u901f\u5ea6\u300d\u3001\u300c\u5728\u5e02\u5834\u5edd\u6bba\u4e2d\u7bc0\u7701\u6210\u672c\u5b58\u6d3b\u4e0b\u4f86\u300d\u3002\u7136\u800c\uff0c\u540c\u4eba\u5c0d\u6b64\u537b\u8a8d\u70ba\u6070\u597d\u76f8\u53cd\uff0cTDD \u6b63\u662f\u300c\u5feb\u901f\u9a57\u8b49\u4f60\u7684 Idea \u7684\u6b63\u78ba\u6027\u300d\u3001\u300c\u5feb\u901f\u61c9\u4ed8\u5e02\u5834\u8b8a\u5316\u8abf\u6574\u7684\u901f\u5ea6\u300d\u3001\u300c\u5728\u5e02\u5834\u5edd\u6bba\u4e2d\u7bc0\u7701\u6210\u672c\u5b58\u6d3b\u4e0b\u4f86\u300d\u7684\u5229\u5668\u3002<\/p>\n<p>\u70ba\u4ec0\u9ebc\uff1f\u4e0d\u7528 TDD\uff0c\u4eba\u5011\u591a\u534a\u50be\u5411\u6703\u4ee5\u81ea\u5df1\u6240\u76f8\u4fe1\u7684\u57fa\u672c\u5047\u8a2d\u4f86\u89e3\u7b54\u554f\u984c\uff0c\u4e5f\u5c31\u662f\u4ee5\u81ea\u5df1\u7684\u7d93\u9a57\u6216\u719f\u6089\u7684\u4e8b\u7269\uff0c\u5f9e\u6838\u5fc3\u51fa\u767c\u4f86\u767c\u5c55\u89e3\u6c7a\u65b9\u6848\uff0c\u4ee5\u671f\u5f85\u628a\u4e8b\u60c5\u505a\u6b63\u78ba\u3002\u5728\u9019\u7a2e\u60c5\u5883\u4e0b\uff0c\u4eba\u5011\u901a\u5e38\u6703\u60f3\u5f97\u592a\u591a\uff0c\u800c\u5bb9\u6613\u6709\u904e\u5ea6\u8a2d\u8a08\uff08over engineering\uff09\u7684\u50be\u5411\uff0c\u800c TDD \u5247\u53ef\u4ee5\u8b93\u4eba\u56de\u6b78\u5230\u5f9e\u554f\u984c\u4f86\u6c7a\u5b9a\u7cfb\u7d71\u7684\u908a\u754c\uff0c\u518d\u4ee5\u6700\u7b26\u5408\u7d93\u6fdf\u6548\u76ca\u7684\u65b9\u5f0f\u4f86\u89e3\u6c7a\u554f\u984c\u3002\u6240\u4ee5\u81ea\u7136\u80fd\u5920\u4ee5\u6700\u7701\u6642\u53ca\u7701\u529b\u7684\u65b9\u5f0f\u4f86\u505a\u6b63\u78ba\u7684\u4e8b\u60c5\uff0c\u66f4\u53ef\u4ee5\u5728\u5e02\u5834\u4e0a\u7372\u5f97\u81f4\u52dd\u95dc\u9375\u3002<\/p>\n<p>XDite \u8aaa\u4ed6\u4e0d\u540c\u610f\u300c\u5feb\u901f\u9a57\u8b49\u4f60\u7684 Idea \u7684\u6b63\u78ba\u6027\u300d\u3001\u300c\u5feb\u901f\u61c9\u4ed8\u5e02\u5834\u8b8a\u5316\u8abf\u6574\u7684\u901f\u5ea6\u300d\u3001\u300c\u5728\u5e02\u5834\u5edd\u6bba\u4e2d\u7bc0\u7701\u6210\u672c\u5b58\u6d3b\u4e0b\u4f86\u300d\uff0c\u662f\u300c\u5c0d  TDD \u518d\u9069\u5408\u4e0d\u904e\u300d\u3002\u4f46\u540c\u4eba\u5f88\u6e05\u695a\u9019\u300c\u5c0d\u65bc\u719f\u6089 TDD \u7684\u958b\u767c\u8005\u800c\u8a00\u300d\u662f\u5f88\u81ea\u7136\u7684\uff0c\u986f\u7136 XDite  \u662f\u5ffd\u7565\u4e86\u6211\u8a8d\u70ba\u9019\u53e5\u8a71\u6210\u7acb\u7684\u524d\u63d0\uff0c\u5728\u65bc\u958b\u767c\u8005\u662f\u5426\u80fd\u719f\u6089\u4f7f\u7528 TDD \u7684\u7bc0\u594f\u3002<\/p>\n<p>\u5982\u679c\u958b\u767c\u8005\u719f\u6089 TDD  \u7684\u7bc0\u594f\uff0c\u7576\u4ed6\u6c92\u8fa6\u6cd5\u5beb\u51fa\u6e2c\u8a66\u7a0b\u5f0f\u7684\u6642\u5019\uff0c\u4ee3\u8868\u4ed6\u5c0d\u7cfb\u7d71\u6240\u8981\u89e3\u6c7a\u7684\u5177\u9ad4\u554f\u984c\u9084\u4e0d\u5920\u6e05\u695a\u3002\u70ba\u4e86\u8981\u5f04\u6e05\u695a\u4ed6\u5fc5\u9808\u66f4\u6e05\u695a\u53bb\u6e9d\u901a\uff0c\u800c\u4e14 TDD  \u7684\u7fd2\u6163\u6703\u4fc3\u4f7f\u4ed6\u50be\u5411\u4ee5\u4f7f\u7528\u8005\u7684\u60c5\u5883\u53bb\u6e9d\u901a\uff0c\u800c\u4e0d\u662f\u62ff\u529f\u80fd\u8981\u4f7f\u7528\u8005\u544a\u8a34\u4ed6\u8a72\u505a\u4ec0\u9ebc\u3002\u53ea\u6709\u5728\u958b\u767c\u8005\u77ad\u89e3\u4f7f\u7528\u8005\u7684\u60c5\u5883\u4e4b\u5f8c\uff0c\u958b\u767c\u8005\u624d\u80fd\u5177\u9ad4\u800c\u6b63\u78ba\u5730\u5beb\u51fa\u9a57\u8b49\u7a0b\u5f0f\u7684\u6e2c\u8a66\u6848\u4f8b\uff0c\u9019\u8aaa\u660e<strong>\u5728 TDD \u5beb\u7684\u6e2c\u8a66\u6848\u4f8b\u4e0d\u662f\u505a\u6e2c\u8a66\u800c\u662f\u5728\u505a\u8a2d\u8a08\uff0c\u800c\u4e14\u4e0d\u53ef\u80fd\u56e0\u70ba\u5beb TDD \u7684\u6e2c\u8a66\u6848\u4f8b\u800c\u8b93\u958b\u767c\u8005\u4e0d\u505a\u6e9d\u901a<\/strong>\u3002<\/p>\n<p>\u6240\u4ee5 XDite \u63d0\u51fa\u7684\u7b2c\u4e09\u9ede\u548c\u7b2c\u56db\u9ede\u539f\u56e0\uff0c\u6216\u8a31\u5c0d\u65bc\u505a\u6e2c\u8a66\u662f\u53ef\u80fd\u6210\u7acb\uff0c\u4f46\u5728 TDD \u7684\u60c5\u6cc1\u4e0b\u537b\u662f\u53ef\u80fd\u6027\u5f88\u4f4e\u3002\u56e0\u70ba\u9664\u4e86\u5efa\u69cb TDD \u7684\u6e2c\u8a66\u6848\u4f8b\u9700\u8981\u4e86\u89e3\u4f7f\u7528\u8005\u60c5\u5883\u66f4\u9700\u8981\u6e9d\u901a\u4e4b\u5916\uff0cTDD \u7684\u6e2c\u8a66\u6848\u4f8b\u672c\u8eab\u5c31\u662f\u6709\u7528\u7684\u6e9d\u901a\u5de5\u5177\u3002TDD \u7684\u6e2c\u8a66\u6848\u4f8b\u662f\u80fd\u5920\u7d93\u904e\u9a57\u8b49\u7684\u5177\u9ad4\u898f\u683c\u3001\u540c\u6642\u5b83\u4e5f\u662f\u76f8\u95dc\u5143\u4ef6\u3001API\u3001\u6216\u662f\u6a21\u7d44\u7684\u7bc4\u4f8b\u7a0b\u5f0f\u3002<\/p>\n<p>\u7576\u7136 TDD \u66f4\u4e0d\u6703\u6709\u592a\u8981\u6c42\u6e2c\u8a66\u7a0b\u5f0f\u7684\u5b8c\u7f8e\uff0c\u800c\u5ffd\u7565\u4fee\u6b63 bug \u7684\u554f\u984c\uff0c\u56e0\u70ba TDD \u7684\u6e2c\u8a66\u6848\u4f8b\u4e26\u4e0d\u8981\u6c42\u5b8c\u7f8e\uff0c\u800c\u53ea\u662f\u5920\u7528\u5c31\u597d\u3002\u800c\u4e14 TDD \u5728\u5be6\u969b\u4e0a\u53ef\u4ee5\u7528\u8f03\u4f4e\u7684\u6210\u672c\u4f86\u4fee\u6b63 bug\uff0c\u56e0\u70ba\u5b83\u80fd\u5920\u81ea\u52d5\u767c\u73fe\u932f\u8aa4\uff0c\u518d\u52a0\u4e0a\u91cd\u69cb\u80fd\u5920\u9010\u6f38\u6539\u5584\u7a0b\u5f0f\u78bc\u7684\u54c1\u8cea\uff0cTDD \u6c92\u8fa6\u6cd5\u78ba\u4fdd\u7a0b\u5f0f\u4e00\u5b9a\u4e0d\u6703\u51fa\u73fe\u932f\u8aa4\uff0c\u4f46\u5b83\u7e3d\u662f\u80fd\u5920\u4ee5\u8f03\u4f4e\u7684\u6210\u672c\u5f97\u5230\u8f03\u9ad8\u54c1\u8cea\u7684\u7a0b\u5f0f\u78bc\u3002<\/p>\n<h4>TDD \u5fc5\u9808\u5f88\u300c\u55ae\u7d14\u300d\uff1f<\/h4>\n<p>XDite \u8aaa TDD \u53ea\u5728\u67d0\u7a2e\u300c\u55ae\u7d14\u300d\uff08\u5c08\u6848\u6210\u54e1\u7d20\u8cea\u63a5\u8fd1\u4e00\u81f4\uff0c\u6c92\u6709 highly dynamic factor\uff0c\u76ee\u6a19\u55ae\u7d14\uff09\u7684\u5c08\u6848\u3001\u74b0\u5883\u3001\u5143\u4ef6\u4e0b\u9069\u7528\u3002\u4f46\u5728\u540c\u4eba\u5c0e\u5165 TDD \u7684\u6210\u529f\u7d93\u9a57\u4e2d\uff0c\u5f88\u4e0d\u5de7\u5c31\u6709\u5c08\u6848\u3001\u74b0\u5883\u3001\u5143\u4ef6\u4e0d\u55ae\u7d14\u7684\u4f8b\u5b50\u3002<\/p>\n<p>\u5728\u4e00\u500b\u570b\u5167\u77e5\u540d\u91d1\u63a7\u516c\u53f8\u7684\u9280\u884c\u5916\u532f\u7cfb\u7d71\u5efa\u7f6e\u5c08\u6848\uff0c\u8868\u9762\u4e0a\u5c08\u6848\u7684\u76ee\u7684\u662f\u70ba\u4e86\u5efa\u7f6e\u65b0\u4e00\u4ee3\u7684\u5916\u532f\u7cfb\u7d71\uff0c\u800c\u4e0d\u60f3\u53d7\u5236\u65bc\u820a\u6709\u7cfb\u7d71\u548c\u5ee0\u5546\u7684\u727d\u5236\uff0c\u4f46\u5be6\u969b\u4e0a\u5ba2\u6236\u9ad8\u5c64\u7684\u60f3\u671b\u662f\u8981\u67b6\u69cb\u80fd\u5920\u6574\u5408\u6a5f\u69cb\u5176\u5b83\u7cfb\u7d71\u7684\u57fa\u790e\u5efa\u8a2d\u5e73\u53f0\u3002\u7136\u800c\uff0c\u7576\u8a62\u554f\u5ba2\u6236\u9ad8\u5c64\u5c0d\u7cfb\u7d71\u76ee\u6a19\u7684\u610f\u898b\u6642\uff0c\u4ed6\u5011\u7d66\u7684\u56de\u7b54\u7adf\u662f\u300c\u628a\u7cfb\u7d71\u505a\u5230\u4ee4\u5ba2\u6236\u548b\u820c\u300d\u9019\u7a2e\u6709\u8aaa\u7b49\u65bc\u6c92\u8aaa\u7684\u7b54\u6848\u3002<\/p>\n<p>\u5c08\u6848\u7684\u6210\u54e1\u4e26\u975e\u4f86\u81ea\u958b\u767c\u7d44\u7e54\u7684\u55ae\u4e00\u90e8\u9580\uff0c\u800c\u662f\u5f9e\u5404\u500b\u7d44\u7e54\u6311\u9078\u5404\u7a2e\u7d93\u9a57\u548c\u80cc\u666f\u7684\u4eba\uff0c\u96d6\u7136\u6709\u5c08\u696d\u80fd\u529b\u8cc7\u6df1\u7684\u4eba\uff0c\u4f46\u4e5f\u6709\u5c0d\u76f8\u95dc\u6280\u8853\u4e0d\u719f\u6089\u7684\u6210\u54e1\u3002\u53ef\u4ee5\u60f3\u898b\uff0c\u5728\u5c08\u696d\u3001\u6280\u8853\u3001\u80fd\u529b\u3001\u80cc\u666f\u5982\u6b64\u61f8\u6b8a\u7684\u60c5\u6cc1\u4e0b\uff0c\u56e0\u70ba\u300c\u4eba\u7684\u554f\u984c\u300d\u800c\u767c\u751f\u5718\u968a\u885d\u7a81\u662f\u5f88\u96e3\u907f\u514d\u7684\uff0c\u9019\u500b\u5c08\u6848\u7684\u5718\u968a\u885d\u7a81\u7684\u8ab2\u984c\uff0c\u6b63\u597d\u63d0\u4f9b\u6211<a href=\"http:\/\/ndltd.ncl.edu.tw\/cgi-bin\/gs32\/gsweb.cgi\/login?o=dnclcdr&amp;s=id=%22095NTUS5396084%22.&amp;searchmode=basic\">\u78a9\u58eb\u8ad6\u6587<\/a>\u7684\u7814\u7a76\u52d5\u6a5f\u3002<\/p>\n<p>\u7576\u6642\u958b\u767c\u5718\u968a\u904e\u53bb\u6c92\u6709\u63a5\u89f8\u904e\u76f8\u95dc\u554f\u984c\u9818\u57df\u7684\u7d93\u9a57\uff08\u4e8b\u5be6\u4e0a\u662f\u5ba2\u6236\u6307\u5b9a\u4e0d\u5e0c\u671b\u627e\u5c0d\u6709\u91d1\u878d\u7d93\u9a57\u7684\u4eba\u4f86\u958b\u767c\uff0c\u516c\u53f8\u6c92\u6709\u958b\u767c\u904e\u76f8\u95dc\u9818\u57df\u7684\u5c08\u6848\uff0c\u800c\u6709\u4e0d\u932f\u7684\u7cfb\u7d71\u5efa\u7f6e\u5c08\u6848\uff0c\u624d\u662f\u5ba2\u6236\u6703\u9078\u64c7\u6211\u5011\u7684\u4e3b\u8981\u539f\u56e0\uff09\u3001\u958b\u767c\u74b0\u5883\u4e5f\u662f\u7528\u958b\u767c\u5718\u968a\u904e\u53bb\u5b8c\u5168\u6c92\u6709\u7d93\u9a57\u7684\u6280\u8853\u3002<\/p>\n<p>\u5ba2\u6236\u6307\u540d\u9019\u500b\u5c08\u6848\u8981\u4f7f\u7528 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\">SOA<\/a> \u67b6\u69cb\uff0c\u7531\u524d\u7aef <a href=\"http:\/\/en.wikipedia.org\/wiki\/JavaServer_Faces\">JSF<\/a> \u4ee5 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Webservice\">Web service<\/a> \u547c\u53eb\u5230 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Application_service\">Application Service<\/a>\uff0c\u547c\u53eb\u5f8c\u7aef\u76f4\u63a5\u5b58\u53d6 <a href=\"http:\/\/en.wikipedia.org\/wiki\/POJO\">POJOs<\/a> \u6216\u662f\u50b3\u9001\u8a0a\u606f\u7684\u670d\u52d9\u3001\u800c\u4e2d\u9593\u7269\u4ef6\u7684\u50b3\u905e\u5247\u900f\u904e <a href=\"http:\/\/en.wikipedia.org\/wiki\/XStream\">XStream<\/a> \u7684\u5e8f\u5217\u5316\u4ee5 <a href=\"http:\/\/en.wikipedia.org\/wiki\/JAX-RPC\">JAX-RPC<\/a> \u9032\u884c\u9060\u7aef\u50b3\u9001\u3001\u81f3\u65bc\u5143\u4ef6\u5305\u62ec\u8edf\u9ad4\u67b6\u69cb\u4e5f\u90fd\u662f\u5f9e\u7121\u5230\u6709\u6309\u7167\u7cfb\u7d71\u9700\u6c42\u9010\u6f38\u6f14\u5316\u6210\u578b\u3002<\/p>\n<p>\u5c08\u6848\u5718\u968a\u5927\u90e8\u5206\u7684\u4eba\u90fd\u6c92\u505a\u904e TDD\uff0c\u52a0\u4e0a\u9019\u9ebc\u591a\u300c\u9ad8\u5ea6\u52d5\u614b\u7684\u56e0\u7d20\u300d\uff0c\u800c\u5c0e\u5165 TDD \u7adf\u7136\u80fd\u5920\u6210\u529f\uff0c\u662f\u56e0\u70ba\u6211\u5011\u904b\u6c23\u597d\u55ce\uff1f\u9019\u9ebc\u8aaa\u5fc5\u9808\u5ffd\u7565\u958b\u767c\u7d44\u7e54\u5b88\u820a\u52e2\u529b\u5c0d\u65b0\u65b9\u6cd5\u8ad6\u3001\u67b6\u69cb\u548c\u6280\u8853\u7684\u53cd\u64b2\uff0c\u5426\u5247\u5c31\u5f88\u96e3\u89e3\u91cb\u516c\u53f8\u7e3d\u7d93\u7406\u7684\u8cea\u7591\u548c\u53cd\u5c0d\u3002\u5be6\u969b\u7684\u60c5\u6cc1\u662f\u6211\u5011\u4e0d\u662f\u904b\u6c23\u597d\uff0c\u800c\u662f\u7528\u5c0d\u7684\u65b9\u6cd5\u8b93\u6211\u5011\u505a\u597d\u6e96\u5099\u3002\u7576\u516c\u53f8\u9ad8\u5c64\u958b\u59cb\u8cea\u7591\u7684\u6642\u5019\uff0c\u6211\u5011\u65e9\u5c31\u5df2\u7d93\u900f\u904e TDD \u5feb\u901f\u9a57\u8b49\u6211\u5011\u7684\u65b9\u6cd5\u6c92\u554f\u984c\uff0c\u800c\u8b93\u7e3d\u7d93\u7406\u7121\u6cd5\u5426\u6c7a\u6211\u5011\u7684\u8a2d\u8a08\u6210\u679c\u3002\u9019\u8b93\u4eba\u76ee\u7779 TDD \u7684\u771f\u6b63\u50f9\u503c\u6240\u5728\uff0c\u4e0d\u662f\u78ba\u8a8d\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\uff0c\u800c\u662f\u8b93\u4eba\u6709\u52c7\u6c23\u4e26\u4fdd\u6301\u7c21\u55ae\u7684\u7bc0\u594f\u3002<\/p>\n<p>\u540c\u4eba\u8a8d\u70ba TDD \u7684\u6210\u529f\u4e26\u4e0d\u5728 TDD \u81ea\u52d5\u78ba\u8a8d\u300c\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u300d\uff0c\u800c\u5728\u65bcTDD \u8b93\u4eba\u6709\u52c7\u6c23\u628a\u4e8b\u60c5\u505a\u597d\uff0c\u8b93\u4eba\u9075\u5faa\u826f\u597d\u89e3\u6c7a\u554f\u984c\u7684\u7bc0\u594f\u548c\u7d00\u5f8b\u3002\u90a3\u5c31\u662f\uff1a1.\u78ba\u8a8d\u554f\u984c\uff1b2.\u4f9d\u7167\u554f\u984c\u60c5\u5883\uff0c\u767c\u5c55\u7528\u4f86\u9a57\u8b49\u65b9\u6848\u7684\u6a19\u6e96\uff1b3.\u8a2d\u8a08\u65b9\u6848\u4e26\u57f7\u884c\u9a57\u8b49\uff0c\u4ee5\u9054\u7b26\u5408\u9a57\u8b49\u6a19\u6e96\uff1b4.\u8996\u7d44\u7e54\u9700\u8981\u6539\u5584\u65b9\u6848\uff0c\u518d\u6b21\u57f7\u884c\u9a57\u8b49\u4ee5\u78ba\u8a8d\u7b26\u5408\u6a19\u6e96\u3002<\/p>\n<p>\u4f9d\u7167\u9019\u6a23\u7684\u7bc0\u594f\u548c\u7d00\u5f8b\uff0c\u53ef\u4ee5\u8b93\u4eba\u5728\u78ba\u8a8d\u65b9\u6848\u505a\u6b63\u78ba\u4e4b\u524d\uff0c\u5df2\u7d93\u9a57\u8b49\u65b9\u6848\u662f\u7528\u4f86\u89e3\u6c7a\u6b63\u78ba\u554f\u984c\uff0c\u4ee5\u907f\u514d\u904e\u5ea6\u8a2d\u8a08\u548c\u8a2d\u8a08\u4e0d\u8db3\u7684\u5169\u96e3\u3002\u9019\u6b63\u662f\u50b3\u7d71\u65b9\u6cd5\u5f88\u96e3\u907f\u514d\u7684\u554f\u984c\uff1b\u5373\u4f7f\u958b\u767c\u8005\u64c1\u6709\u719f\u7df4\u7684\u958b\u767c\u6280\u8853\uff0c\u4f46\u5c11\u4e86\u5728\u4e8b\u60c5\u505a\u5c0d\u4e4b\u524d\u5148\u505a\u6b63\u78ba\u4e8b\u60c5\u7684\u7d00\u5f8b\uff0c\u54c1\u8cea\u554f\u984c\u6b63\u662f\u56e0\u6b64\u800c\u53e2\u751f\u3002<\/p>\n<h4>\u73fe\u5be6\u7684\u771f\u76f8<\/h4>\n<p>XDite \u7528\u300c\u7406\u60f3\u72c0\u6cc1\u300d\u4f86\u53cd\u99c1\u7528 TDD \u4f86\u7784\u6e96\u3001\u5c04\u64ca\u3001\u4fee\u6b63\u5f8c\u518d\u5c04\u64ca\u7684\u89c0\u5ff5\uff0c\u4ed6\u8aaa\u5f88\u591a\u6642\u5019\uff0c Team \u88e1\u9762\u6709\u958b\u767c\u8005\u4e0d\u80fd\u5f37\u8feb\u5c0e\u5165 TDD \u7684\u74b0\u7bc0\uff0c\u5f37\u884c\u63a8\u52d5\u53ea\u662f\u4e92\u76f8\u7d46\u5012\u548c\u62d6\u57ae\u5f7c\u6b64\u7684\u6642\u7a0b\uff0c\u9019\u662f\u6240\u8b02\u7684\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u3002\u9019\u9ebc\u8aaa\u4f3c\u4e4e\u662f\u610f\u5473\u4e86 XP \u654f\u6377\u65b9\u6cd5\u7684 TDD \u5be6\u52d9\u7121\u6cd5\u5728\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u5be6\u884c\uff0c\u800c\u662f\u300c\u7406\u60f3\u72c0\u6cc1\u300d\u3002\u9019\u7a2e\u8aaa\u6cd5\u5c0d\u540c\u4eba\u5176\u5be6\u4e26\u4e0d\u964c\u751f\uff0c\u5c31\u50cf\u6211\u5728\u3008<a href=\"https:\/\/lifeparty.idv.tw\/blog\/archives\/163\">\u7f85\u99ac\u4e0d\u662f\u4e00\u5929\u9020\u6210\u7684<\/a>\u3009\u9019\u7bc7\u6587\u7ae0\u6240\u63d0\u5230\u7684\u60c5\u5f62\uff1a<\/p>\n<blockquote><p>\u540c\u4eba\u5076\u723e\u6703\u8207 X \u541b\u5206\u4eab\u6211\u7684\u5de5\u4f5c\u5fc3\u5f97\uff0c\u4ed6\u5f88\u7fa1\u6155\u6211\u80fd\u5920\u5805\u6301\u8a2d\u8a08\u7684\u7406\u60f3\uff0c\u9075\u5faa\u597d\u7684\u8a2d\u8a08\u539f\u5247\u53ca\u958b\u767c\u65b9\u6cd5\u767c\u5c55\u51fa\u8edf\u9ad4\u67b6\u69cb\uff0c\u50cf\u4ed6\u5c31\u6c92\u6709\u9019\u6a23\u7684\u6a5f\u6703\u3002\u800c\u548c\u540c\u5b78\u5206\u4eab\u6211\u7684\u5de5\u4f5c\u6210\u679c\u6642\uff0c\u4ed6\u5247\u8a8d\u70ba\u6211\u5805\u6301\u8a2d\u8a08\u7406\u5ff5\u53ef\u4ee5\u6210\u529f\uff0c\u662f\u56e0\u70ba\u6211\u5011\u516c\u53f8\u6709\u8db3\u5920\u7684\u8cc7\u6e90\u53ef\u4ee5\u8b93\u6211\u5011\u73a9\uff0c\u63db\u6210\u662f\u5c0f\u516c\u53f8\uff0c\u5c31\u4e0d\u6703\u6709\u9019\u6a23\u7684\u6210\u529f\u689d\u4ef6\u3002<\/p><\/blockquote>\n<p>\u5176\u5be6\u540c\u4eba\u5728\u90a3\u7bc7\u6587\u7ae0\u6240\u63d0\u5230\u7684\u6982\u5ff5\u3001\u67b6\u69cb\u548c\u6280\u8853\u7684\u9a57\u8b49\uff0c\u6240\u7528\u7684\u65b9\u6cd5\u6b63\u662f TDD\u3002\u4f46\u540c\u4eba\u5206\u4eab\u6210\u529f\u7d93\u9a57\u770b\u5230\u4eba\u5011\u7684\u53cd\u61c9\u537b\u767c\u73fe\uff0c\u9664\u4e86\u7fa1\u6155\u548c\u4f69\u670d\u4e4b\u5916\uff0c\u591a\u534a\u662f\u8a8d\u70ba\u6211\u525b\u597d\u9047\u5230\u8db3\u5920\u7684\u689d\u4ef6\u4f86\u652f\u6301\u6211\u5be6\u8e10\u7406\u60f3\uff0c\u800c\u4ed6\u5011\u7684\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u4e00\u5b9a\u4e0d\u5141\u8a31\u4ed6\u5011\u9019\u6a23\u505a\u3002<\/p>\n<p>\u5047\u5982\u771f\u7684\u662f\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u4e0d\u5141\u8a31\u958b\u767c\u8005\u5c0e\u5165 TDD\uff0c\u90a3\u9ebc\u9762\u5c0d\u958b\u767c\u51fa\u4f86\u7684\u8edf\u9ad4\u54c1\u8cea\u4e0d\u5f70\uff0c\u4ed6\u5011\u63a1\u53d6\u4e86\u4ec0\u9ebc\u884c\u52d5\u4f86\u9762\u5c0d\u73fe\u5be6\u5462\uff1f\u4ee5\u540c\u4eba\u5728\u4e00\u5bb6\u958b\u767c\u8edf\u9ad4\u7522\u54c1\u7684 startup \u516c\u53f8\u770b\u5230\u7684\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u4f86\u770b\uff0c\u4ed6\u5011\u53ea\u662f\u8a66\u8457\u66f4\u52aa\u529b\u800c\u8f9b\u82e6\u5730\u628a\u904e\u53bb\u7684\u5de5\u4f5c\u505a\u5f97\u66f4\u597d\uff0c\u53ef\u662f\u5f77\u5f7f\u90fd\u4e00\u76f4\u4e0d\u80fd\u5982\u9858\u3002<\/p>\n<p>\u540c\u4eba\u5728\u90a3\u5bb6\u516c\u53f8\u5206\u4eab\u904e\u6211\u7684 TDD \u7684\u7d93\u9a57\uff0cRD \u7d93\u7406\u8a8d\u70ba\u6216\u8a31\u61c9\u8a72\u8981\u505a TDD\uff0c\u53ef\u662f\u56e0\u70ba\u4f7f\u7528\u8cc7\u6599\u5eab\u7684\u95dc\u4fc2\uff0c\u6703\u8b93 TDD \u5f88\u96e3\u505a\u5230\u6216\u662f\u505a\u4e86\u6c92\u6709\u592a\u5927\u7684\u6548\u76ca\u3002\u540c\u4eba\u4e26\u4e0d\u592a\u77ad\u89e3\u70ba\u4ec0\u9ebc\u4ed6\u6703\u6709\u9019\u7a2e\u9867\u616e\uff0c\u56e0\u70ba\u6309\u7167\u6211\u904e\u53bb\u7684\u7d93\u9a57\uff0c\u8cc7\u6599\u5eab\u7684\u90e8\u5206\u53ef\u4ee5\u7528 Mock Object \u6216\u662f Hash Map \u7248\u672c\u7684\u5be6\u4f5c\u4f86\u5340\u9694\u958b\u4f86\uff0c\u800c\u4e14\u9019\u6a23\u505a\u6709\u512a\u5316\u8a2d\u8a08\u7684\u597d\u8655\u3002\u4e0d\u904e\uff0c\u540c\u4eba\u4e0d\u4fbf\u516c\u958b\u8cea\u7591\u4e3b\u7ba1\u5c0d TDD \u7684\u9867\u616e\uff0c\u800c\u662f\u9078\u64c7\u5c0a\u91cd\u4ed6\u5728\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u4e0b\u7684\u6c7a\u5b9a\uff1b\u7b49\u5230\u9069\u7576\u7684\u6642\u6a5f\u518d\u5c0e\u5165 TDD\uff0c\u9664\u4e86\u773c\u4e0b\u7684\u554f\u984c\u9700\u8981\u88ab\u514b\u670d\u4e4b\u5916\uff0c\u9084\u8981\u8b93\u958b\u767c\u8005\u5011\u7684\u6b65\u8abf\u90fd\u80fd\u4e00\u81f4\u3002<\/p>\n<p>\u76f4\u5230\u540c\u4eba\u96e2\u958b\u90a3\u5bb6\u516c\u53f8\u4e4b\u524d\uff0cTDD \u90fd\u662f\u4e00\u76f4\u88ab\u4eba\u5011\u639b\u5728\u5634\u5df4\u4e0a\u8aaa\uff0c\u4f46\u5f9e\u4f86\u672a\u66fe\u771f\u6b63\u53bb\u505a\u3002\u7136\u800c\uff0c\u96a8\u8457\u9700\u6c42\u6108\u4f86\u6108\u591a\uff0c\u7a0b\u5f0f\u78bc\u4e5f\u6108\u4f86\u6108\u8907\u96dc\u3002\u9019\u6642\u5019\uff0c\u95dc\u65bc\u8edf\u9ad4\u54c1\u8cea\u6108\u4f86\u6108\u6bb7\u5207\u7684\u8b70\u984c\u4fbf\u662f\u5143\u4ef6\u5f88\u96e3\u88ab\u7368\u7acb\u6e2c\u8a66\uff0c\u800c\u662f\u5fc5\u9808\u6574\u584a\u5408\u5728\u4e00\u8d77\u624d\u80fd\u6e2c\u8a66\uff0c\u4f46\u9019\u5728\u9664\u932f\u4e0a\u5f88\u6c92\u6709\u6548\u7387\u3002\u65bc\u662f\u5404\u500b\u5143\u4ef6\u8981\u7368\u7acb\u6e2c\u8a66\u8b8a\u6210\u4e00\u9805\u975e\u5e38\u91cd\u8981\u7684\u9700\u6c42\uff0c\u4f46\u6eff\u8db3\u6b64\u9805\u9700\u6c42\u6700\u5927\u7684\u554f\u984c\u4fbf\u662f\u8edf\u9ad4\u67b6\u69cb\u9700\u8981\u52d5\u5927\u5200\uff0c\u800c\u66f4\u7dca\u6025\u7684\u56b4\u91cd\u554f\u984c\u4fbf\u662f\u6709\u4e00\u5927\u5806\u5728\u5ba2\u6236\u7aef\u7684 P1 \u548c P2 \u7684 bug \u9700\u8981\u89e3\u6c7a\u3002<\/p>\n<p>\u65bc\u662f\u5728\u9f90\u5927\u7684\u6642\u7a0b\u548c\u54c1\u8cea\u58d3\u529b\u4e0b\uff0c\u5e38\u8b93 RD \u548c QA \u6c92\u8fa6\u6cd5\u5728\u6642\u9650\u5167\u7522\u51fa\u7b26\u5408\u54c1\u8cea\u8981\u6c42\u7684\u8edf\u9ad4\u3002\u6211\u5011\u7528\u7684\u65b9\u6cd5\uff0c\u5c31\u662f\u4e00\u6b21\u53c8\u4e00\u6b21\u7684\u8b93 RD \u4ee5<a href=\"http:\/\/en.wikipedia.org\/wiki\/BDUF\">\u5927\u898f\u6a21\u524d\u7f6e\u8a2d\u8a08<\/a>\uff08BDUF\uff09\uff0c\u7136\u5f8c\u7b49\u7a0b\u5f0f\u958b\u767c\u5b8c\u6210\u4e4b\u5f8c\u518d handover \u7d66 QA\u3002\u96d6\u7136\u8868\u9762\u4e0a\u516c\u53f8\u63a1\u7528\u654f\u6377\u7684\u958b\u767c\u6d41\u7a0b\uff0c\u6bcf\u5929\u5728\u56fa\u5b9a\u6642\u9593\u53ec\u958b <a href=\"http:\/\/en.wikipedia.org\/wiki\/Stand-up_meeting\">Daily Stand-Up Meeting<\/a>\uff0c\u4f46\u662f\u770b\u8d77\u4f86\u5c08\u6848\u7ba1\u7406\u8005\u7684\u8166\u888b\u4e26\u6c92\u6709\u63db\u6210\u654f\u6377\u7684\u601d\u7dad\uff0c\u4ecd\u7136\u662f\u671f\u5f85\u4ee5\u66f4\u7cbe\u78ba\u7684\u9810\u6e2c\u4f86\u6539\u5584\u5c08\u6848\u7684\u9032\u5c55\uff0c\u5373\u4f7f\u662f\u4ed6\u5011\u5c0d\u5c08\u6848\u72c0\u6cc1\u7684\u9810\u4f30\u5f9e\u4f86\u6c92\u6709\u6e96\u78ba\u904e\u3002<\/p>\n<p>\u5728\u9019\u7a2e\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u4e0b\uff0c\u96d6\u7136\u540c\u4eba\u5df2\u7d93\u63d0\u9192 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Scrum_%28development%29\">Scrum<\/a> \u504f\u91cd\u7ba1\u7406\u9762\u800c\u975e\u5de5\u7a0b\u9762\uff0c\u4f46\u7531\u65bc RD \u7d93\u7406\u5c0d TDD \u4ecd\u7136\u6709\u7591\u616e\u800c\u4e0d\u6562\u8cbf\u7136\u63a1\u7528\u5b83\u4f86\u63d0\u6607\u7a0b\u5f0f\u7684\u54c1\u8cea\u3002\u6574\u500b\u958b\u767c\u5718\u968a\u53ea\u662f\u4e00\u904d\u53c8\u4e00\u904d\u5730\u7528\u548c\u6628\u5929\u7528\u904e\u7684\u65b9\u6cd5\uff0c\u4f86\u8a66\u5716\u89e3\u6c7a\u4eca\u5929\u76f8\u540c\u7684\u554f\u984c\uff0c\u4f46\u6211\u767c\u73fe\u5c08\u6848\u7ba1\u7406\u8005\u597d\u50cf\u4e0d\u5408\u908f\u8f2f\u5730\u5e0c\u671b\u5f97\u5230\u4e0d\u4e00\u6a23\u7684\u7d50\u679c\u3002\u5b83\u6b63\u7b26\u5408\u611b\u56e0\u65af\u5766\u5c0d\u7cbe\u795e\u932f\u4e82\u6240\u4e0b\u7684\u5b9a\u7fa9\uff1a<\/p>\n<blockquote><p>\u4e00\u904d\u53c8\u4e00\u904d\u505a\u540c\u6a23\u7684\u4e8b\uff0c\u537b\u671f\u5f85\u4e0d\u540c\u7684\u7d50\u679c\u3002<\/p><\/blockquote>\n<p>\u540c\u4eba\u770b\u5230\u5c08\u6848\u7ba1\u7406\u8005\u5c0d\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u7684\u7406\u89e3\u662f\uff0c\u56e0\u70ba\u958b\u767c\u8005\u5728\u4e8b\u524d\uff08\u4e0d\u7528\u5fc3\u800c\uff09\u60f3\u5f97\u4e0d\u5920\u591a\uff0c\u6240\u4ee5\u4e0d\u80fd\u5728\u4e00\u958b\u59cb\u5c31\u628a\u4e8b\u60c5\u505a\u5c0d\uff0c\u800c\u5c0e\u81f4\u8edf\u9ad4\u904b\u884c\u767c\u751f\u932f\u8aa4\u3002\u4f46\u540c\u4eba\u8a8d\u70ba\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u7684\u771f\u76f8\u537b\u662f\uff0c\u95dc\u9375\u5728\u65bc\u958b\u767c\u8005\u6c92\u6709\u8fa6\u6cd5\u505a\u6b63\u78ba\u7684\u4e8b\u60c5\uff0c\u5728\u5f88\u591a\u6642\u5019\u8a2d\u60f3\u4e86\u592a\u591a\u7121\u8b02\u7684\u554f\u984c\uff0c\u800c\u628a\u5fc3\u529b\u5206\u6563\u5728\u8655\u7406\u7463\u788e\u7684\u4e8b\u60c5\uff0c\u800c\u7121\u6cd5\u5c08\u6ce8\u5728\u95dc\u9375\u554f\u984c\u4e0a\u601d\u8003\u3002<\/p>\n<p>\u9019\u662f\u56e0\u70ba\u7121\u6cd5\u5feb\u901f\u9a57\u8b49\u65b9\u6848\u5c0d\u89e3\u6c7a\u554f\u984c\u7684\u6548\u679c\uff0c\u5f80\u5f80\u5728\u958b\u767c\u8005\u82b1\u8cbb\u5927\u91cf\u5fc3\u529b\u812b\u96e2\u300c<a href=\"http:\/\/zh.wikipedia.org\/zh-tw\/%E4%BA%BA%E6%9C%88%E7%A5%9E%E8%AF%9D#.E7.84.A6.E6.B2.B9.E5.9D.91\">\u7126\u6cb9\u5751<\/a>\u300d\u4e4b\u5f8c\uff0c\u624d\u767c\u73fe\u771f\u5be6\u60c5\u6cc1\u6709\u5f88\u591a\u5730\u65b9\u662f\u7121\u5148\u7121\u6cd5\u9810\u6599\u5230\u7684\u3002\u63db\u53e5\u8a71\u8aaa\uff0c\u9019\u4e0d\u662f\u958b\u767c\u8005\u505a\u7684\u6771\u897f\u4e0d\u5c0d\u6216\u662f\u4e0d\u597d\uff0c\u800c\u662f\u9762\u5c0d\u9069\u61c9\u8b8a\u5316\uff0c\u6c92\u6709\u628a\u63e1\u300c\u52d5\u4f5c\u8981\u5feb\u3001\u884c\u52d5\u8981\u5c0f\u300d<span class=\"footnote\">\u66fe\u662d\u5c4f\u8b6f\uff082006\u5e74\uff09\uff0c\u300a<a href=\"http:\/\/www.books.com.tw\/exep\/prod\/booksfile.php?item=0010341309\">\u6eab\u4f2f\u683c\u7684\u7cfb\u7d71\u7ba1\u7406\u5b78\uff1a\u7cfb\u7d71\u5316\u601d\u8003\uff08\u7b2c\u4e00\u5377\uff09<\/a>\u300b\uff0c\u7d93\u6fdf\u65b0\u6f6e\u793e\u3002<\/span>\u7684\u539f\u5247\u3002<\/p>\n<p>\u7576\u7136\u5728\u300c\u73fe\u5be6\u72c0\u6cc1\u300d\u4e0b\uff0c\u5c0e\u5165 TDD \u7684\u5be6\u52d9\u4e0d\u898b\u5f97\u771f\u7684\u80fd\u5920\u6709\u6548\u5730\u89e3\u6c7a\u554f\u984c\uff0c\u5c0d\u65bc\u4efb\u4f55\u4e00\u7a2e\u958b\u767c\u65b9\u6cd5\u8ad6\uff0c\u6211\u5011\u90fd\u4e0d\u61c9\u8a72\u76f2\u76ee\u5c0e\u5165\uff0c\u800c\u662f\u8981\u5f04\u6e05\u695a\u5b83\u7684\u9069\u7528\u7bc4\u570d\u548c\u9650\u5236\uff0cTDD \u7576\u7136\u4e5f\u4e0d\u4f8b\u5b50\u3002\u7136\u800c\uff0c\u5c0d\u65bc\u628a TDD \u548c\u505a\u6e2c\u8a66\u6df7\u70ba\u4e00\u8ac7\uff0c\u7136\u5f8c\u85c9\u6b64\u63a8\u6e2c\u5718\u968a\u4e2d\u300c\u4e00\u5b9a\u300d\u6709 TDD \u4e0d\u80fd\u5f37\u8feb\u5c0e\u5165\u7684\u74b0\u7bc0\uff0c\u5f37\u5236\u63a8\u884c\u53ea\u6703\u4e92\u76f8\u7d46\u5012\u548c\u62d6\u57ae\u5f7c\u6b64\u6642\u7a0b\uff0c\u540c\u4eba\u8a8d\u70ba\u9019\u662f\u626d\u66f2 TDD \u7576\u6210\u505a\u6e2c\u8a66\u7684\u7e46\u8aa4\u3002<\/p>\n<p>\u4f7f\u7528 TDD \u4f86\u958b\u767c\u8edf\u9ad4\uff0c\u958b\u767c\u8005\u5be6\u969b\u82b1\u8cbb\u5728\u6e2c\u8a66\u6848\u4f8b\u7684\u6642\u9593\u4e26\u4e0d\u6703\u5f88\u9577\u3002\u56e0\u70ba\u7a0b\u5f0f\u958b\u767c\u8005\u4e0d\u53ef\u80fd\u53ea\u5beb\u7a0b\u5f0f\u800c\u4e0d\u9a57\u8b49\u81ea\u5df1\u7684\u7a0b\u5f0f\u78bc\uff0c\u5426\u5247\u7121\u6cd5\u78ba\u8a8d\u7a0b\u5f0f\u7b26\u5408\u898f\u683c\uff0c\u5c31\u4e0d\u80fd\u8a8d\u5b9a\u4ed6\u5df2\u7d93\u5beb\u5b8c\u7a0b\u5f0f\u4e86\u3002\u65e2\u7136\u9a57\u8b49\u7a0b\u5f0f\u78bc\u662f\u4ed6\u7684\u8cac\u4efb\uff0c\u90a3\u9ebc\u6e2c\u8a66\u5148\u884c\u53ea\u662f\u78ba\u8a8d\u7a0b\u5f0f\u78bc\u7b26\u5408\u898f\u683c\u7684\u4e00\u7a2e\u65b9\u5f0f\uff0c\u9019\u6a23\u53ea\u662f\u628a\u5f8c\u9762\u61c9\u8a72\u57f7\u884c\u7684\u5de5\u4f5c\u5148\u505a\u597d\uff0c\u4e26\u4e0d\u6703\u589e\u52a0\u958b\u767c\u8005\u984d\u5916\u7684\u5de5\u4f5c\u91cf\u3002<\/p>\n<p>\u56e0\u6b64\u5efa\u69cb TDD \u7684\u6e2c\u8a66\u6848\u4f8b\u4e26\u4e0d\u9700\u8981\u984d\u5916\u7684\u5de5\u4f5c\u91cf\u3001\u4e5f\u4e0d\u5927\u53ef\u80fd\u6703\u56e0\u70ba\u57f7\u8ff7\u65bc\u6e2c\u8a66\u800c\u6c92\u6709\u82b1\u6642\u9593\u6e9d\u901a\u5171\u901a\u67b6\u69cb\u3001\u6216\u662f\u7a0b\u5f0f\u7684 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Debug\">debug<\/a> \u6642\u9593\u3002\u53c8\u80fd\u7bc0\u7701\u958b\u767c\u8005\u56e0\u70ba\u60f3\u592a\u591a\u800c\u591a\u82b1\u8cbb\u904e\u5ea6\u8a2d\u8a08\u7684\u6642\u9593\uff0c\u800c\u4e14\u53ef\u4ee5\u652f\u6301\u9a57\u8b49\u7a0b\u5f0f\u7684\u91cd\u69cb\u4f86\u52a0\u5f37\u7a0b\u5f0f\u7684\u7d50\u69cb\uff0c\u4e0d\u6703\u56e0\u70ba\u589e\u52a0\u529f\u80fd\u800c\u5f71\u97ff\u7a0b\u5f0f\u78bc\u7684\u54c1\u8cea\u3002<\/p>\n<p>TDD \u5728\u958b\u767c\u7a0b\u5f0f\u4e4b\u524d\u5148\u5beb\u6e2c\u8a66\u6848\u4f8b\u7684\u7528\u610f\uff0c\u4e26\u4e0d\u662f\u70ba\u4e86\u53ca\u65e9\u81ea\u52d5\u6293\u51fa\u554f\u984c\u3002\u96d6\u7136\u9019\u901a\u5e38\u662f\u63a1\u7528 TDD \u80fd\u5920\u7522\u751f\u7684\u9644\u52a0\u50f9\u503c\uff0c\u4f46 TDD \u5148\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u7684\u7cbe\u795e\u662f\u70ba\u4e86\u9a57\u8b49\u672a\u4f86\u65b9\u6848\u80fd\u5920\u7b26\u5408\u9700\u6c42\uff0c\u4ee5\u78ba\u8a8d\u65b9\u6848\u662f\u5728\u6b63\u78ba\u7684\u547d\u984c\u65b9\u5411\u4e0a\u767c\u5c55\u3002\u958b\u767c\u8005\u767c\u5c55\u89e3\u6c7a\u65b9\u6848\uff0c\u6bcf\u524d\u9032\u4e00\u5c0f\u6b65\uff0c\u90fd\u80fd\u5920\u77e5\u9053\u9019\u4e00\u6b65\u96e2\u4ed6\u7684\u76ee\u6a19\u66f4\u63a5\u8fd1\u6216\u662f\u9060\u96e2\uff0c\u9019\u8b93\u4ed6\u53ef\u4ee5\u99ac\u4e0a\u63a1\u53d6\u884c\u52d5\u4f86\u8abf\u6574\u65b9\u5411\u4ee5\u6e1b\u5c11\u504f\u5dee\u3002\u65bc\u662f\u958b\u767c\u8005\u53ef\u4ee5\u505a\u5230\u771f\u6b63\u7684\u9762\u5c0d\u73fe\u5be6\uff0c\u9019\u6b63\u662f\u638c\u63e1\u9069\u61c9\u6539\u8b8a\u884c\u52d5\u8981\u5feb\u3001\u52d5\u4f5c\u8981\u5c0f\u7684\u539f\u5247\u3002<\/p>\n<h4>\u4e0d\u660e\u7a76\u7406\u8005\u7684\u672a\u5617\u77e5\u7fa9<\/h4>\n<p>\u63a1\u7528 TDD \u4f86\u958b\u767c\u8edf\u9ad4\uff0c\u4e26\u4e0d\u80fd\u505a\u5230\u78ba\u4fdd\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u3001\u6216\u662f\u964d\u4f4e\u7a0b\u5f0f\u51fa\u932f\u7684\u6a5f\u7387\u3002\u56e0\u70ba\u8981\u505a\u5230\u9019\u500b\u76ee\u7684\u4f60\u5c31\u5fc5\u9808\u300c\u9810\u6e2c\u300d\u7a0b\u5f0f\u6703\u767c\u751f\u554f\u984c\u7684\u4e00\u5207\u53ef\u80fd\u6027\uff0c\u4e26\u4e14\u9810\u5148\u628a\u5b83\u5011\u90fd\u653e\u5230\u6e2c\u8a66\u6848\u4f8b\u4e2d\uff0c\u624d\u6709\u53ef\u80fd\u9054\u5230\u9019\u4e9b\u76ee\u7684\u3002\u7136\u800c\uff0c\u4e8b\u5148\u505a\u9810\u6e2c\u5df2\u7d93\u9055\u53cd\u4e86\u654f\u6377\u958b\u767c\u7684\u57fa\u672c\u539f\u5247\uff0c\u4e5f\u9055\u53cd\u4e86 TDD \u7684\u57fa\u672c\u7cbe\u795e\uff0c\u8a8d\u70ba TDD \u7684\u76ee\u7684\u662f\u70ba\u4e86\u78ba\u4fdd\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\u3001\u6216\u662f\u964d\u4f4e\u7a0b\u5f0f\u51fa\u932f\u7684\u6a5f\u7387\u800c\u628a\u5b83\u548c\u505a\u6e2c\u8a66\u6df7\u70ba\u4e00\u8ac7\uff0c\u9019\u53ea\u662f\u4e0d\u660e\u7a76\u7406\u7684\u4eba\u672a\u5617\u77e5\u7fa9\u7684\u504f\u898b\u3002<\/p>\n<p>\u5c31\u50cf\u5728\u7db2\u8def\u793e\u7fa4\u4e2d\uff0c<a href=\"http:\/\/www.artima.com\/weblogs\/viewpost.jsp?thread=216434\">James O. Coplien \u4ee5\u300c\u5b97\u6559\u4fe1\u4ef0\u300d\u5f62\u5bb9 TDD \u7684\u8ff7\u601d<\/a>\u7b97\u662f\u6700\u5178\u578b\u7684\u4ee3\u8868\uff0c\u5b83\u4ee5 TDD \u4e0d\u53ef\u80fd\u9054\u5230\u6e2c\u8a66\u826f\u597d\u7684\u6db5\u84cb\u7387\u4f86\u6279\u8a55\u5b83\u7684\u6548\u7387\u4e0d\u5982\u50b3\u7d71\u7684\u8edf\u9ad4\u5de5\u7a0b\u65b9\u6cd5\u3002\u540c\u4eba\u66fe\u7d93<a href=\"https:\/\/lifeparty.idv.tw\/blog\/archives\/266\">\u8a55\u8ad6\u904e\u9019\u7a2e\u89c0\u9ede\u7684\u7e46\u8aa4<\/a>\uff1a<\/p>\n<blockquote><p>\u54c1\u8cea\u7684\u554f\u984c\u4e26\u4e0d\u662f\u6e2c\u8a66\u6548\u7387\u592a\u4f4e\uff1b\u800c\u662f\u958b\u59cb\u6e2c\u8a66\u7684\u6642\u9593\u62d6\u5f97\u592a\u4e45\uff0c\u4f7f\u5f97\u5206\u6790\u8a2d\u8a08\u968e\u6bb5\u7684\u7f3a\u9677\u4e0d\u65b7\u5730\u64f4\u6563\u800c\u4f7f\u958b\u767c\u4eba\u54e1\u7aae\u65bc\u61c9\u4ed8\u3002\u4f8b\u5982\u958b\u767c\u8005\u5728\u8a2d\u8a08\u7684\u904e\u7a0b\u4e2d\u6709\u6c92\u6709\u53bb\u601d\u8003\u8a2d\u8a08\u9a57\u8b49\u7684\u554f\u984c\uff0c\u9084\u662f\u628a\u9019\u500b\u8cac\u4efb\u63a8\u7d66\u5f8c\u7e8c\u7684\u54c1\u7ba1\u4f5c\u696d\uff0c\u4f8b\u5982 code inspection\uff0c\u6216\u662f\u5404\u7a2e\u5f62\u5f0f\u7684\u5be9\u67e5\u4f5c\u696d\uff1f<\/p>\n<p>\u9019\u500b\u7b54\u6848\u7121\u95dc\u4e4e\u65b9\u6cd5\u8ad6\u672c\u8eab\u7684\u512a\u52a3\uff0c\u800c\u662f\u95dc\u4e4e\u958b\u767c\u8005\u9762\u5c0d\u554f\u984c\u7684\u614b\u5ea6\uff0c\u9019\u5c0d\u54c1\u8cea\u6709\u8457\u76f4\u63a5\u800c\u6df1\u9060\u7684\u5f71\u97ff\u3002\u6c92\u932f\uff0c\u6211\u5011\u9700\u8981\u5c08\u6ce8\u65bc\u601d\u8003\uff0c\u4f46\u601d\u8003\u7684\u91cd\u9ede\u4e26\u4e0d\u5728\u7528\u90a3\u4e00\u7a2e\u6aa2\u9a57\u65b9\u5f0f\u6bd4\u8f03\u6709\u6548\u7387\uff0c\u56e0\u70ba\u90a3\u6a23\u6211\u5011\u5c07\u6703\u843d\u5165\u54c1\u8cea\u662f\u6aa2\u9a57\u51fa\u4f86\u7684\u8ff7\u60d8\u7576\u4e2d\u3002\u800c\u662f\u61c9\u8a72\u601d\u8003\uff0c\u5c0d\u9019\u500b\u554f\u984c\u70ba\u4ec0\u9ebc\u6211\u6703\u9019\u6a23\u8a2d\u8a08\uff1f\u6211\u5982\u4f55\u9a57\u8b49\u5b83\u662f\u53ef\u884c\u7684\uff1f\u6709\u6c92\u6709\u53ef\u80fd\u5b83\u6703\u7121\u6cd5\u89e3\u6c7a\u554f\u984c\u6216\u9020\u6210\u5176\u5b83\u6211\u6c92\u6709\u60f3\u5230\u7684\u554f\u984c\uff1f<\/p><\/blockquote>\n<p>\u628a\u505a\u6e2c\u8a66\u548c TDD \u6df7\u70ba\u4e00\u8ac7\u7684\u89c0\u9ede\uff0c\u5ffd\u7565\u4e86 TDD \u7684\u50f9\u503c\u4e0d\u5728\u6aa2\u9a57\u7a0b\u5f0f\u7684\u6b63\u78ba\u6027\uff0c\u800c\u662f\u627e\u51fa\u8db3\u4ee5\u89e3\u6c7a\u554f\u984c\u7684\u7cfb\u7d71\u908a\u754c\u7684\u8a2d\u8a08\u904e\u7a0b\u3001\u4ee5\u53ca\u9762\u5c0d\u76ee\u6a19\u63a1\u7528\u6709\u6548\u7684\u7bc0\u594f\u628a\u4e8b\u60c5\u505a\u597d\u3002\u5c0d\u65bc TDD \u800c\u8a00\uff0c\u6e2c\u8a66\u4e0d\u662f\u7528\u4f86\u78ba\u8a8d\u7a0b\u5f0f\u6c92\u6709\u932f\u8aa4\u7684\u76ee\u7684\uff0c\u800c\u662f\u5b9a\u7fa9\u7cfb\u7d71\u908a\u754c\u7684\u624b\u6bb5\u8207\u904e\u7a0b\uff0c\u56e0\u70ba\u54c1\u8cea\u7684\u95dc\u9375\u4e0d\u5728\u65bc\u78ba\u8a8d\u6c92\u6709\u932f\u8aa4\u7684\u7a0b\u5f0f\uff0c\u800c\u662f\u5f9e\u7a0b\u5f0f\u63a5\u53e3\u4e4b\u9593\u767c\u73fe\u8edf\u9ad4\u81ea\u7136\u6f14\u5316\u7684\u8108\u7d61\uff1b\u5b78\u7fd2\u5e96\u4e01\u89e3\u725b\u7684\u7cbe\u795e\uff0c\u4ee5\u6e38\u5203\u6709\u9918\u7684\u6280\u6cd5\u4f86\u9ad4\u6703\u8edf\u9ad4\u958b\u767c\u4e4b\u9053\u3002<\/p>\n<p>\u81f3\u65bc XDite \u5728\u610f\u4ee5\u300c\u6df7\u86cb\u908f\u8f2f\u300d\u628a TDD \u548c\u6e2c\u8a66\u7d81\u5728\u4e00\u8d77\uff0c\u540c\u4eba\u89ba\u5f97\u6839\u672c\u5c31\u662f\u6c92\u6709\u5fc5\u8981\u5730\u5728\u947d\u725b\u89d2\u5c16\u3002\u7576\u7a0b\u5f0f\u8a2d\u8a08\u8005\u8aaa\u4ed6\u60f3\u8981\u5beb\u6e2c\u8a66\u7a0b\u5f0f\u4f86\u78ba\u8a8d\u7a0b\u5f0f\u7684\u54c1\u8cea\uff0c\u4e26\u4e0d\u898b\u5f97\u4ed6\u771f\u7684\u662f\u628a\u6e2c\u8a66\u548c TDD \u7d81\u5728\u4e00\u8d77\uff1b\u800c\u4e14\u5c31\u7b97\u662f\u4ed6\u771f\u7684\u628a\u6e2c\u8a66\u548c TDD \u7d81\u5728\u4e00\u8d77\uff0c\u540c\u4eba\u4e5f\u8a8d\u70ba\u7121\u50b7\u5927\u96c5\u3002\u6709\u6642\u5019\uff0c\u7ba1\u7406\u8005\u4e0d\u898b\u5f97\u6703\u77ad\u89e3\u7a0b\u5f0f\u958b\u767c\u8005\u6240\u8868\u9054 TDD \u7684\u6b63\u78ba\u7684\u89c0\u5ff5\uff0c\u6240\u4ee5\u958b\u767c\u8005\u5fc5\u9808\u5b78\u6703\u7528\u4e0d\u592a\u7cbe\u78ba\u4f46\u8868\u9054\u5230\u91cd\u9ede\u7684\u8aaa\u6cd5\u5c0d\u7ba1\u7406\u8005\u63d0\u51fa\u9700\u6c42\u3002<\/p>\n<p>\u9019\u4e5f\u5c31\u662f\u8aaa\uff0c\u5c0d\u65bc\u7a0b\u5f0f\u8a2d\u8a08\u8005\u800c\u8a00\uff0c\u4ed6\u6240\u9700\u8981\u7684\u662f\u64c1\u6709\u80fd\u5920\u63d0\u6607\u4ed6\u7a0b\u5f0f\u54c1\u8cea\u7684\u65b9\u6848\uff0c\u800c TDD \u662f\u4ed6\u60f3\u8981\u53ef\u80fd\u53ef\u4ee5\u7b26\u5408\u9700\u8981\u7684\u5019\u9078\u65b9\u6848\u4e4b\u4e00\u3002\u63d0\u51fa\u6e2c\u8a66\u7684\u9644\u52a0\u50f9\u503c\u662f\u8b93\u7ba1\u7406\u8005\u6bd4\u8f03\u80fd\u5920\u63a5\u53d7\u7684\u8aaa\u6cd5\uff0c\u7576\u7136\u7a0b\u5f0f\u958b\u767c\u8005\u4e5f\u6709\u53ef\u80fd\u771f\u7684\u628a\u6e2c\u8a66\u548c TDD \u7d81\u5728\u4e00\u8d77\uff0c\u4f46\u5373\u4f7f\u9019\u6a23\u4e5f\u6c92\u6709\u95dc\u4fc2\u3002\u56e0\u70ba\u7576\u4ed6\u5be6\u969b\u63a1\u7528 TDD \u958b\u767c\u7a0b\u5f0f\u5f8c\u6703\u767c\u73fe\u7a0b\u5f0f\u54c1\u8cea\u7684\u63d0\u6607\u4e0d\u662f\u6e2c\u8a66\uff0c\u800c\u662f\u5728<a href=\"http:\/\/en.wikipedia.org\/wiki\/Edge_of_chaos\">\u7cfb\u7d71\u908a\u754c\u9644\u8fd1<\/a>\u767c\u751f<a href=\"http:\/\/en.wikipedia.org\/wiki\/Self-organization\">\u81ea\u6211\u7d44\u7e54<\/a>\u7684\u6f14\u5316\u904e\u7a0b\u3002<\/p>\n<p>\u5f88\u591a\u6642\u5019\uff0c\u6211\u5011\u771f\u7684\u6c92\u8fa6\u6cd5\u671f\u5f85\u4eba\u5011\u89c0\u5ff5\u6b63\u78ba\u624d\u958b\u59cb\u52d5\u624b\u57f7\u884c\uff0c\u56e0\u70ba\u90a3\u6a23\u7b49\u65bc\u4f60\u4ec0\u9ebc\u90fd\u4e0d\u7528\u505a\uff0c\u800c\u4e14\u8edf\u9ad4\u958b\u767c\u7684\u91cd\u9ede\u4e0d\u662f\u7406\u8ad6\u600e\u9ebc\u8aaa\uff0c\u800c\u662f\u5be6\u52d9\u4e0a\u600e\u9ebc\u505a\uff0c\u7a0b\u5f0f\u958b\u767c\u8005\u5f9e\u5be6\u52d9\u4e0a\u7684\u57f7\u884c\u624d\u80fd\u771f\u6b63\u77ad\u89e3\uff0cTDD \u4e0d\u80fd\u8ddf\u505a\u6e2c\u8a66\u6df7\u70ba\u4e00\u8ac7\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u8b80\u5230\u4e00\u7bc7\u6587\u7ae0\u3008\u4e0d\u8981\u76f2\u76ee\u7684 BDD \/ TDD\uff0c\u6211\u5c0d\u5beb\u6e2c\u8a66\u7684\u770b\u6cd5\u3009\uff0c\u770b\u5b8c\u4f5c\u8005 XDite \u53cd\u5c0d\u4e0d\u8ad6\u5982\u4f55\u90fd\u8981\u5c0e\u5165 TDD \u7684\u7406\u7531\uff0c\u8b93\u540c\u4eba\u60f3\u63d0\u51fa\u6211\u5c0d\u9019\u7bc7\u6587\u7ae0\u7684\u770b\u6cd5\u3002 <a href=\"https:\/\/lifeparty.idv.tw\/blog\/archives\/6126\">\u95b1\u8b80\u5168\u6587 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,22,24,25,41,32,6,43,39],"tags":[],"class_list":["post-6126","post","type-post","status-publish","format-standard","hentry","category-stakeholder","category-22","category-24","category-project-team","category-thinking","category-32","category-6","category-43","category-39"],"_links":{"self":[{"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/posts\/6126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/comments?post=6126"}],"version-history":[{"count":159,"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/posts\/6126\/revisions"}],"predecessor-version":[{"id":7797,"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/posts\/6126\/revisions\/7797"}],"wp:attachment":[{"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/media?parent=6126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/categories?post=6126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lifeparty.idv.tw\/blog\/wp-json\/wp\/v2\/tags?post=6126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}