现代的专业软件测试中心,随着项目的迭代,一般针对每一个系统构建了大量的自动化测试用例集,而启动一次全量的自动化测试以CI级触发,使之大比率经过,很是困难。测试工程师们经常须要投入很高的成本,把大量精力花在自动化用例失败排查上面,然而发现有效BUG的几率很低。在反复排查无果、心神俱疲的状况下,几乎对自动化产生绝望之心,视之为鸡肋,用之无用,弃之惋惜,让测试中心极为头疼。架构
如何让自动化用例发挥它们应有的效用,让QA工做不那么沉重呢?星云测试针对这一难题,进行了精准测试与自动化测试无缝对接的技术方案研发。通过大量企业实施与验证,精准测试的数据流最终能够“无感”对接到自动化测试中,极大扩展了自动化测试的优点,完全改进了自动化测试变动管理难的短板。并发
这一技术方案的推出,就像给自动化测试装上“精准测试”的眼睛和翅膀,瞬间就具有了多种功能。好比:框架
1) 自动化测试用例与源码自动创建关联ide
2) 同步进行智能回归用例选取函数
3) 有效缩小自动化测试执行范围单元测试
4) 即时分析须要进行维护的测试用例集合测试
5) 全自动追踪每一个测试用例的执行代码路径优化
6) 当自动化执行结束后可辅助直接定位自动化用例的代码出错点网站
7) 对自动化测试用例集进行分析,例如聚类分析,以及最小用例集合分析等spa
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对接的实施案例以及效果图:
一、建立测试用例时继承自ParentTest类
二、修改ParentTest中的项目,版本,用户密码以及TT服务端IP
三、对应修改引入的包(以mvn项目为例),JavaPaser包主要包含了插装代码以及ParentTest类必需要的TT处理逻辑须要的库的引用。
对被测试代码经过TT进行插装打包,注意Junit自动化测试用例代码不须要插装,只须要插装Junit测试的业务逻辑代码便可。
四、开始单元测试,在测试用例执行过程当中,打开TT客户端示波器组件,显示实时采集的覆盖率波形,看到测试用例在TT系统中自动创建。TT客户端效果图(生成对应测试用例以及该测试用例的覆盖状况)
以上讲述了精准测试系统如何无缝与现有自动化测试框架的对接。除了Junit,其余自动化测试框架,都可以参照此思路进行实现(登陆星云网站www.teststars.cc 离线企业测试中心便可免费试用)。精准测试系统与自动化进行对接后,可使没法看清的黑盒状态中的自动化测试执行,变得有迹可循。基于精准测试强大的测试分析系统,能够对自动化测试执行和规划进程进行持续的优化,这一方案,能够有效解决自动化测试的投入产出比居高不下的业界难题。