版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单体测试,Brief Agenda,程序员为什么要做一些基本概念测试先行的概念单体测试的基本做法和常见工具,测试不是我的工作你是这样的程序员吗? 测试是测试部门的责任,我的责任是写代码测试不是技术性的工作,没意思,所以不要骚扰我。 我是一个了不起的EJB程序员。 我们有测试人员,有集成/系统/确认测试。 他们迟早会发现我的错误。 不要浪费我的时间不要侮辱我,我写的程序,为什么会有错误呢? 完全不需要考试。 离我远一点,我是程序员。 你考试了吗? 大多数中小企业和软件开发管理处于初期阶段的团队没有特别的测试工作和测试流程,测试只是组织一些人员进行最终产品的基本功能的确认测试,然后才向用户提交产品
2、。 测试的实际工作通常由用户完成。 结果表明,软件质量完全依赖于程序员的个人技能和责任感,具有较大的随机性,后期维护成本高的一个月的开发、几天的测试,以及花费一两年的时间修复错误的项目已成为3年的根本原因是软件自身的复杂结构、方法、类、功能、模块、系统、用户需求、系统配置、集成、单元、错误可随机分布在任何地方,测试模型、软件本身的复杂性是最好的,软件本身的复杂性是最终产品的决定将两种测试不能排除的大部分系统错误测试并行编入软件开发生命周期的各个阶段,关注软件结构和开发生命周期的差异。 主要模型有传统的瀑布模型和v模型、改良的x模型、v模型,测试活动融入软件开发生命周期的不同阶段的测试从不同的视
3、角关注不同的方面,尽快完全出错,不累积错误。 每种类型测试的效果严格取决于前一阶段其他类型测试的执行准确性、完整性。 测试有分工,适当的人在适当的时候负责适当的测试改良的是x模型,时间和成本,缺陷的发现时间越慢,修复的成本就越高,导入阶段每个缺陷的修复成本就越高(major以上的缺陷修复必须进行完整的系统测试和确认测试),ss 单元测试指的是单元测试中软件的最小可执行单元的准确性,也就是说,类或方法的单元测试通常是可执行代码,其执行结构等于预期的每个单元测试至少两个测试实例3360 negative/可以验证Positive单元测试可以是黑箱也可以是白箱,要建造、房子,至少要保证所有的砖都好,
4、单元测试(Unit Test )是单元测试或其他类型的不认真,完整的单元测试使其他类型的测试对自己的程序单位不能最好的理解,最适合单元测试的传统重量级方法论,UT test case由设置修订者在系统设置修订阶段开发,用于验证编码者的工作质量。 您可以使用、 单元测试是成本最低的测试活动,发现了Defect所需的时间91年的数据,是程序员的责任,程序员的价值是与他人合作,开发高质量的代码,而不是新技术名词堆积的虫的部件(bugware )。 程序员必须对自己的代码质量负责,单元测试是对自己代码质量的基本承诺。 程序=UT CODE如果不进行单元测试,将影响团队中其他人的工作。 测试负责人有权利
5、对没有UT过的代码No .不想UT,不属于任何团队。程序=UT CODE,实践证明(个人工作经验),代码质量最好的程序员是UT制作的最好的程序员。 开发速度最快的程序员是UT制作的最好的程序员的80%以上的非需求性错误,着重于没有制作UT的代码块和不方便制作UT的代码块。 UT的质量直接影响IT/ST/UAT的质量。 程序=UT CODE,测试很重要,但我已经调试代码执行了。 他应该是对的。 为什么要浪费多馀的时间,程序已经实际上用手工测试了。 只是,只要没有时间记录和写代码,工期已经紧张,能写代码就好了。 不知道该如何进行测试,调试不等于UT,调试只关注程序的某一方面,通常是最佳路径。 UT
6、必须至少着眼于正/负两个方面,必须保证一定的展望率调试,特别是J2EE应用程序的调试需要花费很多时间,没有UT的效率(将在后面详细叙述)调试无法再现,代码改变后UT只能使用必须自动化的代码写成的UT自动化,软件开发的时候能迅速,简单地大量地执行,保证正确地定位错误,保证修正不引入新的错误。 在系统开发的后期尤为显着。 自动化的UT可以保证回归测试的有效执行。 UT可以节省你未来的时间,写UT代码的时间可以节省未来的修改/维持低质量代码的时间学习做UT的时间,因为今后更加注意到你的代码使用Test-driven的思想本身会成为设计的一部分,所以你不再、需求、设定修订、检阅、编码、rework、U
7、T、如何进行UT- -传统的方法是在it之前执行UT、严格瀑布模型、UT或作为生命周期的一个阶段ut的测试状态特别是严格执行SCM时。 UT本身作为最终的品质检查手段,只能节约未来的时间。 全面的UT需要很多时间和精力,需要与PR结合的程序员通常感觉不到UT带来的眼前利益,得不到任何乐趣,反抗执行。 UT -如何进行传统的方法*场景,程序员首先开始数据表的设定修订。 然后开始创建数据访问对象、strust action、jsp页。 他检查了一下代码,确认所有的事情看起来都很好,所以他开始把所有的东西合并成一个。 当然,通常不能跑,经过数小时辛苦的调试,中途不断修改代码,重新启动app serv
8、er。 终于在数据访问对象中发现了错误。 几小时后,代码被review后,程序员开始进行枯燥的单体测试,那时,他最想做的事情其实是睡着了。 由于时间和成本的压力,pm/程序员通常不会简化或执行UT的进程、需求、设定修正、执行UT、定位错误、代码、rework、Test case的创建、UT的创建方法-尽可能小的单元可以快速找到错误的地方,调试可以有效保证以前写的代码的正确性,不需要拖动到增量结束。错误可以尽快发现,不需要等待Code review再修复,成本低,Code review,如何UT -改进、稍微写入、测量,程序员开始修改数据库表,然后创建数据访问对象最后他制作了JSP,把所有的东西
9、都统一了。 当然,由于JSP的可测试性差,修改JSP页面的某些TAG错误花了一些时间。 几个小时后,在建立IT之前,他询问了QA部门的人。 你看,我所有的代码都写了UT TC。 这些TC能直接做UT的报告吗? 确实回来后,他高兴地回去做了别的事情。 UT作为提高开发效率的有效手段被纳入到开发过程中,编程人员也不需要做无聊的事情之后再做UT,如何做UT,写一点,测量一点。 实践,过了一段时间,发现自己不写UT的话,我的开发速度开始大幅折扣的同事在1。他无论做什么样的修改,通过运行全部的UT的SUITE能够确认没有导入新的错误,能够节省时间“整个队只有我能按时完成工作,终于CTO问我为什么,我总是
10、UT,所以我告诉他很少花时间调整。 ”“这是一个很好的例子。” 80%的编程时间都用于调试,节省调试时间,加快开发速度,每次看绿色,都很舒服。 如何UT -改良,稍微写,稍微测量缺点,好好地你写一个方法的时候,你这为将来留下危险,如何UT测试驱动的做法,设定修正,先写单体测试,再重构,执行单体测试,普如何进行UT测试驱动的做法,先写出Test case,我们的公共/保护的方法确保Test case有写出Test case的过程。 也就是说,必须考虑实现代码的可测试行。 必须考虑代码和测试代码的关系。 必须仔细考虑代码的边界和逻辑。 测试代码应该保证实现代码的正确性。能够清楚地理解实现代码,好好
11、地考虑要做什么,不做什么。 此时的UT实际上是白盒测试,可以发挥更好的效果。 可以把关注点放在几个重要的地方。 Example测试代码考虑设计,/空地必须抛出例外Try boy.add(null )。 故障(下一步执行); catch (XXX )/add/boy.add (newboy () ); 字符串id=boy.add (新博(); /如果检查是否成功,则add返回id值,并且必须修改上面的代码assertEqual(id,boy.find(id).getID () )、if(value=null ),stringid=Dao suppe 返回id;Test case、add、UT测试
12、驱动的方法、Test-Driven Design是开发风格,在程序员写产品代码之前先写的单体测试(Unit Tests )单体测试没有的Class是产品代码单体测试决定如何编写产品代码,以及如何持续顺利执行所有单元测试示例的完整单元测试示例Test-Driven Design是一个不断改进软件的过程,这是一个量化需求分析、设置修订和质量管理的过程,也是一个UT测试驱动程序写测试代码也是设置修订的过程中,总体时间成本下降,避免了无法测试的代码修改导致的时间成本、文物道路、缓和、常用单体测试框架、junit Struts test case、JUnit的扩张。 用于测试struts的action
13、HttpUnit测试http页JFC Unit. Cactus是服务器类JsUnit测试javascript, 专门用于JUnit、开源单元测试框架、其他java单元测试框架的基础,以及JUnit测试case测试的publicclasstestpersonextendstestcase/* * aunittesttoverifythenameisformattedcorrectly.*/publicvoidtestgetfullnamment assert equals (Aidan Burke,p.get全名(); /* * aunittesttoverifythatnullsarehand
14、ledproperly.*/publicvoidtestnullsinname ()个人=新个人(nulls )资产等级(? Burke,p.get全名(); /thiscodeisonlyexecutedifthepreviousassertequalsp=新人(tanner,null ); 资产质量(tanner )? p.get全名(); Test case是从Test case中扩展出来的,每个方法都有一个测试结果true/false,JUnit assertXXX ()并使用一系列assertXXX方法来确定执行结果是否与预期相匹配,如果不匹配也可以与ANT等工具结合使用,自动生成测试报告。 JUnit Set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年乡村全科助理医师考试试题与答案
- 2026年福建省福清市高三生物下册期末考试模拟试卷及参考答案
- 2026年河南省辉县市高一化学上册期末考试试卷及参考答案(能力提升)
- 2026年湖南省涟源市高三历史上册期末考试测试卷附参考答案(精练)
- 2026年湖北省石首市高三物理下册期末考试模拟卷(含答案)
- 2026年江苏省常熟市高三生物下册期末考试模拟卷(含答案)
- 2026年山东省青州市高三生物下册期末考试模拟测试卷含答案
- 2026年广东省台山市高三历史上册期末考试试卷附参考答案(A卷)
- 2026年山东省莱阳市高一历史下册期末考试模拟试卷及答案【必刷】
- 2026年辽宁省兴城市高三生物上册期末考试检测卷(含答案)
- 2026“外研社·国才杯”“理解当代中国”外语能力国际传播综合能力赛项真题及答案解析(10月11日上午场次)
- 2026年七年级数学竞赛试题及答案
- 河南2027届高三年级过程性作业评价(青桐鸣)联考数学+答案
- 学堂在线 批判性思维-方法和实践 章节测试答案
- 跳高技术动作要领
- 奖励旅游市场42课件
- 小学生课间游戏课件
- tb-10314-2021《邻近铁路营业线施工安全监测技术规程》内容解析
- 护林员考试试题及答案
- 煤矿20版标准化-瓦斯参数测定管理制度
- 研究生职业规划与求职攻略智慧树知到答案2024年东北林业大学
评论
0/150
提交评论