欢迎来到天天文库
浏览记录
ID:37745831
大小:847.00 KB
页数:40页
时间:2019-05-30
《测试驱动的设计和开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、测试驱动的设计和开发(TestDrivenDesignandDevelopment)基础篇天马行空官方博客:http://t.qq.com/tmxk_docin;QQ:1318241189;QQ群:1755696321你的代码工作吗?“这段代码很简单,不可能出错”“我试过了,它是正常工作的呀”“我用Debugger测试过了,我遍历了所有程序分支,内存中的值都是对的”最好的方法是写一段另外的代码来证明它,让电脑来告诉我们它是工作的。天马行空官方博客:http://t.qq.com/tmxk_docin;QQ:1318241189;QQ群:1755696322XP中的测试
2、UnitTestAcceptanceTest(FunctionalTest)RegressionTestNightlyTestStressTest所有的测试都应该独立地自动的运行3什么是单元测试(UnitTest)单元测试是一段能够放在批处理中自动运行的,用来测试Classes的程序。单元测试测试一小段代码或一个足够小的功能。单元测试程序调用这小段代码或功能,并验证返回的结果是否符合预先设定的结果。每个单元测试至少应该有两个测试例子(TestCase):NegativePositive单元测试是软件工程的一个关键部分。4什么是AcceptanceTestAccepta
3、nceTestareprogramsorscriptsconfiguredtotestthatpackages(groupsofclustersofclasses)meetexternalrequirementsandachievegoals,suchasperformance.Theyincludescreen-drivingprogramsthattestGUIsfromwithout.AcceptanceTest是对软件做End-To-End的测试,衡量软件是否符合用户需求的指标,也就是验收测试。5什么是RegressionTest“Regressiontest
4、ingistheprocessofvalidatingmodifiedpartsofthesoftwareandensuringthatnonewerrorsareintroducedintopreviouslytestedcode.”一句话,RegresstionTest就是要重新测试所有的代码和功能。RegressionTest和DevelopmentTest的不同在于RegressionTest需要重用已经建立的所有的测试单元(UnitTest)和功能测试套件(FunctionalTest)。RegressionTest的基础是完整的自动单元测试和功能测试。6什
5、么是NightlyTestNightlyTest就是每晚自动运行所有的UnitTest和AcceptanceTest。NightlyTest是XP中的ContinuousTest的一个练习(Practice)。NightlyTest可以准确的反映项目开发的进度和质量。天马行空官方博客:http://t.qq.com/tmxk_docin;QQ:1318241189;QQ群:1755696327NightlyTestNightlyTest是软件开发中一个保证开发之质量的最有效的方法,也是衡量软件之质量和开发效率的最好的指标。NightlyTest就是每天工作结束,所有的
6、代码都Checkin到SourceControl后,自动运行所有的UnitTest和FunctionTest。测试的结果应该自动分发给开发人员和管理层。两个指标数值:测试例子的通过率–单元测试必须是100%通过。FunctionalTest应该按计划的通过。单元测试的覆盖率–表明有多少Class被测试过和测试的完善程度。天马行空官方博客:http://t.qq.com/tmxk_docin;QQ:1318241189;QQ群:1755696328测试优先的编程在写任何代码之前,先写它的UnitTest。“Neverwritealineoffunctionalcodew
7、ithoutabrokentestcase”KentBeckTest-FirstProgramming是一种测试技术吗?Test-FirstProgramming首先是一种分析方法。它迫使程序员仔细思考要做什么和不要做什么(而不是如何具体的实现)。特别是各种例外的情况,并用程序语言正式的写下来。这就好像在程序员的任务和程序员之间签订了一个清晰的正式合同。Test-FirstProgramming是一种设计方法。UnitTest测试的事程序,而不是一个想法。程序员必须清晰的定义程序的界面才能写出它的UnitTest。而这时程序员是不知道(也不需要知道)
此文档下载收益归作者所有