第二章 测试过程管理理论
2.1软件开发和软件測试的基本概念
2.1.1软件生命周期
软件生命周期是一种项目管理的行为指导框架,用它来描述软件项目狀模糊概念开始到软件项目终结的这个周期内,在各个阶段所需要开展的各项活动。软件工程采用的软件生命周期方法学,就是从时间角度对软件项目开发和维护的复杂问题进行分解,把软件生成的周期,次划分为若干个子阶段,每个子阶段有相对独立的子任务,然后逐步完成每个子阶段的子任务。
虽然目前有众多的软件开发方法和模型,但从项目管理的角度来说,软件项目主要包括如下的几个阶段:
项目规划阶段
需求分析阶段
系统设计阶段
代码设计阶段
代码实现阶段
系统测试阶段
后期维护阶段
前六个阶段为软件项目的开发阶段,完成这六个阶段的软件项目才能够投放市场得以部署。而后期维护阶段的活动,多是对原由软件产品进行软件缺陷修复和新增特性的小规模开发。本文的研究对象是软件项目管理的各个开发子阶段中,开展的各项软件测试活动。
2.1.2软件侧试的内涵和外延
1973年,软件测试领域的先驱Bill Hetzel博士首先给软件测试一个这样的定义:测试就是建立一种信心,而确认程序能够按照预先的设想而运行。(Establishconfidence that a program does what it is supposed to do.)后来,他又将定义修订为:测试是能够评估一段程序或系统的特性或能力的各种行为活动,并能够通过测试确定程序或系统是否能达到预期的结果。(Any activities aimed at evaluatingan attribute or capability of a program or system and determining that it meets itsrequired results.)这个定义至今仍被引用,软件测试业界把这种方法看作是的软件测试的第一类方法。
第一类测试方法是以需求和设计为本,因此便于定义测试工作的范畴,更有利于部署测试的侧重点和针对性。这一点对于大型软件的测试工作,尤其是在有限的时间和资源情况下显得尤为重要。但如果从人的心理学的角度论证,将“验证软件是工作的”当作测试的目的,则非常不利于测试人员发现软件的缺陷。1979年,Glenford J. Myers提出了他对软件测试的定义:测试是执行一段代码或者系统来发现错误。(The process of executing a program or system withthe intent of finding errors.)这个定义,也常被业界所认可和引用。这被看作是软件测试的第二类方法。
第二类测试方法与需求和设计并没有必然的关联,更强调的是测试人员的主观能动性,用逆向思维的方式,不断思考开发人员的理解误区、不良习惯、程序代码边界、无效数据输入以及系统的各种弱点,试图破坏和摧毁系统,目标就是发现系统中的各种问题。这种方法经常能够发现系统中更多的缺陷。但若测试者以发现缺陷为唯一目标,而很少关注系统对需求的实现,则测试行为往桂会有一定的随意性和盲目性。
1983年,IEEE在软件工程术语中定义的软件测试为:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否能够满足规定的需求或者弄清楚预期结果与实际结果之间的差别。
笔者更愿意引用Burnstein博士提出的测试成熟度模型(TMM,TestingMaturity Model)中的Phase3来描述软件测试过程:测试的目的并不是要证明什么,而是为了把软件不能正常工作的风险降低到可以接受的程度。
2.1.3通信设备企业软件测试的一般流程
尽管各通信设备企业采用的测试流程不尽相同,但从软件的测试过程和测试阶段来看,软件测试活动可大致分为:单元测试、系统集成测试、系统验证测试和验收测试。而更广义的测试活动,还包括对软件幵发过程中产生的系统需求文档,软件设计文档和源代码的评审活动,也可以叫做文档测试活动。这类活动不仅有助于消除潜在的软件缺陷,而且能够在早期发现而将其负面影响降到最低。
单元测试(UT,Unit Testing)又称模块测试,是对软件基本单元进行的测试。
单元测试的目的就是用来验证某段代码或者某个模块的行为是否与软件开发人员期望的一致,是一种正向的验证软件设计的测试,是典型的第一类软件测试方法。而且与后面的测试过程相比,单元测试的创建的测试环境简单,代码缺陷定位代价小,回归测试也容易,所以测试成本大约是集成测试的二分之一,系统测试的三分之一。单元测试一般由开发人员承担,采用白盒测试的测试方法,可按实际情况进行自测或者互测。
系统集成测试(SIT,System Integration Testing)是介于单元测试和系统验证测试之间的过渡阶段,开发人员将经过单元测试的代码编译成一个系统软件版本,系统集成测试时将其加载在通信设备的硬件上,以验证集成组装后的软件版本中各个模块及其接口是否存在问题,以及集成后的配合硬件工作的整体功能表现。
系统集成测试多由独立于开发的测试人员负责,采用黑盒测试的方法。系统集成测试时,一般按照硬件板卡和软件系统功能划分测试范围,组织测试团队和成员分别开展各自的测试活动。通信产品的系统集成测试更强调软硬件之间的集成,而纯软件产品则仅关注软件模块之间的集成。
系统验证测试(SVT,System Verification Testing)的测试项目,则是更接近于在真实的网络环境中,通信设备用户的日常操作实践和软件的自动控制行为。它是将已经集成好的软件系统,作为整个通信设备系统的一个元素,与通信设备硬件、某些支持软件、数据和使用者等其他系统元素结合在一起,在更复杂的测试环境下,对整个通信设备系统及相关的网络拓扑进行一系列综合性的黑盒测试活动,以确定其能够满足用户对整个系统的各方面的需求。除一般性的功能验证测试外,还包括:性能测试,容量测试,压力测试,容错测试等。鉴于系统验证测试需要的测试系统比较巨大,只能由几个或甚至更多的测试人员共享,而在同一系统上同时开展的多项测试会进一步增加系统出现故障的概率。
第2章相关理论综述2.1科技企业孵化器2.1.1科技企业孵化器的内涵1959年,美国学者约瑟夫曼库索首次将企业孵化器(BusinessIncubator)的概念定义为一种介于市场和企业之间的新型的社会经济组织,协助初始创业的小微型企业成长为能够自我运行并迅速...
第1章前言1.1研究背景汽车是全球任何一个地方不可或缺不可替代的交通工具,展现着每一个国家社会进步和科技发展的重要符号和形式。汽车工业集中了各种高科技因素,积聚了大量的资金,吸引了许多高端人才,综合了国民经济各种优势能量,其效益左右着一...
论文摘要监理作为工程项目的参建方,工程的大多数风险也是监理必须面对和解决的风险,因此必须从监理业务执行的角度对工程的风险进行剖析,但往往风险管理是监理企业具体运作中易被忽视且理念比较薄弱的环节,加强监理业务执行的风险管理,可以帮助监理企业...
本文根据房地产项目的开发进展特点,将其实施过程分为四个阶段:投资决策阶段、前期阶段、建设阶段和租售阶段。针对每个开发阶段提出风险识别、风险评估、风险应对对策及风险监控手段进行全过程风险管理研究。为保障该项目的风险管理全过程的顺利实施,最后提出风险管...
2IT项目管理理论综述2.1IT项目管理研究综述本文根据目前国内外学者对IT项目管理的研究成果,借鉴了他们的成功经验,并期望将项目管理经验总结应用于到一般企业的项目管理实践中。本文主要查阅近十年有关IT项目管理的文献期刊,这些文献给本文提供了很大...
摘要二十世纪九十年代以来,通信产业凭借着计算机软硬件技术的飞速发展实现了惊人的增长速度,成为当今世界最重要的经济增长点之一。而通讯设备正是依托于安装其上的嵌入式软件,才得以被不断地智能化。同时,网络上不断暴露出来的软件缺陷,也时常影响着运...
2、相关基础2.1风险理论概述风险指在一定时期、一定情况下,由于客观条件的不确定性,而可能引发的与预期目标偏离的结果。风险有以下几个特征:一是风险客观存在及普遍存在;二是风险的发生是诸多因素共同影响的结果当属于随机现象,但其发生有着规律性与必然性...
摘要如何有效地控制房地产项目成本目标,提高房地产企业的经济效益与利润率,是房地产开发企业普遍关注的重点,特别是经过2008年楼市低迷对各地产企业的冲击,房地产行业竞争愈演愈烈,节约成本就是创造利润的观念逐渐形成共识。房地产项目开发是个系统...
5.3项目集成管理过程5.3.1组建项目团队L公司项目在具体实施过程中,具体项目参与团队角色的如图5.1所示。【1】确定了项目实施的参与团队,接下来,必须明确指定各个项目团队的职责和角色分工情况。项目经理的职责在于根据项目要求,定期向上级领导(管理...
第一章绪论1.1研究背景天汽模全名天津汽车模具股份有限公司,前身是天汽集团的工具车间,2003年前制造基地在天津北辰区韩家墅,1995年独立成国有公司,2003年转制为民营公司,改制后在天津空港新建技术中心和制造基地,2010年深市中小板上市(002510...