在DevOps建设中,主流的测试分层体系可以分为单元测试、接口测试和界面测试。Google曾提出一个经验法则:70%的小型测试,20%的中型测试,10%大型测试。

当然,这个比例不是确定的,不同类型的项目,测试需求也不相同:
  • 单元测试粒度最细,外部依赖少,适合开发团队快速排查错误,从而保证代码质量和异常处理; 
  • 接口测试相对界面测试成本较低,可以在标准的开发环境下运行,效益较高; 
  • 界面测试最为直观,但成本高,外部依赖多,实施起来最困难,接口测试和界面测试保证了产品的质量和数据验证。

一、单元测试


今天我们来讲讲单元测试。

  • 对于面向过程语言,单元是一个函数;
  • 对于面向对象语言,单元是一个类;
  • 如果是图形化软件,单元可能是一个窗口或者菜单。
总而言之,单元测试指人为规定的最小被测功能模块。 
缺少单元测试的项目会带来没有必要的重复工作,缺乏持续反馈机制,导致问题、压力、风险积累到后期爆发。充分的单元测试可以保证代码的质量和良好的异常处理。

根据测试内容将测试任务分为:强制性测试和推荐性测试。
  • 强制性测试包括:模块接口、局部数据结构、出错处理;
  • 推荐性测试包括:路径测试、第三方服务、数据访问层、超时测试。

  • 模块接口测试,指对通过被测模块的数据流进行测试;
  • 局部数据结构,要求检查数据类型说明、初始化、缺省值等;
  • 出错处理,指检查错误处理功能是否包含错误;
  • 路径测试,指对基本执行路径和循环进行测试,建议覆盖所有的逻辑语句;
  • 超时测试,指测试生产代码在某些情况下的运行时间是否会超过可容忍程度;
  • 数据访问层测试,指验收数据访问框架与SQL语句的联合正确性;
  • 第三方测试,指检查代码是否成功调起第三方服务。
实际开发中,要求开发人员针对生产代码必须进行强制性测试,选择进行推荐性测试,并且测试粒度达到一定要求。

二、自动化单元测试


自动化单元测试由四个关键部分组成:
  • 通过版本控制系统实现配置管理;
  • 由构建工具来管理依赖;
  • 测试框架方便测试用例编写和批量测试;
  • 通过反馈平台可以很方便的查看测试结果。

三、农行自动化单元测试实践


还在担心上手难?看看我行是如何做自动化单元测试的。

例如Java开发的项目。
  • 单元测试、打包、部署等都通过Maven的生命周期管理,测试用例的编写遵循Junit规范;
  • 项目的构建可以通过代码提交,也可以通过定时按周期触发;
  • 构建结束后在TFS上能够看到构建单元测试历史,以及单元测试代码覆盖率等信息。
今天的自动化单元测试内容就先分享到这里,接下来,还有更精彩的接口和界面自动化测试的内容分享,敬请关注!

【作者简介】叶岚

2009年加入农行,现任软件开发中心项目管理办公室质量控制组高级专员,从事测试过程管理和质量控制相关工作。



【DevOps进行时】自动化测试之单元测试相关推荐

  1. 自动化测试之单元测试框架

    目录 单元测试框架 一.单元测试的定义 1:什么是单元测试? 2:为什么要做单元测试? 二.unittest框架以及原理介绍 1.unittest框架最核心的四个概念: 2.单元测试案例 三.编写测试 ...

  2. Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放

    MonkeyRunner 系列文章 MonkeyRunner简介 MonkeyRunner 三大模块 MonkeyRunner API MonkeyDevice API MonkeyImage API ...

  3. Diffblue Cover AI Java:Difflane如何利用Diffblue Cover AI实现Java自动化的单元测试

    Diffblue Cover AI实现Java自动化的;单元测试单元测试工具 基本概念 什么是Diffblue Cover? Diffblue Cover是一种自动化的单元测试编写工具.它分析您现有的 ...

  4. Diffblue Cover AI Java:Difflane如何利用Diffblue Cover AI实现Java自动化的单元测试(Diffblue Cover快速入门)

    Diffblue Cover AI实现Java自动化的单元测试工具 基本概念 什么是Diffblue Cover? Diffblue Cover是一种自动化的单元测试编写工具.它分析您现有的Java应 ...

  5. Android自动化测试之Monkey命令使用及monkey脚本编写

    系列文章 Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解 Android自动化测试之Monkey使用及monkey脚本 ...

  6. Python+Appium自动化测试之toast定位

    目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...

  7. 开启iOS自动化测试之门

    开启iOS appium自动化测试之门 Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及FirefoxOS平台. ...

  8. Appium+Python安卓自动化测试之启动APP和配置获取

    Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...

  9. [免费视频教程]UI自动化测试之Jenkins配置教程

    [免费视频教程]UI自动化测试之Jenkins配置教程 image 前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试 ...

最新文章

  1. h5跳转小程序页面url_web-view h5跳转到小程序页面,无法跳转?
  2. Spring MVC定制用户登录注销实现示例
  3. install-info - 更新 info/dir 项
  4. Linux学习 - 常用和不太常用的实用awk命令
  5. Python系统命令– os.system(),subprocess.call()
  6. linux无线网卡模拟ap,TP-Link无线网卡怎么设置虚拟AP
  7. linux shell 内存利用率,linux上使用shell脚本查看内存使用率
  8. 【毕业设计】基于树莓派的指纹识别与RFID考勤系统 - 嵌入式 单片机 物联网
  9. mysql 查询当前时间是星期几
  10. 上市公司慈善捐赠金额数据(2009-2018年)
  11. 【牛客练习赛13】 A B C D【康拓展开】 E【DP or 记忆化搜索】 F 【思维】
  12. C6455CSL芯片支持库:第二节 EMAC外设
  13. MS-DOS系统下的autoexec.bat
  14. day15-Linux的优化
  15. Forter宣布推出Trusted Identities解决方案 用于简化电子商务交互的身份验证
  16. Ubuntu18重装显卡驱动
  17. 怎么判断30公分?看我的图文传教就清楚了
  18. uni-app:多功能轮播图,堆叠试轮播,文本轮播,图文轮播
  19. app的维护成本怎么算?
  20. 浅谈Android Service

热门文章

  1. 无法打开物理文件 操作系统错误 5:拒绝访问 SQL Sever
  2. DataAdapter.FillSchema 方法
  3. Teams Bot 如何使用新的 System.Text.Json 库
  4. 如何使用卡巴斯基急救盘清理感染的PC
  5. 程序改变了命运,程序生活一天比一天好,对未来也充满了希望
  6. uAdmin the Golang Web framework
  7. 5分钟内看懂机器学习和深度学习的区别
  8. 会议会展活动从业技能之会销流程的16个环节
  9. html5 弹性布局
  10. 关于F5 排错的简单介绍之一