15 个问答为专业测试人员揭开 “精准测试” 的面纱

什么是精准测试?软件测试是否必要达到精准?精准的同时是否提高了测试成本?精准测试对于普通测试工程师乃至测试行业会有怎样的影响?让我们带着这一系列的问题来关注精准测试的 15 个问答,揭开精准测试的面纱。

1.到底什么是精准测试?它和传统测试的区别和联系?*
相对于普通测试,精准测试是在传统测试过程中,通过技术手段对被测程序进行 360 度全景测试,将测试过程可视化、数字化、标准化,从而达到被测程序上线稳定、无风险、维护成本低等优势。
和传统测试比起来,精准测试能够通过程序自动的生成海量的、不能被篡改的原生态测试数据,通过这些数据的汇集、分析对测试进行带有智能性的指导,避免了传统测试过程中人力记录的时间成本与真实性的问题。
精准测试和传统测试的联系在于,整个测试过程中实际操作完全基于传统测试,并通过技术手段在传统的测试过程中自动产生原生态的测试数据。

2.精准测试技术对于黑盒手工测试如何进行效率提升?
肯定很多人想问,精准测试更精准、质量越高是否需要花费更大量的时间?在现今互联网时代,版本高速迭代的过程中,导致了大量黑盒手工测试的诞生,这样是否与精准测试提出的质量保证产生矛盾?我们通过下面这样图进行分析:

传统的黑盒测试在 70% 前的阶段,查找 BUG 是非常迅速的,但之后缺陷的发现效率会急剧的下降。
精准测试是结合传统的黑盒测试与白盒测试相结合的模式,它可以在黑盒测试过程中,通过程序自动产生白盒级别的运行逻辑数据,根据可视化出来的不足点和漏洞点,引导开发和测试有针对性的高效的补充用例。

3.精准测试对于测试行业的影响是什么?对普通测试人员的影响?
精准测试对于测试行业来说是一项重大的突破,用原生态的测试数据来保证被测程序的质量,从而提高程序的稳定性、可维护性。
对普通测试人员来说,精准测试相当于一个 “透明” 的测试,在测试中后期,精准测试能大大提高普通测试人员的测试质量以及把控测试方向,黑盒手工测试也能够容易的突破职位的瓶颈。

4.精准测试为什么可以促进测试和开发的互动?以及融洽二者的关系?
精准测试在测试过程中会产生大量的原生态测试数据,而精准测试在测试过程中能够直接将测试人员的功能执行定位到代码的运行逻辑,使得开发人员很容易的在代码中定位到测试过中产生的问题,这样的使得开发和测试有了一层交流的通道从而达到互动。

5.精准测试对于覆盖率技术的全新诠释?
对于白盒测试有深入研究的技术人员可能会问到,精准测试还是很多用到了覆盖率技术,这些本来不就是有开源的工具吗?下面我们来比较一下:
开源的覆盖率工具:
1、 将所有的测试产生的覆盖率混在一起,不具备快速定位缺陷与辅助查错,分析测试效率以及管理特性等等。
2、 单机运行,一个团队下多人测试的结果无法有效整合,也不能按照日期累计。
3、 无法达到 MC/DC 这些更高要求的覆盖率计算。
4、 无法提供版本变更后的覆盖率的累积,无法适应高速迭代的应用场景。
5、 最大的问题在于普通开源产品必须面对代码进行覆盖率的统计,而绝大部分场合测试工程师是不具备拿到代码的权限的。
精准测试:
1、 覆盖率的分析和计算精确到每条测试用例针对的函数,每个代码块,每行代码
2、 多人异地测试,数据整合计算该版本的覆盖率,按日增长趋势的分析
3、 把覆盖率划分不同的等级,最高支持 MC/DC 条件组合覆盖率分析计算,可自定义要求
4、 版本迭代,多版本覆盖率分析对比,适应高速迭代的应用场景
5、 初始编译时需要代码(可隔离编译保证源码安全性),后期整个测试和覆盖率分析过程无需代码

