软件测试读书笔记

[美] Ron Paton著, 周予滨, 姚静译. 软件测试[M]. 北京:机械工业出版社, 2002.

这本书是一本软件测试入门级读本,书的写作风格是浅显易懂,且知识面覆盖广。该书内容分为六个部分,每一部分分别讲述了软件测试的一个方面的知识。通过阅读该书我明白了软件测试与软件缺陷的一些相关知识,大致明确了软件缺陷的产生及在测试中如何对缺陷进行处理和管理。

1 软件测试综述

该部分作者通过讲述几个臭名昭著的软件错误案例,包括爱国者导弹防御系统(由于一个很小的系统时钟错误累积起来拖延数十个小时造成跟踪系统失去准确度)、千年虫(由于压缩程序存储空间而造成2000年后日期表示出错)等,引出了软件缺陷的概念,并给出了软件缺陷的严格定义,即满足书中所列5个规则(书本正文第6页)的软件问题。进而从软件缺陷产生的原因分析和修复软件缺陷的费用分析两个角度提出了用来发现软件缺陷的方式——软件测试的概念,并强调从软件开发过程的开始阶段就进行测试的重要性。

图1.1 软件缺陷产生的原因

图1.2修复软件缺陷的费用

明白了软件缺陷是什么、总体上是如何产生的以及软件测试的目的和重要性之后,接下来作者便从软件开发过程进一步阐述了软件测试在软件开发过程中扮演的角色,并分析了几种开发模式是否能够便于执行并且在早期费用不大时执行测试任务,排除了大棒模式(几乎没有测试过程)、流水模式(测试仅在最后进行,费用风险大)等,认为螺旋模式更适合软件测试。这里主要还是强调了软件测试的重要性以及阐明了如何将测试融入软件开发过程。

接着,作者介绍了软件测试的原则及相关的术语和定义,实际上是进一步让读者明白软件测试的实质,这样读者也就更清楚了利用软件测试能够给自己解决哪些问题,以及哪些问题是软件测试无法解决的。书中列出了以下原则:

1) 完全测试程序是不可能的(所有可能的测试用例不可能全部测试)

2) 软件测试是有风险的行为(没有测试所有情况,需要寻找最优测试量)

3) 测试无法显示潜伏的软件缺陷(完全测试程序是不可能的)

4) 找到的软件缺陷越多,就说明软件缺陷越多

5) 杀虫剂怪事(必须不断编写不同的新测试程序)

6) 并非所有软件缺陷都能修复(风险)

7) 难以说清的软件缺陷(软件缺陷的定义规则)

8) 产品说明书不断变化(需求)

9) 软件测试员在产品小组中不受欢迎(做检查和挑毛病的工作)

10) 软件测试是一项讲究条理的技术专业

2 测试基础

这部分首先介绍了黑盒、白盒、静态、动态测试的基本概念,然后主要讲述了软件测试的四种技术:静态黑盒测试、动态黑盒测试、静态白盒测试、动态白盒测试。

黑盒测试与白盒测试的主要区别在于软件测试员是否可以访问程序的代码、通过检查代码来协助测试。静态测试和动态测试的主要区别在于是否运行和使用软件。

作者详细介绍了静态黑盒测试,即测试产品说明书,并说明了如何进行该项测试(包括审查说明书是否反应了客观需求以及说明书本身是否完备无误)。

通过动态黑盒测试,作者引出了通过测试与失败测试的概念及二者之间存在的微妙关系(通过测试证明了软件在通常情况下是健康的),主要详细介绍了用于动态黑盒测试的几种常用技术:等价划分、边界测试、状态测试,并指出了运用这些技术应该遵循的规则。

静态白盒测试,即检查设计和代码,检验设计和代码的逻辑是否正确,及是否符合标准和规范。动态白盒测试不仅是查看代码,还包括直接测试和控制软件,这与调试的概念有相交的部分,作者在书中指出了二者的区别:动态白盒测试的目标是寻找软件缺陷,调试的目标是修复它们。作者介绍了动态白盒测试的过程(单元与集成测试)和从测试的数据范围(数据流、次边界、公式和等式、错误强制)及代码范围(语句与代码行覆盖、分支覆盖、条件覆盖)两个角度介绍了测试的规则。

图1.3单元测试与集成测试

3 运用测试技术

该部分内容主要包括利用测试技术进行一些测试分析,如兼容性测试、外国语测试等,对该部分仅作了略读。

4 加强测试

该部分内容主要包括自动测试和测试工具及臭由轰炸和beat测试两方面内容,其宗旨是让测试者学会权衡哪一种方式使测试更有效,如:使用技术、增加人手、蛮力人工测试,对该部分仅作了略读。

5 使用测试文档

该部分讲解了如何使用测试文档计划和组织测试任务、正确记录发现的软件缺陷及保证软件缺陷被修复。

在该部分我对报告软件缺陷的问题看得比较仔细,其它内容只作了略读。主要明确了软件缺陷在什么情况下可以修复以及不修复某些软件缺陷的原因(没有足够的时间、修复的风险太大、不值得修复等)、为什么需要尽快报告软件缺陷(发现时间越早被修复的可能性越大)、如何有效描述(短小、单一、明显和通用、再现)和有效报告(报告时不作评价、跟踪修复过程补充完善报告)软件缺陷、软件缺陷的优先级(立即修复、在产品发布之前必须修复、如果时间允许应该修复等)和严重性(系统崩溃、操作性错误、小问题等)的概念、以及软件缺陷的生命周期。

