单元测试基础原则

  • Right-BICEP

    • Right

      • 首先,我们需要知道什么是正确的.这是最基本的.
    • Boundary边界
      • 是否所有的边界条件都正确?
      • Correct
        • Conformance一致性

          • 结果值是否和期望值一致.
        • Ordering顺序性
          • 值是否跟期望一样,是有序/无序的.
        • Range区间性
          • 值是否位于合理的最大值和最小值之间.
        • Reference依赖性
          • 代码是否引用了一些不在代码本身范围内的资源.
        • Existence存在性
          • 值是否存在(null,0).
        • Cardinality基数性
          • 是否恰好有足够的值.
        • Time.相对或绝对的时间性
          • 事情发生是否是有序的.
          • 是否在正确的时刻发生.
    • InReverse
      • 查一下反向关联
      • 例如,当插入一条数据到DB,通过Select语句查看结果.
      • 但是一些Bug,在原和反方向都会出现,所以会被隐藏.故原和反方向应该采用不同的方法.
    • Cross
      • 通常一个计算量会有多种算法.因为性能或者其他原因选择了一种,可以使用其它方法来验证.
    • Error
      • 是否可以强制错误的发生.
    • Performance
      • 性能是否能够满足要求.
  • 好的测试:A-Trip
    • Automatic

      • 对于测试所需要的任何条件(网络环境,数据库等),都应该让它们成为测试自动化的一部分.
      • 测试必须能够自己决定是否正确的通过.
    • Thorough
      • 有两个测试的极端情况
      • 1,对所有的代码行,所有的分支,所有的异常,都进行测试.
      • 2,仅仅测试最可能的情况.如边界等.
    • Repeatable
      • 每个测试都应该独立于其他所有测试,并且独立于上下文环境.
      • 每个测试都应该能够多次执行,且得到相同的结果.
    • Independent
      • 一个测试函数应该只专注于一个函数,或者联合起来组成一个功能的一组函数.
      • 每个函数和类都应该有自己的Setup和TearDown,来保证全新的开始.
    • Professional
      • 编写代码的规则,也同样适合于编写测试代码.

单元测试基础原则

时间: 2024-10-17 22:22:16

单元测试基础原则的相关文章

面向对象分析与设计:四个基础原则

大家都知道遵循设计原则是开发高质量软件的重要基础,但实际运用时并不容易.Booch在<<面向对象分析与设计>>中提出了四个基础原则: 抽象   核心思想是不变性的概念.去除不关心的属性,而强化重要的属性,帮助人们思考要做什么. 封装  核心是分离关注和信息隐藏,让程序借助最少的工作进行可靠的修改. 模块化  核心思想是分而治之,各个模块应当高内聚.低耦合. 层次结构  核心是对抽象的分级和排序,可以简化对系统的理解.

单元测试基础知识(二)

6 单元测试设计原则和任务 6.1 三原则 为了提高开发人员的代码质量,编写高质量的单元测试,要遵守3R(Responsible, Reliable, Repeative)原则,具体含义如下: Responsible: 谁开发谁负责测试,在哪里开发就在哪里测试. Reliable: 测试case要可靠,并且是值得信赖的,对于底层的任何改动都要能够及时感知. Repeative: 所有单元测试用例都要能够重复运行.能够重复运行就能够进行回归测试.覆盖率统计等等. 6.2 单元测试任务 一般来说,单

JUnit单元测试基础要点

1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确. 2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的. 3.单元测试主要是来测试程序的结果和自己期望的值是否相等 4.创建测试类的步骤: 1)在工程下面创建一个名为 test 的 Source Folder ,这个源程序文件夹和 src文件夹的阶级是相等的 2)测试类和目标类的包名要相同,这样的好处是测试类就不要import导入目标类的源码 3)测试类的命名规则:假设目标类的名字是 Calc

JUNIT,HAMCREST,ECLEMMA单元测试基础(JAVA)

本次实验是Junit,hamcrest,eclemma单元测试的基础应用,从安装开始.这里选择的语言是java,IDE为Eclipse(MARS.2) 1)安装junit, hamcrest 和 eclemma 1.1      安装juint,hamcrest 这两个的安装我使用了同一种方法,即导入jar包,在"项目"->"属性"当中选择java构建路径,导入外部提前下好的jar包,这里我导入的是junit(4.12)和hamcrest-all-1.3.导入

单元测试基础知识(三)

9.单测工具简介 JUnit Java用的最多的单测框架,使用非常简单,主流IDE基本都集成了JUnit,具体用法就不介绍了,可以花十分钟看看官方文档http://junit.org/junit4/ TestNg 是一款基于junit框架上的加强版单元测试框架,具备更多更强大的功能,能够执行比较复杂的程序代码,具体用法这里也不介绍了,可以花十分钟看看官方文档http://testng.org/doc/documentation-main.html Runner JUnit的Runner是指继承了

单元测试基础知识

本人博客文章网址:https://www.peretang.com/basic-knowledge-of-unit-testing/ 什么是单元测试 单元测试, 用于验证你的应用程序是否可以按照预期的方式正常运行. 主要通过Mock或者Stub机制来隔绝与其他组件/服务之间的依赖, 控制测试的边界, 从而针对一个个单独的类或方法进行代码检查与测试. 为什么需要单元测试 因为每个单元(类或方法)都是整个系统的基石. 当实施单元测试时, 虽然短期来会对生产效率造成影响, 但是由于实施单元测试后, 项

python单元测试基础举例

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 这个算法的名字由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端,故名. 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中

JUnit4单元测试基础篇

引言 JUnit作为Java语言的测试框架,在测试驱动开发(TDD)下扮演重要的角色.众所周知,无论开发大型项目还是一般的小型项目, 单元测试都至关重要.单元测试为软件可发测试维护提供了很大的便利.JUnit 4 作为最新版本,增添了许多新的特性, 结合Hamcrest,可以写出很多灵活的测试.从JUnit 4 开始 jar包放在org.junit包下.代码已经托管在GitHub上. 为了以后测试方便,自定义了一个JUnit的类库,把几个重要的jar包导在一个类库, 这样,以后的项目工程需要写单

单元测试基础知识(一)

1 背景 测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运.良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机. 单元测试用于测试各个代码组件,并确保代码按照预期的方式工作.单元测试由开发人员编写和执行.大多数情况下,使用JUnit或TestNG之类的测试框架.测试用例通常是在方法级别写入并通过自动化执行. 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复.改进或重构之后的正确性. 2.单元测试定义: 单元测试又称模块测试,