了解软件产品构成的主要部分,了解团体进行软件开发的总体过程以及相关的开发模型,清楚认识到软件测试员就是要适应不同的开发模式,定制不同的测试方法,尽最大的努力去寻找软件缺陷。
一、软件产品
充分了解软件产品,这些组成部分全是可测试的对象并且可能包含缺陷。
-
客户需求
- 在软件行业中,用于描述制造出来并交付他人的软件产品组件的术语是 可交付部分(devilerable) 。
- 编写软件的目的是满足一些人的需求,这些人称为 客户(client) 。
- 开发小组收集详细信息:采取问卷调查、收集软件以前版本反馈信息、收集竞争产品信息、收集期刊评论、收集焦点人群的意见以及其他诸多方式。
-
产品说明书(product specification)
产品说明书 (product specification) 有时有简称为 说明(spec) 或 产品说明(product spec) 。它对开发的产品进行定义,给出产品的细节,如何做、做什么、不能做什么。
注意:有些公司,特别是政府、航天部门、金融机构和医药企业开发产品的公司——采用严格的过程,要进行大量的检查和对比。结果是产品说明书极其详细完整,而且是“锁定”的,也就是说,没有记特殊的额理由绝不能变。
-
进度表
随着项目的不断庞大和复杂,制造产品需要投入很多人力物力,因而需要某些机制来跟踪进度。例如Gantt图表。
-
软件设计文档
为规划和组织即将编写的代码,程序员需要准备一些软件设计的文档:
- 结构文档。描述软件整体设计的文档,包括软件所有主要部分的描述以及相互之间的交互方式。
- 数据流图。表示数据在程序中如何流动的正规示意图。有时候被称为 泡泡图(bubble),因为它是用圆圈和线画的。
- 状态转换图。把软件分解为基本状态或者条件的而另一种正规示意图,表示不同状态间转换的方式。
- 流程图。用图形描述程序逻辑的传统方式。
- 代码注释。便于维护代码的程序员轻松掌握代码的内容和执行方式。
-
软件测试文档
软件测试文档也是完整的软件产品的一部分。
以下是比较重要的测试提交清单:
- 测试计划(test plan) :描述用于检验软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等。
- 测试用例(test cases) :列举测试的项目,以及预期结果,描述验证软件的详细步骤。
- 缺陷 告(bug reports) :描述执行测试用例找出的问题。可以记录在纸上,但通常记录在数据中。
- 测试工具和自动化测试(test tools and automation) :如果测试小组使用自动化写实工具测试软件,不管是自己购买的还是自己编写的工具,都必须有文档记录。
- 度量、统计和总结(mertics, staistics,summaries) :测试过程的汇总。采用图形、表格和 告形式。
-
软件产品的组成部分
了解以下关于软件产品的非软件部分清单,从而对软件产品不仅限于代码这点有个初步印象:
- 帮助文档。
- 用户手册。
- 样本和示例。
- 标签和不干胶。
- 产品支持信息。
- 图表和标志。
- 错误信息。
- 广告和宣传资料。
- 安装。
- 说明文件 。
二、软件项目成员
以下是软件开发小组的主要人员及其职责:
- 体系架构师或者系统工程师。是产品小组中的技术专家。他们一般经验丰富,可以胜任设计整个系统的体系架构或软件。
- ***测试员和质量保证(Qualirty Assurance, QA)***。负责找出并 告软件产品的问题。他们与开发小组全部成员在开发过程中密切合作,进行测试并 告发现问题。
三、软件开发生命周期模式
软件产品从最初构思到公开发行的过程称为 软件开发生命周期(Software Life Cycle,SFLC)模式 。
-
大爆炸模式
- 特点:简单。 计划、进度安排和正规开发过程几乎没有,所有的经理都花在软件开发和编写代码上面。
- 适用范围:产品需求无需很好理解,而且最终发布日期可以随便更改,这样的开发过程很理想。
- 测试特点:多数情况下,没有什么测试,假如有的话,也要挤在产品发布前进行。测试员手中有了完美的产品说明书——产品本身。但同时不能回头修复已经打乱的事情,软件测试的工作其实就是 告发现的问题让客户知道。
-
边写边改模式
- 特点:最初只有粗略的想法,接着进行一些简单的设计,然后开始漫长的来回编写、测试和修改缺陷的过程。
- 适用范围:适合意在快速制作的小项目。
- 测试特点:测试并未在边写边改模式中特别强调,但是在编写代码和修复缺陷的过程中举足轻重,作为该模式的软件测试员,需要和程序员一样清醒地意识到自己讲陷入无休止的循环往复。几乎每天都会拿到新的软件版本并着手进行测试。
-
瀑布模式
- 特点:简洁、精致、很有意义。 目标是在编写代码钱解决所有未知问题并明确所有细节。
- 步骤:构思–分析–设计–开发–测试–最终产品。
每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目未准备好进入下一步,就停止下来直到准备好。 - 注意事项:
(1)该模式强调产品的定义。注意,开发和代码编制阶段只是其中单独的一块。
(2)该模式各步骤是分立的、没有交叉。
(3)该模式无法回溯。一旦进入某个步骤,就要完成该步骤的任务,然后才能向下——无法回溯 - 测试特点:所有一切有较为完整细致的说明。所有细节都已确定并有文档记录,而且实现在软件之中。测试小组得以制定精确的计划和进度。测试对象非常明确,在分辨是功能还是缺陷上很明确。然而,因为测试时在最后进行,一些根本性问题可能出在早期,可能很难以发现早期的软件缺陷。
-
螺旋模式
- 特点:一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受用户反馈,然后进入下一阶段。问题发现较早,成本低,可以算是相当好的开发模式。
- 步骤:
(1)确定目标、可选方案和限制条件。
(2)明确并化解风险。
(3)评估可选方案。
(4)当前阶段开发和测试。
(5)计划下一阶段
(6)确定进入下一阶段的方法。
该模式包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。 - 测试特点:软件测试员通过参与最初的设计模式,可以尽早的影响到产品,可以把产品的来龙去脉弄得很清楚。
参考文献
- 《软件测试(原书第2版)》
- 《软件测试的艺术(原书第3 版)》
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!