图1.4软件缺陷的生命周期

6 软件测试展望

该部分包括软件质量评判和软件测试员职业指导两方面的内容,对该部分仅作了略读。

时间: 2024-12-26 15:41:11

软件测试读书笔记的相关文章

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

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

《软件测试自动化之道》读书笔记 之 SQL 存储过程测试

<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序   创建测试用例以及测试结果存储  执行T-SQL脚本  使用BCP工具导入测试用例数据  创建T-SQL 测试套件  当待测存储过程返回行集的时候,如何判断测试结果是否通过  当待测存储过程返回out参数时,如何判断测试结果是否通过  当待测存储过程没有返回值时,如何判断测试结果是否通过 许多基于Windows的系统都使用了SQL Server作为后台组件.待测程序经常通过存储过程来访问数据库.

《软件测试自动化之道》读书笔记 之 目录导航

<软件测试自动化之道>读书笔记 之 目录导航 2014-10-09 源代码 第1章 API测试第2章 基于反射的UI测试第3章 基于Windows的UI测试第4章 测试套件设计模式第5章 请求-响应测试 第6章 基于脚本的Web UI测试第7章 底层的Web UI测试第8章 Web Service测试第9章 SQL存储过程测试 第10章 排列与组合第11章 ADO.NET测试第12章 XML测试

《软件测试自动化之道》读书笔记 之 底层的Web UI 测试

<软件测试自动化之道>读书笔记 之 底层的Web UI 测试 2014-09-28 测试自动化程序的任务待测程序测试程序  启动IE并连接到这个实例  如何判断待测web程序完全加载到浏览器  操纵并检查IE Shell  操作待测Web页面上的HTML元素的值  验证Web页面上HTML元素  示例代码 测试自动化程序的任务 底层技术的核心是,通过直接调用mshtml.dll和shdocvw.dll库来访问并且操纵IE客户区域的HTML对象. 待测程序 新建一个网站“WebAUT”,删除原来

《探索式软件测试》读书笔记(上)

<探索式软件测试>读书笔记(上) 2015-05-12 一.局部探索式测试 1.如何测试用户输入  1)合法输入和非法输入    输入筛选器   输入检查   异常处理代码  2)常规输入还是非常规输入  3)默认输入或用户提供的输入  4)使用输出来指导输入选择 2.如何测试软件状态 3.代码路径 4.用户数据 5.运行环境二.全局探索性测试 分类 方法 商业区 指南测试法 卖点测试法  地标测试法  极限测试法  快递测试法  深夜测试法  遍历测试法  历史区 恶邻测试法  博物馆测试法

《软件测试自动化之道》读书笔记 之 XML测试

<软件测试自动化之道>读书笔记 之 XML测试 2014-10-07 待测程序测试程序  通过XmlTextReader解析XML  通过XmlDocument解析XML  通过XmlPathDocument解析XML  通过XmlSerializer解析XML  通过DataSet解析XML   通过XSD Schema对XML文件进行验证  通过XSLT对XML文件进行修改  通过XmlTextWrite对XML文件进行写操作  比较两个XML文件是否严格相等  不考虑编码方式,比较两个X

《软件测试自动化之道》读书笔记 之 基于Windows的UI测试

<软件测试自动化之道>读书笔记 之 基于Windows的UI测试 2014-09-25 测试自动化程序的任务待测程序测试程序  启动待测程序  获得待测程序主窗体的句柄  获得有名字控件的句柄  获得无名字控件的句柄  发送字符给控件  鼠标单击一个控件  处理消息对话框  处理菜单  检查应用程序状态  示例程序参考 本章主要讲述如何使用底层的Windows自动化技术通过用户界面来测试应用程序.这些技术涉及Win32 API的调用(比如FindWindow()函数)以及想待测程序发送Wind

《软件测试自动化之道》读书笔记 之 基于反射的UI测试

<软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序  启动待测程序  设置窗体的属性  获取窗体的属性  设置控件的属性  获取控件的属性  方法调用  待测程序代码 测试自动化程序的任务 返回 基于反射的ui测试自动化程序,要完成的6项任务: 通过某种方式从测试套件程序中运行待测程序(AUT: Applicaton Under Test),以便于两个程序之间进行通信 操纵应用程序的窗体,从而模拟用户对窗体所实施的moving和r

《软件测试方法和技术》 读书笔记

<软件测试方法和技术> 读书笔记 2014-07-17 第一章 引论  1.3 什么是软件测试  1.4 软件测试与软件开发的关系第二章 软件测试基本概念  2.1 软件缺陷  2.3 软件测试的分类  2.4 测试阶段  2.5 软件测试的工作范畴第三章 软件测试方法  黑盒测试    边界值测试    等价测试      报表日期      三角形    基于决策表的测试      NextDate函数  白盒测试    语句覆盖    判定覆盖    条件覆盖    判定条件覆盖