六大卫视跨年晚会明星阵容曝光,与酷我音乐携手唱响2018 | 百度“PaddlePaddle AI大赛”邀你来挑战 10万元奖金等你拿 | 优酷荣膺年度娱乐力营销大赏,摘首届金河豚三项大奖 | 京东助力沈阳局集团公司构建大物资格局 深化改革实现提质增效 | 【2017盘点】年度最值得入手的降噪耳机推荐 | 荣耀X系列手机赢得超4000万用户 新产品7X再获大奖 | CCTV走进华夏幸福创新中心 《机智过人》年度盛典决战先锋之夜 | 华为OPENDAY知乎专场:原来是“这样”的华为 | 2017年度国内十大科技原创自媒体榜单发布 | 360搜索发布年度科技榜 盘点2017科技刷屏大事件 |
 
当前位置: 新闻>头条新闻>

精准测试

发布时间:2017-12-28 18:16:05  |  来源:北青网  |  作者:   |  责任编辑:科学频道

目前的现实物质世界与软件构造的虚拟世界几乎处在同一维度,人的思维有多复杂,软件代码就有多复杂。不管是金融领域的核心系统还是工业嵌入式软件,动辄上亿行的代码量、几百万个函数,数百个进程,这样的研发与维护的工作量难度可想而知。所以,我们经常可以看到各种报道,比如程序崩溃造成几亿元的金融交易损失、机器人失控攻击使用者、智能生产线效率低迷等。随着软件开发技术的快速迭代以及互联网+、智能化浪潮下软件复杂性和可靠性要求的快速提升,软件测试技术的发展远落后于软件开发技术的发展。然而软件测试是软件开发的伴生物,有软件开发即存在软件测试,软件本身越重要,那么测试的要求越高。国内专业测试行业历经10余年的发展,测试行业已经取得了从业人数的一个巨大的发展,然而大部分企业的测试依然采用人工经验型功能测试。传统功能测试具有测试领域所常说的“杀虫剂效应”,面对高复杂度的应用,基于功能描述的缺陷检出后期的效率会快速下降,无法发现隐蔽的缺陷。同时,伴随着智能化的发展,产品的外在功能正在简化而内部实现将变得更加复杂,仅仅从功能使用层面,寻找办法,解决软件测试的效率和质量将变得更加困难。纵观各行业,要做到快速发展,依赖于人工为主的经验型方法,显然是不现实的。精确的度量方法和生产的高度量化控制以及智能化的辅助工具,是一个行业真正发展所需要的最基本的条件,而这一切正是几乎完全依赖于人工业务经验的软件测试行业所最欠缺的。

软件测试的发展遭遇尴尬境地,其主要原因是面临一些测试技术瓶颈问题目前没有突破。其实,造成软件维护困难的深层次的原因在于:软件测试的整个过程和方法完全面对一个不知内部结构的BLACK BOX。而测试的难点就体现在以下几个方面:

(1)系统级的测试用的基本都是黑盒测试方法,从根本上注定基于黑盒测试方法的各种方法都没有直接面对计算机所真正理解的程序层面去解决软件测试问题。同时黑盒测试永远带有一种猜测的基因,过程非常不稳定,并且难以控制。

(2)测试过程中所产生的数据基本都是人工录入,数据的准确性无法保证,也这是为什么软件测试永远强调团队的职业素质和管理能力,软件测试本身的结果并不具备可信性,因为不管通过测试找到了多少缺陷,也无法精确的对软件质量进行定义和判断。在极端情况下,软件测试是否真正有效的开展和执行都是非常难以判断的。软件测试和开发的最大区别是它并没有明确的产出物,和开发相比工作目标也是不清晰的,结果的不可信和成果的不可见性,使得软件测试经常处于被动的局面,也使得软件测试很难有创新的业务模式,依然采用传统软件开发的作坊式方式。

