科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网CIO与应用频道文思海辉王壮:如何进行测试周期管理

文思海辉王壮:如何进行测试周期管理

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

文思海辉金融测试事业部解决方案总经理王壮在中国金融行业IT解决方案研讨峰会上表示,采用先进的标准、方法和工具对于软件测试是十分重要的一件事情,但是成功的软件测试是离不开对测试组织的过程管理。

来源:ZDNet CIO与应用频道【原创】 2013年11月4日

关键字: 文思海辉 金融 测试

  • 评论
  • 分享微博
  • 分享邮件

ZDNET至顶网CIO与应用频道 11月04日 北京消息(文/王聪彬):文思海辉金融测试事业部解决方案总经理王壮在中国金融行业IT解决方案研讨峰会上表示,采用先进的标准、方法和工具对于软件测试是十分重要的一件事情,但是成功的软件测试是离不开对测试组织的过程管理。

“在整个测试生命过程当中,把它贯穿起来达到全流程自动化也是文思海辉努力的方向。”王壮说道。

文思海辉王壮:如何进行测试周期管理 

文思海辉金融测试事业部解决方案总经理 王壮

以下为演讲实录:

大家下午好!很高兴由我来给大家介绍这个篇章,我介绍的是测试生命周期的管理,我一直在考虑怎么把这个介绍的好一点,出了这样一个图,我知道这个图也很土,确实它就是一个V模型。学过软件的生命周期的都会知道,我们这个模型一个是V模型,一个是W模型还有H模型,我举一个例子,拿V模型来举这个例子,这个例子从你的需求分析,概要设计到详细设计,到编码,单元测试、确认测试、系统测试这么一个过程。在这里头每一个都是有一个息息相关的问题,他们都是有测试和开发是紧密结合在一起的,不可分割的。有不少的人员把测试看的不是很重要,或者有些东西出了问题而埋怨测试那块没有做好。但是这幅图里面,恰恰有的时候其实是开发在某个阶段没有控制好,而产生了连锁反应,影响到了测试。

这里用了这样一个话,众所周知,采用先进的标准、方法和工具对于软件测试是十分重要的一件事情,但是成功的软件测试是离不开对测试组织的过程管理。如果没有清晰明了的目标,没有组织好这个事情,或者在整个测试活动当中没有有效的把控,都会导致整个测试活动的失败,它也不会成为一个好的测试活动。这个测试工作不是一次简单的测试活动,它应该是跟开发是一样的,它属于工程学当中一个项目。

我这个片子其实有些年头了,记得那时候应该是在05年、06年做的这样一个片子,具体来说,第一个是V模型,下面就是测试生命周期的一个过程,这也是在测试生命周期当中的一个活动。这个活动里头主要分为这三大块,一个是测试准备,第二个是测试执行,第三个是评估。下面罗列了常见的一些问题在这里头,有些出问题的地方其实恰恰就是在我罗列出来的这几个问题的一些东西。这里面像缺陷管理、进度管理、质量控制、问题管理、变更管理和风险管理,我记得我在之前到一个客户那块,在做一次交流,给他介绍一下测试,包括他对测试提出了需求。他提出的需求是什么呢?你们有没有这样一个工具,我只要按一键,你的测试工作全部处理完了。因为这个事情是在几年前,应该是在03年的时候,当时提出来这样一个问题。我当时听完了以后,其实我跟他笑了笑,我说你提出来这个需求非常好,这个是我们终身要实现的目标。据我所知,在这个市场上还没有这样的工具,如果有这样一个工具,我出多少钱都会买,同样转手卖出去会更多。这个东西出来我觉得反而是好事情,提出这样一个想法,我们有一个希望,有一个目标,为什么去做这样的事情,而这个测试生命周期整个过程当中,这些点也就是恰恰为了我们实现这个目标的时候,怎么样去筹备这些东西。如果我们在筹备测试过程当中需要注意的实际是几个点,测试组件,测试方案的计划,测试需求,包括测试案例的编写和测试环境和测试数据,这是非常重要的点。往往我们组建测试活动的时候,把测试环境和测试数据做的不完善,导致你的工期就会增加。还有在测试执行的时候,我的变更太多了,太频繁了,导致的又是什么呢?我们这个周期是不断的在延长,而且测试活动可能不是一轮两轮三轮,N轮可能都会出现,大家在疲于奔命的在处理这个问题。还有问题管理,问题管理和缺陷管理不是一个概念,问题管理是可能会出现在整个测试活动当中,而缺陷只是在你执行过程当中会出现。最后一个阶段也就是评估,往往在评估的时候,大家就不太重视了,有些测试报告写的也很有意思,出现大概、可能,所以导致这个结果变得含糊了。

