精准测试:如何应对敏捷、持续交付、DevOPS对测试的挑战

前言:

这段时间接触精准测试概念,主要推的就是星云测试,上次iSQE听了一下介绍。结合极客时间上的专栏和书本网站的学习,觉得没有什么新奇的啊,不就是覆盖率问题吗,刚刚看了“项目实施DevOps时,我们是如何做测试的 - 异步社区”,再把这几个内容融汇贯通,放到一起,在“云物移大智”的大背景下来思考,感觉这几个内容的兴起和应用是有一定的关联,是当前的时势需要。下面结合文章的内容,把这些相关的概念和背景梳理一下。

一、敏捷、DevOPS对测试的挑战

  图片来自“项目实施DevOps时,我们是如何做测试的 - 异步社区”,标题根据本人理解编辑。   

  

二、软件产品测试的特点和精准测试的作用

        从一开始,测试工作特别是软件测试,就存在两个方面的问题:如何解决测试的可视性。实体物品检测概括来说,两个方面,一是要保证零部件材料和加工质量,二是保证组装成品的特性,都要满足要求。对软件,由于软件组成的材质是一行行代码和二进制符号,直观的可视性其实没有;整个系统组装成品的特性和使用方式易变,直观可视性同样不好。实际上,整个软件测试一直在解决这个问题,白盒测试视图用静态分析审查方法解决材质问题、用单元测试和动态覆盖率解决零件加工问题;黑盒测试尝试解决成品的特性和使用方式验证问题。有些问题,黑盒操作半天,白盒方式读两行代码轻松解决,有些问题,代码调用绕来绕去,但是黑盒方式简单操作即可。但是两者如何结合起来保证质量始终是个大难题,现在还需要面对DevOPS带来的新挑战。

        新形势下,除了从软件产品和业务团队整体维度考虑测试左移和测试右移之外,一种思路是,从测试技术本身触发,解决测试可视化问题,精准测试应运而生。其概念核心就是:借助一定的技术手段、通过算法的辅助对软件测试过程进行可视化、分析以及优化的过程。

       传统软件测试的一些主要问题:1、测试的维护成本日益升高;2、测试过程的低效。不断重复运行一堆用例,但产品的免疫力却越来越强,发现Bug的能力下降,测试工作的边际收益差;3、缺乏有效的回归测试用例选取机制。产品不断迭代,时间紧,但是不能可视化,影响域分析无法有效开展,产品质量防护墙如何定,只能靠经验(拍脑袋)。4、测试结果可信度不高。其实现在业界的测试用例粒度就很可笑,举我们开展第三方测试的例子:一个嵌入式设备,大业务功能只有两个用例,反而一个配置界面搞了数十个用例,反复测试界面异常输入数据。5、白盒和黑盒的关联始终无法解决。到底哪些代码覆盖了哪些特性,哪些测试是确实对用户有意义,没有办法判断。

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

  • 精准:通过测试示波器技术,精准记录黑盒测试用例对应的代码逻辑,实现测试用例到代码逻辑的精准记录和双向追溯;精准的代码级的缺陷定位和崩溃分析;精准的测试充分度分析。
  • 可视:关联代码的覆盖率计算可视化技术;条件及其组合执行的可视化;实时的程序运行指标图形输出;人工交互式的代码控制流程图、函数调用图。
  • 智能:智能的回归测试用例选取算法;基于测试用例执行剖面的用例聚类算法;动、静态信息的高危测试漏洞检出算法;多版本测试数据的自动聚合。
  • 可信:所有测试数据均是在测试执行过程中由软件自动分析并录入的底层代码运行数据,数据没有办法伪造和篡改,真实记录测试现场的情况,并基于这些可信的数据给出可信的测试结果。

      精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。精准测试系统的本质是一套强大的计算机测试辅助分析系统,它的关键技术是测试用例和代码的双向追溯技术,通过该项技术,很多高级测试算法得以应用同时将测试和开发进行非常紧密的连接。精准测试系统并没有取代人工设计用例、执行用例的过程,但是通过对该过程深入到代码层的分析,可以相当大的程度改进人工测试所产生的各种问题。


       上图来自星云测试。该公司应该是目前市面上真正有工具产品的,16年原来推出时是叫穿线测试,现在才全面改称精准测试。 17年我们试用过,但因为我们95%业务是第三方测试,其实对我们用处不大。

