◇ 反馈结果是否需要文件下载?
◇ 如果用户不要下载文件,网站是否仍可以使用? ◇ 反馈结果是否需要使用特定字体?
◇ 反馈结果是否需要用户跨越多个站点/域链接数据源? ◇ 用户是否可以使用拖拉和点击功能? ◇ 用户是否可以使用复制/粘贴功能? ◇ 反馈结果是否需要下载任何桌面项?
◇ 反馈结果是否需要登陆或安装任何带框架的文件? ◇ 是否允许提交未加密数据?
◇ 网站是否允许通过脚本复制操作? 浏览器 - IE、Netscape、AOL、Mac 等
◇ HTML 版本是否与相应的浏览器版本相匹配? ◇ 测试时,JAVA 源码/脚本是否被浏览器支持? ◇ 测试时,浏览器是否可以正确显示图片?
◇ 是否可以确定在任何浏览器上,字型都是可用的? ◇ 与每个浏览器相关的安全性设置/风险是否经过检验? ◇ 是否在多个浏览器上验证过数字证书?
◇ 与浏览器配套的插件是否和网站一起经过测试? ◇ 是否设置了源码不可见?
◇ 不同浏览器上的网站内容是否都可打印?
◇ 是否影响整体的内容大小(可靠性、一致性)? ◇ 是否验证过应用程序与框架是否兼容?
◇ 鼠标和键盘是否经测试适用于不同的浏览器?
◇ 是否执行过智能错误处理(如:cookie 不可用)? ◇ 128 位编码是否经验证可用?
◇ 在不同浏览器上 GIF 是否经测试可用? Cookies
◇ cookie 储存的信息是否经过验证? ◇ cookie 信息是否经过加密? ◇ cookie 信息是否适量增加? ◇ 是否阻止用户编辑 cookie?
◇ 是否检查过如果用户浏览网站期间删除 cookie,会发生什么? ◇ 是否检查过如果用户关闭网站后删除 cookie,会发生什么? ◇ cookie 储存的路径是否正确?
◇ cookie 的信息是否正确有效,用户是否可以使用该信息连接网站? 登陆/并发使用
◇ 系统是否达到预期的响应时间、流量以及实用价值? ◇ 系统是否可以承受极限用户量的访问? ◇ 系统是否可以长期无故障地正确运行?
◇ 是否监视过 CPU 的使用、响应时间、硬盘空间、内存用量及泄露? ◇ 是否定义标准响应时间(如:所有的页面的显示时间应小于 10 秒)? ◇ 是否验证防火墙、证书、服务提供商以及可以网络的影响? ◇ 不同速度的调制解调器上网页的登陆性能是否可接受? ◇ 同一用户是否可以长时间连续使用网站?
◇ 多个用户是否可以长时间连续使用网站?
◇ 在高流量的情况下,网站是否能支持短时间的使用? ◇ 网站是否可以维持大量数据的处理,而不崩溃?
◇ 如果事务是无效的,网站是否仍允许大订单,而不会死锁目录? 错误处理
◇ 是否建立自动错误监察恢复机制,以保持系统运行? ◇ 如果系统崩溃,重启和恢复机制是否有效可靠? ◇ 如果半途断开网站,事务是否随之取消? ◇ 如果网络忽然中断,事务是否随之取消? ◇ 反馈结果是否处理文件传输的中断? ◇ 反馈结果是否处理浏览器崩溃?
◇ 当网站和应用服务器连接中断时,反馈结果是否处理? ◇ 反馈结果是否处理数据库服务器中断链接的情况? ◇ 应用程序是否通报用户事务的状态? ◇ 网站是否包含 24 x 7 性能监控? ◇ 监控软件 MAPI 的电子邮件协议/限制 ◇ 网站是否可以链接到页面系统? ◇ 时间 - 连续、每时、每天、每周
◇ 硬件限制 - 监视软件是否必须运行在专用机器上? ◇ 内存 - 泄露、隐藏、持续运行导致的问题 网络影响
◇ 是否考虑过 32 位和 64 位版本的 IP 问题? ◇ 是否测试过安全代理服务器的影响? 安全
◇ 是否足够安全?
◇ 是否机密/用户私密保护?
◇ 是否只有使用 128 位浏览器才能成功链接? ◇ 网站是否提示用户姓名和密码?
◇ 网站是否需要孩童输入个人信息?如果需要,是否在安全页面进行,且警示其家长? ◇ 服务器和客户端是否都有数字证书? ◇ 是否验证密码开始和结束的地方? ◇ 是否允许同时注销?
◇ 应用程序是否支持因静止而导致超时? ◇ 安全页面内书签是否不能使用?
◇ 在非安全/安全页面的状态栏上是否有显示钥匙/锁? ◇ 右击、查看、源文件是否不可用?
◇ 是否不能在 URL 上通过编辑内容而进行直接搜索? ◇ 如果使用数字证书,请通过注册证书、按规定填写安全信息测试浏览器缓存。安装证书后,试着使用回车键,看安全信息是否仍保存在缓存中。如果仍旧存在,那任何使用者都可能有机会获取这些高敏感的数字证书中的安全信息。
◇ 由于 SSL 和低于 3.0 版本的浏览器不兼容,是否有第二种方法可以连接到安全页面? ◇ 用户是否清楚何时进入、何时离开网站的安全部分?
◇ 当用户多次使用无效登陆名/密码信息登陆失败时,服务器是否会拒绝该用户再次尝试链接?
GUI测试之窗口篇
窗口是Windows本身以及Windows 环境下的应用程序的基本界面单位,就是显示在屏幕上的一个矩形区域。一般来说窗口是具有标题栏、菜单/菜单栏、工具栏、工作区、状态栏、最大化、最小化按钮和滚动条的标准方框,应用程序通过它和用户进行交互。但是如果没有标题栏、状态栏、最大化、最小化按钮是不是就不叫窗口呢。其实不然,窗口的概念很广,例如按钮和对话框等也是窗口,只不过是一种特殊的窗口罢了。这里我主要将的还是标准意义上的窗口。
窗口主要有进入、移动、改变窗口大小;最大化、最小化和还原;使用滚动条和关闭窗口等操作。
因此可以通过如下来测试窗口:
大多数的窗口、屏幕/对话框应该有最小化,恢复和关闭按钮。 所有的窗口、屏幕/对话框应该有和内容相一致对应的标题。
只有主窗口才有标题栏图标、菜单栏、工具栏和状态栏。二级窗口不要使用菜单栏、工具栏或状态栏。
每一个窗口/屏幕都应有功能匹配的OK和Cancel按钮。窗口/对话框的缺省
a.Escape键取消对话框,焦点重新定位回到父窗口先前的焦点上,
b.Alt+F4关闭窗口,和Escape键相似,但它可以在即使没有Cancel按钮的对话框中工作
c.Alt+Space打开窗口的菜单Restore, Move, Size, Minimize, Maximize, Close d.Shift+F10和右击效果一样。
e.可以用键盘上的箭头按钮实现Move和Size功能
一个窗口每个组件的访问键必须是唯一的。
父窗体或主窗体的中心位置应该在对角线焦点附近;子窗体位置应该在主窗体的左上角或正中;多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。
二级窗口最好不要显示在任务栏中,因为单击主窗口的任务栏按钮也会激活二级窗口。 如果子窗体的任何操作会影响了父窗体的数据时,关闭子窗体同时必须刷新父窗体的数据。
关闭父窗体时必须关闭所有打开的子窗体。如果由于子窗口没有关闭而无法关闭父窗口,必须给予提示信息框。在关闭提示信息框后显示必须关闭的子窗口。
子窗体的大小最好不要超过父窗体,且最好不要遮住父窗体的主要信息。如果存在多层嵌套窗口,每层窗口弹出时都自动往右下移动一点点,以保证不遮盖上层窗口标题为准。
窗口嵌套层次最好不超过3层。
点击窗口中的帮助按钮或F1必须带出和窗口内容相一致的帮助。 窗口可以被多次打开和关闭。但窗口未关闭或被其他窗口覆盖时,再次点击菜单或按钮,测试窗口是否可以被激活。
如果窗体可以最小化,最大化或可调整大小时,窗体上的控件也要随着窗体而缩放;对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能。
工具栏按钮应该有浮动的提示,可以根据用户的要求自己选择定制;:相同或相近功能的工具栏放在一起;:一条工具栏的长度最长不能超出屏幕宽度;工具栏的图标能直观的代表要完成的操作;系统常用的工具栏设置默认放置位置;:工具栏太多时可以考虑使用工具厢;:
工具厢要具有可增减性,由用户自己根据需求定制。:工具厢的默认总宽度不要超过屏幕宽度的1/5
状态条要能显示用户切实需要的信息,常用的有: 目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。 状态条的高度以放置五好字为宜,滚动条的宽度比状态条的略窄。
菜单和工具条应有清楚的界限,菜单和状态栏中使用统一大小的字体(通常使用5号字体)
菜单应采用“常用--主要--次要--工具--帮助”的位置排列。提供常用的菜单项,如“文件”、“编辑”,“查找”,“打印”等。对常用的菜单项提供快捷命令方式。快捷方式唯一。
主菜单数目不太多时最好为单排布置。如果菜单选项较多,应该采用加长菜单的长度而减少深度的原则排列。菜单深度一般要求最多控制在三层以内。
下拉菜单要根据菜单选项的含义进行分组,並且按照一定的规则进行排列,用横线隔开。一组菜单的使用有先后要求或有向导作用时,应该按先后次序排列。没有顺序要求的菜单项按使用频率和重要性排列,常用的放在开头, 不常用的靠后放置;重要的放在开头,次要的放在后边。对与进行的操作无关的菜单要用屏蔽的方式加以处理,如果采用动态加载方式——即只有需要的菜单才显示——最好。
菜单前的图标不宜太大,与字高保持一直最好。主菜单的宽度要接近,字数不应多于四个,每个菜单的字数能相同最好。
状态栏中的信息应该根据窗口的内容的变化而变化,如在初始状态时,系统有多少条数据,经过查询后状态栏的数据应该发生变化。
滚动条的长度根据显示信息的长度或宽度及时变换,这样有利于用户了解显示信息的位置和百分比;拖动滚动条,检查屏幕刷新情况,并查看是否有乱码;单击滚动条和滚动条的上下按钮;用滚轮控制滚动条;
如果系统的模块较多,较深,经常会多级菜单,最好在窗口上加上导航条,以方便用户可以快速返回
GUI测试之信息处理类篇
在这篇文章中,我将文本框(Text Box),列表框(List Box),组合框(Combo Box)、下拉列表框(Drop-down List Box),复选框(Check Box),单选框(Radio box)/(option box),选项框(Option box)、滑动条(Slider)、 旋转按钮(Spin Button)等都作为信息处理类来统一总结。
窗口/屏幕上的每一个字段都应有相应的标签。 根据文本框可以接受的类型测试文本框: 1)输入正常的字母或数字 2)输入已存在的信息
(当某个字段不能重复的时候,输入已存在的信息,看保存是否会提示,比如注册用户的时候,要求用户名不可重复:先注册一个用户,保存成功(确定数据库中已保存该条数据),再注册一个用户,输入同样的用户名,保存是否会提示:该用户名已被使用等。) 3)输入超过允许长度的字符或边界数字 4)输入空白,空格,(输入其他特殊字符如:#@¥%&*等) 5)输入不同类型或不同日期格式的数据,
6)复制/粘贴等操作强制输入程序不允许的输入数据 7)输入数据库或特殊字符集,例如NULL及\\n等
测试文件选择框的正确性。使用空文件,只有空格的文件,不同类型的文件,同名文件,内容相同名称不同的文件,大文件等。
测试强制性字段的正确性(即必输项测试),强制性字段必须用红色的星号*标识。强制性字段两种处理方式:最好是必填项没有输入时,在光标移走时在相应的文本框后显示需要用户输入的红色信息。一般也可以在提交时用弹出消息框提示未填的必填项,关闭消息框后必须停留在第一个待输入的文本框中。
每一个新窗口/屏幕中,光标默认停留在第一个待输入的文本框中。
一般下拉框中应显示一个默认值,列表框中高亮度显示一个默认值。如果不需要默认值时,一般默认值未“请选择。。。”。
一般来说系统应记忆以前输入或选择的信息,但是当涉及安全时,最好不要保留用户的信息。有些地方可以使用复选框让用户决定是否要保留信息。如登录界面。
对输入信息类型有限制的文本框应在输入非法值后给予提示,对于日期型的输入框,最好在标签上就给予提示
当输入的内容达到了字段的长度限制时,一般应控制不允许再输入,或者在提交后提示具体的允许输入的长度或者在光标转移时提示‘***允许输入的最大长度是***’等,而不是自动截断。(农信社资金业务管理系统目前采取右截断的处理方式,因此有问题)
系统中不允许的非法字符,最好是在输入时不允许输入,或在提交时给予具体系统不允许的非法字符列表提示。(如’、”、<、<>)
正确使用复选框或单选框。如果结果只有一个的,则使用单选框,如性别。验证单选按钮不能同时选中只能选中一个,而可以选择多个复选框。
一组单选按钮在初始状态时必须有一个被默认选中,不能同时为空。
分别测试多个复选框可以被逐一选中;同时选中,部分选中;都不被选中。 通过输入数字或用点击上下箭头来测试旋转按钮,测试其自动循环性,如范围为(0~999)先输入为999,在点击向下键,看是否会跳到0。输入字符或超过边界的数值,系统应该提示错误且重新输入;
验证列表框中的条目内容显示正确;允许多选的列表框,要分别检查shift和ctrl选中条目情况
避免使用水平滚动条,因为它会使项目阅读起来比较困难。解决的办法有:尽量使用垂直滚动条、加宽窗口、减小文本的宽度,或者使文本自动换行等。当然,如果确实需要,还可以使用水平滚动条。
全选框勾中时应该选中当页所有记录,去掉当页某个记录的勾选,则全选也不选中。翻页后,自动去掉已勾选的记录及全选的勾选。
复选框可以通过Space可以控制选中/不选中
F4, Alt+down或alt+up控制combobox打开和关闭
对于combobox,Escape键等同于Cancel,Up/down箭头按钮控制向上或向下,Shift+up和shift+down可以多选,Ctrl实现多选;
GUI测试之按钮篇
在同一窗口中实现某一功能的按钮是唯一的。