我们也做了一个调查,这个调查是通过互联网浓缩的一个信息,现在企业当中遇到的一个现状,真正对测试工具和测试产品大概的一个需求度。最主要的我们可以看到,像测试体系的一个建设和测试平台需求度,还有自动化技术这样一个需求度,我们知道像IBM、惠普、CI对这些工具的支持度,还有测试资源管理的支持度,小一点的像专项和其他的一些东西,这个能看出来现在一个市场需求是需要这样一个形式的,一个东西的。

下面我介绍一下我对于刚才提到前两个片子,这里头需要去解决这些点,怎么来解决这些点?有了好的流程,好的方法论,拿什么来做这个管理,怎么能来控制这个东西?我们需要的是,第一个需要一个测试管理工具,这个管理工具是要把整个过程管理起来,把阶段管理起来,把版本管理起来,把缺陷管理起来,案例管理起来。还需要一个什么呢?我们的功能自动化工具,一谈到这个问题的时候,搞了好几年的自动化,但是自动化一直起效不高。功能自动化为什么起效不高呢?我认为很多时候是方法的问题,不是工具本身的问题。组织是否得当的问题,首先你选型的那个项目是不是适合于自动化,适合了以后,你那个脚本是怎么产生的?不是整个录制的一个全流程,这就是一个好脚本,采用什么方法,分段式的把你的脚本处理好,这都是很重要的。还有你的脚本里头是不是涵盖了你的测试数据,如果涵盖了那就是错误的。这都是会有影响的,而且还有一个问题,你的脚本是怎么管理起来的,当海量级的这种版本这些脚本的时候怎么去做处理,下面我们还介绍一个工具,讲性能是怎么样去做的,我们搞ITD,ITD是关于数据的,我们谈到了数据准备,怎么能去漂白,怎么能穿插进去,ATD是做环境管理的,主要是对物理环境的一个管理。

说到ATQ,主要有这样几个功能,第一对于全过程的质量控制,第二它可以做到测试需求覆盖率的一个分析,第三它可以做到测试变更成本控制,第四个它可以做到测试过程当中有效性、可靠性评价,对软件产品进行质量评估。第五个就是对测试人员工作量合理分配,第六是测试进度实时监控,第七是测试效率有效提高,第八是对测试结果进行准确评价。这幅片子主要是它的几大功能,第一大功能,对测试需求管理,第二大是对需求的一个分析管理,第三个对案例的管理,第四个对执行的管理,第五个是对问题的管理,第六个是对测试报告这样一个关系,这是它核心的几大功能点。

我介绍ATP,我们经过多年探讨,做性能测试,总结出来一个经验,这个工具主要是整合了我们对于性能测试当中怎么去做方法论分析,怎么来去做方案,这样一个有效的整合。第一标准化的一个过程管理,这个我们已经把规范,把工作规程包括测试指南都固化到我们流程当中了。它具有高度自动化,这个自动化可以实现多批次的自动化处理,包括进度自动化的把控,包括资产还有需求的分析、调研,设计和方法论,然后对于人员的工作进行分配,还有像场景自动化的制定,还有监控整个自动化的采集,对日常所有的日报这些东西的搜集工作,包括缺陷的自动化提交,发现问题。再一个就是它全面的监控,它可以监控你的计划是不是按照这种标准时间段来执行,再一个是对这种任务的实时落地情况进行监控,对于场景执行状态也可以进行监控,它可以自动搜集材料,这是它几大功能。再就是它的数字化,它可以对计划偏差率的一个把控,对方案变更率还有故障发生率、资源使用率的侵略,工作量的统计,风险发生率还有进度偏差率,产出物提交清单,产出物合格率,度量出来。

