测试的艺术: 软件测试的心理学和经济学

软件测试的心理学:

测试执行的差,其中一个主要原因在于大多数的程序员一开始就把测试这个术语的定义搞错了,他们可能会认为:

  • “软件测试就是证明软件不存在错误的过程”
  • “软件测试的目的在于证明软件能够正确完成其预定的功能”
  • “软件测试就是建立一个‘软件做了其应该做的’信心的过程”

这些定义都是本末倒置的。

对于测试,更为合适的定义应该是:

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

我们可以类比一下病人看医生的情况,病人因为身体不舒服而去看医生。如果医生对病人进行了一些实验检测,却没有诊断出任何病因,我们就不会认为这些实验测试是“成功的”。之所以是“不成功的”检测,是因为病人支付了昂贵的医药费,而病状任然存在。病人会因此而质疑医生的诊断能力。但是,如果实验检测诊断出病人是胃溃疡,那么这检测就是“成功的”,医生可以进行适当的治疗。因此,医疗界会使用“成功的”或“不成功的”来表达适当的意思。我们可以类推到软件测试中来,当我们开始测试某个程序的时候,它就好似我们的病人。

软件测试的经济学:

软件测试是否能够发现“所有”的错误。答案是否定的。

为了应对测试经济学的挑战,应该在开始测试之前建立某些策略。黑盒测试和白盒测试是两种最普遍的策略。

1. 黑盒测试

又称为数据驱动的测试或输入/输出驱动的测试。测试的目标与程序的内部机制和结构完全无关。

2. 白盒测试

又称逻辑驱动的测试。

软件测试的原则

  • 测试用例中一个必须部分是对预期输出或接过进行定义
  • 程序员应避免测试自己编写的程序
  • 编写软件的组织不应当测试自己编写的软件
  • 应当彻底检查每个测试的执行结果
  • 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
  • 检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
  • 应避免测试用例用后即弃,除非软件本身就是个一次性的软件
  • 计划测试工作时不应默许假定不会发现错误
  • 程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比
  • 软件测试是一项极富创造性,极具智力的挑战性的工作
时间: 2024-10-12 22:43:53

测试的艺术: 软件测试的心理学和经济学的相关文章

《赢在测试2-中国软件测试专家访谈录》读书笔记

<赢在测试2-中国软件测试专家访谈录>读书笔记 2015-04-30 测试人物经历与观点  1.董杰 百度测试架构师    董杰的职业发展经历    如何成长为一个优秀的测试工程师?    如何开展软件测试工作?  2.邰晓梅 独立测试咨询顾问    邰晓梅职业发展经历    测试与开发的关系    对测试认识的三个阶段  3.一些分析:对测试的一些想法 职业发展是一个探索和尝试的过程,职业发展的目标是动态的,也可能会变. 测试人物经历与观点 返回 1.董杰 百度测试架构师 董杰的职业发展经历

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

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

测试的艺术:测试用例的设计

由于时间和成本的约束,软件测试的最关键问题是: 在所有可能的测试用例中,哪个子集最有可能发现最多的错误 测试方法: 黑盒测试 等价类划分(Equivalence Partitioning) 1. 严格控制测试用例的增加,减少为达到“合理测试”的某些既定目标而必须设计的其他测试用例的数量 2. 它覆盖了大部分其他可能的测试用例. 划分了等价类后,就可以说,如果对该集合中某个元素所进行的测试没有发现错误的话,那么对该集合中其他元素所进行的测试也不大可能会发现错误. 使用等价类划分方法设计测试用例主要

Kali linux渗透测试的艺术 思维导图

Kali Linux是一个全面的渗透测试平台,其自带的高级工具可以用来识别.检测和利用目标网络中未被发现的漏洞.借助于Kali Linux,你可以根据已定义的业务目标和预定的测试计划,应用合适的测试方法论,从而达到预期的渗透测试结果.本书采用循序渐进的方法讲解了前沿的黑客工具和技术,有助于提高读者的渗透测试实用技巧.本书提供了所有必需的实验准备和测试流程,旨在从业务的角度反映真实世界中的攻击场景.   本书内容:通过安装.配置.运行和升级核心系统组件来设置Kali Linux的测试环境:执行正规

测试的艺术--通用测试案例篇

ps:针对通用测试点,只说明测试的关注点和方向. 对于具体的项目测试,细化为相关case即可. 常用测试用例设计方法: 1. 边界值 2. 等价类 3. 场景法 4. 错误推测法 5. 针对参数测试 1. web页面通用测试 case 测试点 case关注点 UI/UE 原则: 页面元素的显示   和  界面,提示的友好性 ] 页面元素的对齐 图片,文案等元素 左右对齐,还是上下对齐(文案过长过短时对齐): ] 页面遮挡 文案过长过短时,页面显示是否遮挡: 所有的下拉框等是否不恰当的遮挡了其他元

测试的艺术:代码检查、走查与评审

软件开发人员通常不会考虑的一种测试形式-人工测试. 大多数人都以为,因为程序是为了供机器执行而编写的,那么也该由机器来对程序进行测试.这种想法是有问题的.人工测试方法在暴露错误方面是很有成效的.实际上,大多数的软件项目都应使用到一下的人工测试方法: 1. 利用错误列表进行代码检查 2. 小组代码走查 3. 桌面检查 4. 同行评审 代码检查: 所谓代码检查是以组为单位阅读代码,它是一系列规程和错误检查技术的集合. 一个代码检查小组通常由四人组成: 协调人:以为称职的程序员 该程序的编码人员 该程

【测试的艺术】+ 封装

第一步:封装被测方法or接口的参数 class Parameters { private String tenantId = "MYNTW3PH"; private String sceneId = "PH_DEFAULT"; public void setTenantId(String tenantId1){ this.tenantId = tenantId1; } public String getTenantId(){ return tenantId; } p

【测试的艺术】+测试方法1+等价类

1.需求: 2.分析 3.case 原文地址:https://www.cnblogs.com/danhuai/p/10896986.html

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

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