web测试经验整理
1. 页⾯链接检查:每⼀个链接是否都有对应的页⾯,并且页⾯之间切换正确。可以使⽤⼀些⼯具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等⼯具。LinkBotPro不⽀持中⽂,中⽂字符显⽰为乱码;HTML Link Validater只能测试以Html或者htm结尾的⽹页链接;Xenu⽆需安装,⽀持asp、do、jsp等结尾的⽹页,xenu测试链接包括内部链接和外部链接,在使⽤的时候应该注意,同时能够⽣成html格式的测试报告。如果系统⽤QTP进⾏,也可以使⽤QTP的页⾯检查点检查、⾃动化检查
2. 相关性检查:
  Ø 功能相关性:删除/增加⼀项会不会对其他项产⽣影响,如果产⽣影响,这些影响是否都正确,常见的情况是,增加某个数据记录以后,如果该数据记录某个字段内容较长,可能会在查询的时候让数据列表变形。
  Ø 数据相关性:下来列表默认值检查,下来列表值检查,如果某个列表的数据项依赖于其他模块中的数据,同样需要检查,⽐如,某个数据如果被禁⽤了,可能在引⽤该数据项的列表中不可见。
3. 检查按钮的功能是否正确:如新建、编辑、删除、关闭、返回、保存、导⼊,上⼀页,下⼀页,页⾯跳转,重置等功能是否正确。常见的错误会出现在重置按钮上,表现为功能失效。
4. 字符串长度检查: 输⼊超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。还要检查需求规定的字符串长度是否是正确的,有时候会出现,需求规定的字符串长度太短⽽⽆法输⼊业务数据。
5. 字符类型检查: 在应该输⼊指定类型的内容的地⽅输⼊其他类型的内容(如在应该输⼊整型的地⽅输⼊其他字符类型),看系统是否检查字符类型。
6. 标点符号检查: 输⼊内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。常见的错误是系统对空格的处理,可能添加的时候,将空格当作⼀个字符,⽽在查询的时候空格被屏蔽,导致⽆法查询到添加的内容。
7.特殊字符检查:输⼊特殊符号,如@、#、$、%、!等,看系统处理是否正确。常见的错误是出现在% ‘ \ 这⼏个特殊字符
8. 中⽂字符处理: 在可以输⼊中、英⽂的系统输⼊中⽂,看会否出现乱码或出错。
9. 检查信息的完整性: 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否⼀致。要注意检查的时候每个字段都应该检查,有时候,会出现部分字段更新了⽽个别字段没有更新的情况。
10. 信息重复: 在⼀些需要命名,且名字应该唯⼀的信息输⼊重复的名字或ID,看系统有没有处理,会否
报错,重名包括是否区分⼤⼩写,以及在输⼊内容的前后输⼊空格,系统是否作出正确处理。
11. 检查删除功能:在⼀些可以⼀次删除多个信息的地⽅,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择⼀个和多个信息,进⾏删除,看是否正确处理。如果有多页,翻页选,看系统是否都正确删除,并且要注意,删除的时候是否有提⽰,让⽤户能够更正错误,不误删除。
12. 检查添加和修改是否⼀致: 检查添加和修改信息的要求是否⼀致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.
13. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和⾃⼰重名的错.
14. 重复提交表单:⼀条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于WEB系统来说,可以通过浏览器返回键或者系统提供的返回功能。
15. 检查多次使⽤返回键的情况: 在有返回键的地⽅,返回到原来页⾯,重复多次,看会否出错。
16. 搜索检查: 有搜索功能的地⽅输⼊系统存在和不存在的内容,看搜索结果是否正确.如果可以输⼊多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确,搜索的时候同样要注意特殊字符,某些系统会在输⼊特殊字符的时候,将系统中所有的信息都搜索到。
17. 输⼊信息位置: 注意在光标停留的地⽅输⼊信息时,光标和所输⼊的信息会否跳到别的地⽅。
18. 上传下载⽂件检查:上传下载⽂件的功能是否实现,上传⽂件是否能打开。对上传⽂件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载⽂件能否打开或者保存,下载的⽂件是否有格式要求,如需要特殊⼯具才可以打开等。上传⽂件测试同时应该测试,如果将不能上传的⽂件后缀名修改为可以上传⽂件的后缀名,看是否能够上传成功,并且,上传⽂件后,重新修改,看上传的⽂件是否存在。
19. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提⽰信息,如在必填项前加“*”;对必填项提⽰返回后,焦点是否会⾃动定位到必填项。
20. 快捷键检查:是否⽀持常⽤快捷键,如Ctrl+C、 Ctrl+V、 Backspace等,对⼀些不允许输⼊信息的字段,如选⼈,选⽇期对快捷⽅式是否也做了限制。
21. 回车键检查: 在输⼊结束后直接按回车键,看系统处理如何,会否报错。这个地⽅很有可能会出现错误。
22.刷新键检查:在Web系统中,使⽤浏览器的刷新键,看系统处理如何,会否报错。
23.回退键检查:在Web系统中,使⽤浏览器的回退键,看系统处理如何,会否报错。对于需要⽤户验
证的系统,在退出登录后,使⽤回退键,看系统处理如何;多次使⽤回退键,多次使⽤前进键,看系统如何处理。
24.直接URL链接检查:在Web系统中,直接输⼊各功能页⾯的URL地址,看系统如何处理,对于需要⽤户验证的系统更为重要。如果系统安全性设计的不好,直接输⼊各功能页⾯的URL地址,很有可能会正常打开页⾯。
25.空格检查:在输⼊信息项中,输⼊⼀个或连串空格,查看系统如何处理。如对于要求输⼊整型、符点型变量的项中,输⼊空格,既不是空值,⼜不是标准输⼊。
26.输⼊法半⾓全⾓检查:在输⼊信息项中,输⼊半⾓或全⾓的信息,查看系统如何处理。如对于要求输⼊符点型数据的项中,输⼊全⾓的⼩数点(“。”或“.”,如4.5);输⼊全⾓的空格等。
27.密码检查:⼀些系统的加密⽅法采⽤对字符Ascii码移位的⽅式,处理密码加密相对较为简单,且安全性较⾼,对于局域⽹系统来说,此种⽅式完全可以起到加密的作⽤,但同时,会造成⼀些问题,即⼤于128的Ascii对应的字符在解密时⽆法解析,尝试使⽤“uvwxyz”等⼀些码值较⼤的字符作为密码,同时,密码尽可能的长,如17位密码等,造成加密后的密码出现⽆法解析的字符。
28.⽤户检查:任何⼀个系统,都有各类不同的⽤户,同样具有⼀个或多个管理员⽤户,检查各个管理
员之间是否可以相互管理,编辑、删除管理员⽤户。同时,对于⼀般⽤户,尝试删除,并重建同名的⽤户,检查该⽤户其他信息是否重现。同样,提供注销功能的系统,此⽤户再次注册时,是否作为⼀个新的⽤户。⽽且还要检查该⽤户的有效⽇期,过了有效⽇期的⽤户是不能登录系统的。容易出现错误的情况是,可能有⽤户管理权限的⾮超级管理员,能够修改超级管理员的权限。
29.系统数据检查:这是功能测试最重要的,如果系统数据计算不正确,那么功能测试肯定是通不过的。数据检查根据不同的系统,⽅法不同。对于业务管理平台,数据随业务过程、状态的变化保持正确,不能因为某个过程出现垃圾数据,也不能因为某个过程⽽丢失数据。30.系统可恢复性检查:以各种⽅式把系统搞瘫,测试系统是否可正常迅速恢复。
31.确认提⽰检查:系统中的更新、删除操作,是否提⽰⽤户确认更新或删除,操作是否可以回退(即是否可以选择取消操作),提⽰信息是否准确。事前或事后提⽰,对于Update或Delete操作,要求进⾏事前提⽰。
32.数据注⼊检查:数据注⼊主要是对数据库的注⼊,通过输⼊⼀些特殊的字符,如“’”,“/”,“-”等或字符组合,完成对SQL语句的破坏,造成系统查询、插⼊、删除操作的SQL因为这些字符⽽改变原来的意图。如select * from table where id = ‘ ’ and name = ‘ ’,通过在id输⼊框中输⼊“12’-”,会造成查询语句把name条件注释掉,⽽只查询id=12的记录。同样,对于update和delete的操作,可能会造成误删除数
当前页面脚本发生错误据。当然还有其它⼀些SQL注⼊⽅法,具体可以参考《SQL应⽤⾼级SQL注⼊.doc》,很多程序都是基于页⾯对输⼊字符进⾏控制的,可以尝试跳过界⾯直接向数据库中插⼊数据,⽐如⽤Jmeter,来完成数据注⼊检查。
33.刷新检查:web系统中的WebForm控件实时刷新功能,在系统应⽤中有利有弊,给系统的性能带来较⼤的影响。测试过程中检测刷新功能对系统或应⽤造成的影响(⽩屏),检查控件是否回归默认初始值,检查是否对系统的性能产⽣较⼤影响(如每次刷新都连接数据库查询等)。
34.事务检查:对于事务性操作,断开⽹络或关闭程序来中断操作,事务是否回滚。
35.时间⽇期检查:时间、⽇期验证是每个系统都必须的,如2006-2-29、2006-6-31等错误⽇期,同时,对于管理、财务类系统,每年的1⽉与前⼀年的12⽉(同理,每年的第1季度与前⼀年的第4季度)。另外,对于⽇期、时间格式的验证,如2006年2⽉28⽇、2006-2-28、20060228等。⽇期检查还要检查⽇期范围是否符合实际的业务,对于不符合时间业务的⽇期,系统是否会有提⽰或者有限制
36.多浏览器验证:越来越多的各类浏览器的出现,⽤户访问Web程序不再单单依赖于Microsoft Internet Explorer,⽽是有了更多的选择:Maxthon、Firefox、Tencent Traveler等,考虑使⽤多种浏览器访问系统,验证效果。
37.安装测试:对于C/S架构的系统,安装程序的测试是⼀个重要⽅⾯,安装程序⾃动化程度、安装选项和设置(验证各种⽅案是否都能正常安装)、安装过程中断测试、安装顺序测试(分布式系统)、修复安装及卸载测试。
38.⽂档测试:主要是对⽤户使⽤⼿册、产品⼿册进⾏测试,校验是否描述正确、完整,是否与当前系统版本对照,是否易理解,是否⼆义性等。
39.测试数据检查:事实告诉我们,测试数据⽐代码更有可能是错的,因此,当测试结果显⽰有错误发⽣的时候,怀疑代码错误前要先对测试数据检查⼀遍。
40.请让我的机器来运⾏:在某些项⽬中,出现⼀个病态的问题:系统没有问题呀,它在我的机器上是能够通过的。这就说明了其中存在着和环境相关的BUG。“是否所有的⼀切都受到了版本控制⼯具的管理?”、“本机的开发环境和服务器的环境是否⼀样?”、“这⾥是否存在⼀个真正的BUG,只不过是在其他的机器⾥偶然出现?”。所有的测试必须在所有系统要求的机器上运⾏通过,否则的话,代码就可能存在问题。
41.Ajax技术的应⽤:Ajax有很多优点,但也有很多缺点,如果利⽤优点、避免缺点,是我们对新的Web2.0应⽤的⼀个挑战。⽽Ajax的应⽤最直接的问题就是⽤户体验,⽤户体验的效果直接关系到是否使⽤Ajax技术。“会做,并不意味着应该做、必须做”,这就是对Ajax技术的
很重要的注解。
42.Ajax技术的应⽤:Ajax采⽤异步调⽤的机制实现页⾯的部分刷新功能,异步调⽤存在异常中断的可能,尝试各种⽅法异常中断异步的数据调⽤,查看是否出现问题。在这⾥遇到的⼀个问题就是对⽇期控件的操作,已经如果页⾯数据较多的时候的刷新。
43.脚本错误:随着Ajax、IFrame等异步调⽤技术的发展,Javascrīpt技术也越来越受到开发⼈员的重视,但Javascrīpt存在调试困难、各浏览器存在可能不兼容等问题,因此在Web系统中,可能会出现脚本错误。同时,脚本错误造成的后果可⼤、可⼩