QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 2013-03-24
  • 本文字数:1969 字

    阅读完需:约 6 分钟

检查清单 (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 测试人员在设计测试用例时提供了很好的参考。

2013-03-24 01:562874
用户头像

发布了 501 篇内容, 共 260.3 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

使用 Next.js , Nexus, Prisma 构建全栈项目

夏木

nextjs prisma graphql fullstack

Github下载即将破百万的PDF:双十一高并发亿级流量秒杀顶级教程

Java 编程 程序员 秒杀 计算机

除了方文山,用TA你也能帮周杰伦写歌词了

华为云开发者联盟

AI 数据 周杰伦 modelarts 歌词

LeetCode题解:155. 最小栈,使用链表代替栈,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营第十二周作业

Hanson

TCP/IP协议族(第四版)已出,不愧是世界计算机优秀畅销精选书籍

Java 编程 架构师 TCP/IP 协议族

区块链USDT支付系统,USDT承兑支付软件开发

13530558032

交易所合约跟单系统源码开发,合约跟单平台搭建

13530558032

GitHub上120K Stars国内第一的Java多线程PDF到底有什么魅力?

Java 程序员 并发编程 多线程 架构师

全网都在跪求的阿里Java修炼开发技术笔记,终于开放下载了

Java 编程 后端 架构师

架构师培训十二周练习

小蚂蚁

架构师训练营第 0 期第 12 周作业

无名氏

膜拜!京东T9大牛沉淀三年终于整理出了这份架构核心修炼之道

Java 编程 程序员 架构师 计算机

京东T9今年首发的一份Spring Boot实战,让开发像搭积木一样简单

Java 编程 程序员 架构师 计算机

2. Bean Validation声明式校验方法的参数、返回值

YourBatman

参数校验 Hibernate-Validator Bean Validation 方法校验

收藏!一篇教会你写90%的shell脚本!

Geek Tech

Shell shell脚本编写 收藏教程

Redis问的太深入,面试官说:你先回去等通知吧

Java redis 编程 程序员 架构师

如何实现特定列脱敏?这两种方法你都要会

华为云开发者联盟

postgresql 数据 脱敏 匿名 视图

云小课 | 一份超实用的勒索病毒自救预防指南

华为云开发者联盟

勒索病毒 弱密码 云小课 企业主机安全 病毒云查杀

易观郭炜:流动水系数造未来

易观大数据

加密数字货币钱包APP系统开发,数字货币钱包系统定制

13530558032

架构师训练营第十二周总结

Hanson

云计算、人工智能、大数据技术三者之间的关系

cristal

人工智能 云计算 大数据

架构师训练营十二周作业

方堃

架构师训练营第十二周作业

叮叮董董

架构师培训 -12 hadoop

刘敏

GitHub上的今年第一本《Java异步编程实战》美团T9亲荐,太赞了

Java 程序员 架构师 异步编程

真香警告!手绘172张图解HTTP协议+703页TCP/IP协议笔记

Java 程序员 架构师 计算机

疫情对在线教育的影响

anyRTC开发者

在线教育 直播 RTC 安卓

一文说透"静态代理"与"动态代理"

Geek Tech

源码分析 动态代理 静态代理

数字货币交易系统应用开发,区块链交易所app

13530558032

Web软件测试中数据输入的检查清单_DevOps & 平台工程_崔康_InfoQ精选文章