zoukankan      html  css  js  c++  java
  • 单元测试基础原则

    • 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
        • 编写代码的规则,也同样适合于编写测试代码.
  • 相关阅读:
    ES6常用语法
    nodejs中exports与module.exports的区别
    CSS animation动画
    CSS user-select文本是否可复制
    VUE 滚动插件(better-scroll)
    VUE 父组件与子组件交互
    CSS div内文字显示两行,超出部分省略号显示
    linux下使用tar命令
    linux fdisk命令使用
    关于SUID、SGID、Sticky
  • 原文地址:https://www.cnblogs.com/robyn/p/3792310.html
Copyright © 2011-2022 走看看