用脑袋做测试

发表于:2011-9-21 11:06

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

 作者:MR.曾    来源:51Testing软件测试网采编

  引用下不知道是哪位老大说的话,我们是测试员,不是测试机器,我们和测试机器的区别,在于人是活的,机器是死的。

  很多刚从事测试的朋友在设计测试用例时不知道如何下手,甚至不知道怎么去测试,感觉自己找不到BUG,有一种挫折感。实际上在一些中小型公司,测试未成为体系的公司,我们测试员常常一个人就负责了一个项目,包括需求,测试,缺陷报告等等全是我们一手操作。

  仅以黑盒测试为案例

  一、了解业务

  如果你手上的项目没有需求,没有文档直接让你测,你是很难找到BUG的,要知道开发人员在开发的时候是会自测的,也就是在功能上很难直接找到BUG,这时,你就要多去问,多去了解业务,了解业务是设计测试用例的前提, 试问一个连业务都不了解的测试员如何去设计测试用例,如何保证测试用例的覆盖面积呢。

  二、设计测试用例

  对于一个项目只有一个测试员来说,设计测试用例的方法实际上就没有那么多讲究了,关于测试用例设计方法网上有很多诸如因果图,等价类甚至路径测试等我就不一一述说了,这里主要介绍一种适合新人的设计方法,这种方法理解起来简单,做起来也容易,最关键的是这种设计方法是测试的一个项目整体,也就是说在大的面积里能达到一个很客观的覆盖面积,非常适合新手,方法名为----场景分析法

  场景分析法以一条基本流为主,发散出多条备选流以达到覆盖效果,设计出来的测试用例不是一个单纯的数据,而是一个完整的业务操作过程,这个地方就需要前面说过的了解业务,只有充分了解业务,在设计基本流的时候才不会有过多的遗漏,同时发散出来的备选流也能达到更多的覆盖效果。下面以添加--修改--审核--发布---删除审核---彻底删除为基本流(假设了解业务时,已经明确业务要求添加的数据可以修改,修改后要通过审核才能发布,彻底删除前页需要进行删除审核)

  这里的基本流就是添加--修改--审核--发布---删除审核---彻底删除,这个基本流就是一个完整的业务流程了

  那么发散出来的备选流,就可以有

  1、添加--删除

  2、添加--发布

  3、添加--发布--删除

  4、添加--修改--删除

  ......等等,单只是这一条基本流就能发散出很多备选流,这里的覆盖面积单独针对这条基本流就已经很好了,如果添加的数据对于其他的功能模块有关联,也可以将此功能模块加入到基本流里,比如添加的是图书信息,与他管理的还有库存管理信息,这个时候我们就可以在基本流里么加入一个库存管理信息的查看功能,根据对业务的了解,设计多条基本流,要覆盖所有的功能模块,这样就能覆盖所有的功能模块不至于遗漏。

  三、功能测试使用工具,开始简单的自动化测试

  我们测试时,常常需要用到很多数据,单独的点击是行不通的,很多功能需要我们填写数据,比如添加,修改等。这时我们的工作量就很重并且很无聊,很烦闷,这时我们可以开始接触自动化了,不用把自动化想的太难,实际上最初我们只是使用一些皮毛,用自动化的工具录制脚本并回放脚本,再加入参数化设置,这样做至少会为我们节省百分之70的工作量,甚至更多,这里介绍下功能测试的工具QTP重点是QTP的参数化测试。

  在第二步操作时,我们已经设置好了基本流和备选流,这时我们需要去下载一个QTP(其他工具也行,初学者建议使用QTP当然也要你的项目支持QTP才行)至于QTP的破解安装录制回放我就不说了,网上有很多资料,并且也确实很简单,参数化其实也很简单。

  在keyword view视图下 对应Value列 点击希望参数化的数据,数据后面会显示一个#号按钮,点击它弹出一个框,选择Paramter,这个属性后面跟着一个下拉框,下拉框里分别是Data Table,Environment,Random Number 分别代表了数据表格,环境变量,随机数。

  对于新人,使用Data Table,Random Number 就足够了,以Data Table为案例,选择Data Table后,下方会有Name,和Location in Data Table可以设置,name可以是中文,对应的是你所设参数的列名,比如“姓名”“账号”等。Location in Data Table,推荐使用第二个选项Current action sheet(local) 当然这里你也可以不管, 这里的设置主要是针对可能需要用到得部分循环,要做部分循环的话就需要了解一下QTP的Action 这里就不多说了

  设置好参数后再QTP下方就会有一个数据表格,我们只需要在录制好脚本后,把需要输入数据的地方设置上参数化,再将下方的参数化的数据表格填上数据,就可以实现自动化了,这里有一点要注意了录制脚本时最好做到一个完整的循环,假设 我们要新增数据,预想中的自动化:

  点击新增---录入数据---点击确定(这里一定要确定页面返回到了点击新增前的页面,这样才能达到循环的效果)

  这时QTP会根据我们的设置自动完成循环,假设你设置了参数化,并且设置了10组数据,那么QTP就会循环执行10次代码 ,这时你就可以泡杯咖啡 小小休息下了。

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

精彩评论

  • houi_ok
    2011-9-26 17:07:56

    我现在就是一个人孤军奋战,并且我们的产品是同框架多城市的,所以最近正在考虑加入自动化简化工作量。请问QTP支持哪些语言或框架呢?

  • Mr.曾
    2011-9-23 15:54:36

    啊啊啊

  • FiveRoad
    2011-9-21 19:46:29

    嗯,有道理~~~是该自己多花功夫学习自动化而不是闲的没事干~~~

  • he_jian
    2011-9-21 15:18:10

    我操,我什么时候评过分了

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号