软件测试的背景

第1章 软件测试的背景

1.1什么是软件缺陷

  1. 软件未实现产品说明书要求的功能。

  2. 软件出现了产品说明书指明不应该出现的错误。

  3. 软件实现了产品说明书未提到的功能。

  4. 软件未实现产品说明书虽未明确提及但应该实现的目标。

  5. 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。

    辅助术语: 产品说明书(product specification)。产品说明书有时又简称为说明或者产品说明,是软件开发小组的一个协定。它对开发 的产品进行定义,给出产品的细节、如好做、做什么、不能做什么。

1.2为什么会出现软件缺陷

  1. 产品说明书 :在许多情况下,说明书没有写;其他原因可能是说明书不够全面、经常更改,或者整个开发小组没有很好地沟通。

  2. 设计:这是程序员规划软件的过程。好比是建筑师为建筑物绘制蓝图。

  3. 编码:代码错误可以归咎于软件的复杂性的、文档不足、进度压力或者普通的低级错误。

  4. 其他:如:本来正确的当成缺陷,测试错误等,这类占比比较小。

1.3软件缺陷的修复费用

从开始到计划、编程、测试,再到公开使用的过程中,都有可能发现软件缺陷。而修复软件缺陷的费用也会随着进程而增加
越早期发现问题,解决越简单。

1.4软件测试员究竟做什么

软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以修复。

1.5优秀的软件测试员应具备的素质

  1. 他们是群探索者:不怕进入新的环境,喜欢拿到新的软件。

  2. 他们是故障排除员:软件测试员善于发现问题的症结。喜欢解密。

  3. 他们不会放过任何蛛丝马迹:软件测试员总在不停的尝试。他们可能会碰到转瞬即逝或者难易重现的问题。他们不会当做是偶然而轻易放弃。

  4. 他们具有创造性:他们的工作是要设想出富有的创意甚至超常的手段来寻找缺陷。

  5. 他们是群追求完美者:他们力求完美,但是当知道某些无法企及时,不去苛求,而是尽力接近目标。

  6. 他们判断准确:软件测试员要决定测试内容、测试时间,以及看到的问题是否是真正的缺陷。

  7. 他们注重策略和外交:软件测试员知道如何去和开发交流。

  8. 他们善于说服:测试员要善于清晰地表达观点,说明软件缺陷为何必须修复,并推进缺陷的修复。

第2章 软件开发的过程

2.1软件项目成员需要哪些(常用的名称)

  1. 项目经理、程序经理或者监制人员:自始至终驱动整个项目。

  2. 架构师或者系统工程师:产品小组的的技术专家。

  3. 程序员、开发人员:设计、编写软件并修复软件的缺陷。

  4. 测试员或质量保证:负责找出并报告软件产品的问题。

  5. 技术人员、用户协助专员、用户培训专员、手册编写员或者文案专员:编制软件产品附带的文件和联机文档。

  6. 配置管理员或构建员:负责把程序编写的代码及技术作者写的全部文档资料组合在一起,合成为一个软件包。

2.2软件开发生命周期模式

  1. 什么是软件开发生命周期模式 软件产品从最初构思到公开发行的过程称为软件开发生命周期模式。

  2. 对于项目而言没有哪个模式一定是最好的。一下四种是最常用的模式:

    大爆炸模式: 计划、进度安排和正开发过程几乎没有,所有精力都花在开发软件和编写代码上。 优点:简单

    边写边改模式:在大爆炸模式基础上更进一步,考虑到了产品需求。

    瀑布模式:从构思到最终产品要经历一系列步骤。而这些步骤是分开的,一旦进入某个步骤,就要完成该步骤的任务,才能向下走,不能回溯。

    螺旋模式:该模式包含一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改的模式和一点爆炸模式。该模式发现问题早、成本低。

第3章 软件测试的实质

3.1 测试原则

一些原则或者公理,可以视为软件测试和软件开发的“交通规则”或“生活常识”

    1. 完全测试程序是不可能的,输入量大、结果多、执行路径多等原因
    2. 软件测试是有风险的行为:数量巨大的可能测试减少到可以控制的范围,以及如何针对风险做出明智的抉择,哪些测试重要,哪些不重要。
    3. 测试无法显示潜伏的软件缺陷:可以报告软件缺陷存在,却不能报告软件不存在缺陷。任何情况下都不能保证软件缺陷没有了。
    4. 找到的缺陷越多,就说明软件缺陷越多:某个模块问题很多,那个和它有关联的模块也可能有很多问题。
    5. 并非所有软件缺陷都要修复:时间,风险或者不值得修复。
    6. 产品说明书从没有最终版本:行业变化很快,需求变化也很快。
    7. 软件测试员在产品中不受欢迎:软件测试员的工作就是检查和批评同事的工作,挑毛病,公布问题。没人喜欢。
    8. 软件测试是一个讲究条理的技术职业:越来越专业,方法也越来越完善。

3.2 软件测试的术语

确认和验证

    确认:是保证软件符合产品说明书的过程。
    验证:是保证软件满足用户要求的过程。

测试和质量保证

    测试:软件测试员的目标是尽可能早地找出软件缺陷,并确保缺陷得以修复。
    质量保证:软件质量保证人员的主要责任是创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法。

我喜欢最后期限。我特别喜欢它们飞驰而过时的呼啸声

Last updated

Was this helpful?