软件测试的艺术-CH2

by GlenFord J. Myers(U.S.A)

测试是为发现错误而执行程序的过程

软件测试心理学

人类的行为总是倾向于具有高度目标性,建议一个正确的目标有重要的心理学影响,如果我们的目标在于证明程序中的错误,那我们设计的测试数据就会发现更多的问题,

反之,则相反。

如果在测试阶段发现了错误并且成功得到修复,那么测试是成功的

如果本次测试可以确定再无其它可以查出的错误,那么本次测试仍然是成功的

总结,软件测试更适宜被视为试图发现程序中错误的破坏性过程。一个成功的测试用例,通过诱发程序发生错误,从而在这个方向上可以促进软件质量的改进。

最终我们通过软件测试来建立某种程度的信心:软件做了该做的,未做其不该做的,通过对错误的不断研究是实现这个目的的最佳途径。

软件测试经济学

软件测试是否能够发现“所有”的错误?一般来说这是不切实际的。这个基本的问题反过来暗示出软件测试的经济学问题,即测试人员对被测软件的期望,以及测试用例的

设计方式。

为了应对经济学上的挑战,应该在测试之前建立某些策略

黑盒测试

又成为数据驱动的测试或者输入/输出驱动的测试。程序视为一个黑盒子,重点集中在发现程序不按其规范正确运行的环境条件。

这种方法如果想要发现所有的错误,就要穷举输入测试数据,这当然是不可能完成的任务。

故这种方法目标在于如何通过有限的测试用例集,最大限度的提高发现问题的数量,以取得最好的测试效果,当然要实现这个目标,还需要能够窥见软件的内部,对程序

做一些合理的假设,如 2,2,2是一个等边三角形,那么有理由相信 3,3,3也会被程序认定为等边三角形。

白盒测试

又称逻辑驱动的测试,允许我们检查程序的内部结构。

软件测试的重要原则

1. 测试用例中的一个必需部分是对预期输出或结果的定义

一个测试用例必需包含两个部分

1.对程序输入数据的描述

2.对程序在上述输入数据下的正确输出结果的精确描述

2. 程序员应当避免测试自己编写的程序

处于心理学层面,应当避免让程序员直接测试自己编写的程序,让其它人来测试程序会更加有效,也更容易测试成功

3. 应当测查每个测试的执行结果

常常被忽视检查执行结果,导致遗漏场景

4. 不仅要输入有效的数据场景,也要输入无效和未预料的输入情况

5. 程序某部分存在更多错误的可能性,与该部分已经发现的错误数量成正比

错误总是倾向于聚集存在,最好对容易存在错误的部分进行额外的测试,以获取更大的成效。

小结

1. 软件测试是为发现错误而执行程序的过程

2. 尽量避免编码人员测试自己编写的程序

3. 好的测试用例对未发现的错误高度敏感

4. 成功的测试用例能够发现未知的错误

5. 成功的测试用例要仔细定义输入输出的期望值

6. 成功的测试需要仔细分析测试结果

时间: 2024-10-18 15:18:37

软件测试的艺术-CH2的相关文章

《软件测试的艺术(原书第2版)》【PDF】下载

<软件测试的艺术(原书第2版)>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196343 内容简介 本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查.走查与评审.测试用例的设计.模块(单元)测试.系统测试.调试等主题,以及极限测试.互联网应用测试等高级主题,全面展现了作者的软件测试思想.第3版在前两版的基础上,结合软件测试的最新发展进行了更新,覆盖了可用性测试.移动应用测试以及敏捷开发测试等内容. 本书适合软件开

软件测试的艺术读书笔记

集成测试的目的是将模块的功能与定义模块的功能规格说明或接口规格说明进行比较.从而揭示出模块与规格说明存在着矛盾. 模块的规格说明和源代码.(输入输出参数和模块的功能) 使用白盒的测试方法分析逻辑结构,然后使用黑盒测试方法来设计测试用例. 第一步要列举出程序中所有的条件判断. 测试是为发现错误而执行程序的过程. 代码检查,走查以及可用性测试是三种主要的人工测试方法. 常见的编码错误: 变量是否都已声明.数组下标是否越界.是否被0除.是否每个循环都中止了,文件是否在使用前打开.形参的数量是否等于实参

软件测试的艺术(一):软件测试的重要原则