(3)传统的功能测试过程极其不稳定,特别依赖于测试人员的业务能力和临场发挥能力,即使很优秀的测试人员也会因为状态问题而导致测试用例设计水准出现波动,更不要提有经验人员和经验欠缺人员的在测试质量上的巨大差别,对于企业来讲,将产品质量依赖于个人的经验水平上是非常危险的。同时企业强调的是技术体系,而依赖于经验的测试方法,则非常难以传承,同时从工程角度,普通的测试工程师可能即使投入很大的工作时间,也难以短期达到高级测试工程师的测试水准。

(4)业界几乎将自动化测试作为解决软件测试效的灵丹妙药,但实质上自动化测试无外乎是人的经验的机械执行而已,完全无法解决测试的根本症结。对于绝大部分企业,自动化测试因为存在和被测程序很强的相关性和耦合性,对程序的变化适应性差以及开发难度等因素,自动化测试通常仅用来解决主干业务流程的测试,真正有效实施的案例也比较少。自动化测试是黑盒测试的一种高级形式,它加快了测试执行的效率,但并没有改变测试用例黑盒设计方法和引入先进的测试分析方法。

(5)最后再分析下被认为“高端”的白盒测试技术,白盒测试技术由来已久也并不缺乏优秀的商业工具,但其在企业内的应用范围非常狭窄。

主要由于以下的原因:

1.白盒测试难以脱离开发环境,很难适应系统级的测试,并且难以实施。通常测试工程师在对代码内部不是很了解的情况下,很难有效的进行测试。

2.结果依赖于代码版本,代码发生改变后很多数据都失效,无法适应快速迭代的敏捷开发。白盒测试技术诞生的时候,软件迭代周期非常慢,具有明显的开发-测试交替的界限,而这些界限在当今的软件开发界随着敏捷开发模式的推行已经非常模糊。当今的软件测试周期内,是没有足够的时间节点对针对一个版本做完整的白盒测试。

3.以单机在开发环境内测试方式为主,不支持团队的分布式测试和分析,不适合大型软件的测试,这一点显然也是传统白盒测试不能有效应用的原因。

4.以单元测试为主要方式,无法有效适应大型、复杂软件的测试,构造驱动和桩程序以及完成所有单元的测试,时间消耗和周期都是企业无法承受的。同时对于复杂系统,更多的逻辑错误是发生在系统各模块串接和组合以后,而不仅仅是发生在单元内部。

5.不支持用例级别的测试覆盖率分析。目前几乎所有的白盒测试工具不特别强调用例级的覆盖率,将所有测试结果混在一起,让白盒结果无法区分覆盖率的贡献来自于哪个具体的测试用例,这将大幅度降低白盒测试工具在用例分析上的作用。

6.以覆盖率为主要目标也是行业无法接受白盒测试的原因,因为高覆盖率在很多场合是不适合的,普通的白盒测试数据并没有更加有效的应用到测试分析算法中去。

那么到底什么样的测试技术才能改变软件测试的尴尬境地?我们可以在车辆功能安全标准ISO26262安全管理生命周期的细则中总结出软件测试必须具备的基因,从项目管理上来看,测试工作需要达到两点:第一,实现开发与测试的交互管理;第二,实现可追溯的工程技术。从项目测试执行上来看,测试工作需要同时支持静态测试和动态测试。

针对以上提出的问题,如何能够给测试行业带来改革性的创新呢?精准测试技术在各种我们所熟知的测试方法都无法解决软件测试的根本问题的情况下应运而生。精准测试技术在2014年(当时用名“穿线测试”)和2016年的国际软件测试大会上发布。更为难得的是,精准测试并不是舶来品,而是由国内顶尖的测试专家设计和带队,自2012年初研发的星云测试平台里的软件测试技术新路线方法。

精准测试从诞生第一天起,其软件产品、工具属性就远超经验属性,它的核心思想就是用软件测试软件,具有天生的工具基因和智能分析系统的基因。它的设计思想在于用非常精确和智能的软件来解决软件测试的问题,并从根本上引领软件测试从经验型方法向技术性方法的转型。

以下就将针对精准测试的作详细的介绍。

一、精准测试的设计思想

