针对客户化很多的大型系统如何进行自动化测试的设计?

发表于:2009-3-18 15:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xazaj    来源:51Testing论坛

分享:

问题描述:客户化很多的大型系统,是否可以进行自动化测试?如果可以,如何进行自动化测试的设计?比如一个报销系统,含有若干个客户,虽然用一套core,但是每个客户都有从外观到细节不同的地方。这样的系统,是否可以进行自动化测试,如何针对这样的系统进行自动化测试设计?

精彩回答:

  一、讨论一下这个报销系统自动化的目的

  在讨论是否能做自动化测试之前我们应该先考虑自己的系统做自动化测试的目的,我觉得自动化测试的目的可以完完全全的定位在解放双手直立行走,当然其他的目的也许有很多很多,不过我们怀着这个朴素的目的来讨论一下本次的话题。

  根据本次题目如下:

  客户化很多的大型系统,是否可以进行自动化测试?如果可以,如何进行自动化测试的设计?

  比如一个报销系统,含有若干个客户,虽然用一套core,但是每个客户都有从外观到细节不同的地方。这样的系统,是否可以进行自动化测试,如何针对这样的系统进行自动化测试设计?

  经过字字推敲大概描述一下这个项目可能的情况:

  某公司研发一个大型的报销系统,出售给公司甲,公司乙,公司丙,公司丁,公司点点点,但是这些公司提出一些客户化需求,这些客户化需求包括了UI和部分业务逻辑。

  出题者没有给出详细信息,根据以上分析,类比一个比较通俗的案例来说明:

  wordpress博客核心程序 相当于 大型报销系统core

  使用wordpress搭建博客1:www.zhuaijun.cn 相当于 使用报销系统公司甲

  使用wordpress搭建博客2:http://rdc.taobao.com/blog/qa/ 相当于 使用报销系统公司乙

  使用wordpress搭建博客3:其他使用本核心的博客 相当于 其他使用系统客户

  有了这个对应关系以下举例就脱离大型报销系统,直接用worpress举例,因为给出两个网址,大家可以用这两个网址体验一下外观和业务逻辑做了客户化以后自动化测试的侧重点。

本文出自51Testing软件测试网,感谢会员xazaj在每周一问(08-11-24)中的精彩回答。
http://bbs.51testing.com/forum-157-1.html

  经过以上分析,我们自问几个问题:

  1、这样的系统我们为何要做自动化测试?因为每次系统的搭建都会修改程序,那就不能保证原来的稳定的系统在客户化之后仍然所有功能都可用,而具体客户化会影响到哪些功能是未知的,最保险的方式就是将所有的业务逻辑都验证一遍,因为我们的功能测试团队不能完成这个繁琐的工作,所以才要做自动化,这也就是我们使用自动化测试最朴素的目的。

  2、我们对这样的系统做自动化测试应该侧重哪些方面?程序不但对业务逻辑做了客户化,还对外观UI做了客户化,并且每个客户搭建的程序外观都会不一样,比如博客1关注的是显示速度,所以外观不要求华丽,颜色清淡不需要图片、flash等元素,而博客2由于是公司博客所以可能需要加一些图片或者flash表现公司文化,如果自动化测试需要验证这些每个客户都有差异的界面UI,那这个目的就相当华丽了,并且这样的测试脚本没有重用性,个人觉得UI属于心理学范畴,勉强用工具实现了也是付出大于回报;而对于系统基本的功能(比如博客的发表文章功能,留言功能)所有的客户都是不会变的,这些才是做自动化的范围。

  OK,确认了自动化的目的和范围,接着看一下我们该如何做。

  二、自动化工具

  我所接触到的功能测试工具只有QTP和RUBY,所以最好选择了(这话有点无奈),QPT感觉比较万能,就是价格贵,而RUBY免费脚本强大,不过是针对 web程序并且要程序基于com的,简单的js弹窗也需要借用第三方工具,js驱动的页面它就更无能为力了。不过还好wordpress博客核心是完全支持用RUBY做自动化测试的。而大型报销系统估计需要购买QTP来做了,这样的话要估算成本了,高价购买的工具和高价聘请的自动化测试工程师是否能缩减软件维护成本,要请高层做好决策了,据说过高的期望是导致自动化测试失败的原因之一。所以工具的选择要兼顾价格和功能。

  三、如何做自动化测试

  本项目要做自动化测试我觉得最重要的测试测试粒度的选择,普通的项目可能会权衡一下粒度和项目进度的关系来决定,而本案例我觉得要做到粒度尽量的小,尽管工作量大但我们不得不这么做。

  结合wordpress做自动化测试的目的,我们是为了在做了部分业务逻辑变动后验证其他业务逻辑仍然正常。博客三个基本功能:注册用户,发表文章,留言为例,如果功能稳定我们可以直接分成这三个功能来做自动化脚本,但是发表文章这个功能流程包括了写文章,文章审核两个功能,如果我们脚本将两个操作做成一个发表文章的脚本,哪天客户要求改变文章审核功能,那整个脚本就要重写了或者做大手术,如果我们在前期做脚本时,能足够的细,每次客户化时就可以根据客户化内容筛选脚本,将所有业务逻辑有所改动的脚本删除,对可运行脚本进行优化排序运行,一边进行程序的客户化,一边有针对性的补充脚本,或者客户化的功能直接手工测试。

  测试脚本编写的阶段,脚本的维护和普通的自动化测试没有太大的区别,不在此多论。以上针对51Testing每周一问答题,多谢指正。

版权声明:原创作品,转载时请务必以超链接形式标明文章原始出处作者信息本声明,否则将追究法律责任。

本文出自51Testing软件测试网,感谢会员xazaj在每周一问(08-11-24)中的精彩回答。
http://bbs.51testing.com/forum-157-1.html

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号