必学的软件快速测试方法,现在学还不晚!

前言:

大家好,我是一菲,最近很多小伙伴给我留言:怎么能快速的进行软件测试呢?有哪些方法呢?今天特意给大家总结了这篇文章,希望能够给大家带来帮助。

正文:
一些快速测试方法,这里进行补充和调整,并同步更新到我们的测试知识共享库中,使用时可灵活增删改查。

1.用户界面

若软件在应用商店中销售,界面很可能成为用户是否安装或购买的重要因素

a.漫游用户界面 ,发现是否有任何令人厌烦的界面设计。

b.可参考受欢迎的界面设计,以发现被测产品的可改进之处"

2.边界

软件在处理数值边界时可能出错

a.发现业务的范围和边界,测试边界上的值和临近边界的值

b.测试超出范围的值

扫描二维码关注公众号,回复: 12449505 查看本文章

c.令数值计算产出超出范围的值

.令一个模块输出其他模块不能接受的值,如界面字段只能显示10个字符的字符串,测试人员让后台产生11个字符的字符串。后台DB的字段是8位整数,测试人员让前台网页传递大于255的整数"

3.溢出

整数和浮点数运算可能溢出,会导致计算错误和安全漏洞

留意软件的数值计算,若觉得某个计算有溢出的风险,就传入极大值或极小值去触发潜在的溢出

4.计算和操作

数据转换和数值计算有些典型错误

a.输入错误的数据以测试数据转换,如软件期望输入整数,测试输入浮点数、无效字符串、空字符串

b.除0

c.除很接近0的极小数值,会产生很大的计算结果,有可能导致数值越界或溢出

d.将高精度数值强制赋给低精度数值,可能导致精度丢失,甚至计算错误

e.浮点数运算很可能产生误差,一些小的误差会累积出严重的偏差,所以测试要关注涉及多个变量或步骤的数值计算,仔细检查其结果的精度"

5.初始状态

一段程序在使用一个变量时,可能对该变量的状态有不正确的假设,这会导致软件故障

变量通常有5个状态,测试要检查程序的对变量状态的假设是否总是正确的:

a.未初始化

b.已初始化

c.默认值

d.已经被赋予当前计算需要的值

e.带有其他计算的结果

f.被修改的值

软件可能不能侦测到它所依赖的事物发生了变化 ,这会导致错误

为一个变量设置值,让一些功能依赖于该变量,然后修改该变量的值,并检查相应功能是否正确。

eg.用图片应用浏览图片,切换到OS界面下删除正在显示的图片,返回图片应用,看被删的图片如何显示

6.控制流

控制流的意外跳转可能暴露隐藏的问题

测试要想办法打乱软件的控制流,如触发异常、输入异常数据、造成环境失败等

7.序列

有些软件错误会在漫长的操作序列中暴露

考虑反复执行以下操作:

a.产生错误消息的操作

b.令任务被迫中断的操作

c.会执行递归计算的操作

另外, 测试可编写测试程序,用随机的顺序调用已有的自动化测试用例,实施长序列的测试"

8.消息

软件与外界的通讯可能中断

若软件与网络服务、DB、其他软件有任何形式的交互 ,测试要破坏它们之间的通讯。

可编写测试程序来监听并篡改信息,或强制被依赖的软件返回错误信息,以测试软件如何处理破损的消息

9.时序和竞态条件

软件可能对操作的时序有不正确地假设

测试异步调用时,测试让软件先后启动A和B两个计算,并让B先完成计算。有些软件不能处理后提交的在计算先返回的情况,会发生故障。

测试可同时启动多个操作去访问共享的数据或功能,以检查并发计算是否造成数据损坏。"

10.错误处理

软件的错误处理代码需要应对意外情况,有较高的编写难度,故易出错

测试尝试触发软件的错误信息,然后反复执行导致 错误消息的操作,以检查错误处理代码是否产生了资源泄漏问题。

强力测试软件,来检查错误处理代码是否将软件恢复到正确状态。"

11.失败处理

软件的失败恢复可能包含错误,使得损失加重

测试要检查失败处理代码的正确性。如,文档崩溃重启后,是否显示用户最近的编辑成果,避免或降低了用户的损失。

12.文件系统 文件系统的异常情况会影响软件的运行

a.用调试工具令OS的文件读写API返回错误,可模拟出磁盘损坏等异常情况

b.删除正在被使用的文件

c.删除即将被使用的文件

d.锁住即将被使用的文件

e.窃取软件持有的文件句柄

f.修改一个需要更高权限才能修改的文件

g.令文件名和文件路径的长度超过OS支持的最大路径长度

h.令文件名包含OS禁止的字符

i.修改文件名后缀为大写或其他无效的后缀名

j.将文件名修改对OS有特殊含义的单词

k.读写尺寸巨大的文件

l.将文件写入只读的磁盘

m.将文件写入容量即将耗尽的磁盘

n.将文件写入网络磁盘,在写入过程中,断开网络

o.将文件写入移动硬盘,在写入过程中,拔出移动硬盘

二、尝试各种输入以触发软件的所有错误消息

一、软件处理错误输入的常见方式有三种:

a.输入过滤:滤除错误的数据

b.输入检查:检查输入并报告错误

c.异常处理:当错误输入产生故障时,异常处理代码会捕获异常并加以补救。

正确编写以上代码需周密思考和反复测试,稍有不慎就可能引入缺陷 "

采用极限值测试、边界值测试、非法值测试、压力测试等方法来测试用户输入

二、强制让软件使用默认值

不同模块由不同程序员编写,他们可能期望不同的默认值 ,这种不一致性会导致错误

a.接受所有默认值,然后提交

b.使用空值

c.将默认值改为另一个值,然后再改回来

d.将默认值改为另一个值,然后改为空值"

三、探索允许的字符集和数据类型

常见问题:

a.字符集:有些软件只支持特定编码的字符集,输入其他编码的字符会导致错误

b.编程语言:有些软件会将用户输入作为程序来执行,这导致了许多问题,如SQL注入

c.OS:OS会禁止创建一些特定名字的文件。一些软件在西文OS上不能正确显示中文字符

测试了解软件、编程语言、实现技术、OS对字符集和数据的期望与限制,然后使用对它们而言具有特殊含义的字符串或数据进行***

四、令输入缓冲区溢出

软件未考虑输入值超长、超大的情况,导致数值计算溢出或缓冲区溢出
常见测试想法:

a.输入超长的字符串,字符串最好类似于“中文中文数字1234567中文…”有助于定位导致错误的长度

b.输入极大值(针对加法和乘法计算)、负的极大值(针对减法计算)、很接近0的值(针对除法计算)等"

==五、测试一组相关变量的取值组

当多个程序员共同开发一段代码时,他们的代码所产生的数值可能不能正常协作。

此外,程序员还会用复杂的嵌套if语句来检查多个变量,这些代码不容易编写,更容易在维护时出错。

测试人员通过调查软件需求和实现,以识别真正相关的变量,它们通常属于同一个数据结构或参与到同一项计算中。

然后,根据软件使用它们的方式设计Case。

也可使用组合测试工具来产生Case

六、重复输入多次

软件可能不了解它在空间和时间上的限制,当重复操作耗尽其资源时,它会失败

测试反复执行一些消耗较多资源的操作,或反复执行一些大量数据的操作。如,在测试在线商城时,测试持续向购物车中添加货品,创建出一个包含许多商品的“超级订单”。该订单可能导致提交失败,或令未来的订单处理遇到困难。

补充:
必学的软件快速测试方法,现在学还不晚!

猜你喜欢

转载自blog.51cto.com/15086761/2620510