我再说一下我们功能自动化工具,就是ATF,这款工具在我们这儿已经有些年头了,已经落地很多地方去做了。第一它可以去集成很多现在业界上的一些常用的工具在里面,它与第三方一些工具无缝接轨,通过开发语言,可以去制定一些框架。采用数据动态库的一种方式,积累这样一些脚本,所以它更灵活,节省了很多业务人员没有办法对技术进行掌控的一种方式,可以直接由业务人员拼装测试案例,拼装这种脚本就可以执行了。

再一个就是测试环境的管理,测试环境管理我们当时的目的,第一对环境的使用过程你可以去预定、归还和变更,对环境整个有效把控起来。还有环境的过程管理,怎么组建,怎么调配,怎么维护,怎么自动部署,达到和生产环境是一致的。刚才刘总说了,你在底下测试很长时间,跟环境是不一致的,实际是无效的活动,通过这个,可以达到你和生产环境是一致的,可以比对这些差异性的。

下面介绍一下我们测试数据的管理平台,实际上它是一个集成了漂白的工具,可以达到从我们的生产环境当中抓出数据,进行有效的漂白,提供给测试部门、培训部门,可以达到ATQ手动测试案例,去提供这些测试数据,自动穿插这些数据。

讲了这么多,我想提一个问题,这个测试工具怎么选择?往往很多情况下没有采用过这种测试工具,自己也会有些疑问,这个工具我认为应该怎么选择,所以首先第一点目的,你要有清晰的目的是什么,为什么要用这个工具,这个工具第一要能够帮助我提高测试效率和测试质量。第二个减少软件测试的开销,降低软件开发的成本,第三个减少软件测试过程当中的重复劳动力,这个活反反复复的干,需要人来反反复复的干,这个我可以交给工具去干。第四点,实现软件测试的自动化,比如说像我们的ATF,还有包括我们的ATP,他们可以用软件自动化来执行。在正常测试过程当中不容易发现的问题,采用正常的手段没有办法的时候,这时候我们需要工具来帮助我们去做。在人工测试往往难以做到,比如性能,这是人工你用大模拟很难做到的。我记得当年有这样一个活动,我不说是哪了,那时候也是很早了,当时还没怎么去推性能,大家说要模拟一下性能的并发量是什么样的。所以就从地市里头抽了两百多个业务人员坐在一个大会议室里头,就像这样一种形式,集体喊着口号,一个人喊着口号,一二三,大家去敲,从后台抓出来的数据很有意思,两百多人并发量不超过三个。在这种情况下,你用多人去模拟的时候,你根本就达不到,这时候你往往需要工具来帮你去做这件事情了。

再一个进行有效的管理和标准化的管理,这个时候我们光有好的流程,好的方法论,好的规范,谁来监督它?你如果不把它固定化的话,做了一段时间以后,这些东西还会走样的,变成没法落地的空文。比如我前段时间接触过一个项目,这个项目也有像版本控制、变更管理控制,但是在项目当中就没有有效的被推行下去。两三天就变一个版本,造成不管是从开发到测试,大家疲于奔命的去在处理这些问题。这些问题被有效监控来了吗?挂靠两个周报和日报是很难达到的,因为它是整个链条出了问题,这个时候你需要的是一个监控的东西,来帮你把它们抓出来,从你的管理当中把它抓出来,来去有效的解决。

大家要认识到一点,工具有自身的优势,但是它有很多不适应性,不要对工具有过高的期望值或不正确的期望值。就跟我之前说过那个案例一样,一键式完成,这个就是对它要求太高了,这是实现不了的一件事情。有些东西不可能马上就会达到这样一个程度,所以我们不要去把它想得太好,而是要对它正确的认识,包括我刚才说到的,我的目的究竟是什么,不是所有的目的都要满足,才去选择这样一个东西,而是有选择的选择,这样才能达到我的预期值。再一个就是测试工具有的时候不是在什么地方都适用的,功能测试自动化最好的程度也就能达到60%到70%,这已经做的非常完善和非常完美了,也不是100%。真正大家能做到这一点已经很不容易了,所以我们也可以回头看看在功能自动化里头能达到百分之多少,是不是还有很大的提升空间呢?选择什么来去实现它。

