下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页单元测试小技巧[1]单元测试小技巧[1]
发表于:2023-06-01来源::点击数:标签:单元技巧
单元测试小技巧[1]软件测试-编写可维护的节省时间和精力的单元测试这篇文章描述了:单元测试的信任测试正确事件创建维护测试创建易读测试这些天有很多的关于单元测试的和在不同的场景下为他们的应用程序编写单元测试(起始于,我们2023年六月的MSDNM
单元测试小技巧[1]软件测试
-编写可维护的节省时间和精力的单元测试
这篇文章描述了:
单元测试的信任
测试正确事件
创建维护测试
创建易读测试
这些天有很多的关于单元测试的和在不同的场景下为他们的应用程序编写单元测试(起始于,我们2023年六月的MSDNMagazine中有关测试你的数据层的文章,KnowThyCode:SimplifyDataLayerUnitTestingusingEnterpriseServices)的讨论。这些意味着有很多的开发者自言自语(或者对于他们的团队)到:“哎,我们也需要开始编写测试了!”因此他们开始编写单元测试上面的单元测试直到他们达到了一个测试自己已经成为问题的程度。或许维护他们是一个太过困难,花费太长时间,或者他们并没有足够的易读性以便于理解,更或者他们本身存在bugs有一点是能够使得我们的开发人员可以下定决心去做的,那就是:花费他们宝贵的时间以用来改进提高他们的测试或者忽略其中的问题,从而有效的甩掉那些艰苦的工作。而这些困难的原因仅仅是因为那些不熟练的写入单元测试。.在这篇文章中,我将为大家带来在过去一年多时间里我在开发,提供咨询和培训开发者等方面有总结出来的一些最重要的练习和试验。这些小的技巧可以帮助您写出更有效的,可维护,和鲁棒性更好的单元测试。同时我希望这些总结和忠告可以帮助您避免一些由于错误引起的大量的时间的消耗。
单元测试的信任
在这个部分,我将略述出一些最通用的信任,这些信任来自于在使用大量单元测试获得的好处和解释为什么这些信任通常不是必须真实的。然后我们会帮助您在您的工程中拥有这些信任。
更加简单的跟踪Bug当然这并不是必须的,那么您怎么知道您的测试是正确的?是否存在在一些测试环节测试失败的情况?另外您又如何知道您的测试覆盖了系统中多少的代码量?是否测试到了程序中的错误,错误又在哪里等等的问题。
当你在你的单元测试中发现了bug后又会发生什么事情哪?你会突然间得到很多与愿意错误的反馈,bug被发现,但是问题并不在你测试的代码中。你的测试的逻辑存在一个bug,因此测试失败了。这些bug也是您最难被检查出来的,因为您通常会去检查您的应用程序而不会去检测你的测试环节。在这部分中,我会展示给你如何确认大量的单元测试,事实上就是使得跟踪bug变得更加容易。
代码更加便于维护从最终点考虑,你可以倾向于认为这些信任并不是必须的,当然你是对的,让我们去说,代码中每个逻辑方法至少要有一个测试方法(当然,你可能拥有一个以上的方法)在一个好的测试覆盖的工程中,大概有百分之六十的代码是能够得到单元测试的,现在不得不考虑到测试也是要被维护的,如果针对一个复杂的逻辑方法你有20个测试,那么当你向这个方法添加一个参数时会发生什么事情哪?测试无法编译。当你修改了类的结构的时候同样会发生这样的事情。这时你突然发现为了能让你的应用程序继续工作你自己需要改变大量的测试。当然这会花费你大量的时间。
为了使这个信任确认下来,你需要确认你的测试是便于维护的。保持DRY规则写入:不要重复你自己。我们将更加接近的来看这个问题。
代码更加容易被理解单元测试的好处通常并非是人们最初所期待的,在一个工程中考虑修改一些你之前从没有看过的代码(比方说,一个特殊的类或者方法).你将如何动手处理这些代码?你可能需要在项目中去浏览这些特定的类或者方法使用的代码,理所当然,单元测试就是这样例子的一个很好的场所。同时,当正确写入的时候,单元测试可以为工程提供一个API文件的容易读取的设置,使得文档的处理和代码的理解对于整个团队中的新老开发者一样的简单,便捷。然而,这些只能在测试是易读的和容易理解的情况下才能被确认,这个规则很多的单元测试开发者并不会遵循。我将详述这个信任,然后在这篇文章的易读测试的部分给你展现如何在去写易读的单元测试。
测试正确的事情
新来者在TestDrivenDevelopment(TDD)中一个最通常的错误就是他们通常会搞混"Failbytestingsomethingillogical."中的"Failfirst"要求。例如,你可以用下面的规格开始这个方法:clearcase/"target="_blank">cccccc>'returnsthesumofthetwonumbers
FunctionSum(ByValaAsInteger,ByValbAsInteger)AsInteger你可以向如下的方式写一个失败测试:TestMethod()_
PublicSubSum_AddsOneAndTwo()
DimresultAsInteger=Sum(1,2)
Assert.AreEqual(4,result,"badsum");
EndSub初看上去这个处理像是一个写失败测试的好的方法,它完全错失了你写错误测试的初始点。
一个失败测试验证了在代码中存在一些错误,当你的测试完成后这个测试应该是通过的,现在的例子中,无论如何,测试都将会失败,即使是代码完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年秋新冀教版三年级上册英语教学课件 U1L1
- 2024年秋新华师大版七年级上册数学课件 第3章 图形的初步认识 3.2立体图形的视图 1. 由立体图形到视图
- 工程变更协议书模板范本
- 产业项目收购协议书模板
- 地表水资源质量评价
- 《学前儿童卫生与保育》 课件 项目八 幼儿园保教活动的卫生保健
- 《2024年 年中购房大促活动方案策划》范文
- 如何让学号小学英语
- 标准大考卷-第二单元基础卷
- 2022-2023学年北京朝阳区高一下学期7月期末考试化学试题(解析版)
- 家庭绿植的日常养护PPT课件
- 缓粘结预应力混凝土结构施工技术规程
- 度员工胜任力评估表(共5页)
- 移动公司政企部工作总结暨思路
- 河南省统一施工机械台班费用定额
- 卫生健康局关于开展医养结合工作情况的总结汇报
- 北京市工伤劳动能力鉴定申请表
- (完整版)事件冲击量表修订版(IES-R)
- 精神科应急预案
- 国际体力活动量表IPAQ中文版短卷及评分标准
- 英文面试详细讲解PPT课件
评论
0/150
提交评论