现代的专业软件测试中心,随着项目的迭代,通常针对每个系统构建了大量的自动化测试用例集,而启动一次全量的自动化测试以CI级触发,使之大比率通过,非常困难。测试工程师们常常需要投入很高的成本,把大量精力花在自动化用例失败排查上面,然而发现有效BUG的概率很低。在反复排查无果、心神俱疲的情况下,几乎对自动化产生绝望之心,视之为鸡肋,用之无用,弃之可惜,让测试中心极为头疼。
 
 如何让自动化用例发挥它们应有的效用,让QA工作不那么沉重呢?星云测试针对这一难题,进行了精准测试与自动化测试无缝对接的技术方案研发。经过大量企业实施与验证,精准测试的数据流最终可以“无感”对接到自动化测试中,极大扩展了自动化测试的优势,彻底改进了自动化测试变更管理难的短板。
 
 这一技术方案的推出,就像给自动化测试装上“精准测试”的眼睛和翅膀,瞬间就具备了多种飞跃功能。比如:
 1) 自动化测试用例与源码自动建立关联
 2) 同步进行智能回归用例选取
 3) 有效缩小自动化测试执行范围
 4) 即时分析需要进行维护的测试用例集合
 5) 全自动追踪每个测试用例的执行代码路径
 6) 当自动化执行结束后可辅助直接定位自动化用例的代码出错点
 7) 对自动化测试用例集进行分析,例如聚类分析,以及最小用例集合分析等
 8) 对测试用例集的优化给出指导意见
 9) 给出测试用例集运行的总体覆盖率信息
 10) 协助有效的对用例集进行增补
 11) 增量代码覆盖率分析等等。
 
 本文重点以星云精准测试产品与单元测试框架JUnit为例进行说明。
 
 单元测试一般通过写测试用例来测试:核心类方法,异常处理,业务逻辑等。实现Junit单元测试与精准测试的无缝对接后,基本可以确保真正的测试充分性。因为在运行单元测试用例的时候,精准测试系统中将自动生成相应测试用例,并将每个单元测试的代码覆盖情况详细的记录到精准测试系统中,由于精准测试自带测试用例与代码相互追溯以及覆盖率可视化的特性,你可以对当前所写的单元测试是否充分,一览无余。
 
下图是精准测试与Junit单元测试无缝对接实现自动化测试的架构示意图。

  该方案主要特点是:充分利用了JUnit框架的继承特性,所有精准测试必要的通信和控制逻辑可以全部通过基类实现。也就是说,对于原来所有自动化测试用例集,只需要增加一个对于封装的ParentTest的继承。即:不需要对原有测试用例的实现代码做任何改动,就可以实现与星云精准测试平台的对接。对接完成后,JUnit测试的运行过程中,测试用例会自动的在星云精准测试系统中创建,并且全自动记录每个自动化测试用例的代码覆盖信息。
 
  下面是对ParentTest扩展基类主要方法的描述,该解决方案主要针对Junit框架自身的注解方法进行扩展:
@Before:初始化方法对于每一个测试方法都要执行一次,在每个测试方法之前执行,@After:释放资源,在每个测试方法之后执行,@BeforeClass:在当前类的所有测试方法之前执行,@AfterClass:在当前类中的所有测试方法之后执行。一个JUnit4的单元测试用例执行顺序为:
 @BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
 因此可针对这个特性在不同注解代码中进行定制,定制一个公共的类,当其他的单元测试都继承自该类时,也运行相同的方法。通过在不同注解中添加登录版本,创建测试用例并开始,结束测试用例以及登出版本命令,并发送至TTFront组件实现与TT的交互,并不影响单元测试本身的测试程序和测试结果。
 
 TTfront在接受到命令后,登录对应版本并记录用户名,创建完成测试用例后当测试用例运行时刻通过软件示波器实时采集该测试用例对应的覆盖率数据,将该部分数据通过用户名匹配到该测试用例。在TT客户端可以看到测试用例以及该单元测试对应的函数覆盖情况以及代码覆盖情况。
 
 只需要在创建单元测试的时候类继承自已经封装好的ParentTest类,即可与TT无缝对接实现自动化测试。
 Junit单元测试与TT对接的实施案例以及效果图:
 1、创建测试用例时继承自ParentTest类

 2、修改ParentTest中的项目,版本,用户密码以及TT服务端IP

 3、对应修改引入的包(以mvn项目为例),JavaPaser包主要包含了插装代码以及ParentTest类必须要的TT处理逻辑需要的库的引用。

对被测试代码通过TT进行插装打包,注意Junit自动化测试用例代码不需要插装,只需要插装Junit测试的业务逻辑代码即可。
 4、开始单元测试,在测试用例执行过程中,打开TT客户端示波器组件,显示实时采集的覆盖率波形,看到测试用例在TT系统中自动建立。TT客户端效果图(生成对应测试用例以及该测试用例的覆盖情况)

