《软件测试》Ron Patton 读后感 part one

《软件测试》Ron Patton 读后感 —— part one

简述:大学买的书,在正式涉及测试行业之后再回头看看,有了更切实的感受,更能理解书本上的含义,并有了自己的诠释

第一章 软件测试的背景

一、软件缺陷是什么

辅助术语:产品说明书(product specification),它对产品进行定义,给出产品的细节,如何做,做什么,不能做什么。

官方定义如下:

至少满足下列5个规则之一才称发生了一个软件缺陷(software bug)
1、软件未实现产品说明书要求的功能。
2、软件出现了产品说明书指明不应该出现的错误。
3、软件实现了产品说明书未提到的功能。
4、软件未实现产品说明书虽未明确提及但应该实现的目标。
5、软件难以理解、不易使用、运行缓慢或者——从测试的角度看——最终用户会认为不好。

实操:

在实际工作中理解bug的感受如下:
1、对于产品说明书,在产品经理那边给出一个项目模型和需求说明书,经过项目计划、需求评审、交互定稿后再交付测试;抛开阶段性工作的冗余阐述,在测试设计阶段测试需要输出测试需求说明书,即需求文档,个人认为在需求文档中不仅要包含产品功能还需要重点突出测试方向,以便更有针对性地找出bug。
2、在工作中得到的产品说明书并没有明确地指明不应出现的错误,一般只说明了要实现什么,而测试的时候侧重发现于未实现什么,就可以提出bug。
3、一般跑monkey稳定性测试时出现的错误,可归结于未提到功能,即Log中的Fatal、Error报错等信息。
4、软件的易用性,站在用户的角度来体验软件,比如加载、保存时间过慢,没有给出合适的提示语等等。

二、为什么会出现软件缺陷

定义如下:

1、导致软件缺陷最大的来源是产品说明书:在许多情况下,说明书没有写;其他原因可能是说明书不够全面、经常更改、或者整个开发小组没有进行很好的沟通。为软件做计划是极其重要的,入股哟没做好,软件缺陷就会出现。
2、软件缺陷的第二大来源是设计,原因:随意、易变、沟通不足

实操:

对于要实现的一些小需求,开发会根据需求管理建立开发任务,待编码完成后给测试指派申请单,此为简易的流程。
容易出现问题的地方也在于需求提交者、开发者、测试者之间的沟通交流,需求不明确而产生误解,导致开发的成果与实际要求不符、或测试不了解而提交了错误的bug。

三、软件测试员的目标是什么

定义如下:

1、软件测试员的目标是发现缺陷
2、软件测试员的目标是尽可能早的找出软件缺陷
3、软件测试员的目标是尽可能早的找出软件缺陷,并确保其得以修复
而好的测试员也不是坚持不懈地追求完美,而是知道何时完美无法企及,何时达到“够好”

实操:

1、目前并不能做到第三点,个人认为这还需要一定了解开发源码或具有该产品的足够经验,才能确保是否能修复。
2、对于发现的缺陷,提交bug时有优先级和严重程度的评定;在后期项目时间紧张而bug修复率较低时,可以列出必解问题;使得产品“够好”就好。

第二章 软件开发的过程

一、软件产品的组成部分

1、软件产品需要的投入

1-1、客户需求:编写软件的目的是满足一些人的需求,这些人称为客户。
1-2、产品说明书:对客户需求研究的结果只是原始资料,并没有描述要做的产品,只是确定是否需要做(或不需要做)以及客户要求的功能。产品说明书综合上述信息以及没有提出但必须要实现的需求,真正地定义产品是什么、有哪些功能、外观如何。
1-3、进度表:制定进度表的目的是了解哪项工作完成了,还有多少工作要做,何时全部完成。
1-4、软件设计文档:由程序员输出,各公司和项目的不同导致文档有所不同,但目的都是规划、组织即将编写的代码。常用的软件设计文档清单如下:
①结构文档;②数据流图;③状态转换图;④流程图;⑤代码注释。
1-5、测试文档:它是完整的软件产品的一部分,下列为比较重要的测试提交清单:
①测试计划;②测试用例;③缺陷报告;④测试工具和自动测试;⑤度量、统计和总结。

