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%都是驻场的,驻场外包会产生很多不必要的开销。而精准测试虽然是技术层面的概念,但因为精准测试技术采用的是非人工录入数据的原生态数据源,又有实时的报表计算和测试跟踪等功能,因此精准测试天生也是一个具有互联网基因的技术,它存在推动软件测试互联网化潜能。