(注:  穿线测试理念 ThreadingTest(2014.6.6) 侧重于系统级白盒测试技术,测试用例和代码逻辑的双向追溯技术,测试示波器技术,覆盖率可视化技术。
在线精准云测试(2015.8.6):在穿线测试的技术上增强了回归测试用例的自动选取技术,代码安全特性,全面的测试管理特性,集合程序动态和静态参数的指标化系统。)

三、  个人对精准测试目前的理解   

目前还没有真正去学习,只是简单看了些这方面的白皮书和介绍,初步理解是精准测试的理念很好,后面应该会跟踪:

1、精准测试最有价值的我觉得是双向追溯给回归测试用例选取带来的好处,精准测试甚至被定义为“基于源代码变更分析的回归测试方法”,这完全顺应互联网产品频繁迭代、强调客户价值的趋势。快和价值带来敏捷,这个大趋势决定精准测试的价值;

2、精准测试的基础仍然是传统测试。传统黑盒测试人员基于云平台的大数据化的智能分析技术,一定程度上解决了黑盒测试对白盒代码可视化方面的问题,方便画出业务特性、测试用例、测试数据、具体代码之间的关联图谱。解决需求到任务到用例到代码的测试设计过程和反向的点-线-面覆盖追踪问题。

但目前精准测试实际更多还是停留在概念层面,可以根据其基本思想,对照自己项目实际情况,DevOPS团队自行做整体架构设计,并辅助开发一些工具来达成目的。好像腾讯的TMQ就在这样操作。当然,我个人觉得,基础还是传统测试、质量团队协作(测试左移、测试右移)。

 

附:精准测试定义(from星云精准测试技术白皮书V1.0、腾讯电脑管家精准测试白皮书V1.0)

广义的:

A:采用专业的测试软件,对软件测试执行全过程的原生数据进行自劢采集、存储、运算、可视化并依靠一系列的分析算法对软件测试的效率、质量进行改进和优化的软件测试分析系统。(星云精准测试技术白皮书V1.0)

B:贯穿于软件研发过程,通过准确、精细的质量控制方法,以最小的成本将质量风险降至最低的一种测试思想。(腾讯电脑管家精准测试白皮书V1.0)

狭义的:基于源代码变更分析的回归测试方法(星云精准测试技术白皮书V1.0、腾讯电脑管家精准测试白皮书V1.0)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
持续交付2.0是一种将业务需求引领的DevOps实践方法,旨在提高交付流程的效率和质量。它是对传统的持续交付模型的升级和改进。 持续交付2.0的核心思想是将业务目标置于开发和运维过程的中心位置。它强调业务团队与开发、测试和运维团队之间的协作与沟通,以确保持续交付的产品符合业务需求。 在持续交付2.0中,业务团队负责定义和明确业务需求,并与开发和运维团队紧密配合。开发团队通过敏捷开发和迭代的方式,快速地将业务需求转化为可交付的软件功能。测试团队则负责验证和确认软件的质量和稳定性。运维团队则负责确保软件能够可靠地部署和运行。 持续交付2.0的关键是使用自动化工具和流程来加速交付过程。开发和运维团队可以使用自动化构建、部署和测试工具,以及持续集成和持续部署的技术,快速地将软件部署到生产环境中。这不仅提高了交付速度,还减少了错误和故障的风险。 此外,持续交付2.0还强调监控和反馈。通过实时监控和日志分析,可以及时发现和解决问题,确保软件的高可用性和稳定性。同时,通过用户反馈和数据分析,可以不断改进产品,提高用户满意度和业务价值。 总之,持续交付2.0是一种以业务引领的DevOps实践方法,通过协作、自动化和监控,提高交付流程的效率和质量,实现快速、稳定和持续的软件交付。它适应了快速变化的业务需求,为企业的创新和竞争提供了重要支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值