实操:细说测试文档部分:

1、测试计划中包含了一般要求的质量/项目目标(发布标准)、资源需求进度表(阶段测试,什么时间进行什么测试,有计划日期)、任务分配(阶段策略,制定相应的测试人员,有对应的风险说明)、方法(手工or自动化测试,在总体策略里有所描述)

二、软件开发生命周期模式

软件从最初构思到公开发行的过程称为软件开发生命周期模式。以下是4种最常用的模式:
大爆炸模式、边写边改模式、瀑布模式、螺旋模式
1、大爆炸模式最大的优点是简单,仅此而已;
2、边写边改模式不能得知软件的发布时间,没有真正的退出标准,除非某人或者进度决定该结束了;
3、瀑布模式不好用的原因是:瀑布模式无法回溯,每一步都是跟着上一步的独立、离散的过程。如果走到头发现有些事情应该早些做时想退回来已经来不及了。
4、软件测试员最喜欢螺旋模式的原因在于他们很早就参与开发过程,有机会尽早发现问题,为项目节省时间和金钱。

第三章 软件测试的实质

一、测试的原则

1、完全测试程序是不可能的

完全测试是不可能的,主要有以下四个原因:
1、输入量太大;
2、输出结果太多;
3、软件执行路径太多;
4、软件说明书是主观的,可以从旁观这看来是缺陷。
感想:主要是输入量太大,加大测试负担。如果觉得某些测试条件是重复的、无必要的,或者为了节省空间,而将其剔除,那么采用的就是不完全测试。所以才有了等价类划分、边界值分析等测试方法来编写测试案例。

2、软件测试是有风险的行为

若遗漏会发生错误的测试情况,此时对软件的质量保证则有极大的风险。测试量从小到大的增加,意味着测试成本也越来越高,发现的缺陷数量也会随着增多但幅度会逐渐平缓。所以目标是找到最优的测试量,使测试不多不少。

3、测试无法显示潜伏的软件缺陷

进行测试时,可以发现并报告软件缺陷,但是任何情况下都不能保证软件缺陷没有了。唯一的方法是继续测试,可能还会找到一些。在工作中发报告时,也一般只能说本次测试没有新增问题

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

“软件缺陷一个接一个”的说法顺反着说都是正确的,发现一个,附近可能就会有一群;而如果无论如何努力都找不出软件缺陷,那么也可能是该软件经过精心编制。确实存在极少软件缺陷。

5、杀虫剂怪事

1、老用一种农药,害虫最后就有了抵抗力,农药再也发挥不了效力。螺旋模式中说到:每一次循环,都要进行测试,而经过几个回合之后,能发现的软件缺陷都发现了,在测试下去也没有成效。
2、为了克服杀虫剂怪事,软件测试员必须不断编写不同的、新的测试程序,对程序的不同部分进行测试,以找出更多的软件缺陷。

6、并非所有的软件缺陷都要修复

不需要修复软件缺陷的原因有几个:
1、没有足够的时间。
2、不算真正的软件缺陷。
3、修复的风险太大。
4、不值得修复。
决策该缺陷是否解决通常由软件测试员、项目经理和程序员共同参与。在工作中会将这些问题打为不解决或者无法解决的状态。

7、什么时候才叫缺陷难以说清

1、说软件有没有“某功能”,指的是软件运行时发现有“某功能”或者“缺少某功能”。由于不能报告没有看见的问题,因此,没有看见就不能说存在软件缺陷。
2、尚未发现或者未观察到的软件缺陷只能说是潜在缺陷

8、产品说明书没有最终版本

9、软件测试员在产品小组中不受欢迎

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

二、假定无法完全测试某一程序,在决定是否应该停止测试时要考虑哪些问题?

终止测试没有一定的时间,每一个项目都会有所不同。决定要考虑的因素有:仍然会发现大量软件缺陷?项目小组对已执行的测试满意吗?报告软件缺陷是否经过评估定下来哪些修复,哪些不修复?产品按照客户要求验证了吗?

猜你喜欢

转载自blog.csdn.net/lyycasablanca000/article/details/54695326
今日推荐