软件测试用例设计中需要注意的问题

发表于:2010-11-09 11:49

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

 作者:未知    来源:51Testing软件测试网采编

  软件测试是保证软件优良品质的重要环节,其重要性是毋庸置疑的。怎样以最少的投入尽可能多地发现软件系统的缺陷,保证软件的优良品质,是软件公司的目标。我们都知道,影响软件测试的因素有很多,如软件本身的复杂程度、相关人员的素质、测试方法和技术的运用等等。如何保障软件测试质量的稳定当然也就有很多方面的因素,这其中测试用例的设计和编制对于保障软件测试质量的稳定起很重要的作用。

  对于测试用例(Test Case)目前还没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。

  说到测试用例的设计,很多人甚至是用例设计者都会认为很简单的事情,在他们看来,只要按照需求,将软件功能进行划分,然后据此按每个功能,采用等价类划分、边界值等方法来设计用例,再补充一些异常情况处理就行了。但事实上,对同一个项目,有经验的测试人员,在写用例或测试时总会有更多的测试思路,从而发现更多的问题;而有些测试人员测试用例的撰写却少了很多,表面看好象已经把页面所有信息的测试都考虑到了,实际上却还是遗漏了大量测试覆盖点,其结果是一方面测试过程发现的问题很少,另一方面当然是其测试出来的软件总是比较脆弱,等用户真正使用时就开始出现各种问题。

  究其原因,还是测试用例的撰写水平不到位,更确切地说是测试用例的覆盖率太低。有些用例设计者甚至张口就是用例达到了100%覆盖率,其实还差得远着呢。要知道,并不是说每个功能都写到了这个用例就覆盖完整了,这还远远不够,还有大量的内部处理、业务逻辑等都需要考虑。而这些除了需要用例设计者的经验之外,还需要真正了解项目实现情况,了解用户的使用,才能真正地保证我们的测试覆盖率。具体来说,需要注意下面几个方面:

  首先,还是需要按照需求,将软件功能进行划分,然后据此按每个功能或者相关功能,采用等价类划分、边界值等方法来设计用例。这其中要注意有些功能模块并不是孤立的,而是彼此相关的,对于交叉功能,一定注意设计相关的用例。千万不要出现两个交叉功能,都从各自功能出发设计用例,而相互交叉影响的部分丝毫没有用例涉及。

  第二,注意界面上看不见的隐含功能。并不是所有的软件功能都会体现在界面上,软件往往还具有一些后台处理功能,这些有可能会在设计用例时被忽略掉。比如说软件的网络升级功能,软件客户端与服务器端的自动同步等,一般都会定时自启动。类似于这些后台功能在软件界面上一般都没有体现,这就要求用例设计者必须熟悉项目情况,否则设计出来的用例必然会遗漏掉部分功能。

  第三,设计一些正常操作的完整业务流程用例。现在有很多业务型应用软件,它的许多功能点会结合成一个或多个完成的业务流程,此时不能孤立地仅仅设计每个功能点的用例,还需要从整体的业务流程角度出发去考虑用例。例如测试某个购物网站,那会有登录、浏览商品信息、提交购物申请、填写支付信息等完整的流程,此时就不能分开只是单独考虑每个孤立的功能。说白了,总该需要保证用户浏览后选中的商品可以放进购物筐,而放进购物筐的商品可以支付购买吧。这样就需要设计一些横跨好几个功能点的完整业务流程用例。

  最后,关注用户的特殊使用和异常情况。很显然,这是最容易被开发忽略的方面,当然也就是软件最脆弱的地方。比如跟网络相关的功能,考虑网速慢、断网等各种情形。再比如说,跟时间处理有关的功能,考虑每日的零点、每月的月初月末、每年的年初年末、闰年等等特殊时间。总之就是要尽可能多地考虑一些特殊情况,来补充用例。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号