总结传统的测试方法主要面临以下几方面的瓶颈问题:

(1)低效:主要基于人工评定的黑盒测试方法,检测后期会遇到“杀虫剂”效应”,除非消耗大量的人工成本,否则无法打造具有高软件可靠性的产品。对于产品级功能和高可靠性要求比较高的产品,因为无法采用互联网纯软件产品的灰度发布技术,它必须要严格保证每一个产品版本的质量问题。

(2)检测结果可信性:检测数据人工因素占据绝大部分比重,导致检测数据本身不具备技术公信力,进而导致管理成本的升高,传统测试管理难度很大,因为很难保证测试的一些数据是正确和真实录入的。

(3)无法精准量化控制:无严谨的量化结果,数据可追溯性差,以人工干预的主观观测和定性评价结果为主导,对人力经验依赖很大,结果不稳定。对于绝大部分企业,一定需要依靠对业务和测试经验高的人员才能保证产品质量,一旦人员发生变动质量会抖动的很厉害。而对于测试新人可能投入数倍的时间都无法达到有经验人员的水平,这是因为经验性方法,没有量化控制看不到明确的测试差距和量化目标,对于没有经验的人员,投入数倍的时间都难以达到经验人员的测试水准。

同时,企业的研发团队和测试团队,也面临着协同工作比较难的问题,开发团队面临的主要问题:

1)通常花费大量时间复现和Debug缺陷,无法精确把握缺陷现场的详细信息;

2)开发团队也不清楚用例的执行逻辑,无法有效帮助测试进行用例审核。

测试团队同样也面临着一些问题:

1)通常给到开发团队测试结果以非常模糊的功能逻辑的描述,造成测试的隐患;

2)依照开发团队变更的解释以及业务经验,从功能层面去判断和执行回归测试,存在很大的风险;

3)无法获取测试充分度的精确数据。

总之,在企业内部,开发和测试因为是完全不同的技术岗位,因此相互直接的交互非常困难,开发人员几乎很难理解测试人员所谓测试用例,而测试人员更是通常对代码完全一无所知。两个完全不同的岗位在企业内部长久以来的交互更多的是非形式化的自然语言,不论在中国还是欧美,开发和测试的协同问题一直没有很好解决办法。

如何能够解决企业面临的测试方法瓶颈问题以及团队管理不便的问题?基于这样的困境,精准测试的理念给出了完美的解决方案。精准测试主要将测试过程变得可视、智能、可信和精准。

Ø精准:通过测试示波器技术,精准记录黑盒测试用例对应的代码逻辑,实现测试用例到代码逻辑的精准记录和双向追溯;精准的代码级的缺陷定位和崩溃分析;精准的测试充分度分析。

Ø可视:关联代码的覆盖率计算可视化技术;条件及其组合执行的可视化;实时的程序运行指标图形输出;人工交互式的代码控制流程图、函数调用图。

Ø智能:智能的回归测试用例选取算法;基于测试用例执行剖面的用例聚类算法;动、静态信息的高危测试漏洞检出算法;多版本测试数据的自动聚合。

Ø可信:所有测试数据均是在测试执行过程中由软件自动分析并录入的底层代码运行数据,数据没有办法伪造和篡改,真实记录测试现场的情况,并基于这些可信的数据给出可信的测试结果。

精准测试强调通过技术的改进去更加自然的对协作、流程进行改进,精准测试强调深挖和放大测试的价值。在传统意义上,测试的工作以及所产生的数据,绝大部分都在缺陷本身,所以测试本身对于研发流程的作用仅仅局限于找到缺陷本身,而精准测试则强调提升测试的价值。例如通过精准测试系统可以通过测试自动描述功能的代码实现逻辑并且可视化展示和存储,研发团队可以基于这些信息对系统进行迭代和一致性修改,甚至帮助开发去理解代码实现逻辑。另外例如传统测试只能找到从功能角度定义的缺陷,而通过精准测试系统的缺陷定位技术,可以基于功能角度标记的测试用例的执行状态(通过/失败)以及基于测试用例与代码的频谱映射关系,可以自动计算缺陷代码的怀疑率,直接给出最可能出错的代码块,这些数据将对开发提供强大的帮助。

