• 测试技术的一些概念


    单元测试

    单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。

    单元测试的几种场景:

    • 开发前写单元测试,通过测试描述需求,由测试驱动开发。
    • 在开发过程中及时得到反馈,提前发现问题。
    • 应用于自动化构建或持续集成流程,对每次代码修改做回归测试。
    • 作为重构的基础,验证重构是否可靠。

    Mock

    BDD

    BDD:行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。BDD最初是由Dan North在2003年命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。
    BDD的做法包括:

    • 确立不同利益相关者要实现的远景目标
    • 使用特性注入方法绘制出达到这些目标所需要的特性
    • 通过由外及内的软件开发方法,把涉及到的利益相关者融入到实现的过程中
    • 使用例子来描述应用程序的行为或代码的每个单元
    • 通过自动运行这些例子,提供快速反馈,进行回归测试
    • 使用“应当(should)”来描述软件的行为,以帮助阐明代码的职责,以及回答对该软件的功能性的质疑
    • 使用“确保(ensure)”来描述软件的职责,以把代码本身的效用与其他单元(element)代码带来的边际效用中区分出来。
    • 使用mock作为还未编写的相关代码模块的替身

    Spock

    简单地说,spock是一个测试框架,它的核心特性有以下几个:

    • 可以应用于java或groovy应用的单元测试框架。

    • 测试代码使用基于groovy语言扩展而成的规范说明语言(specification language)。

    • 通过junit runner调用测试,兼容绝大部分junit的运行场景(ide,构建工具,持续集成等)。

    • 框架的设计思路参考了JUnit,jMock,RSpec,Groovy,Scala,Vulcans……

      def setup() {} // run before every feature method
      def cleanup() {} // run after every feature method
      def setupSpec() {} // run before the first feature method
      def cleanupSpec() {} // run after the last feature method

    when与then需要搭配使用,在when中执行待测试的函数,在then中判断是否符合预期

    when :
    stack . push ( elem )   
     then :
    ! stack . empty
    stack . size ( ) == 1
    stack . peek ( ) == elem
    

    如果要验证有没有抛出异常,可以用thrown()

    when :
    stack . pop ( )   
    then :
    thrown ( EmptyStackException )
    stack . empty
    

    expect可以看做精简版的when+then

    when :
    def x = Math . max ( 1 , 2 )   
    then :
    x == 2
    

    简化为

    expect :
    Math . max ( 1 , 2 ) == 2
    

    Cleanup Blocks
    函数退出前做一些清理工作,如关闭资源等。
    Where Blocks
    做测试时最复杂的事情之一就是准备测试数据,尤其是要测试边界条件、测试异常分支等,这些都需要在测试之前规划好数据。但是传统的测试框架很难轻松的制造数据,要么依赖反复调用,要么用xml或者data provider函数之类难以理解和阅读的方式。

  • 相关阅读:
    Python基础之文件、目录
    Python基础知识之基本类型、循环
    Python基础知识之函数、模块
    Python基础之小知识要点
    【Android】ADB常用指令与logcat日志(转)
    Android 中的 Service 全面总结 (转)
    Android实现双进程守护 (转)
    Android adb常见问题整理(转)
    Android代码内存优化建议-OnTrimMemory优化
    优化Android应用内存的若干方法
  • 原文地址:https://www.cnblogs.com/olenji/p/5318406.html
Copyright © 2020-2023  润新知