西门子TD200控制面板
代码长度为420 000行)中,每个版本只有一个错误;在其*后11个版本中,总共只有17个错误。同等复杂度的商用程序将会有5000个错误。
在这样的过程中,其他的约束条件则不得不被放松:
金钱不是关键的约束条件:项目组每年3 500万美元的预算对于NASA来说是九牛一毛。这个预算额就意味着每行代码价值 1美元。这使得该项目组成为了全美国*值钱的软件组织。
从工程学的角度来说,这是一个恰当的利弊权衡。面对性命攸关的软件,人们毫无疑问会慷慨地用一切资源来确保系统不出错。对于那些出错的代价相对较低的软件,又应
程序员,负责编写代码。
在每个阶段,每份文档的作者都必须在文档中加入额外的细节,因为他们无法知道随后将要阅读这份文档的人是谁。由于无法假设阅读者的知识背景,唯一安全的办法就是:将作者所知道的所有细节、所有交叉引用都写在文档中。文档的复审者必须仔细浏览整个文档,以确定它是完善并且明白无误的。
完善的文档也带来了另一个难题:当在实现阶段需要对需求和设计作出修改时,团队成员必须修改所有相关的文档,以保证文档与真实系统之间的一致性。软件工程项目解决这个问题的办法是:确保从需求分析到代码实现的整个过程是完全可回溯的。不论在任何时候需要作出修改,这种可回溯性都将保证相关的文档和组件能够被发现并被更新。
这种文档驱动的开发方式也影响项目中人员的工作方式:设计师不愿意主动置疑分析师的文档,而程序员对设计方案的置疑或改进建议也是不受鼓励的——对于任何一份文档的修改都需要付出
所有的修改都必须受到严格的控制。
要想控制对文档的修改,一个很好的办法就是:定义一个分层的项目人员体系,将分析师放在*顶端,设计师次之,程序员位于*低的地位。而维持这一结构的办法则是:将**的程序员提拔为设计师;让**的设计师担任分析师的角色。题,*简单的答案就是:“投入大量的人手。”这也就是StevenLevy所说的“人海战术”,从SAFEGUARD项目的人力资源统计图中也可以很明显地看出这一点。一旦硬件能够投入使用,软件开发者就应该立刻动手将详细设计规格转换成代码。为了获得*高的开发效率,还需要对代码进行复审,以保证其完全与详细设计规格相符,因为任何的偏差都可能导致下游的集成阶段出现问题。
这个阶段需要大量的人手,因为整个项目都在等待软件的编码和测试。从设计到代码的转换过程越快越好。早期的软件工程项目倾向于用大量的程序员来编码,但后来人们将关注的焦点转移到“使用CASE工具自动从设计生成代码”上面。之出现这样的转变,是因为在完成编码之后,项目组仍然需要排除代码中存在的大量错误才能让整个系统正常运转。如果代码能够从设计规格自动生成,那么集成阶段的问题就会大大减少,项目也可以更快地完成。库程序、自定义工具及每台设备上部署的自开发软件和第三方软件的名称和版本号等。
• 其他资源。是否需要U盘、各类通信设备、参考书、培训资料等?
• 特殊的测试工具。
具体的资源需求取决于项目、小组和公司的特定情况,做测试计划工作时要仔
所需资源。通常如果一开始不做好预算,到项目后期获取计划外的资源会很困难,甚至无法做到。创建完整清单是不容忽视的。12.测试人员的工作职责
测试人员的工作职责需要明确指出每一名测试人员的工作责任。测试小组的工作由许多人员组成,如果责任未明确,整个测试项目就会受到影响,测试工作效率低下。
有时测试需要定义的任务的类型不容易被分清,它们不像程序员编写程序那样明确,复杂的任务可能有多个执行者或者由多人共同负责。为此,我们可以用到表2.1所示的工作职责表,来显示测试人员的工作责任。
• 是否达到性能标准。8. 中断测试和恢复测试的判断准则
这一部分给出测试中断和恢复测试的标准,即在哪种情况下应中断测试。例如,如果缺陷总数达到了某一预定值,或者出现了某种严重程度的缺陷,就可以暂停测试工作。对恢复测试也要给出规定,例如,重新设计系统的某个部分、修改了出错的代码后等,应恢复测试过程。这里还要给出某种测试的替代方法以及恢复测试前须重做的测试等。常用的测试中断标准如下。
关键路径上存在未完成任务。
出现大量缺陷。
发生严重缺陷。
源短缺。9. 测试完成所提交的材料
测试完成所提交的材料需要包含测试工作中开发设计的所有文档、工具等。例如,测试计划、测试设计规格说明、测试用例、测试日志、测试数据、自定义工具、测试缺陷报告和
需要注意的是,如果测试工作延迟,这部分内容将会增加。若风险评估工作已经确定了每个功能的风险,那么,当测试工作延迟时可将那些具有*低风险的额外功能,从“需要测试的功能”选项中转移到“不需要测试的功能”选项中。6.测试方法(策略)
这部分内容是测试计划的核心所在,需要给出有关测试方法的概述以及每个阶段的测试方法,有些软件公司更愿意将其标记为“策略”,而不是“方法”。这部分内容主要描述如何进行测试,并解释对测试成功与否起决定作用的所有相关问题。
测试策略描述测试人员测试整个软件和每个阶段的方法,还要描述如何公正、客观地开展测试,要考虑模块、功能、整体、系统、版本、压力、性能、配置和安装等各个因素。测试策略要尽可能地考虑到细节,越详细越好,并制作测试记录文档的模板,为即将开始的测试做准备。关于测试记录的具体说明如下。