二、精准测试的核心特性

精准测试的核心特性如下:

(1)不改变传统的软件测试方法,在黑盒测试过程中,由计算机软件去采集程序执行逻辑以及其他测试数据的过程,测试过程不需要直接面对程序代码进行。并实现测试用例和代码的自动关联,将功能测试直接映射到代码层。

(2)所有数据由系统自动、原生录入,不可人工直接修改,保证数据精准和不可篡改,精准的测试数据可直接用于测试的过程管理和实效分析。

(3)支持测试数据的精准度量以及全面的、多维度的测试分析算法,将白盒测试的视角从覆盖率扩展到智能测试分析。

(4)基于测试用例和代码的映射关系,支持快速迭代过程中回归测试用例的自动选取算法。

三、精准测试的整体架构

精准测试首先是一种通用的测试分析系统,其内部算法实现与具体业务无关,对于各种类型的应用软件都可以采用同一套方法进行确认。其最底层的方法是建立测试用例与代码的关系,任何类型表现形式的软件都会存在测试用例(功能)与代码的双向关联关系,因此精准测试的应用范围是非常广泛的。由于精准测试本身和用户的业务并没有直接关系,因此初步的设计测试用例和执行测试用例还是用户原有的测试体系来进行的,而一旦通过精准测试建立了测试用例和代码的关系,那么后面将提供大量的有价值的计算机辅助测试分析的结果。

精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。精准测试系统的本质是一套强大的计算机测试辅助分析系统,它的关键技术是测试用例和代码的双向追溯技术,通过该项技术,很多高级测试算法得以应用同时将测试和开发进行非常紧密的连接。精准测试系统并没有取代人工设计用例、执行用例的过程,但是通过对该过程深入到代码层的分析,可以相当大的程度改进人工测试所产生的各种问题。上述精准测试框架还在不断的演化中,截至目前,星云测试已经发布了精准测试完整的解决方案和商业平台,同时华为、阿里巴巴、Testbird、搜狗等企业也在积极响应和推进该项技术在大型企业内部的实践和应用。以下我们就针对精准核心技术以及解决的问题、带来的效果做详细的介绍。

图1精准测试功能架构图

3.1软件测试示波器

精准测试数字化测试在黑盒功能测试过程中采集动态覆盖率的技术组件,即软件测试示波器,它是对于软件测试的一大创新。精准测试示波器能够在测试过程中,自动分析程序运行的一些数据指标,以波形的形式进行实时输出,例如跟踪显示程序执行的逻辑块的速率指标,程序执行的条件数速率指标等。示波器还能够用来对程序的行为进行深度的分析。例如可以通过示波器来判断不同的测试用例是否为等价类,因

此示波器可以记录每个功能对应的输入精确的逻辑块执行的数量,因此当程序的行为发生明显变化的时候,示波器可以很精准的分析出来,测试人员可以根据这些数据,来进行等价类的判断。它和电气示波器一样,能够对程序的执行进行很多类型的分析和判断。精准测试示波器改变了传统测试只面对被测试应用和一些简单的测试管理系统,它将成为测试工程师身边强大的测试分析辅助工具。在实际测试的过程中,测试工程师可以看到类似于心电图的数据获取模式,让软件测试过程因此变得可视、精准。具体的如图2所示:

图2示波器

精准测试示波器在使用上对常规的测试几乎没有特别的干扰,示波器内部也维护一套测试用例,但是更多的是一种符号的象征。示波器最大的作用是在测试用例执行的过程中采集测试用例对应的代码逻辑的运行信息。测试工程师只要真正开始某个用例执行之前,首先选择测试用例,其次点击开始录制按钮,最后回到应用上根据预先设计的用例流程操作被测试程序即可,当执行结束后单击结束按钮。在执行测试用例的过程中所有代码执行逻辑都会自动映射到这个测试用例上。人工的点击开始和结束主要用来界定测试用例的执行边界,示波器会把这个阶段产生的程序执行信息映射到所选择的测试用例上。

