????1. ???????????????????????????????????????????顣??????????????(?磺???????????...)?????????????????????????????????ò?????GoogleReader????????????????????????????

????2. ?????????????????У??????????????????????Щ???????????????????????????????????

????3. ?????????BUG???????????xml??????????е???????δ???????????????BUG???????????????????????ж???????????????????????????

????4. д?????????????????????????????Щ??????????????????????????????????????????????????к???????????????????????????Щ???????????????XUnit??????????????XUnit??????????????????????????????????????????????????

????* Caller

??????????????????????????e?????????????????????????????????????????????????????Caller????????仯??

????* Checker

??????????????????????????????????????????????????????????????????????????????У??????????????????????????????????????????????

????* DataDefine

??????????????????????????????????????????????????????????

????* TestFixtureBases

????TestFixture????????????????????????????????????????????????SetUp??TearDown?????????????????á?

????* TestCases

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????* ???????CommonSpec

?????????????ò??????????????????????????BDD??????????????????????????????????????????CommonSpec????????Щ???????????????????????????????????????

????5. ???????????????????????????γ???????′??????????????

????* ????????????????????????????????????????????????

????* ?????????????????????????????????

????* ????->????->??????????????????????????????????????????????????????

????* ?????????????????????????????????????????????????????????????????????????????

????* ?????????????????壬?????????????????

????Art Of Unit Testing

???????Art Of Unit Testing???????????????????????????????????????ü????????????????????????????????????

????1. ??????????????????????????????????????N????????????ò???????????

????2. TOOD - Testabled Object-Oriended Design????????????????????????????????????????????????????????????????????a???????????????????????????????????? ???????????????????????????????????TOOD??

????3. ?????????????????Щ???????????????????????С??????к??????????ú??ж???????????.NE??????????????????????????????????????Attribute??[Conditional("DEBUG")]

????4. Action-Driven Testing ?? Result-Driven Testing???????????????????????????????????????????????????????????????????????????????Action-Driven Testing?????????????????Щ????????????????????????????????????????????λ??????????????????????????Result-Driven Testing???????????????????????????????????????????λ?????????

????5. Stubs??Mocks????????????????????????????????????????????????????????????????????????Stubs?????°?????????Mocks???????????????Stubs???Щ????????????????Щ???????????????Mock???????????(Test Spy)????????????????????Щ????????????????Mock?????????м?顣

????6. One Mock Per Test?????????????У??????????N??Stub???1??Mock????????????????ж????????Mock????????????????鯔??????????????????????????ж??Stub????????????Э??????Щ???????????????????Mock?????????????????????????????????

??????????????????

??????????????????????????????????????????頃???????????????д??????????????з??????y????????????

????1. ?????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????д?????????????????????????????????????bug???????????????????????????????????????????????????顣

????2. ???????????y????????????????????

???????????????????????????????????????????????????y????????

????3. ???????????????????t?????????????????????????????????????????????????????????????????Щ???????????????????????????????????????????????????????????Щ?????????????

??????????????????????????????????????????????????ι???????????????????????????????????????????????????????

????4. ?????????????

????* ?????????????????????90%???????95%??

?????????????????????????????????????70%???????????????????????????岢????????е?????????????????????????????????????

????* ?????????ж??????????????????????

??????????????????????????????????????????????

????* ??????????????????????????????

????* ????? bug????????????

????* ???????????????????????

??????????????CodeReview??????????????????????????????

????* ?????????????????顣

????* ???????????????????÷??????????÷???????y?????????????????????????????á?

?????????????????????????????????????????????????????????????

????5. ??????????????????????????????????????????????

????* ????????????????????

????* ????????????????????

????* mock ????

????* ??????????????????

????* ??????????????????????????

????6. ????δ????????????????????????????????????

????* ???????????????????????????????????????????????????????????У?????????????????????????????????У??????????

????* ?????????????????????????????????????????? mock ????????????в??????????????????????????λ???????????????

????7. ???????????????JUnit+DbUnit+Spring TestContext Framework+Unitils+TestNG+CruiseControl+Clover

??????????Java???????????????C++??????????????????GTest + GMock + CcneT??MSBUILD+Svn?? + ?????????C++??????????????

??????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????п??????????????????????????????μ????????????????????????????????????о?????????????????????????????????????????????????????????????????????Щ???????????????Щ??????

????1. ????????????????????????????????t??????????????????????????????ж???????????????????????????????????????????????????????????????????????????????????????????????????????????κ????????????????????1????0????????????????????????????????????????

????2. ??????????????????????????????????о??????????????????????????о??????н?????????????????????????о?????????????о????????ж?????????????????????????????н??????γ????????????????????????????????????????????????????????

????3. ?????????????????????????????????У???????????????????????

????4. ??????????????????????????????μ????????????????????????????????

????5. ????????????????????????????????λ????????????????????????????????

????6. ???????????????????????????????????????????????????????????????????????????

????7. ?е????????????????????????????????????????????????????л?????????????????????????????????????????

????8. ?е??????????????????????跨?????????????????????

????9. ?е???????????????????????????????????????????????????????????

????10. ????????????????????????????????????????????????????????????????п????????????????????п???????????????????????????????????????????????????????????塣

????11. ????ò?????????????????????????ж??????????????????????????

????12. ?????????????????е????????????????????к???????ò????ú??Ч????

????13. ??????????????????????????????????????

???????????????????????

?????????????????????????????????????????????????????????Χ???????????к????????????????????????????????????????????????????????????????????????????????????????????????????????????Щ????????????и??????????????????????á?

?????????????????????

????1. ????????????????????????

????2. ??????????????????????????????Щ????δ?????????Щ???δ????????????????????????????

????3. ??????????з???????????????????????????????????????????

????4. ?????????????????????????????

?????????????????????????80%??????????????????????????????

????1. ?ú???????????80%??????У???????????????Bug??

????2. ??μ?20%???????п??????80%??Bug??

????3. ?????80%?????У??????????????????????ж????

????4. ?????80%?????У???????????????ж????????????ж???????????????е??

????5. ?????????????????2??????????У?

????6. ??80%?????????У??????????????Щ??????????飿

????7. ????????????????????д???????????????????????

????8. ??????????????????е?????????

?????????????8?????????????80%?????????????о????????????????????????

????????????????????????????????????????????ζ???????????????ɡ?

?????????????80%???????????????????????????????е???????ж???Bug???????????