欢迎来到天天文库
浏览记录
ID:59107018
大小:72.50 KB
页数:35页
时间:2020-09-25
《测试驱动开发培训讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、测试驱动开发1主题测试驱动开发的基本概念测试驱动的基本流程测试驱动的所采用的技术及工具DEMO2测试驱动开发的基本概念为什么会出现测试驱动开发什么是测试驱动测试驱动所要达到的目标3测试驱动蕴含的哲学原理将复杂事情简单化让注意力关注在单一的事物上分解Hardcode重构4为什么会出现TDD—程序员当有一个新的开发任务时,往往第一个念头就是如何去实现它呢?“应该是这么做的吧,嗯,差不多就是这样的”。抓起任务就开始编码,一边写,一边修改和设计。时间这么紧!我还是先实现任务吧,然后再好好测试。还是不工作,时间不多
2、了。不管了,还是先做个实现,以后再来整理代码吧。我已经单步调试了好几次了,遍历了所有可能的分支,应该不会有问题了,提交,今天可以好好休息一下了要不要写单元测试把我刚才单步调试的步骤写下来啊?那样是很好,但工作量很大哦这样的情况要作自动测试太复杂了。还是手工测试一下吧。程序员应该做些有创意的东西,这样才有趣啊测试是QA的事,我为什么要做啊,我做了他们干什么啊5为什么会出现TDD—程序员奇怪了,怎么代码跟开发文档上有这么大的差别啊?这段代码究竟想表达什么意思?代码现在越来越乱了,我都不敢修改代码了,修改了这个
3、地方,天晓得会引起多少别的地方出错啊!这个地方的代码怎么好象在那个地方看到过啊?这个程序里怎么会有这么多的重复代码呢?6为什么会出现TDD—QA开发部在干什么啊,BUG怎么这么多,他们有没有自己先测试一下啊这下好了,让他们修改了一个BUG,现在一下子来了这么多的BUG他们到底在搞什么啊,有没有从用户的角度考虑啊,我新增一个采购订单,订单项竟然可以输入负数。7有办法可以解决上面的矛盾吗?8XP中的测试UnitTest(基本不提倡,只对特别功能)FunctionalTest(AcceptanceTest)Re
4、gressionTestNightlyTestIntegrationTestStressTest所有的测试都应该独立地自动的运行9什么是FunctionTest10什么是RegressionTest“Regressiontestingistheprocessofvalidatingmodifiedpartsofthesoftwareandensuringthatnonewerrorsareintroducedintopreviouslytestedcode.”一句话,RegresstionTest就是要重
5、新测试所有的代码和功能。RegressionTest和DevelopmentTest的不同在于RegressionTest需要重用已经建立的所有的测试单元(UnitTest)和功能测试套件(FunctionalTest)。RegressionTest的基础是完整的自动单元测试和功能测试。11什么是NightlyTestNightlyTest就是每晚自动运行所有的UnitTest和AcceptanceTest。NightlyTest是XP中的ContinuousTest的一个练习(Practice)。Nig
6、htlyTest可以准确的反映项目开发的进度和质量。12NightlyTestNightlyTest是软件开发中一个保证开发之质量的最有效的方法,也是衡量软件之质量和开发效率的最好的指标。NightlyTest就是每天工作结束,所有的代码都Checkin到SourceControl后,自动运行所有的UnitTest和FunctionTest。测试的结果应该自动分发给开发人员和管理层。两个指标数值:测试例子的通过率–单元测试必须是100%通过。FunctionalTest应该按计划的通过。单元测试的覆盖率–
7、表明有多少Class被测试过和测试的完善程度。13测试优先的编程在写任何代码之前,先写它的FunctionTest。“Neverwritealineoffunctionalcodewithoutabrokentestcase”KentBeckTest-FirstProgramming是一种测试技术吗?Test-FirstProgramming首先是一种分析方法。它迫使程序员仔细思考要做什么和不要做什么(而不是如何具体的实现)。特别是各种例外的情况,并用程序语言正式的写下来。这就好像在程序员的任务和程序员之
8、间签订了一个清晰的正式合同。Test-FirstProgramming是一种设计方法。FunctionTest测试的是程序,而不是一个想法。程序员必须清晰的定义程序的验收条件才能写出它的FunctionTest。而这时程序员是不知道(也不需要知道)里面的具体逻辑是如何实现的。程序员只需要考虑Class的界面和功能(Responsibility)。啊,你在做OO设计了。Test-FirstProgramming是一种质量控制方法
此文档下载收益归作者所有