示波器系统和被测程序一般采用网络连接进行通信,当被测程序运行过程中,将软件的执行序列通过网络传输给示波器。整个过程由软件自动采集,也保证整个精准测试的输入是精准的。这个也是精准测试的“精准”数据的采集来源,所有的用例数据,都是通过示波器采集的,并不是人工录入的。没有做过的操作示波器自然不会采集相对应的程序逻辑,现场执行的错误示波器也会如实记录,这就使得原来由人工录入的测试数据变得非常的准确。由人工录入的数据可以存在伪造、失真以至于不可信。而示波器则是和电气示波器原理类似,会真实的记录实际的测试情况。

软件示波器同样是测试人员的一个非常强大的辅助分析工具,通过它可以轻易辨别测试用例是否为等价类和精确确定等价类的边界。示波器可提供相近测试用例的代码执行序列的比对功能,用于判断两组用例是否完全等价。也可以通过不同用例执行后的指标终值判断两组用例是否等价。同时示波器有助于对平时无法看到的程序行为进行判断,例如不操作被测程序的过程中,程序是否在有后台执行的代码。也可以分析出来程序的计算量,是否存在计算密集的功能区域等,

3.2用例和代码的双向追溯

精准测试从开发和测试人员的最主要工作组件入手,率先提出了测试用例和代码的双向追溯,它也是精准(穿线)测试最核心技术之一。即运行一个测试用例以后,精准测试可以通过程序自动的记录和显示这个测试用例执行的代码。如果测试用户关注某一些代码行,它可以追溯出哪些测试用例在运行过程中跑过这段代码。我们都知道软件开发的两大核心人员就是开发和测试人员,这是完全不同的两类技术工种,开发和测试一直没有办法进行真正的信息化沟通。通过这个技术特性,每个测试工程师的每个测试用例都可以进行量化的分析和统计,这些量化数据既可以用来对测试工程师进行工作的考量,也可以提供开发人员和测试人员之间进行信息化的交流。

双向追溯技术记录了每个测试用例对应的程序内部的执行细节,细致到每个条件、分支、语句块的执行情况,可以理解为一个全景的调试器。开发人员可以通过双向追溯的结果去理解程序逻辑,进行软件维护以及进行可一致性的修改,因此,开发人员将很大程度上增加对测试人员工作的认同。开发和测试交流最头痛缺陷复现的问题可以迎刃而解,大大提升了测试和开发的交流效率。

双向追溯技术分为正向追溯与反向追溯。正向追溯是指:将测试用例和海量的代码执行信息自动关联,可精确到函数级别及代码块级别;通过正向追溯可直接在代码级定位测试现场故障和缺陷逻辑,并提供最后运行的时序数据;通过正向追溯自动记录产生功能对应的详细设计实现,辅助软件解耦和架构分析。具体如图2所示:

图3正向追溯

正向追溯的优势是:迅速定位缺陷对应的代码执行逻辑,帮助开发快速修复缺陷,可追踪难复现缺陷;精确、详尽的记录测试用例运行的情况,为精准软件测试提供大量原生分析性数据;可以进行事后的缺陷分析、追踪,辅助开发进行功能实现确认。

反向追溯是指:分析代码关联的功能,为研发分析系统和进行一致性修改以及回归测试分析提供精确数据。具体如图4所示:

图4反向追溯

3.3智能回归测试用例选取算法

精准测试为什么要使用智能回归算法呢?究其原因可知:

Ø超过60%的对软件系统的修改会无意中引入新的错误

Ø每修改6行代码就会引入一个新的错误。

如何才能利用技术手段,尽可能避免再次引入新的错误,精准测试提出了智能回归测试用例选取算法,最终要达到的目标是:

(1)检查测试出的软件问题是否得到了正确的修改;

(2)保证被测软件在被修改之后,各项功能依然正确(未引入新的缺陷)。

为了达到以上的最终目的,图5展示了回归测试逻辑

