软件测试笔记(二)- 软件开发的过程

了解软件产品构成的主要部分,了解团体进行软件开发的总体过程以及相关的开发模型,清楚认识到软件测试员就是要适应不同的开发模式,定制不同的测试方法,尽最大的努力去寻找软件缺陷。

一、软件产品

充分了解软件产品,这些组成部分全是可测试的对象并且可能包含缺陷。

  • 客户需求
  1. 在软件行业中,用于描述制造出来并交付他人的软件产品组件的术语是 可交付部分(devilerable)
  2. 编写软件的目的是满足一些人的需求,这些人称为 客户(client)
  3. 开发小组收集详细信息:采取问卷调查、收集软件以前版本反馈信息、收集竞争产品信息、收集期刊评论、收集焦点人群的意见以及其他诸多方式。
  • 产品说明书(product specification)

产品说明书 (product specification) 有时有简称为 说明(spec)产品说明(product spec) 。它对开发的产品进行定义,给出产品的细节,如何做、做什么、不能做什么。

注意:有些公司,特别是政府、航天部门、金融机构和医药企业开发产品的公司——采用严格的过程,要进行大量的检查和对比。结果是产品说明书极其详细完整,而且是“锁定”的,也就是说,没有记特殊的额理由绝不能变。

  • 进度表

随着项目的不断庞大和复杂,制造产品需要投入很多人力物力,因而需要某些机制来跟踪进度。例如Gantt图表。

  • 软件设计文档

为规划和组织即将编写的代码,程序员需要准备一些软件设计的文档:

  1. 结构文档。描述软件整体设计的文档,包括软件所有主要部分的描述以及相互之间的交互方式。
  2. 数据流图。表示数据在程序中如何流动的正规示意图。有时候被称为 泡泡图(bubble),因为它是用圆圈和线画的。
  3. 状态转换图。把软件分解为基本状态或者条件的而另一种正规示意图,表示不同状态间转换的方式。
  4. 流程图。用图形描述程序逻辑的传统方式。
  5. 代码注释。便于维护代码的程序员轻松掌握代码的内容和执行方式。
  • 软件测试文档

软件测试文档也是完整的软件产品的一部分。

以下是比较重要的测试提交清单:

  1. 测试计划(test plan) :描述用于检验软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等。
  2. 测试用例(test cases) :列举测试的项目,以及预期结果,描述验证软件的详细步骤。
  3. 缺陷报告(bug reports) :描述执行测试用例找出的问题。可以记录在纸上,但通常记录在数据中。
  4. 测试工具和自动化测试(test tools and automation) :如果测试小组使用自动化写实工具测试软件,不管是自己购买的还是自己编写的工具,都必须有文档记录。
  5. 度量、统计和总结(mertics, staistics,summaries) :测试过程的汇总。采用图形、表格和报告形式。
  • 软件产品的组成部分

了解以下关于软件产品的非软件部分清单,从而对软件产品不仅限于代码这点有个初步印象:

  1. 帮助文档
  2. 用户手册
  3. 样本和示例
  4. 标签和不干胶
  5. 产品支持信息
  6. 图表和标志
  7. 错误信息
  8. 广告和宣传资料
  9. 安装
  10. 说明文件

二、软件项目成员

以下是软件开发小组的主要人员及其职责:

  1. 项目经理、程序经理或者监制人员。自始至终驱动真个项目。通常负责编写产品说明书、管理进度、进行重大决策。
  2. 体系架构师或者系统工程师。是产品小组中的技术专家。他们一般经验丰富,可以胜任设计整个系统的体系架构或软件。
  3. 程序员、开发人员或者代码制作者。设计、编写并修复软件中的缺陷。他们经常与项目经理和设计师密切合作制作软件,然后与项目经理和测试人员米密切合作修复缺陷。
  4. ***测试员和质量保证(Qualirty Assurance, QA)***。负责找出并报告软件产品的问题。他们与开发小组全部成员在开发过程中密切合作,进行测试并报告发现问题。
  5. 技术作者、用户协助专员、用户培训专员、手册编写员或者文案专员。编制软件产品附带的文件和联机文档。
  6. 配置管理员或构建员。负责把程序员编写的代码及技术作者些的全部文档资料组合在一起成为一个软件包。

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

软件产品从最初构思到公开发行的过程称为 软件开发生命周期(Software Life Cycle,SFLC)模式

  • 大爆炸模式
  1. 特点:简单。 计划、进度安排和正规开发过程几乎没有,所有的经理都花在软件开发和编写代码上面。
  2. 适用范围:产品需求无需很好理解,而且最终发布日期可以随便更改,这样的开发过程很理想。
  3. 测试特点:多数情况下,没有什么测试,假如有的话,也要挤在产品发布前进行。测试员手中有了完美的产品说明书——产品本身。但同时不能回头修复已经打乱的事情,软件测试的工作其实就是报告发现的问题让客户知道。
  • 边写边改模式
  1. 特点:最初只有粗略的想法,接着进行一些简单的设计,然后开始漫长的来回编写、测试和修改缺陷的过程。
  2. 适用范围:适合意在快速制作的小项目。
  3. 测试特点:测试并未在边写边改模式中特别强调,但是在编写代码和修复缺陷的过程中举足轻重,作为该模式的软件测试员,需要和程序员一样清醒地意识到自己讲陷入无休止的循环往复。几乎每天都会拿到新的软件版本并着手进行测试。
  • 瀑布模式
  1. 特点:简洁、精致、很有意义。 目标是在编写代码钱解决所有未知问题并明确所有细节。
  2. 步骤:构思–分析–设计–开发–测试–最终产品。
    每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目未准备好进入下一步,就停止下来直到准备好。
  3. 注意事项:
    (1)该模式强调产品的定义。注意,开发和代码编制阶段只是其中单独的一块。
    (2)该模式各步骤是分立的、没有交叉。
    (3)该模式无法回溯。一旦进入某个步骤,就要完成该步骤的任务,然后才能向下——无法回溯
  4. 测试特点:所有一切有较为完整细致的说明。所有细节都已确定并有文档记录,而且实现在软件之中。测试小组得以制定精确的计划和进度。测试对象非常明确,在分辨是功能还是缺陷上很明确。然而,因为测试时在最后进行,一些根本性问题可能出在早期,可能很难以发现早期的软件缺陷。
  • 螺旋模式
  1. 特点:一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受用户反馈,然后进入下一阶段。问题发现较早,成本低,可以算是相当好的开发模式。
  2. 步骤:
    (1)确定目标、可选方案和限制条件。
    (2)明确并化解风险。
    (3)评估可选方案。
    (4)当前阶段开发和测试。
    (5)计划下一阶段
    (6)确定进入下一阶段的方法。
    该模式包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。
  3. 测试特点:软件测试员通过参与最初的设计模式,可以尽早的影响到产品,可以把产品的来龙去脉弄得很清楚。

参考文献

  1. 《软件测试(原书第2版)》
  2. 《软件测试的艺术(原书第3 版)》

你可能感兴趣的:(软件测试基础,软件开发,开发模式,大爆炸模式,瀑布模式,螺旋模式)