6.精准测试和手工、自动化测试的关系,以及各自对测试行业的导向是怎样的?
精准测试因为不改变原有的测试流程,这使得它在手工或者自动化测试中都能使用,例如:精准测试产生的数字化测试数据对整个自动化测试过程可以进行深入跟踪和分析,精准测试的分析降低了自动化测试人为的干预度,使得自动化测试更加智能。
未来类似于精准测试技术的测试分析系统会真正引领测试走出打开新的局面。因为测试分析系统是属于测试的专业范畴,更加适合测试人员的专业特性。而自动化测试,天生的脚本开发特性以及复杂的控制特性,对绝大部分普通测试工程师来讲,这方面处于明显的劣势。

7.精准测试强调的测试数据的原生性和对测试组织形式的影响?
原生性也就代表了公正性、真实性,精准测试提倡原生性的目的在于通过原生的数字化信息让测试这个行业的结果更加公正、真实、可信。避免人为原因造成的验收盲区。
国内的测试外包几乎 100% 都是驻场的,驻场外包会产生很多不必要的开销。而精准测试采用的非人工录入数据的原生态数据源技术,可以实时实现报表计算和测试跟踪等功能,甲乙双方可以用不同的身份登录相应系统,实时查看与其权限相对应的被测应用的各种数据、指标,团队完成质量与进度等信息。因此精准测试天生具有互联网远程精准测试基因,它将对测试组织形态将起到重大变改作用。

8.精准测试在软件质量分析领域的核心特性是什么?
精准测试的核心特性有:精准的等价类划分、崩溃捕获、路径分析、全方位可视化的测试每一步,实时接收测试数据,测试用例和代码的双向关联与追溯、全面记录测试过程中的测试设备和测试人员以及测试用例与代码等多者之间的关联,并通过丰富的报表和技术债务与风险指标进行展示。
精准测试将测试过程所获得数据进行了指标化,测试后即会得到关于覆盖率、复杂度、代码重复率、测试漏洞计算、崩溃分析、测试充分度分析、测试贡献度分析、技术债务计算、设备和缺陷的关联度分析等精准的质量分析报告来分析测试和项目质量。

9.精准测试在设计上对于普通手工测试工程师如何考虑?
精准测试在设计上对于普通手工测试工程师进行了优先考虑。它可以在完全不改变测试流程的情况下,沿用黑盒简单的点测方法,通过精准测试的核心算法,产生成原生态的测试数据。然后用覆盖率计算可视化、控制流程图、双向追溯等技术、以细致的图型分析(而不是仅为一个抽像数字)等系列方法,让普通手工测试具备理解测试结果能力以及与开发工程师进行测试结果的数字化分析与交互能力。

10.精准测试对于代码保全和软件工程方面的重要贡献有哪些?
精准测试在实际运行过程中会记录测试每一步足迹,这也间接的保全了功能的实现逻辑,精准测试通过技术手段把测试用例和代码进行了对接,这使得开发来人在改动代码的时候可以通过测试人员的测试用例知晓其改动的印象范围,以便于做到一致性修改,并且更换新的开发人员也可以通过这个功能来了解被测程序的代码运行逻辑,这样有利于开发理解迅速掌握程序的内部结构。

11. 没有源代码能否进行精准测试?
传统白盒测试不能进入普及化的主要原因是因为学习难度大以及对代码的安全考虑。精准测试为了保证源码安全性,采用了对代码进行插装的技术,插桩后打包的应用给测试人员,完全杜绝了测试人员或用户触碰代码的机会,在测试分析过程中如需要源码,只需在本地有源码的环境中与测试数据所记录的数据库匹配,就能实现无缝对接。
精准测试这项技术更完美的适用于移动互联网这类的行业。
测试人员甚至可以边在行驶过程中操作智能驾驶系统的同时,通过精准测试的软件示波器即时地获得测试数据和测试结果。测试人员在移动的车上进行测试后,将一整天获得的测试数据拿到软件平台中进行分析。测试全程无法接触到源码,保证源码安全。


