软件测试 BUG预防 关于web产品常见问题

Bug 预防的意义

亡羊补牢好?还是防患于未然?

你知道质量管理是怎么回事?

你认为测试人员如何更好地扩大自己的影响力?产品开会时作为产品经理角色阐述自己的观点,在开发会中把自己当作架构师角色,利用各种方式提高自己的影响力。

测试人员每年发现数千个bug ,应该做点什么呢 ,才能更好地积累一些我们的经验,对bug做总结,很多程序员都会犯得。

web产品常见问题

1页面显示 :产品的网页通常保证在1024*768的分辨率下显示正常,但是常常忽略800*600分辨率下的显示情况。

如果页面设计明确只考虑1024*768的需求,则只在1024*768下验证各个产品页面的显示正确无误

预防方法:切好的设计页面和集成程序后的页面需要分别在两种显示分辨率下验证显示的正确性

2浏览器兼容性:

目前市场上的主流浏览器如下 :IE 5.1   chrome  360 浏览器 firefox sougou浏览器 通常情况下要保证IE6-11 和firefox 浏览器下的兼容性,需要保证页面不变形,js执行均正确

预防方法:设计组需要制定页面设计规范和js设计规范,保证主流浏览器的页面显示兼容性和js设计兼容性。

3 、tab键的使用

页面中的tab翻页可以正常切换,支持tab键切换的要检验使用的正常性和合理性 ,tab键的易用性

预防方法: 需求设计过程中需要考虑tab键的使用合理性。程序设计或者页面设计出一个tab键使用的通用设计原则或者规范。

4,、前进和后退问题

IE 有一个特性:就是允许前进和后退到某一个页面,在某些特殊情况下,用户进行前进和后退,有可能造成数据不完整的提交,或者其他的显示问题。

预防方法:制定一些标准的测率来处理IE的前进和后退操作,作为整个项目的共享,防止用户返回特定的数据提交页面和浏览页面,并进行重复操作。

5. 页面提示语言、js提示语言,程序提示语言:

通常情况下, 产品人员并不会讲产品需求细化到某句化应该如何提示用户,所以不同的程序员会根据自己的语言特点来提示用户,这就造成了不同程序员提示的语言风格完全不一样,造成产品友好度下降。

解决方法:产品人员和开发人员一起制定尽可能大而全的提示语言规法,并且作为规范说明提供给开发人员进行使用。

6、语言文字提示(微软的标准):

1 、全角字符和半角字符都要使用一个空格分开

2、英文和数字之间要有空格分开

3、汉字和英文、数字要有空格分开

4、带有汉字的话要使用全角字符

5、语言中不要混用全角和半角标点

6、 在语言中,永远不要用“你”这个字,要做一些操作步骤描述的时候,要多用“您”。

7、文字缩率和执行:输入框提交很长的字符,并且不折行,则提交数据后,有可能会发页面的拉的非常长,

如果要将文字后面的一些文字处理为省略号的时候,需要注意不要将中文截成半个字符

预防方法:提交公共处理字符的程序,解决上述问题,来进行公用。

 8、图片的显示和链接:

图片是否增加链接通常会被开发人员忽略掉

图片的显示位置通常会显示不同像素大小和比例的图,所以需要明确定义大图片如何缩减成为小图片的策略,以小图片如何拉伸显示为大的图片

解决方法:

提供需求中明确图片是否需要链接以及链接的位置

需求中明确图片显示策略,是等比缩放显示,还是原大小显示,还是自适应显示,并且制定相应策略的统一处理模块

9、重复提交:

用户提交数据页面,用户有可能连续多次点击提交按钮,造成数据的重复提交

预防方法:

用户点击“提交”后,讲按钮变为disable(灰)状态

10、输入判断问题(1):

所有键盘输入的特殊字符,均可以正常保存

需要特别处理英文引号,英文双引号等引起程序错误的问题

需要处理“<"、” /"和“\"等容易保存出错的字符

