测试人员必学的软件快速测试方法(二)

以下是测试专家Cem Kaner在黑盒软件测试中总结的一些快速测试方法,这里进行补充和调整,并同步更新到我们的测试知识共享库中,使用时可灵活增删改查。

1.用户界面

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

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

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

2.边界

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

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

2).测试超出范围的值

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

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

3.溢出

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

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

4.计算和操作

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

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

2).除0

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

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

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

5.初始状态

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

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

1).未初始化

2).已初始化

3).默认值

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

5).带有其他计算的结果

6.被修改的值

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

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

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

7.控制流

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

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

8.序列

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

考虑反复执行以下操作:

1).产生错误消息的操作

2).令任务被迫中断的操作

3).会执行递归计算的操作

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

9.消息

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

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

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

10.时序和竞态条件

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

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

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

11.错误处理

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

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

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

12.失败处理

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

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

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

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

2).删除正在被使用的文件

3).删除即将被使用的文件

4).锁住即将被使用的文件

5).窃取软件持有的文件句柄

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

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

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

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

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

11).读写尺寸巨大的文件

12).将文件写入只读的磁盘

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

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

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

原文地址:http://blog.51cto.com/hongz/2083866

时间: 2024-10-11 11:07:15

测试人员必学的软件快速测试方法(二)的相关文章

测试人员必知的快速测试方法(一).

对有些测试经验的测试人士来说,都有总结或掌握一些小众的测试技巧.而快速测试是一组基于风险的测试方法,是针对某些常见的软件缺陷,实施专项攻击,一般不需要大量的测试时间,只了解产品基本情况就可以在短时间内在发现一批错误 . 以下是测试专家James Bachd 在快速软件测试中总结的一些快速测试方法,这里进行补充和调整,并同步更新到我们的测试知识共享库中,使用时可以增删改查. 方法名 针对风险 测试手段 快乐路径 软件在典型用户情景中失败 检查其表现是否符合用户和产品团队对它的期望, 而不会让用户感

测试人员必看的经典书籍

软件测试:经验与教训:如果只让推荐一本书,我就推荐这一本.书以很多看似零散的小知识点组成,但是字字珠玑.真正做过2年~20年测试的人,拿起它来,每一条和自己的工作做对照,都会有共鸣或者”原来如此“的感受.工作经验越多,体会越深,是一本常看常新,并且能够一直指导你的书.从某种意义上,它教会测试人员的是“思辨思维”,这才是最重要的财富. 有效软件测试: 跟<软件测试,经验与教训一样>是一部分实战很强的总结类书籍,我觉得也可以列入经典.推荐阅读的时候同自己的工作一条一条做对照,肯定会有很深体会.(里

测试人员必掌握的测试文档

软件测试文档一般是提供测试信息的一组文档,可以是测试人员的工具,也可以是项目开发团队的开发辅助工具. 一般情况下,与项目相关的测试文档主要有以下几个 ~ 1.测试计划.(详情可参考一份标准的测试计划包含哪些要素文章)测试计划由测试小组编写完成后,需同项目中相关人员进行评审,以确保当前的计划与项目进度等方面是一致的. 2.测试策略.一般情况下,较大型的项目会有附加的测试策略文档 ,即详情测试设计.与开发小组中的概要设计文档类似.测试策略文档编写完成后也需要由相关项目经理.开发人员进行评审 .了解测

用Python远程登陆服务器的最佳实战,面试必学

在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果. 在 shell 环境中,我们是这样子做的. $ sshpass -p ${passwd} ssh -p ${port} -l ${user} -o StrictHostKeyChecking=no xx.xx.xx.xx "ls -l" 复制代码 注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以

2019 年软件开发程序员必学的编程语言 Top 3

随着时间的流逝,我们将迎来新的一年,这是富有前景和挑战的一年.我们已经看到 AI 和 ML 为所有有远见的人带来了希望,尽管币圈出现了混乱,但区块链仍然是本世纪最有前景的创新技术. 自动化浪潮风靡着整个行业.不过,尽管这些有前景的技术趋势吸引了所有人的眼球,但我们不能忘了编程语言和算法本身,它们才是这些现象背后的主要驱动因素. 以下是 2019 年软件开发人员必学的 3大 编程语言 ! Python 在这个编程语言世界中,Python 绝对不是什么新生事物.它由 Guido van Rossum

对于软件开发中开发人员与测试人员关系的理解

在软件开发中都会有开发人员(以下简称开发)和测试人员(以下简称测试),在一些小型公司可能并没有测试,仅仅是开发兼任测试.在这里我仅针对于有专业的测试和专业的开发的项目. 每个公司应该都有考核机制,对于开发和测试的考核实际上很难量化,通常来讲大的方向就是开发所负责模块的bug数,对于测试来讲就是测出来的bug数,但这真的有效吗?这也许对开发有约束力,理论上开发是能够自己控制bug数的,如果从产生的bug数来评判开发的绩效还算有效,这样开发自然就会把代码写得更加认真.但如果根据测试测出来的bug数来

新手必学 手机录屏软件具体操作过程

很多新手宝宝们在下载了一款新的录屏大师软件之后去不知道该如何使用,或者觉得有些软件的操作程度太深,自己无从下手,面对这一问题,关于手机录屏软件具体操作过程,今天小编就来和你们一一说来,如果有感兴趣的宝宝可以一起往下看了. 录屏大师http://www.xunjieshipin.com/download-airscreen 安卓录屏软件http://www.pc6.com/softview/SoftView_600540.html 软件介绍: 迅捷录屏大师APP是一款适用于安卓手机的软件,它可以录

【转】 测试人员的职业规划 --整理标注

不同类型的软件公司,对测试工作的重视程度也有很大不同.建议测试人员选择一些业务持续发展的公司.做项目东一榔头西一棒的公司,是不需要高质量的测试的,他们需要的是尽快把软件交出去,却无法静下心来思考,怎么把质量做好.选择这样的公司,要冒相当大的风险. 接下来说一下大家关心的话题,如果选择了测试,怎么能从测试团队中脱颖而出呢?经常被提出的概念有“管理和技术两条路线”,这个概念太抽象,还是无法帮我们理清思路.有的观点认为,测试要学习开发技术,这个也没有说到关键点上.我认为测试人员的职业发展有下面两个,换

Linux必学的60个命令【转载】

Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存  [转载地址]http://blog.chinaunix.net/uid-16728139-id-3154272.html 自己留着,用得着. Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统