测试用例与代码的双向自动关联与追溯
通过ThreadingTest运行测试用例,采用TT百万图元级别的超高速图形绘制技术展示图,对各种大、中、小型软件进行功能逻辑实现分析,实现测试用例与被测源码间相互追溯。该追溯技术方便了用户查看和设计测试用例,通过基于双向追溯的实测用例分析,测试人员可以快速追踪修改代码的波及范围,针对已修改的模块和波及到的模块有针对性的补充测试用例,把回归测试的成本降至最低。
正向追溯:
通过点击某个测试用例,追溯到该用例所对应的函数控制图,并展示其测试的逻辑和结构,点击其中某个函数,可以进行该函数的覆盖率、复杂度、代码、控制流程图等信息查看,帮助测试人员通过简单查看发现测试遗漏,并且有利于开发人员直接定位测试发现的缺陷,测试和开发之间的高效互动。想象下,当一个核心工程师离职时,他所带走的是对整个程序的理解及开发思路,交接的工程师需要花费大量的时间去理解,TT通过正向追溯,可以使交接的工程师能通过测试用例所展现的程序逻辑和结构等信息,快速的掌握和理解程序的开发思路。
逆向追溯: 通过点击函数列表的某个函数,追溯到该函数所对应的函数调用图、控制流程图以及源码,点击其中的源码,反向追溯到该源码所执行过的测试用例列表。想象下当一个程序需要进行频繁更改升级时,这时对测试人员的压力是无比巨大的,测试人员无法精确到开发人员所更改的代码是否影响到其它的功能,只能对程序进行重新的测试,但通过逆向追溯,测试人员很明确的看到更改的代码所影响到的测试用例表,通过累积覆盖率技术,大大缩短了回归测试的时间。
※ 上海零一拼装信息技术有限公司拥有“一种基于用例与源码双向追溯的测试装置及方法”的专利
实时的被测应用示波器
ThreadingTest率先将引入的测试示波器概念,在实际测试的过程中,可以实时的看到从程序中各种逻辑执行的速率、频率等信息,测试人员可以从传统的对被测应用的黑盒子测试(仅能看到功能的反馈无法看到程序内部的反馈)进而转换成为类似于对于硬件测试的示波器一样,能够对整个测试过程的关键测试数据进行实时的分析和查看。
示波器功能体现:
1. 实时记录被测程序的运行信息:块,函数,条件,运行堆栈
2. 实时记录测试用例对应的程序执行逻辑:
3. 支持源码分离的测试模式
4. 支持分布式的实时记录被测程序的运行信息
5. 可视化观察程序运行情况。波形可直观反应程序行为。
6. 通过波形分析程序在各种硬件平台上的运行性能。
7. 支持真机、模拟器等各类设备的接入
8. 支持各种自动化操作和单元测试所产生的测试数据的记录
9. 支持USB、WIFI、蓝牙等各种设备的连接方式
代码分离测试ThreadingTest的技术特性非常适合于做移动智能类产品的测试,例如对于智驾系统。TT通过自己的专利技术,能够通过TT的示波器专利技术,测试人员甚至可以边在行驶过程中操作智能驾驶系统的同时,通过TT的软件示波器即时的获得测试数据和测试结果。测试人员可以在移动的车上进行测试后,然后将一整天获得的测试数据拿到实验室或者研发中心的软件平台中进行分析。同时TT支持离线测试的方式,是对源代码的最好的保护方式,即在户外进行测试的时候并不需要系统的源代码,而需要进行数据展示的时候,仅需要将测试获得的数据拿回到研发实验室进行关联展示和分析即可。
※ 上海零一拼装信息技术有限公司拥有“一种用于软件测试数据分析的示波器及方法”的专利
版本的对比和累积覆盖率技术软件开发过程中由于多次的迭代和增量开发而不可避免的产生多个版本,相对应的也会产生多次的版本测试。针对多版本的情况ThreadingTest提供了多版本的函数级比较和测试覆盖率合并功能
函数级比较多版本对比以函数为单位,列出了所有函数的增加、修改、删除等一系列状态的对比演化过程(也可以说是一种版本追溯机制),结合函数调用图和控制流程图,使用户可以快速定位不同版本之间函数的区别、某一模块的修改对其他模块产生的影响,提高缺陷的预防能力。
测试工程师,通过多版本的比较,可以有针对性的修改各版本中的测试用例,进行测试对比,找出升级版本带来的隐藏问题。
可持续测试
多版本对比的另一大特性是覆盖率合并,对于多个版本实现智能覆盖率合并,以前述的函数级多版本对比为基础,通过覆盖率合并算法,准确统计出当前最新版本的累积覆盖率,从而极大减少测试工程师的重复测试工作。
零成本集成单元测试、自动化测试等第三方工具。
ThreadingTest Android JUnitTest是基于AndroidJUnit Test,利用ThreadingTest本身的优势,编写的一套单元测试组件。在原有的Android JUnit Test测试驱动代码的基础上,只需要进行简单的字符全局替换,就可以修改为符合ThreadingTest Android JUnit Test测试代码的单元测试。除此之外,两者的测试几乎没有差别,只需要您在测试时,打开TT实时监控来接收数据,而在测试过程中,则无需其他操作,甚至感觉不到数据的收集过程。
对于传统的单元测试,在单元测试结束后,测试人员只能获得测试结果是否符合预期结果。如果与预期结果存在差异,也无法立即得到错误原因。当使用ThreadingTest Android JUnit Test进行单元测试时,还是原有的测试体验,却能够得到白盒测试的数据结果,当单元执行结束后,可以根据产生的数据来分析程序的出错点以及遗漏的测试点,使Bug的查找更快速,更准确。
例:下图展示一个整合过的单元测试,ThreadingTest通过对代码的自动化插装,在不改变原有的测试方式进行的同时,TT示波器会进行测试过程的数据接收并记录,测试完成后通过测试用例脚本,自动化的生成测试用例以及其相关的测试数据。
|