预防方法:开发公共处理特殊字符的模块,在系统中进行规范应用

11、输入判断问题(2):

数字框只能输入数字的内容

日框需要判断日期是否合法

文本框需要判断字段长是否限制了

对于空格的处理,如果系统想trim掉字符串最开头和最后的空格,则需要整个系统都是用此策略,否则会造成数据传递不一致的问题,

需要前台页面使用js来判断输入的合法性,同时后台逻辑也要添加判断输入合法性的输入。

12、多个IE 同时访问的情况

用户可能打开不同的IE使用相同的用户登录后进行操作,程序处理的时候要考虑到数据的一致性和同步问题

多个IE使用不同用户,则cookie操作不会出现用户信息混乱的问题

13、安全考虑

在URL中不要带有明文的用户信息写代码的时候,不要把米啊等敏感的用户信息明文的显示在url中

及时要传递密码参数也不要使用pwd、passpord这样的参数名称来进行传递,防止被截获。

要在传递参数的操作中使用nocache参数,防止将URL参数进行缓存

预防方法:

建立标准的数据传输和命名规范,并制作一些网页开发模板或者规范供参考 

14、防止sql注入:

不要把数据库或者程序的任何报错信息显示在页面上

最好程序能够将select update delete 这些关键字都过滤掉,不让用户提交包含这些数据的信息。

数据库中设计到操作权限的表名和字段名用很通俗易懂的名字

输入框尽量过滤掉”<>"这样的字符,防止javascript攻击

预防方法: 出错的时候使用错误处理页面,建立标准的过滤关键字程序,统一数据库设计命名规范,建立方js攻击的标准函数。

15、关于cookie:

cookie没有设定过期时间

IE不支持cookie的时候没有任何提示信息

cookie中的敏感信息没有进行加密

预防方案: 明确cookie生存期,并对生成的cookie进行检查,建立标准的检查浏览器对cookie支持的程序函数。

16、各种资源连接的释放:

有的时候,系统莫名访问不了,则有可能是数据库连接没有释放

压力测试的时候,连接释放如果效率不高,则有可能出现大量连接超时失败

预防方法:系统资源的释放过程,最好通过代码review的方式来互相监督

17、 关于Keepalive的设置:

如果需要在一个连接同时获取多个资源,则需要打开 apache或者resin的Keepalive参数为on,来提高系统的处理能力,减少多次建立连接所消耗的资源。如果大量的处理只是一次性连接,则不要打开keepalive设置,

在实际工作中,需要将keepalive分别设置on或者off来验证哪个设置的性能更好。

18、系统上线的log配置:

上下以后,要关闭无用大量调试log信息

不要打开过多的log

预防方法:系统管理员对所有打开log级别进行确认,并群发相关人员

19、用户易用性

用户删除某个数据前,要明确提示用户时候要删除

默认把焦点选在在否上

平台产品常见问题

1、文档 

程序实现和接口文档描述不一致

预防方法:

leader定期对接口进行审核,保证文档,需求变更和程序实现保持一致。

2、多表操作

详细设计文档缺失,接口对多表进行操作时候,经常会发生有些表的数据没有被更新的情况

预防方法:审核设计文档是否覆盖必要的逻辑,加强codereview 

3、参数的容错处理:

接口没有对参数进行必要的容错,参数出现错误的时候

接口也没有做相应的错误处理,文档也没有描述容错机制

预防方法:明确每个接口对哪些情况进行必要的容错,并写到设计文档中,有leader进行文档审核。

bug预防总结:

分析问题>找到具体原因>解决问题>总结问题  > 建立预防方法 开发的规范和测试的规范 >规范流程和制度> 监督执行

你的优秀比人家在哪里,亮点:我比其他人做了bug预防 防范于未然比亡羊补牢更重要,我把所有发现的bug归类,建议开发人员做一个规范,测试人员做一个规范,保证相同的bug不会再出现第二次,或者在我的测试框架中不会被漏掉。








  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilNiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值