Web软件测试中数据输入的检查清单

标签: web 软件测试 数据 | 发表时间:2013-03-24 14:56 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

检查清单(Checklist)可以帮测试人员节省时间,因为很多有效的方法并不需要每个测试人员重新发现,前人已经有了充分的总结,并做了大量的有效性验证,其次,检查清单可以帮助测试人员避免遗漏,人的记忆是有局限的,难免会有遗漏的地方,通过检查清单检查可以有效的防止遗漏。最近,IBM工程师苏京刚 总结了Web软件测试中数据输入的检查清单,对Web测试人员提供了很好的参考。

苏京刚主要从表格输入、数据验证、数据一致性、日期输入、数字输入、数字字符输入等方面归纳了Web测试中需要检查的要点。以数字输入为例,这是常见的测试点,检查清单就包括六项内容:

  1. 确保最小、最大值正确处理——对于数字输入域,一般都有自己的最大值和最小值,这两个极值的处理需要特别验证。除了验证最大最小值之外,测试人员最好一起验证比最小值小的值和比最大值大的值是否能被产品恰当处理。举例,在定义一个连接的过程中需要输入一个端口号,该端口号的最小值为 1。而当用户输入端口号为 0 时,可以成功添加该连接。而当用户去验证该连接时,提示端口号 0 是非法的。这是产品的一个缺陷。正确的处理方式是,当用户视图添加端口号为 0 时,就给出错误提示信息,告知用户该端口号是非法的。另外一个需要考察的地方,当输入超出最大最小值时,产品需要给出清晰明确的警告和提示,告知用户正确的范围是什么。
  2. 确保数值输入框的第一个字符位置输入空格时报错——当数值输入框的第一个字符为空格时,该输入已经不再是一个数值,应当做非法输入处理。产品处理过程中,需要给出错误信息。
  3. 确保输入值输入框的最后一个字符位置输入空格时报错——当数值输入框的最后一个字符为空格时,该输入已经不再是一个数值,应当做非法输入处理。产品处理过程中,需要给出错误信息。
  4. 确保正号 (+) 和负号 (-) 被正确处理——每个涉及到数值输入的地方,都涉及到一个数值符号的问题。因为数值有正负之分,需要保证产品对正负数的处理都准确恰当。对于能够接受带正号数值的输入框,处理结果应该跟不含符号 ( 默认为正数 ) 的数值输入的结果相同,因为本质上两个数值是相等的 ( 对输入数值的再显示除外,因为单纯显示上,两者相差一个 + 号 )。
  5. 避免除数为0——除数为 0 是所有的运算中需要避免的。在软件产品中,如果涉及到除法运算,需要特别注意避免除数为 0 的情况发生。其中包含各种情况下的除数为 0,包括除数为输入值 0,除数为某中间计算结果为 0 等。
  6. 在所有的运算中加入0——因为0 所有的运算中具有重要的作用,也是一个非常特殊的数值。因此在测试过程中,在所有涉及到的运算中加入 0 值对测试产品具有很好的效果,能测试到较多的与 0 相关的情况。

同样的,数据一致性测试的清单也和边界值有关:

  1. 检查输入最大字符长度时显示、工作是否正常——每个输入域都有自己的输入字符长度限制,当输入长度达到最大长度时,需确保产品显示和工作都正常。通常情况下,属于最大长度字符时,给页面的显示难度带来很大挑战,因为此时需要在有限的页面显示的内容最多。
  2. 验证数字输入域是否接受负值及接受负值是否合理——数字数与区域有些情形下是不应该接受负值输入的,此时如果处理不当,当有负值输入时,将会有不可预知的情况出现。如果允许接受负值,测试对负值的处理是否正确也是测试中重要的一个方面。
  3. 确保数据保存之后所有的数值在数据库中都得到完整的保存——在产品页面上对数据进行保存之后,需要确保所有数值都完整的保存到了数据库中。从不同途径访问到相同的数据都是一致的、同步的。为了验证这一点,测试人员需要尝试在保存之后重新打开并查看显示,看是否跟保存之前的数据完全一致,同时努力从不同的路径访问和应用相同的输入, 验证是否能得到一致的结果。

数据验证测试往往被人忽视,苏京刚总结了三条测试点:

  1. 任何时候当输入非法数据时,系统都不能表现糟糕——尽管软件产品设计的目的不是仅为了接收非法数据输入,但是产品需要确保当得到非法数据时依然不会表现的很糟糕,而依然应该做出恰当的处理。非法数据的类型分为很多种,包括数据长度、数据的大小、数据中的非法字符、数据输入的顺序等方面。
  2. 如果用户在产品使用过程中删除 cookie 会有什么后果?——Cookie 是产品为了识别用户身份、保存用户配置信息、进行会话跟踪等而保存在本地终端上的数据。产品设计需要保证在用户使用过程中,如果用户删除 cookie,产品依然处理得当,不会有太糟糕的、不可预知的行为出现。
  3. 如果用户在使用产品后删除 cookie 会有什么后果?——如果用户在使用产品之后删除 cookie,当用户再次访问产品时,需要保证产品依然做出恰当的处理,不会有出乎意料的动作发生。

关于Web软件测试中数据输入的检查清单的详细内容,读者可以查看 原文,其他还包括了表格输入、日期输入、数字字符输入等其他方面的检查清单。这些清单为Web测试人员在设计测试用例时提供了很好的参考。

