测试框架/bug预防/bug探索

 

功能测试框架

常用的测试用例的方法:

引自:https://blog.csdn.net/weixin_42556883/article/details/81135314

1、等价类划分

     包含有效等价类和无效等价类,例如要求登录名为:数字+字母,有效等价类就是:数字+字母,无效等价类就可以是1)只包含数字,2)只包含字母,3)有特殊字符等。

2、边界值分析

边界内取值,边界上取值,边界外取值都要考虑,例如密码要求8-20位,需要测试 7位,8位,19位,20位,21位

另外做边界值测试,也不能忘记正常范围内的测试。

3、因果图分析

是需要考虑一些输入条件的排列组合,因果图就是生成判定表,根据需求找到输入条件,以及条件所产生的结果,多种组合,举例说明:

4、正交实验设计方法

根据被测软件的说明书,找到影响功能实现的操作对象和外部因素,把他们当作因子,而把各个因子的取值当作状态。

5、功能图分析方法

用到逻辑覆盖和路径测试的概念,属于白盒测试的范围。

逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、条件组合覆盖

路径覆盖:每一条路径都需要覆盖。

6、错误推测法

基于经验和直觉猜产品能够有啥错误。

1、程序中有可能出现的错误

2、产品中以前出现的错误

7、需求文档转化法

熟读产品说明文档, 将每句话都测试一遍。

8、随机测试

站在一个用户的角度,随意点击,查看是否会报错。

9、对象属性分析法

bug预防体系

分辨率问题

1、一般都会在1024*768 的分辨率下查看,其他的分辨率,例如800*600 也可以

预防办法:

产品:需要确定哪几种常用的分辨率需要兼容  ; 研发:需要设计时针对各个分辨率制定设计规范,并按照规范研发

测试:需要测试产品需要的几个常用分辨率的兼容性

web兼容性测试

1、360浏览器

2、edge浏览器

3、safari浏览器

4、谷歌浏览器

5、火狐浏览器

6、qq浏览器

7、opera浏览器

预防方法:

产品:需要确定哪几种常用的浏览器需要兼容  ; 研发:需要设计时针对各个浏览器制定设计规范,并按照规范研发

测试:需要测试产品需要的几个常用浏览器的兼容性

link问题

1、所有的链接是否有效,并且链接到相对应的页面中

2、保证web中没有孤立的页面,也就是说没有链接可以到达这个页面

3、链接打开的方式是否合理(在原有洁面打开还是打开一个新的链接)

4、是否存在死链接

预防方法:

产品:需求中写明链接位置和链接目的地

测试;要检查每个链接是否有效

链接检查工具:

http://www.csdn.net/article/2013-12-13/2817805-online-tools-for- managing-broken-links

快捷键和焦点

tab键和焦点的切换:

在测试的页面中,对全页面,tab键都可以进行焦点切换,并且将相临的tab键切换顺序做到关联。

例如:

1、登录页面,tab键默认在用户名上;2、输入用户名,按tab键,则聚焦到输入密码上;3、输入密码后,聚焦在点击按钮”登录“上。

预防体系:产品需要明确该页面哪些需要tab聚焦以及聚焦顺序;研发:按照产品要求编写代码;测试:要验证默认焦点与切换顺序是否合理。

前进、后退、刷新问题

1、在有些特殊的情况下,是不允许前进后退操作,会出现重复提交、数据不完整、校验失败等问题

预防办法:

产品:明确哪些敏感页面不允许前进后退,例如:提交订单或者充值支付等功能。

研发:需要考虑如果前进后退是否会有系统漏洞,比方说让用户重复充值,所以是否后退功能应该失效。

产品:多从用户的角度考虑,万一我前进后退了会怎么样,和产品确定需求。

页面提示语言,js提示语言

往往在一个产品中,每个研发人员用的提示语言都自带风格,所以不能统一,友好度下降

预防方法:

产品:产品统一规格提示语言;研发:按照规范执行;测试:按照规范测试

1、提示语言里面永远不要用“你”

2、如果有操作,可以用“请”

3、全脚和半脚不要掺合使用

4、英文和数字之间有空格,汉字和英文,数字之间也有空格。

图片展示问题

在页面中往往有一些图片,有的图片不能完全展示,有的图片自带链接链接无效。有的图片不具备放大缩小的功能。

预防体系:

产品:严格在说明书中明确该图片是否有链接,链接位置指向哪,链接是在当前页面展开还是进入新的页面,这些都得说明,还有该图片是否能够放大,是否能够放小等需求。

研发:按照产品规定开发,并且最好一个项目图片保持一种规范

测试:点击图片的链接,验证链接有效性,另外传图片可以不同形状的传,还有不同大小,看是否正常展示

输入框

输入框填入超长字符是否有溢出,是否与旁边位置有重叠。尤其如果输入字母考虑大写字母的宽度,全部写成大写字母。

预防体系:

研发:把所有的输入框都限制最长字符设置

测试:把所有的输入框都做最长字符限制的测试,然后观察检查是否有重叠,找那种字体特别宽的字符。

重复提交

用户提交数据页面,是否可以反复点击“提交”按钮,并检查如果反复提交的话,数据库中有几条数据

预防体系:

研发:要考虑是否能够反复提交,当点击提交后,是否提交按钮就变为失效的状态。

测试:通过脚本或者工具要查看提交按钮是否可以反复点击,尤其是金融系统。

输入判断问题

输入的内容判断:

1、特殊字符是否支持

2、是否区分大小写

3、是否对全角、半角有限制

4、数字框是否只支持数字

5、输入框中最长最短字符的判断

6、对待空格的处理

7、需要前台地址js判断输入的准确性,后台也判断以下输入的准确性。

预防措施:

产品:在说明书中要明确判断输入的是否正确。

测试:对所有的输入字段进行判断,包括超长、特殊字符、大小写字母,标点符号,空格,空等操作。

不同浏览器同时登录同一个账户

数据同步的问题,当一个账户登录到不同的浏览器或者一个浏览器登录不同的用户时,cookie操作不会出现混乱的问题。

预防体系:

1、产品:要考虑多个用户,不同浏览器操作的场景,设计更全面

2、测试;按照多浏览器和多用户的使用情况,进行更多场景测试。

安全考虑

1、当代码用户信息(密码)等的url不要包括明文信息。

2、即使要传递密码,也不要用特别明显的字段:例如pwd,password这样的字样,容易被人截获

预防体系:

测试:要用抓包工具,或者开发者工具查看是否存在敏感信息,是明文状态的,例如密码,另外验证下缓存信息是否有敏感信息。

url链接检查

在web系统中,直接输入各个功能页面的输入url链接,查看是否能够正常显示。

预防体系:

研发:代码走查的时候要验证每个url是否有权限限制,逻辑关系,比如没有登录账户,直接输入一个页面的url,是否需要跳转到登录页面的url

测试:获取所有系统url,在非登录情况下进行遍历截图,或关键字判 断,验证非登录状态下无法访问具有访问权限限定的

sql注入和跨站攻击

1、不要把数据库中和程序中的报错信息显示在前端页面上

2、在数据库中如果是比较敏感的信息,字段名不要用很通俗易懂的东西,尤其密码啥的,不要用password,也不允许用明文。

3、页面回显的input text, input hidden中的文本内容需过滤 “<、>、”、’等字符(半角转换为全角或者删除掉),防止 Javascript 的跨站攻击

预防体系:

测试:验证页面不会暴露系统的所有出错信息,可以使用appscan或者其他工具扫描系统的sql注入漏洞

用户易用性

当用户删除某个东西时,要有相对友好的提示语言。

预防体系:

测试:对每个删除操作都要有友好提示语言

接口文档不符合

有的时候设计和接口文档不一致

预防体系:

1、产品:要严格把控接口文档是否符合要求,及时审核和更新

2、测试:严格按照接口文档操作

各个资源连接释放

有的时候系统访问不了,那是因为数据库连接没有释放,如果在做压力测试,连接释放如果效果不高,则有可能出现可能大量超时失败的内存泄漏问题。长时间工作内存满了

预防方法:

测试:进行稳定性测试,验证长时间情况下资源是否可以释放。

参数的容错处理

如果接口对参数没有很好的容错信息,对返回值也没有很好的容错处理

预防方法:

1、产品:对接口文档要明确哪些需要有容错处理;测试:严格按照文档进行接口测试。

探索性测试

探索性测试的类型

1、自由式探索

2、基于场景的探索

3、基于策略的探索

4、基于反馈的探索。

发布了6 篇原创文章 · 获赞 10 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/vicky_lov/article/details/84578427
bug