软件测试是为了发现错误而执行程序的过程,这就说明目的是为了发现错误,动作是执行程序. 在进行软件测试的过程中,要遵循很多的原则,以下是几个重要的测试原则: 1)      测试用例中一个必需部分是对预期输出或结果进行定义. 对于软件测试,必须是有明确的定义输入数据和条件,同时对输出结果有准确的判断.这样才能辨别是否是有效的测试,当前的结果是否是正确的. 2)      程序员应当避免测试自己编写的程序. 人都会有固定思维,一方面是可能对软件需求规格书的理解偏差,导致编写的程序也有偏差,所以自己没

软件测试的艺术

设备的多样性.模拟器测试 性能规格,数据有效性,响应时间,数据完整性,容错性以及可恢复性. 系统测试的目的是验证软件符合其初始目标.不能将需求规格说明书作为系统测试设计测试用例的依据. 系统测试包含能力测试,容量测试,强度测试,可用性测试,安全性测试,性能测试,存储测试,配置测试,兼容性测试,可靠性测试,可恢复性测试,可维护性测试,文档测试,过程测试. 测试计划包含目标,结束准则,进度,工具,时间,集成,回归测试,测试用例库,测试环境

《软件测试的艺术》摘要(下)

第九章 敏捷开发模式下的测试1.敏捷开发的特征:依赖客户的参与.测试驱动.以及紧凑的迭代开发周期.2.敏捷测试本质上是一种协调测试.要求每个人都参与到测试计划的设计.实现以及执行中去.3.极限编程与测试 3.1 极限编程,关注: a)实现简单的设计 b)开发人员与客户的沟通协作 c)不断地测试代码库 d)重构以适应规格说明的变更 e)寻求用户的反馈 3.2 XP开发模型用12个核心实践来驱动: a)计划与需求分析 b)小规模,递增地发布 c)系统隐喻 d)简要设计 e)连续测试 f)重构 g)结

软件测试的艺术:因果图

因果图是一种形式语言,用自然语言描述的规格说明可以转化为因果图.因果图实际上是一种数字逻辑电路(一个组合的逻辑网络),但没有使用标准的电子学符号,而是使用了稍微简单点的符号,它有助于用一个系统的方法选择出高效的测试用例集,它还有一个额外的好处就是可以指出规格说明的不完整和不明确之处. 生成测试用例采用的过程: 将规格说明分解为可执行的片段.这是必须的步骤,因为因果图不善于处理较大的规格说明. 确定规格说明中的因果关系.所谓因是指一个明确的输入条件或输入条件的等价类,所谓果是指一个输出条件或系统转

2017.4.7------软件测试的艺术+整理以前的摘记

2017.4.17 以下内容来自<软件测试的艺术> 第1页--20页.供自己学习使用.   第一章 软件测试:就是一个过程或一个系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作. 第二章    测试人员需要有正确的态度.每当测试一个程序时,应当想到的是为程序增加一些价值.通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量,提高程序可靠性,是指找出并最终修改了程序的错误. 1.有人把没发现错误的测试用例称为一次"成功的测试",而将发现了某个新错

软件测试读书列表

测试入门 软件测试(第2版) Software Testing (2e), Ron Patton 一本测试入门的好书,较全面地介绍了各种测试领域和方法,为测试新手提供了正确的观念和宽泛的基础. 软件测试的艺术(第2版) The Art of Software Testing (2e), Glenford J. Myers, Corey Sandler, Tom Badgett, Todd M. Thomas 一本“久经考验”的测试经典:1979年,第一版面试:25年后,第二版登场.平心而论,有些

软件测试必读的七本书

<软件测试的艺术> 软件测试是一个带有创造意味的破坏性施虐过程,也是一个趋向完美与完善的强逻辑过程.其实我的性格是很适合做软件测试的,但其现实固有瓶颈所在,也是我并不会完全选择它的原因.也可能是因为,我并不能百分之两百的爱,我正在测试的产品.这本书最大的特点是易懂实用,而且讲的都很多书中都罗列过的简单道理,任何人都可以看,特别是那些想将软件测试做好的人,在实践中完全消化这本书,因它比较完整,对于方法方面,基本上已经完全足够了. <软件测试经验与教训> 优秀的软件测试团队不是天生的,