崔康 热情的技术探索者,资深软件工程师,InfoQ编辑,从事企业级Web应用的相关工作,关注性能优化、Web技术、浏览器等领域。

您可能也会喜欢

相关 [web 软件测试 数据] 推荐:

Web软件测试中数据输入的检查清单

- - InfoQ cn
检查清单(Checklist)可以帮测试人员节省时间,因为很多有效的方法并不需要每个测试人员重新发现,前人已经有了充分的总结,并做了大量的有效性验证,其次,检查清单可以帮助测试人员避免遗漏,人的记忆是有局限的,难免会有遗漏的地方,通过检查清单检查可以有效的防止遗漏. 最近,IBM工程师苏京刚 总结了Web软件测试中数据输入的检查清单,对Web测试人员提供了很好的参考.

软件测试的原则

- - CSDN博客推荐文章
 在软件测试中有很多重要的指导原则,这些原则看上去大多是显而易见的,但是总是被我们忽略,作为虫师,我们当然应该把这些原则牢记于心,作为专业测试人员的基本素养. 原则1 测试用例中一个必需部分是对预期输出或结果的定义.  这条原则是软件测试中常犯错误之一,但是如果不按照这条原则进行,由于“所见即所想”这样的一个心里现象的存在,某个似是而非的错误结果可能会被当成是正确的结论.

用Twitter的cursor方式进行Web数据分页

- yuaz - Tim[后端技术]
本文讨论Web应用中实现数据分页功能,不同的技术实现方式的性能方区别. 上图功能的技术实现方法拿MySQL来举例就是. 不过在看Twitter API的时候,我们却发现不少接口使用cursor的方法,而不用page, count这样直观的形式,如 followers ids 接口. Provide values as returned to in the response body’s next_cursor and previous_cursor attributes to page back and forth in the list..

PouchDB:一款受CouchDB启发的离线Web数据库

- - 博客园_新闻
查看英文原文: PouchDB – a CouchDB-inspired Offline Web Database. PouchDB 是受 Apache CouchDB 启发为 Web 设计的一款占用空间少的数据库. 它尤其适合于需要基于浏览器的可离线使用的存储方案的移动应用. 该数据库可与 CouchDB 同步,也可与在线设备上的其他 PouchDB 同步.

HTML5 Web Database 数据库的使用方法

- - 博客园_首页
HTML5 Web Database 数据库的使用方法. //openDatabase方法打开已经存在的数据库,如果不存在将会创建一个数据库,参数分别是 数据库的名称,版本,数据库的描述,和数据大小. var db = window.openDatabase("mydatabase", "1.0", "我的数据库描述", 20000); 数据库的SQL语句的使用方法.

web三种跨域请求数据方法

- - BlogJava_首页
以下测试代码使用php,浏览器测试使用IE9,chrome,firefox,safari.     // test1.php在服务器设置请允许跨域(注意:IE9测试不通过).     第二种JSONP:.     在客户端动态注册一个函数function test(data),然后将函数名传到服务器,服务器返回一个test({json})到客户端运行,这样就调用客户端的function test(data),从而实现了跨域,jquery已经支持jsonp.

cxf+web service(二)代理工厂,安全验证,数据绑定

- - ITeye博客
(二)代理工厂,安全验证,数据绑定. 1.服务端:ServerFactoryBean,JaxWsServerFactoryBean 用于服务端调用.前者针对POJO,后者针对JAX-WS,他们用于生成服务端的EndPoint,暴露出服务接口. 2.客户端:ClientProxyFactoryBean,JaxWsProxyFactoryBean 用于客户端调用.前者针对POJO,后者针对JAX-WS,他用于在客户端生成Web Service的代理proxy.

文章: 软件测试转型之路

- - InfoQ cn
2010年12月31日,在网易从事了多年开发之后,依依不舍地离开,面临的是一个完全从零开始的全新职位:SQA,也就是tester. 保持某些系统的高可用性,是一些企业的重中之重,如何设计. 海量数据处理,海量视频分发,架构热点难点,尽在架构师峰会. ArchSummit全球架构师峰会报名启动. 当时对为什么被选择做软件质量保证,而不是继续在研发上进取,持有保留态度:凭什么要我转,不是别人.

软件测试中的心理学

- - 技术改变世界 创新驱动中国 - 《程序员》官网
软件测试是一项技术性工作,但同时也涉及经济学和人类心理学的一些重要因素. 在理想情况下,我们会测试程序的所有可能执行情况,而在大多数情况下,这几乎是不可能的. 即使一个看起来非常简单的程序,其可能的输入与输出组合可达到数百种甚至数千种,对所有的可能情况都设计测试用例是不切合实际的. 对一个复杂的应用程序进行完全的测试,将耗费大量的时间和人力资源,这样在经济上是不可行的.

软件测试用例编写建议

- - CSDN博客推荐文章
软件测试人员(SQA/SQC),做的最频繁并且最主要的活动之一就是编写软件测试用例了. 首先,请记住以下所有的讨论都是关于编写软件测试用例,而不是设计/定义/确认测试用例(TC).   这项主要活动有几个重要的关键因素,让我们先来大概了解一下吧.   A、软件测试用例要易于定期修改和更新.   我们生活在一个不断变化的世界,软件也不能免于变化.