软件测试读书笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试读书笔记相关的知识,希望对你有一定的参考价值。

[美] 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 软件测试展望

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

以上是关于软件测试读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

深度学习前言综述

android BSP与硬件相关子系统读书笔记android BSP移植综述

读书笔记软件测试与iOS测试

软件工程-读书笔记

读书笔记:《敏捷软件测试》

读书笔记性能测试基础