采用一些工具的一些要点,第一功能上是不是你想要的一个功能,第二个问题就是价格,这是很重要的一点。第三个一定要有报表功能,缺少报表功能的东西,你到后期使用过程当中,很难为你提供服务。再一个它具有极强的集成能力,因为其实我们在选择工具的时候,它有很多都是分散式的。现在出现一个现象,我当初买了这个工具,我也买了那个工具,买完以后,多年下来以后,发现大家是个数据孤岛,没有办法去完全有效的集成在一起。这个时候就有点像各干各的,这个现在我认为反而是面临的一个最大的问题。数据不能有效的统一,管理也不能有效的统一,所以它是不是具有很好的集成能力去方便这种东西,这是需要大家去考虑的。还有一个就是兼容性,它的兼容性好不好,再一个易用性,易用性也是蛮重要的。前两天我在跟人员聊天的时候,有款产品设计,这也是我们当中一个错误案例。从人的使用习惯当中,一般都是从我们左上角开始使用它,到最后回到我们的右下角,这才是一个正常的或者走半圆形的一个操作方式。但是那款设计,你把所有东西填完了以后,实际你是绕了一个八字,在这种情况下,其实你重新改了设计以后,我们会发现改良了以后,这个东西会比原先工作效率在这个操作上提高了一倍。所以易用性在这里头也是能够去改变我们的生产效率的,我希望给大家提供这样一个案例,能在后期选择上,能去考虑这方面的东西。如果你缺少这方面的东西,实际上你虽然可能投入到了想去节省这个,反而其实你会浪费很多东西。还有测试工具的侧重点,你到底选择它是要干什么,你的重点是要干什么,我要做性能或者我就要做数据,想清楚它的优点是在哪里。再一个就是它的售后服务,良好的售后服务才是方便的一种方式,因为凡是工具不可能做到尽善尽美,当你真正需要它的时候,或者你遇到问题的时候,它第一时间能给你很好的处理问题,解答这个问题,这才是我们想要的一个东西。重视我们的发展阶段,不是盲目的大而全,就是我们要选它,很多时候跟使用工具的人有关系。比如这个东西我有一百个功能点,但实际上我们这个阶段里头只能使到十个,你会要使用这些人去学习一百个功能点吗?实际上我们90个功能点都是浪费的。还有我们在今后的两到三年当中需要选择的是什么?不用定的期限过长,十年以后使什么,每年这个版本都会升级,不断的在往前走,所以选择工具的时候,更好的是符合我们现阶段的发展规律和我们在今后一到两年当中究竟想要做的是什么,这就可以了。所以往往大而全的买回来,一是无用,而是给人员造成很大的不必要的浪费和精力的投入,最后可能还使不好,选择是重要的。

这个是我刚才提到那个故事里头说到的,我们的一个终极目标,我们想做的一个目标,真正能达到全流程自动化。在整个测试生命过程当中,去能把它贯穿起来。我们现在也在努力去做,像测试需求怎么能自动生成测试案例,测试案例又怎么能够形成自动化脚本,从自动化脚本又怎么能达到这种自动化回归。我们的数据怎么能去穿插在我们的测试脚本当中,环境怎么把它部署好,这就是我们一个终极目标。但是我们在里头也实现了部分东西,换句话说,测试需求生成到自动化,生成到测试案例,我们可以做到,从技术角度上是可以做到的。这个测试案例又怎么能自动化生成脚本,这在技术上也能实现。关键是我们测试规则规范现在是不是按照标准去做,刚才刘总提到我的需求只有三页纸,这是没办法形成的,这些东西是息息相关的。其实我还很想看看在02年、03年那个客户,告诉他现在基本离你的目标已经不算远了。测试在发展,技术在发展,过程也在发展,如果有幸的话,我们下次再聚会的时候,我们可能会把这个目标再往前推进一步。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章