测试驱动的设计和开发

测试驱动的设计和开发

ID:37448037

大小:709.81 KB

页数:40页

时间:2019-05-12

测试驱动的设计和开发_第1页
测试驱动的设计和开发_第2页
测试驱动的设计和开发_第3页
测试驱动的设计和开发_第4页
测试驱动的设计和开发_第5页
资源描述:

《测试驱动的设计和开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、测试驱动的设计和开发(TestDrivenDesignandDevelopment)基础篇CharlesHuang&WatsonTaoWithcontributionbyEricLaowww.chinaxp.org1你的代码工作吗?“这段代码很简单,不可能出错”“我试过了,它是正常工作的呀”“我用Debugger测试过了,我遍历了所有程序分支,内存中的值都是对的”最好的方法是写一段另外的代码来证明它,让电脑来告诉我们它是工作的。2XP中的测试UnitTestAcceptanceTest(FunctionalTest)RegressionTestNightlyTestStressTes

2、t所有的测试都应该独立地自动的运行3什么是单元测试(UnitTest)单元测试是一段能够放在批处理中自动运行的,用来测试Classes的程序。单元测试测试一小段代码或一个足够小的功能。单元测试程序调用这小段代码或功能,并验证返回的结果是否符合预先设定的结果。每个单元测试至少应该有两个测试例子(TestCase):NegativePositive单元测试是软件工程的一个关键部分。4什么是AcceptanceTestAcceptanceTestareprogramsorscriptsconfiguredtotestthatpackages(groupsofclustersofclasse

3、s)meetexternalrequirementsandachievegoals,suchasperformance.Theyincludescreen-drivingprogramsthattestGUIsfromwithout.AcceptanceTest是对软件做End-To-End的测试,衡量软件是否符合用户需求的指标,也就是验收测试。5什么是RegressionTest“Regressiontestingistheprocessofvalidatingmodifiedpartsofthesoftwareandensuringthatnonewerrorsareintrod

4、ucedintopreviouslytestedcode.”一句话,RegresstionTest就是要重新测试所有的代码和功能。RegressionTest和DevelopmentTest的不同在于RegressionTest需要重用已经建立的所有的测试单元(UnitTest)和功能测试套件(FunctionalTest)。RegressionTest的基础是完整的自动单元测试和功能测试。6什么是NightlyTestNightlyTest就是每晚自动运行所有的UnitTest和AcceptanceTest。NightlyTest是XP中的ContinuousTest的一个练习(P

5、ractice)。NightlyTest可以准确的反映项目开发的进度和质量。7NightlyTestNightlyTest是软件开发中一个保证开发之质量的最有效的方法,也是衡量软件之质量和开发效率的最好的指标。NightlyTest就是每天工作结束,所有的代码都Checkin到SourceControl后,自动运行所有的UnitTest和FunctionTest。测试的结果应该自动分发给开发人员和管理层。两个指标数值:测试例子的通过率–单元测试必须是100%通过。FunctionalTest应该按计划的通过。单元测试的覆盖率–表明有多少Class被测试过和测试的完善程度。8测试优先的

6、编程在写任何代码之前,先写它的UnitTest。“Neverwritealineoffunctionalcodewithoutabrokentestcase”KentBeckTest-FirstProgramming是一种测试技术吗?Test-FirstProgramming首先是一种分析方法。它迫使程序员仔细思考要做什么和不要做什么(而不是如何具体的实现)。特别是各种例外的情况,并用程序语言正式的写下来。这就好像在程序员的任务和程序员之间签订了一个清晰的正式合同。Test-FirstProgramming是一种设计方法。UnitTest测试的事程序,而不是一个想法。程序员必须清晰的

7、定义程序的界面才能写出它的UnitTest。而这时程序员是不知道(也不需要知道)里面的具体逻辑是如何实现的。程序员只需要考虑Class的界面和功能(Responsibility)。啊,你在做OO设计了。Test-FirstProgramming是一种质量控制方法(QualityControl)。如何控制质量呢?如何知道我的程序是否运行呢?我会不会漏了什么?运行一下UnitTest。Test-FirstProgramming是一种重构和优化的方法。我们总希望

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。