12.如何理解精准测试里面的技术债务分析?
一款程序的代码的编写、代码的复杂度、以及开发的人员、测试人员后期的维护等都会对程序产生可能的损害,也即称为技术债务。在精准测试里面,可以通过各项指标对软件进行债务分析与计算,债务越少就表明该程序的测试越充分、稳定性更好、可维护性佳。另外,它还可以通过该值对后期可能需要的投入进行了预判。精准测试每项指标都有详细的数据来源,通过深入分析这些指标,用户可以了解如何去偿还这些技术债务,而这个偿还技术债务的过程即是软件质量接近完美的过程。

13.精准测试未来的发展方向是怎样的?
精准测试未来的发展方向主要是针对被测程序的质量验收与建立良好的测试体系,对于现今互联网企业的崛起,版本高速迭代与程序的质量都影响着互联网企业的发展,精准测试在这方面凭借着自身的技术优势,在不为企业增加多余的负担的情况下,逐步的提升程序质量以及建立一套完善的测试体系。

14.精准测试对于软件交付、软件众测的意义有哪些?
在互联网发展的今天,软件定制已经成了行业热门,但是如何让软件持续达到甲方要求的预期呢?显然,采用驻场外包形式需要花费大量的人力管理和其它开支成本。精准测试的原生态数据恰好解决了这些顾虑,它通过技术手段,可以采用分布式互联网管理的测试方式,甲方只需通过这个精准测试平台就能观察到整个程序的测试质量,让甲方在验收的同时多了一份公正的数据支持。
目前市面上的软件众测也是基于大量的测试人力,由于承接方的个人能力差距较大,因此各种 BUG 的描述、问题表达、以及测试的范围度,这些都无法进行考量与统一。而精准测试模式可通过追踪不同的测试人员运行的操作轨迹与运行结果,不仅可以合并计算出完整的测试覆盖率范围,也能直接表现出程序模块的热门度,它的优异功能大大解决测试人员因能力差异而提交或描述 BUG 困难的问题,这样甲方在众测试的环境下,也可以得到一份非常有力的原生态的数字化报告。

15.精准测试如何降低企业立测试团队的难度和成本?
精准测试可以快速提高企业测试人员的管理、中后期的测试效率等,大大降低了企业测试团队成本。它通过一系列技术手段在不改变原有的测试流程的基础上,可以降低测试人员要求,并在中后期的测试效率上给予大幅度的帮助,这使得企业成本的核心公式计算中发生了转变。精准测试为企业带来的是明确的、数字化管理,而并不是基于团队模糊的经验判断。

精准测试的设计很大程度上是 2014 年南京软件测试大会上发布的穿线测试理念及产品的延伸。经过一年多的发展,精准测试也有了第一个达到商用标准的软件平台,即星云测试在线云测试平台。它是以精准测试为核心主导,虽然内部计算和逻辑非常复杂,但会以非常简洁的应用模式展现给用户。它可以在人工点测应用的过程中, 产生被大量测应用执行逻辑的原生态数据,并且上传到云平台,通过云平台对这些数据的实时运算和分析, 输出一系列的指标,为被测试应用提供质量参考。简单的说,星云测试是一台 X 光扫描仪,为软件进行客观公正的全身扫描,断病诊症,给出详细的体检报告,为软件优化性能或漏洞修复提供操作指南。
星云测试目前对于个人测试开发者和开发工程师是免费的,可以登录 www.teststars.cc,注册并申请开通,就可以在工作中实际体验精准测试技术了。
精准测试目前还属于全新的软件测试方法,其商业实现还仅有星云测试一个平台,相信随着未来企业对于效率、高质量的追求以及测试从业者职业发展的强烈需求,精准测试一定会成为软件测试领域的一颗明珠。


↙↙↙阅读原文可查看相关链接,并与作者交流