`
ddupnow
  • 浏览: 40663 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

单元测试之道-学习笔记

阅读更多

使用Junit进行java代码单元测试。

 

Junit断言

assertEqual([String message],expected,actual,[tolerance])

assertNull([String message],object)

assertSame([String message],expected,actual) 验证是否引用同一对象

assertNotSame([String message],expected,actual)

assertTrue([String message],boolean condition)

assertFalse([String message],boolean condition)

fail([String message]) 使测试立即失败,可用来测试异常

 

如果测试失败,先修复失败的测试,再进行原代码新特性的编写

 

哪些内容需要被测试:

  1.Right——结果是否正确?

  2.B——是否所有的边界条件都是正确的?

  3.I——能查一下反向关联吗?

  4.C——能用其他手段交叉检查一下结果吗?

  5.E——你是否可以强制错误条件发生?(使用mock,模拟内存耗光,磁盘用满等)

  6.P——是否满足性能要求?

 

如何测试边界条件:

  1.一致性——值是否符合预期的格式

  2.有序性——一组值是该有序的,还是无序的

  3.区间性——值是否在一个合理的最大值和最小值范围之内

  4.引用,耦合性——代码是否引用了一些不受代码本身直接控制的外部因素

  5.存在性——值是否存在

  6.基数性——是否恰好有足够的值

  7.时间性——所有的事情是否都是按顺序发生,是否在正确的时间,是否及时

 

好的单元测试遵循以下准则:

 

1.自动的

      测试可以自动运行,并且自动分析测试结果

 

2.全面的

      测试代码覆盖到每个可能出错的地方。可以使用nounit等工具分析测试覆盖率

 

3.可重复的

      测试代码可以以任意顺序重复运行,不影响测试结果。这意味着每个测试必须独立,而且和环境无关

 

4.独立的

      测试代码必须整洁、专注重点。每一个测试专门测试一件事情。测试必须彼此独立,和环境无关

 

5.专业的

      测试代码必须和产品代码一样专业,包括该有的封装、继承、DRY原则等良好设计。但是不需要测试不太可能存在bug的方法,比如单纯的get/set方法。一般来说,测试代码和产品代码等量或者更多。

 

测试一个工程

      经常测试,确保check in的代码都是测试通过。加强代码review,交流团队经验。

 

代码设计

      1.面向测试的设计。如果一段代码不好进行测试,那么变更代码,使测试变得容易。

      2.为测试而重构代码。作为回报,我们获得了一个简洁的设计。

      3.测试类的不变性

      4.测试驱动的设计

      5.测试无效的参数。

0
0
分享到:
评论

相关推荐

    软件测试-md笔记.zip

    测试流程与方法: 使用Markdown的列表和代码块,详细描述软件测试的典型流程,包括需求分析、测试计划、测试设计、测试执行、缺陷管理等,同时介绍不同类型的测试方法,如单元测试、集成测试、系统测试等。...

    .NET 快速重构 - 学习笔记

    重构是持续改进代码的基础。抵制重构将带来技术麻烦:忘记代码片段的功能、创建无法测试的代码等等。...而有了重构,使用单元测试、共享代码以及更可靠的无 bug 的代码这些最佳实践就显得简单多了。

    详解Vue单元测试Karma+Mocha学习笔记

    在使用vue-cli创建项目的时候,会提示要不要安装单元测试和e2e测试。既然官方推荐我们使用这两个测试框架,那么我们就动手去学习实践一下他们吧。 简介 Karma Karma是一个基于Node.js的JavaScript测试执行过程管理...

    java笔记.zip

    尚硅谷康师傅java学习笔记。 、2020-4-5 java学习笔记 2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 2020-4-8 java笔记 String类 2020-4-9 java 比较器 ...2020-4-27 单元测试

    单元测试学习笔记

    单元测试学习笔记软件测试什么是单元测试单元在程序里可以简单的理解为一个模块,一个方法。单元测试也就是在完成每个模块后都进行的测试。从确保每个模块没有问题,从而提高整体的程序质量。做单元测试的好处对于...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    NULL 博文链接:https://copperfield.iteye.com/blog/1170901

    单元测试学习笔记之三

    我们就将学习两种单元测试的框架.第一种,就是鼎鼎大名的xUnit测试框架家族.xUnit测试框架有助于我们更加结构化地书写测试代码, 更方便地运行单元测试并检查运行结果.第二种框架称为隔离框架(isolationframewor

    单元测试学习笔记之二

    我们已经了解了程序员需要单元测试,下面我们来给单元测试作一个完整的定义:这个定义有点长,但是它却包含了大量重要信息:有了单元测试的定义,我们来看看有关单元测试的几个基本概念,这些基本概念会在后面的章节中反复...

    python学习笔记-王纯业

    以下是一个Python学习笔记的大纲,涵盖了从基础到进阶的内容。你可以根据自己的学习进度和理解情况,逐步填充...单元测试(unittest模块) 文件和目录操作 os模块 shutil模块 pathlib模块 高级特性 列表推导式(List C

    Android学习笔记之应用单元测试实例分析

    主要介绍了Android学习笔记之应用单元测试,结合实例形式较为详细的分析了Android单元测试的实现原理与具体步骤,具有一定参考借鉴价值,需要的朋友可以参考下

    C#单元测试学习笔记

    本文来自博客园,本文主要介绍什么是单元测试,单元测试的工具以及单元测试的标准,希望对您的学习有所帮助。(1)协助程序员尽快找到代码中bug的具体位置(2)能够让程序员对自己的程序更有自信(3)能够让程序员在...

    软件测试自学笔记整理.doc

    黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种...

    单元测试学习笔记之五

    在软件测试中,有两种不同的测试思路,它们分别是功能性测试和结构性测试.功能性测试,也称为黑盒测试,其基本理念是:任何程序都可以被看作是将输入定义域取值映射到输出值域的函数. 采用功能性测试来开发测试用例,唯一...

    SpringBoot 学习笔记+完整教程

    * 集成 Junit 单元测试 * 读取系统环境变量 * 使用自定义 properties * 改变默认包扫᧿ * 自定义启动 Banner * 导入 spring XML 配置文件 * 热部署 * 监控和管理生产环境 * starter 详解 * 依赖的版本 * 文件上传 * ...

    单元测试学习笔记之四

    有的开发人员认为,测试代码不是交付给最终用户的产品代码,只是内部测试使用的,因此其质量比产品代码低一点也无可厚非.我们认为这是一个错误的观点.首先,虽然测试代码不会被交付给最终用户,但它同样是交付代码,它将被...

    JUnit学习笔记JUnit学习笔记JUnit学习笔记

    JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,...

Global site tag (gtag.js) - Google Analytics