图5回归测试逻辑图

智能回归算法选取的带来的效果如下:

(1)适应快速的版本迭代周期,适应庞大的工程项目。

(2)在回归测试时,自动筛选测试用例,大大减少了回归测试的时间以及风险。

(3)降低了传统人工回归分析产生的测试盲点。

(4)精确计算回归用例的权重,测试人员在时间有限的情况下可以重点回归受改动影响最大的用例。

3.4灰盒模式下的代码覆盖率分析

测试覆盖率是测试界公认的最佳的是测试结项的可用量化指标。在黑盒测试中,测试人员需要充分了解需求后逐渐细化到小功能,进行测试用例的设计,然后通过测试过程中出现的问题以及和客户的交流再加以完善,这样的过程过度依赖个人经验和能力等因素,并且也不一定能达到完美的效果。在白盒测试中,测试流程需要对每条代码、每个语句、每个判断进行运行分析,测试周期冗长,大多企业无法承受。而精准测试的设计是通过软件示波器以透明的测试再系统测试阶段取采集代码覆盖率,然后再后台完成运算,这个过程是以灰盒的模式运行。

精准测试覆盖率形式多样,最高支持航天航空标准MC/DC的100%覆盖率要求,并且提供了全新的覆盖率每日增长趋势图。项目管理者可以通过该报表清晰的观察整个测试进度情况,精准测试平台的覆盖率趋势图对于团队的质量控制具有很好的指导意义,它能够让高级管理人员对测试进度进行预判,也能够对测试效率进行有效的识别,例如通过对覆盖率增长曲线的拟合,可判断按照目前进度能够在上线日期到达前能够一个合理的测试水准;通过覆盖率增长是否走平,可判断是否达到黑盒测试的极限区,主动地进行测试策略的调整。

精准测试系统在设计上是开发与测试进行协同的系统,强调在测试阶段首先自动采集系统级的覆盖率,无需开发人员介入,当测试进行基本完成后,由开发人员将测试结果与代码绑定起来,分析漏测逻辑,由于软件的复杂性,通常进行完功能测试后,一般情况下会剩余至少30%以上的漏测点,而通常由于黑盒测试的杀虫剂效应以及对需求把握的问题,通过测试想完成覆盖,会比前期的覆盖投入增加数倍,而通过精准测试的覆盖率可视化,将测试用例的执行结果映射到代码层以后,让开发人员直接审核并且补充用例,效率将会有平均3-5倍以上的提升。

3.5测试用例的聚类分析

基于精准测试系统,构建的测试用例与代码的的执行剖面的关系,可以对测试用例的执行进行聚类分析。根据真实的执行剖面进行聚类,将会对测试用例的聚集性属性进行分析。测试用例的执行剖面结构矩阵的输入为两维数据,第一维为测试用例的名称(ID),然后是该用例对应的函数执行剖面或者代码块执行剖面,然后将剖面数据向量化以后通过K-Means等标准聚类算法进行聚类分析。聚类的数据主要可以用于一下几种场景:

首先,聚类结果可以在管理端识别测试现场错误执行的测试用例。测试是用来检测开发的程序是否存在缺陷,同样测试本身也会产生缺陷,而通常由于测试已经处于产品发布周期的末端,因此测试本身存在的缺陷则很大概率直接带入生产环境。对于测试的缺陷本身的检测,基于程序执行频谱的聚类分析具有强大的分析能力。基于程序的执行频谱将按照实际测试用例运行的程序路径进行聚类,和人工实现的分类最大的不同,它可是识别测试用例的动态执行错误。例如为了测试业务A,结果实际由于出错,跑的是业务B或者A业务没有按照实际需求的步骤执行。那么聚类结果将显示测试用例A的业务B聚类到了一起,那么管理者可以通过这个结果对各种原因造成的用例执行错误即测试环境产生的错误进行甄别。

