LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

探秘U9测试团队 软件测试的那些事儿

admin
2010年7月25日 1:55 本文热度 4983
    从最开始徘徊在开发的边缘,软件测试正在不断找到自己的位置。软件测试不再是低技术含量、高重复工作的代名词,不再是可有可无、不被重视的部门,软件产品质量正在越来越依赖于测试部门的保障。

    除了更多技术高手开始担任测试工作,在管理软件行业,对某项业务的熟悉同样可以成为测试人员的利器。注册会计师出身的张茜就是这样一个例子。现在的她是用友u9部门质量总监,用友公司测试专家。2000年加入用友,她一直在从事管理软件测试工作,历任u8 v8.2、v8.5、v8.7系列的产品测试、发布;作为测试专家参与u9 1.0、1.5系列产品发布,负责u9 v1.5sp、v2.0、v2.0sp系列发版。从事测试工作10年的她,自己也没有想到会在好不容易考到注册会计师后却转行测试,并且在此后的这么长一段时间里和测试工作为伍。为此,她的惟一解释是:这是因为做erp软件的测试需要和业务逻辑有着非常强的关联。而这一认识既来源于她多年测试工作的积累,也经过了时间和实践的考验。

    2010年4月的一天,在晒满阳光的办公室里,张茜将她最为熟悉,为之骄傲的整个u9测试的“那些事”娓娓道来。

    u9的测试体系和架构与整个用友产品的体系架构类似,但是u9的测试团队是独立服务于u9这个产品的测试团队。u9的整体开发过程都强调特性驱动,测试过程也不例外。

    在产品开发过程中,特性驱动表现为特性开发,由需求设计、架构师、项目经理、开发、测试等人员动态地构成一个虚拟团队,进行特性的开发和测试,以保证该特性如期完成,并达到一定的稳定程度。在此期间,某几个人会专门负责这一特性的测试,比如经过两周时间该特性测试通过并提交主版本后,这几个人就可以释放出来,去做别的特性的测试。因此,特性驱动测试是一个相对动态的过程。

    从测试过程和人员分工上,u9的测试可以分为这样几个阶段:

    单元测试:程序员写完代码,按照u9的规范流程,由程序员自己进行单元测试,保证一定的质量才能提交给测试部门测试。测试人员会有一个接收的过程,进行单元验收。

    特性测试:单元验收后,测试人员会比开发人员更大范围的,从业务的角度,将整个流程特性贯穿起来运行测试。在特性范围内,达到u9的质量标准,才能向上一级提交,即特性提交,进入下一步特性验证的过程。

    特性验证:由主测人员,即产品设计层级的人员,对提交的特性进行特性验证。特性验证通过的代码是相对稳定的,可以合并入主版本。特性验证通过,将一个一个特性合并入主版后,在一个截止点上,把所有的特性都合并进来,进入下一步。

    系统测试:在u9团队被称为联调测试,即把所有的特性放在一起进行一个统一测试。联调测试更多地是从功能角度进行黑盒测试。模拟企业的流程从头到尾过一遍,保证流程、流转、控制等各方面,达到一定的稳定程度,才能进入下一步模拟用户的集成测试。

    集成测试:u9团队所说的集成测试就是收集典型行业的典型用户应用,将这些典型用户的行业案例和实施方案拿来在系统中进行模拟测试,如果整个系统跑下来能够确认符合质量标准就可以进入发版。

单元测试由谁测?

    目前,业内基本共识是:单元测试由开发人员完成。但是,让开发人员心甘情愿地进行单元测试,并完成好它并不是那么容易的事。在张茜看来,目前u9的开发人员基本能够完成单元测试,但还是不能达到一个理想的状态:即开发人员能够按照单元测试要求比较高质量的提交代码。在u9开发团队,开发人员能够进行基本单元测试工作,但还是需要测试部门对其进行验收,一次通过的概率还需要提高。

    一般来说,开发人员不是很容易接受单元测试工作,都会存在一些抗拒心理。如何让开发人员接受并完成单元测试?张茜认为:在这个问题上,开发部门主管的作用非常大。测试部门需要与开发部门主管在一开始就商量好,明确单元代码质量的提高是最终版本稳定的最基础和重要的方面。前面不稳定靠后面弥补只会适得其反。因此,一般u9测试团队会和开发主管达成一致。现在开发部门经理和项目经理也都很理解这一点,经过以前的实践,更加知道单元测试的重要性。因此,总的来说,由上而下对程序员灌输单元测试的重要性,并通过规范制度来保证这样一个流程的贯彻和执行,是非常有必要的。

    为了达到单元测试的目的和保证单元测试的质量,u9团队通过checklist表,要求程序员完成代码后必须按照表格一条一条完成测试项目。这也解决了一开始开发人员不知道如何测试的问题。一开始,他们必须把最常规的几条都走到,把这些都测试完毕后才可以提交代码。测试用例也是由测试部门提供,开发人员直接去跑程序测试即可。这些用例相对比较简单,包括了录入边界值、基本功能、性能指标等共同项目。

    从单元测试引申到开发和测试的冲突,在张茜看来,开发和测试的冲突非常正常。大家必须互相牵制,才能共同保证产品质量。在u9团队,通过cq检出bug,一次修改通过,那么问题就友好地解决了。比较麻烦的是,一个bug多次没有修改通过怎么办?张茜的经验是:一定要与开发经理沟通,安排其他主程序员对代码进行review,从这一层面来加强解决。毕竟,测试人员的目的是推动产品质量和产品发展,这也是大家共同的目标,这一点更需要向开发人员解释清楚。其实,有时候,程序员也可能对自己的代码也没底,遇到问题不知道如何去处理,这时程序员也需要测试人员站出来说话,推动整个过程向前发展。这时,测试人员对开发人员的帮助,就能形成一个良性的循环。

