




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元测试工具调研报告一、单元测试目的单元测试(unit testing),是在软件开发过程中要进行的最低级别的测试活动。单元测试测试用于验证软件最小的可执行单元的正确性,即类或方法的正确性,其目的在于发现各模块内部可能存在的各种差错,验证代码是与设计相符合的,发现设计和需求中存在的错误,发现在编码过程中引入的错误。主要是基于白盒测试。二、单元测试的好处1、编写单元测试的时间节约了未来的修改、维护低质量代码的时间。2、单元测试也是设计的一部分,会促使程序员以使用者的角度重新审视自己的代码,使写出的代码易于使用。 3、当程序被修改时,通过快速的单元测试能够找到修改后存在的漏洞。三、 如何进行单元测试1、写一点,测一点 1. 每写完一个程序单元就开始编写单元测试代码 2. 将程序划分为尽可能小的单元,这样更有利于单元测试的编写。2、单元测试的内容 1. 通用的业务组件,或工具类 2. 内外部接口 3. 包含重要逻辑的Service4. 程序员自己觉得没有把握的代码 3、单元测试的策略 5. 尽早进行单元测试 6. 对于新增加的功能和修改的功能要进行完善单元测试 7. 对于新发现的bug,通常也应增加相应的单元测试 四、 常用单元测试工具1.Arquillian(开源) Arquillian是JVM一个高度创新性和可扩展的测试平台,支持Java开发人员轻松创建自动化集合的,功能性的和验收的测试。 Arquillian允许在运行时间执行测试。Arquillian可以用来管理单个或多个容器的生命周期,捆扎测试用例,从属类和资源。它还能够部署归 档到容器中,在容器中执行测试、捕获结果,并创建报告。Arquillian集成了常见的测试框架,如JUnit 4、TestNG 5,并允许使用现有的IDE发布测试,并且由于其模块化的设计使得能够运行Ant和Maven测试插件。2.JTest(商用)JTest也被称为“Parasoft JTest”,是一款通过Parasoft制作的自动化的Java软件测试和静态分析软件。JTest包含的功能有:单元测试情况下的生成和执行、静态代码分析、数据流的静态分析、度量分析、回归测试、运行时错误检测。此外,它还具备了同行代码审查流程自动化和运行时错误检测的功能,如:竞态条件、异常、资源和内存泄漏、安全漏洞攻击。3.TestNG(开源)TestNG是一款为Java编程语言设计的测试框架,灵感来自于JUnit和NUnit。 TestNG的主要功能是覆盖范围更广的测试分类,如单元、功能性、端到端,一体化等。它还有一些新的功能,可以使之更强大和更容易使用,如:注解、具备 大型线程池各种策略的运行测试、多线程的代码测试、灵活的测试配置、参数化数据驱动的测试支持,等等。TestNG支持各种各样的工具和插件,比如Eclipse、IDEA、Maven等等。4.JUnit(开源)JUnit是一个为Java编程语言设计的单元测试框架。 JUnit为测试驱动开发框架的发展发挥了重要作用。它是现在被统称为xUnit的单元测试框架大家庭的组成成员之一,源于SUnit。在编译时,JUnit可以连接作为JAR,用于编写可重复的测试。5.Mockito(开源)Mockito是一款在MITLicense可用的支持Java的开源测试框架。Mockito允许程序员使用自动化的单元测试创建和测试双对象(模拟对象),以达到测试驱动开发(TDD)和行为驱动开发(BDD)的目的。6.Powermock(开源)PowerMock是一款支持单元测试源代码的Java框架。虽然PowerMock可以作为Mocking框架,例如Mockito和 EasyMock的扩展而运行,但是它具备了更强大的能力。PowerMock利用自定义的类加载器和字节码操纵器,来确保静态方法的模拟、静态初始化的 删除、函数构造、最终的类和方法以及私有方法。它的主要目的是通过最少的方法和注释来扩展现有的API,以获得额外的功能。7. Contest(开源)当进行单元测试时需要 JVM 具有低的确定性,同时是更“模糊的”,这就是要用到 ConTest 的地方。1、同步覆盖 2、死锁预防( ConTest 可以分析是否以冲突的顺序嵌套地拥有锁,这表明有死锁的危险) 3、调试帮助(ConTest 可以生成一些对并行调试有用的运行时报告) 4、UDP 网络混乱(ConTest 支持通过 UDP(数据报)套接字进行网络通信的域中的并行混乱的概念)。8、Agitator(商用)真正的面对对象的测试方法,保证代码“需求做什么?”,而不是说明“它做了什么”完全的自动化,测试不用写任何代码,强大的代码跟踪功能,寻找BUG更加快捷,大大送减少手动工作量;强大,详细的报表,可以让开发人员,QA人员,管理人员都能清楚的了解自己负责的项目;有更好的结构和设计、扩展性、可重用性,健壮性和可测试性。五、单元测试工具比较:单元测试工具比较多,目前商用主要有JTest 和 Agitator ,开源用的比较多的有JUnit、TestNG、Arquillian、Powermock、Mockito、Contest等。JUnit使用最多,群众基础广泛,操作简单,可满足基本的单元测试。TestNG、Arquillian基于JUnit,引入了一些新的功能,使其功能更强大,使用更方便。Contest:可集成Eclipse插件,死锁预防。Powermock:专门用来应付一些奇怪的测试需求,例如mock private方法,mock 静态方法,mock final方法。六、在Eclipse中使用JUnit4进行单元测试第一步:打开eclipse.exe,创建一个名为“Ives”的工项目,创建一个名为”UnitTest”的类。写几个方法:两数+ - * /的方法和返回结果的方法。第二步:将JUnit4单元测试包引入这个项目:在该项目“Ives”上点右键,点“属性”(Properties),如图:在弹出的属性窗口中,首先在左边选择“Java 构建路径”(Java BuildPath),然后到右上选择库(L)(Libraries)标签,之后在最右边点击“添加库(A)”(Add Libraries)按钮,如下图所示:点击完成,JUnit4软件包就被包含进我们这个项目了。第三步:生成JUnit测试框架:在Eclipse的包资源管理器(Package Explorer)中用右键点击该类”UnitTest“弹出菜单,选择 新建JUnit测试用例 (NewJUnit Test Case)。如下图所示:在弹出的对话框中,进行相应的选择,如下图所示:点击完成之后会出现如下图:千万不要去删除Test这个标志很重要的!然后把fail(“尚未实现”)删除,把自己的代码敲进去就可以了。我选择了测试4个方法,所以它会自动生成4个测试方法。那测试方法怎么写呢?举个例子,我想知道我的UnitTest里面的plus方法有没有写对,那我就对这个方法写个测试。把a,b两个数传递进去,例如a=1和b=1,那a+b就等2,所以这里我们又要了解新的东西了。那就是关于JUnit 的api了,下面有关于JUnit的api,到时候我看看要不要贴几个常用的方法出来,加上实例,这样会更加容易理解。继续我们的话题:我们知道a+b=2,所以如果plus方法的result是2的话,那就说明了我们的这个plus暂时没有这类型的bug。所以我们要用到方法assertEquals(doubleexpected, doubleactual)这个方法里的doubleexpected是我们期望的值,doubleactual是实际的值。例如assertEquals(2, a+b),这样就可以测试方法有没有算错了。其实电脑一般都不会算错吧?哈哈完整的测试代码如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服务考试题及答案
- 统计学考试模拟题与答案
- 七步洗手法培训试题及答案
- 2025东莞“三旧”改造项目垃圾处理合同
- 2025年度个人信用消费借款合同
- 2025年度电商直播平台主播形象代言人代理协议
- 2025年度企业团队建设拓展培训综合服务合同
- 2025版外贸实习生实习成果鉴定合同
- 2025版棚改工程房屋买卖及配套设施建设合同
- 2025版内蒙古自治区房屋建筑工程合同范本
- 完整版宪法知识竞赛试题完整题库及答案(夺冠系列)
- 云南大学附属中学数学2023-2024学年七年级上学期开学分班考试数学试题
- 小学武术校本课程教材(中学也可用)
- 自来水厂处理工艺流程图
- 全媒体运营师-国家职业标准(2023年版)
- 小学英语教学经验体会分享
- 学校矛盾调解工作制度模版
- 学习中心教学论
- 《学习共同体-走向深度学习》读书分享
- 2017年人教版英语五年级上册说教材
- 健康安全危险源识别、风险评估和风险控制表
评论
0/150
提交评论