了解智能一体化

陈绍英

2017-04-21

了解智能一体化测试平台

智能一体化测试平台是为支持智能一体化测试理论而开发的平台,这个平台主要面向后台系统的服务/接口测试。借助这个平台,开发&测试人员进行服务/接口测试时可以将工作重心集中在测试案例设计与管理上,测试执行与分析主要交给平台来完成。
平台主要有五大特点:
一是对于多数系统进行服务/接口测试时不需要开发测试程序,主要进行测试案例设计工作。普通手工测试人员可以在智能一体化平台上工作,这是能在系统开发&集成测试阶段可以推广智能一体化测试的基础。
二是测试数据支持与管理功能强大。通过系统内部参数和公共业务测试数据方式,保证测试的可维护性和长期有效性。
三是功能&性能同步完成,可以实现对系统智能缺陷的早发现、早解决,这种测试方法无疑是最节约成本的做法之一。
四是测试场景可以极速运行完成。很多时候由于测试执行周期长,回归测试主要执行关键案例,而智能一体化测试平台并行高速执行测试案例,执行效率取决于系统的业务处理能力。对于一个TPS为100笔/秒的系统,每分钟就可以完成五六千个测试案例,执行完成全部案例也就是分分钟的事情,因此执行时间甚至可以忽略。
五是测试完成后立即生成场景运行报告。测试完成后自动生成的场景运行报告,可以使测试人员一目了然地看到系统的功能、性能问题,从而可以提高测试结果的分析效率。
智能一体化测试平台与智能一体化测试理论是相辅相成的,只有当智能一体化测试理论与平台同时发挥作用,才能真正开展起智能一体化测试。

行业背景

目前国内多数银行都在压缩科技方面的成本,压缩了很多科技项目的预算。对于测试部门而言,降低成本首先会考虑到自动化测试,希望自动化测试能够替代一部分人工测试,从而降低测试外包成本。
通过自动化测试降低人工成本的愿景是非常美好的,但实际情况则是多数银行自动化测试工作进展得很不理想,可以用“鸡肋”来形容。多数银行的测试中心主要推广基于UI的自动化测试,这类测试或是借助HP的QTP完成,或是借助基于QTP开发的平台完成,也有一些银行借助开源的UI自动化测试平台来完成。而银行的业务需求往往变化非常频繁,需求变化后UI界面往往同步发生改变,基于UI的测试脚本往往需要很大的改动甚至推倒重来才可以适应界面变化,因此面向UI的自动化测试主要局限在关键业务场景的回归测试中。基于UI的自动化测试很多还有一个弊端是一台主机往往只能模拟一个用户,导致自动化测试执行效率低下。因此目前各个银行的自动化测试投入/产出情况并不理想。
尽管如此,银行的科技部门对自动化的热情并没有消退。在对一些银行测试中心的调研中,作者了解到很多测试中心的主管们已经考虑到了开展服务/接口自动化测试,只是还没有想好怎么开展这项工作。
可以看出接口自动化测试必将成为自动化测试的一个重要发展方向,而面向接口的智能一体化测试则将成为自动化测试一个全新的发展阶段。

工作背景

作者之所以提出智能一体化测试理论并研发智能一体化测试平台,主要基于下面两个特定的背景环境与经历:

参与银行新一代核心系统建设并负责性能测试工作

在作者所在银行的新一代核心系统建设过程中,作者主持了100多个系统的性能测试工作。这些系统可以大致分为核心系统、公共服务模块、产品模块、外围渠道四类系统,其中80%以上属于后台系统,性能测试团队先后对其开展了单元性能测试、集成性能测试、渠道性能测试、多渠道并行性能测试。性能测试历时将近五年,可以想象对这些系统进行性能测试和调优的难度,往往调优一个交易都要耗费大量时间。
在这么庞大的项目群性能测试过程中,作者体会最深的是“很多性能问题到最后需要付出大量的成本来解决,甚至有的整个系统推倒重来,从而意识到最有效的性能测试要从设计与开发阶段开始抓起,而不是在各个系统基本开发完成甚至UAT阶段来启动性能测试”。
举一个例子,一个交易有可能调用10多个系统,每次调用的响应速度都很快,但所有响应时间加在一起的结果就是这个交易性能不达标。这类问题如果要想解决,只能所有调用到的系统的接口都去进行调优,分别找到自己的程序热点并进行优化,但这个过程往往带来较大的程序改动。
因此,性能测试如果能从开发阶段开始介入无疑是一种非常理想的情况,尤其是如果能在开发阶段随时测试系统服务/接口的性能,这样就可以在服务/接口对外发布前就完成了一轮调优,解决大量性能问题,从而实现既节省成本又加快进度的目标。但无论是测试人员还是开发人员目前几乎不会在开发阶段做性能测试,这里既有技术方面的原因又有管理方面的原因。
如果能有非常好的自动化测试工具,连没有任何开发经验的功能测试人员都可以进行服务/接口的性能测试,则在开发阶段启动性能测试是一件相对容易推动和开展的工作。如果这个工具既能做功能测试,又能做性能测试,而且不需要像LoadRunner一样开发脚本,则功能测试人员完全可以在开发阶段介入功能&性能测试,随时对后台系统的功能&性能进行测试,则这些后台系统在集成测试前就可以解决掉大量功能&性能问题。
所有基于上面的背景,作者自然想到了开发一套功能&性能即智能一体化测试平台,来推行智能一体化测试。