测试用例从何来?

    前面谈到,单元测试的测试用例由测试部门提供。而集成测试的用例则来源于一线的实施方案,包括由架构师提供的特性和对应的场景。在比需求更高一层的架构师立项时,就要确定这一版需覆盖哪些用户,解决哪些特性,并进行场景描述。测试人员根据场景找到目前正在实施的项目,将不同场景和不同特性组合并找到典型用户,这些用户能够比较全面地覆盖以上场景和特性。由测试骨干和专家,结合特性和企业情况,与实施经理和实施顾问深入沟通,与架构师充分沟通,找到典型用户关注的特性、自身的流程、应用,最终形成一个完整的集成测试方案。这一方案要经过由架构师、需求、开发、部分市场、实施组成的评审团队的审慎评审。这是发版前一个关键的质量控制环节。

    在u9测试团队,测试人员会与实施人员有着非常紧密的沟通。一方面是为了尽快解决早一版本在实施过程中的现有问题。另一方面,是因为u9产品属于起步初期,产品规模较大,实施周期较长,一个小版的发版周期都需要3~6个月。往往是新版本还没有发布,但是已经有几个项目在等着了。因此,前期的实施准备阶段,一方面对发版构成一定压力,但另一方面也是非常好的资源,它的针对性特别强。张茜谈到:测试团队会和这样的项目密切配合,因为他们也非常希望通过测试把关,让新产品切合企业的实际功能和流程需求。

    性能测试和压力测试会在联调的时候进行。u9的性能测试分几个方面:单点效率,每一点在一定数据量的支持下能够达到指标;流畅性指标,比如一个完整的收货业务或者领料任务,从头到尾要花费多少时间;压力测试,主要由loadrunner工具实现,u9也有与微软的合作,模拟5000~8000人同时登录,服务器、线程、应用端、网络部署各方面的压力分别怎样;200人场景测试(压力测试),一个真实的200人场景,进一步模拟企业中的实际应用场景。200人的场景测试算作压力测试的一部分,结合集成方案,制订场景测试,比如10个人做收货,10个人做领料,10个人做入库,报表,打印,不同人模拟完成不同业务,很实际地模拟企业日常工作场景。


测试工具用什么?

    压力测试中,u9团队主要使用loadrunner工具来实现,同时,u9也与微软的合作,来模拟5000~8000人的同时登录。但整个u9测试团队使用最多的还是
rft工具。目前u9开发管理都是采用cc、cq进行代码管理、权限管理和缺陷跟踪管理等,为了方便与开发平台的集成,u9的测试平台也使用了rtf平台。但是,张茜也表示:集成的效果并不好。ibm可能自己有很好的实践,利用测试工具测试部分代码,自动化测试后产生结果,传到cq,达到一个集成的效果。而u9团队在这个集成过程中却有很多问题,所以并没有真正集成起来。但是,u9团队也在这个过程中慢慢摸索、通过改造等工作实现测试目标。

    u9测试团队从4年前开始使用rft,在其基础上进行了大量框架开发和成果积累。比如,rft测试主要是一个录制回放的过程,但是回放的成功率通常不是很高,产品是靠抓ui上的坐标方位来实现,界面一动录制脚本就废了。u9在这方面做了大量基础工作,通过一个测试框架,我们抓的不再是界面上的坐标尺寸,而是抓的一个自设id。不论前台还是后台的每一个按钮,控件都有自己的编码,编码具有唯一性,由编码转换成rft的东西,再进行回放。这样界面上的ui轻微变动是不会影响,在不同的机器上回放,成功率也高了很多。

如何建设一个好团队?

    目前,u9的测试团队共有60多名正式人员和20多位外包人员,开发人员和测试人员的比例基本达到2:1,远远优于目前国内平均水平。而张茜的理想状态是1:1。但是,u9测试团队的开发能力却不容小觑。

    虽然u9测试团队中从事自动化测试的人员只有4~5位,但却都个个具有相当的开发能力,也愿意做些开发工作。比如,上面提到的对rft测试框架的改进,以及自动抓取id工具等。u9自动化测试力量都强于其他产品。

    在从事测试工作10年,从会计行业转行而来的张茜看来,做erp软件的测试和业务逻辑有非常强的关联。因此,她面试时会更加注重面试者的业务能力,业务的背景会比测试的背景重要很多。而测试工作,特别是黑盒测试相对比较简单,更多地是对产品业务流程的把控能力,对数据的敏感程度和控制能力。

    目前,u9测试团队层次分开。主测试人员有4~5个,主要负责测试架构和规划方面的工作。主测试的目的是把自己负责这一块的流程把握,测试重点在哪里,测试方案是否合理。而测试的执行则需要执行力强、更仔细、更勤勉的人,需要一遍一遍地反复测试,并能敏锐地发现问题。边角工作则可以由实习人员完成,比如性能、ui交互,这些比较机械地工作可以在方案设计好后由他们来逐条测试。这样便形成一个完美的金字塔结构的测试团队。

    最后,张茜也透露,u9产品的发版密度较大,虽然今年已经比去年有所减少,但也有1大2小三个版本。每个版本的测试周期和回归压力还是比较大的。马上要发布的将是u9 2.0sp版本。大版则是在今年8月将要发布的的u9 2.1版。10月还将推出u9 2.1 sp1版本。


该文章在 2010/7/25 1:55:15 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved