最强战力,永不停歇的测试:always_run

许多工程师写完程序后,都不愿意对自己的程序做仔细测试。

很多测试说会做自动化测试,可能工作好几年都没真做过多少自动化测试。

我们的解决方案是,在系统的测试环境里,常驻跑一个always_run程序来做质量保证以及有效发现问题。

always_run 程序的简约设计如下:

  • 设计一个插件模式,约定了各模块提供的测试程序的入口和出口。
  • 这个程序里包含对各模块的场景使用流程代码。在项目中严格要求各模块必须提供对应的测试程序。
  • always_run 在系统里会24*7运行,通过设计不同分组的定时器,定时跑不同分组的测试程序,尽量做到足够的覆盖率。
  • 测试环境的机器覆盖了实际系统所需的所有角色。
  • 为always_run提供一个机器人,在测试api里提供机器人上报接口,在测试失败的分支里,调用机器人把错误简要信息和日志路径信息发送到测试报警IM里。进一步可以自动AT相关的模块负责人。
  • 项目组需要把报警的优先级调高,出现的错误报警如果不解决,会一直上报,只到被修复重新上线。
  • 为了保证always_run持续起作用,需要持续为always_run添加测试用例程序,持续活跃的测试加入,保证了always_run的不过时和真正为项目质量作出贡献。
  • always_run 在测试体系里,属于模块级别的集成测试,不算单元测试。但是它能快速的发现大部分问题,特别是程序里跟时序有关的BUG。
  • 工程师可能只能为模块跑有限次数的测试,或者不够复杂的测试。测试如果不能写接口测试,手工操作也只能做有限次数的测试。
  • 为 always_run 写的场景测试,实际上是系统的最小使用原型,尽快地跑起来always_run 就是尽快地验证系统的最小子集,此后有新的组件进来,就可以持续地为场景增加常驻执行的代码。
  • always_run 和通常说的自动化测试并不完全相同,always _run 本身是被当作一个完整的独立Program被写出来了,不需要依赖什么自动化测试框架,只需对新加入的测试做入口和出口的约定即可。
  • 不要996, 而要 always_run !

--end--

炼技术(9): 简约而不简单,永不停歇的测试 -- always_run的更多相关文章

  1. 简约而不简单:网站着陆页的设计(Landing Page Design)

    着陆页是一个在线营销的概念,是指当访客点击一个搜索引擎优化的搜索结果进入的第一个页面或“着陆”页面.这是一个重要的页面,它和提供的产品或服务的广告有点类似,提供了与产品相关的精确的信息,告诉客户可以购 ...

  2. 推荐linux命令在线查,简约而不简单

    1.相关介绍: 网址:http://blog.51yip.com/linux/1518.html#more-1518 2.Linux 命令在线sce 网址:http://linux.51yip.com ...

  3. miniSipServer简单而不简单,轻松落地,实现电脑对固话、手机通讯

    最近沉迷于SIP通讯,网内通讯全免费,落地也就几分钱,而且无漫游全国拨打,想想真是心动呢,只要有网落就ok!. 对于sipserver,现在的市场上软件很多,免费的.收费的应有尽有,这里不一一例举.综 ...

  4. 使用Swing实现简易而不简单的文档编辑器

    本文通过Swing来实现文档简易而不简单的文档编辑器,该文档编辑器的功能包括: 设置字体样式:粗体,斜体,下划线,可扩展 设置字体:宋体,黑体,可扩展 设置字号:12,14,18,20,30,40, ...

  5. Aurelia – 模块化,简单,可测试的 JS 框架

    Aurelia 是下一代 JavaScript 客户端框架,利用简单的约定来激发你的创造力.凭借其强大的专注于开发经验, Aurelia 可以使您不仅创造惊人的应用程序,同时也享受这个过程.它经过精心 ...

  6. Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码

    Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习MapReduce时的一些 ...

  7. Jmeter实现简单web负载测试

    Jmeter实现简单web负载测试 简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. ...

  8. Jmeter教程 简单的压力测试

    Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html

  9. 一个简单的Spring测试的例子

    在做测试的时候我们用到Junit Case,当我们的项目中使用了Sring的时候,我们应该怎么使用spring容器去管理我的测试用例呢?现在我们用一个简单的例子来展示这个过程. 1 首先我们新建一个普 ...

随机推荐

  1. 给咱的WP站点搬家

    前言 WordPress 作为全球最流行的博客系统,使用简单,功能丰富,用它来建站的用户非常多.对于站长们来说,网站搬家也是少不了的,有时我们需要更换主机空间,把网站从一个服务器迁移到另一个服务器上, ...

  2. 记一次 Microsoft.Bcl.Async 使用经验

    起因: 由于公司项目使用场景存在很多的XP环境,导致使用.NET Framework版本不能大于4.0版本.最近开发新功能时:从nuget上下载一个开源dll(该dll 4.0 版本依赖 Micros ...

  3. 记录一次JSON数据处理(省市区数据)

    最近在实习工作中遇到了一个需要问题:将后台返回的省市区 json 数据格式化以便前端渲染.这个问题真的是缠绕了我好几天,有思路但是思路特别模糊,今天终于解决了. 返回的数据格式如下: [ { &quo ...

  4. 题解 SP1812 【LCS2 - Longest Common Substring II 】

    对于本题这样的多字符串的子串匹配问题,其实用广义后缀自动机就可以很好的解决,感觉会比普通的后缀自动机做法方便一些. 首先记录出每个节点被多少个字符串更新,也就是记录每个节点有多少个字符串能到达它,可以 ...

  5. jenkins集群(一) -- 在Linux上部署

    一.安装好jdk.maven.git 1.安装jdk并配置好全局变量 2.安装maven:yum install maven 3.安装jdk:yum install git 二 .安装jenkins ...

  6. 贪心法-------Saruman's army

    此题的策略是选取可用范围最右边的点,一般来说该点辐射两边,左侧辐射,右侧辐射,所以用两个循环,第一个循环找出该点,第二个循环求出最右边的点 源代码: #include<iostream># ...

  7. SpringBoot+Vue项目上手

    博客 https://gitee.com/RoadsideParty/White-Jotter-Vue?_from=gitee_search UI框架 https://at-ui.github.io/ ...

  8. onepill Android端

    使用的框架 第三方登录集成基于ThinkPHP5的第三方登录插件 QQ第三方登录集成QQ互联.qq第三方接入 SharedPreference实现记住账号密码功能参考.参考2

  9. Python os.minor() 方法

    概述 os.minor() 方法用于从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field ).高佣联盟 www.cgewang.com 语法 minor ...

  10. Python 字典(Dictionary) clear()方法

    Python 字典(Dictionary) clear()方法 描述 Python 字典(Dictionary) clear() 函数用于删除字典内所有元素.高佣联盟 www.cgewang.com ...