在以往工作中主持过自动化测试平台的开发

为了测试基于P2P技术的视频网站的性能,作者曾经主持开发过一个性能自动化测试平台,已经实现了类似于LoadRunner的并发测试功能,解决了视频播放效果的并发测试问题。
有了推行智能一体化测试的计划后,自然想到可以基于前面性能测试自动化平台的经验和技术来开发支持智能一体化测试的平台,从而实现对后台系统服务/接口的智能一体化测试。

核心思想

智能一体化测试理论的核心内容主要如下:

后台系统功能与性能测试同时进行

后台系统服务/接口功能与性能测试可以同步启动与完成,提高功能、性能问题的发现与解决效率。

实现测试尽早启动、问题尽早解决

最早可以在系统设计阶段启动测试工作,当系统服务/接口设计完成后,就可以进行测试需求分析与测试案例设计。之后一旦后台系统的服务/接口对外发布,就可以启动测试执行工作,这样在系统的开发与集成测试阶段,就可以发现并解决大部分功能、性能问题。

随时高效率执行测试案例全集

可以随时根据测试需要高效率的执行案例全集。借助智能一体化测试平台,可以以性能测试的效率来快速执行案例,测试执行不再是耗时较多的工作,随时都可以在很短时间内完成全部案例的执行,甚至可以忽略测试执行时间。
通过运行测试案例全集,可以大幅提高测试覆盖率,从而有效避免以往“由于测试时间不充分只能执行部分测试案例,从而导致一些问题没有被发现”的情形发生。
因此提倡每次测试时运行全部已经设计完成的测试案例,以保证测试覆盖率。随时运行案例全集,对于已投产系统的升级/变更测试具有更大的意义,可以大大降低系统出问题的风险。

案例集设计与管理是工作核心

借助智能一体化测试平台,测试人员既不需要开发测试程序,也不需要手工执行测试案例,完全可以将工作中心放在测试设计上。
在智能一体化测试模式中,测试执行在全部测试工作中占20%左右,测试案例设计在全部测试工作中占50%左右,测试管理等工作占30%左右。
由于频繁执行测试案例的全集,会及时发现存在问题的测试案例并进行维护,从而保证测试案例全集的有效性且随时可执行。

智能一体化测试平台为支撑

为推行智能一体化测试,必须研发出一个功能强大的智能一体化测试平台,借助其来完成智能一体化测试的管理与执行。

读者评论

相关专题

相关博文

  • LoadRunner错误处理函数

    LoadRunner错误处理函数

    陈绍英 2017-05-23

    在脚本的Run-time Settings中,可以设置在脚本运行过程中发生错误的处理方式。进入到Run-time Settings中,切换到Miscellaneous标签页,可以看到Error Handing的第一个设置项:Contin...

    陈绍英 2017-05-23
    340 0 1 0
  • 深入接下LoadRunner的File类型参数9种取值方式

    深入接下LoadRunner的File类型参数9种取值方式

    陈绍英 2017-05-02

    参数取值作为性能测试人员必须掌握透,但实际中深究者很少,我在面试过程中多数人都不清楚。本文将把这个话题讲透彻,分享给大家。 很多测试工程师尽管能够使用File类型参数,但往往不知道在Controller中各个Vuser的具体取值过程。但...

    陈绍英 2017-05-02
    1286 0 1 0
  • LoadRunner脚本信息函数

    Jessica瑾妞 2017-01-05

    脚本信息函数在实际中用的不是特别多,下面简单介绍几个常见函数的用法。 l lr_whoami lr_whoami用来返回Vuser的ID、组名称、场景ID信息。例1-64的程序演示了lr_whoami函数的用法:首先定义两个整型变量i...

    Jessica瑾妞 2017-01-05
    579 0 0 0