同时聚类结果非常有助于测试管理人员对用例的分布进行分析,可以看出哪些功能范围经过了充分的测试哪些功能点用例数量较稀少。根据这些结果以及系统本身的业务可以进行综合的宏观的判断。软件的缺陷在理论上的分布具有规律,通常缺陷会更多的分布在一些相近的功能区域。基于这个原理,我们可以利用聚类结果去组织测试计划。当上线时间比较紧张,测试时间不充足的情况下,可以采用基于上一轮的聚类结果,进行筛选用例,从一个类中选出中心点用例和随机的几个用例,如果都正确那么就可以不对这个功能点的其他用例进行重点测试,反之则需要重点进行排查。这样测试就可以更加从容的去选择用例集而不是在整个范围内进行随机选择,将大幅度的提升测试发现缺陷的效率。

四、精准测试的效率

传统的黑盒测试技术属于经验型模糊测试,质量、进度不可视,系统与人员的管理成本极高,没有实用的工业标准,软件可靠性风险高,并且传统的黑盒测试在70%前的阶段,查找BUG是非常迅速的,但之后缺陷的发现效率会急剧的下降。而传统的白盒测试技术直接面对代码测试,难度大、效率低,集成和单元阶段的附加成本很高,无法云化,仅关注覆盖率。精准测试是结合传统的黑盒测试与白盒测试相结合的模式,它可以在黑盒测试过程中,通过专用程序自动采集白盒级别的运行逻辑数据,根据可视化出来的不足点和漏洞点,引导开发和测试有针对性的高效的补充用例。精准测试的效率分析如图6所示:

图6精准测试效率分析

应用精准测试系统,经过大量的实际企业案例的分析。达到同等质量水平的时间可以缩短2-2.5倍左右,对于人力成本昂贵的IT企业可以节省大量的测试投入。对于企业抢占时间快速发布稳定的系统具有关键的意义。对于软件可靠性要求极高的企业,应用精准测试技术,在人力投入不发生变化的情况下,质量水平可以提升20-30%,能够非常有效的保证发布软件的质量。如图7所示:

图7精准测试维护效率分析

图6是精准测试系统在长期的软件维护过程中精准测试系统对于维护的效率提升。精准测试下的维护完全由计算机的分析系统所主导,大型软件之所以难以维护,是因为传统的软件开发过程对于软件维护更多的基于人对于软件系统的理解,而随着维护的进行人的记忆以及人员的变动都很大程度影响维护的效率。很多大型软件之所有因为无法维护而最终不得不重新开发,主要原因之一就是老的系统维护成本会持续地增加。而精准测试则通过测试过程中所记录的数据,在持续的迭代过程中记录海量的分析数据,随着迭代的进行,数据记录的量更多、更精确,它反而可以得出更加精准的分析结果。

五、总结

本文框架性介绍了精准测试技术,分别从精准测试的提出理念、特性、核心技术以及效率等方面进行了详细的说明。精准测试是一个开放体系,未来的发展方向主要是针对被测程序的质量验收与建立良好的测试体系,对于现今软件定义的大趋势,版本高速迭代与程序的质量都影响着各行业企业的发展,精准测试在这方面凭借着自身的技术优势,在不为企业增加多余的负担的情况下,快速的提升程序质量以及建立一套完善的测试体系。精准测试系统诠释者软件测试软件的全新的软件测试理念,将人工分析转换为人工智能分析,让测试理论、算法落地到企业应用,有效的指导企业进行高效率的质量保证。

测试的价值提升除了在技术层面外,同样大幅度提升了测试本身的价值。传统意义上的测试仅仅是以寻找缺陷为第一目的甚至是唯一目的的,当测试结束以后并不会留有多少有价值的资产。测试对软件需求最精确的把握这一天生优势并没有有效的发挥,传统测试也仅仅是软件生命周期中的一个小的环节。而精准测试的则可以大幅度的提升测试的价值,通过精准测试系统,产生了大量对研发、程序实现分析有价值的、海量的数据,并且可以随时追溯和分析,将软件测试的价值进行了有效放大。因此精准测试将大幅度提升测试的价值和意义,推动测试行业进行深度的发展。