以上讲述了精准测试系统如何无缝与现有自动化测试框架的对接。除了Junit,其他自动化测试框架,均可以参照此思路进行实现(登录星云网站www.teststars.cc 离线企业测试中心即可免费试用)。精准测试系统与自动化进行对接后,可以使无法看清的黑盒状态中的自动化测试执行,变得有迹可循。基于精准测试强大的测试分析系统,可以对自动化测试执行和规划进程进行持续的优化,这一方案,可以有效解决自动化测试的投入产出比居高不下的业界难题。

为自动化测试装上精准测试的“翅膀相关推荐

  1. [转] 给土鳖装上鹰的翅膀和眼睛后会怎么样?

    作者:张国斌 半年前,当Ford Tamer被任命为泰景的新CEO的时候,产业一片哗然,很多人认为将一个主打山寨市场的公司CEO换成老外等于自寻死路,因为山寨市场变幻莫测,竞争异常激烈,而且做山寨市场 ...

  2. 装上后这 14 个插件后,PyCharm 真的是无敌的存在

    来源 | Python编程时光 作者 | 写代码的明哥 Key Promoter X 如果让我给新手推荐一个 PyCharm 必装插件,那一定是  Key Promoter X . 它就相当于一个快捷 ...

  3. 走出回归测试困境,爱奇艺精准测试体系建设

    01 为什么要做精准测试? 精准测试是为了解决回归测试的质量和效率问题. 在具体的业务中,产品功能的迭代.缺陷修复等等是极为常见的需求场景,但这些看似微小且常见的改动都有可能会对产品庞大的历史功能产生 ...

  4. 【星云测试】精准测试的软件产品质量效率变化分析

    2019独角兽企业重金招聘Python工程师标准>>> 精准测试的软件产品质量效率变化分析 伴随着软件规模的扩大和软件快速迭代的双重业务加速要求,软件质量控制的压力也越来越明显.但黑 ...

  5. 【Python】装上后这 14 个插件后,PyCharm 真的是无敌的存在

    作者:写代码的明哥 来源:Python编程时光 1. Key Promoter X 如果让我给新手推荐一个 PyCharm 必装插件,那一定是  Key Promoter X . 它就相当于一个快捷键 ...

  6. 装上后这 14 个插件后,PyCharm 能飞起

    作者:写代码的明哥 来源:Python编程时光 1. Key Promoter X 如果让我给新手推荐一个 PyCharm 必装插件,那一定是  Key Promoter X . 它就相当于一个快捷键 ...

  7. 只懂黑盒测试也能学会代码覆盖率分析和精准测试

    今天文章中我们给大家介绍覆盖率统计及覆盖率分析. 常见覆盖率统计工具 emma cobertura jacoco emma 与 cobertura 是为单元测试而设计的覆盖率统计,jacoco 与 e ...

  8. 中国成语测试软件,精准测试及其工具(连载1)

    原标题:精准测试及其工具(连载1) 百发百中--中国成语 精准测试是一套计算机测试辅助分析系统.精准测试的核心组件包含的软件测试示波器.用例和代码的双向追溯.智能回归测试用例选取.覆盖率分析.缺陷定位 ...

  9. 【技术干货】测试必须知道的精准测试

    目前说到测试提效,基本上想到的都是自动化测试.然而,不管是手工测试还是自动化测试,都存在下面的问题,即每一次版本更新时,我们不确定这些更新到底影响范围有多大,无法精准地评估出测试范围,所以不得不执行完 ...

最新文章

  1. 知乎网解决HTML5 Placeholder的方案
  2. opencv中伪彩色applyColorMap函数(C++ / Python)
  3. Paint.Net学习笔记——二、窗体(上)
  4. 进程间通信 - 动态链接库实现
  5. LeetCode(9) - Palindrome Number
  6. React开发(127):引入icon的方式
  7. flash加xml图片叠加焦点图,左右箭头翻页
  8. 互联网下半场的角逐,玩转轻资产的大数据服务 | 阿里云栖开发者沙龙大数据专场(北京站)干货集锦
  9. 怎么对MySQL数据库操作大数据?这里有思路
  10. 软件测试面试题小结(一)
  11. AGC002E(AtCoder1999) Candy Piles(博弈论)
  12. 【React 】基于Antd Design的CheckBox多选框组件封装
  13. Jpg格式图片如何缩小?怎么把jpg格式图片变小?
  14. Exp5 CAL_MSF基础运用 20154328 常城
  15. Python 计算思维训练——公式计算
  16. Python 为何能坐稳 AI 时代头牌语言
  17. ubuntu系统安装完nvidia显卡驱动后黑屏,不能进入系统
  18. 商用机器人底盘的秘密
  19. php菜单无限极分类
  20. 【LeetCode】279. 完全平方数 【动态规划】【四平方和定理】

热门文章

  1. java编程思想 接口_java编程思想——接口
  2. c语言 电报翻译的题目,C语言程序设计实训题目.doc
  3. mac版QQ聊天信息备份与导出方法
  4. win10 和安卓平板分屏Spacedesk
  5. 【自学Python】Python获取字符串长度
  6. sci论文用matlab还是c,c刊和sci期刊有什么区别
  7. UE4数字孪生材质(四)
  8. 外观和样式(04):【参】颜色空间
  9. Web前端系列——HTML的空格表示
  10. IoT黑板报:高通骁龙处理器改名