OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 发展软件评测中心的意义

共1条 1/1 1 跳转至

发展软件评测中心的意义

院士
2002-08-31 19:50:00    评分
随着软、硬件技术的发展计算机的应用领域越来越广,而其中软件的功能也越来越强大,软件也越来越复杂。这就使保证软件的质量,保证软件的高度可靠性,面临巨大的挑战。特别是诸如通讯、交通、金融、医疗、军事、航空航天等行业,软件的微小瑕疵就可能造成对生命安全、天文数字的巨额财产、甚至对国家安全严重威胁。 因此,对软件产品质量的度量、评估和保证,成了用户和项目承揽公司都十分关注的问题。基于这些原因,国际上的标准化和认证组织已经制定出了一些软件标准(在ISO-9001以及SEICMM框架中)。对于软件的开发过程可通过这些标准进行约束和度量。 软件测试属于软件工程范畴,研究范围包括: 1. 测试基本概念和定义--包括测试术语、理论基础等; 2. 测试层次--如单元/集成/系统测试;或验收/回归测试等; 3. 测试技术--如黑盒/白盒测试;或基于错误/风险测试等; 4. 测试度量--包括对于测试工作自身和被测试程序的度量; 5. 管理测试过程--包括宏观管理层面和具体的测试活动。 随着软件测试理论及应用研究工作的不断深入,软件测试的社会分工也经历了如下发展历程: 1. 70年代以前,Ad-hoc testing,与调试没有区分; 2. 70年代末――80年代中期,测试基础理论和实用技术形成,测试作为软件质量保证(SQA)的主要职能; 3. 80年代末――90年代中期,测试工具在质量和数量上不断增长,测试与SQA(注重于过程和质量监督)分离。注重于工具对测试效率的影响;SQA为另一专业领域 4. 90年后期――目前,关注有效的过程管理对于软件测试的重要性,形成各种测试模型、测试能力成熟度模型。 随着软件测试分工的细化和成熟,软件企业注重于自身核心竞争力的提升,促使大量的独立软件测试服务机构涌现出来,这些测试服务机构运作机制日趋成熟,从单一的第三方认证评测,逐步转向参与整个软件开发过程的测试服务,并按照软件领域形成市场细分,已经形成一个成熟和广阔的市场区间。可以认为,这种情况在一定程度上反映了目前国内软件业可能面临的变革。 在当前的软件开发行业,包括嵌入式系统的开发中,由于对系统功能要求越来越多,使用的CPU功能越来越强大,对应的软件也越来越复杂,代码量急剧增加(一般一个单版程序都要几万到几十万行),而另一方面,软件,尤其是嵌入式系统的软件往往应用在对产品质量要求非常严格的领域。仅仅就在深圳市存量最大的通讯行业,国内外同行业的竞争越演越烈,而我们国家以及我市的软件企业不同程度的存在开发体系不规范,过程控制不科学,软件测试盲目性,软件质量不稳定的问题。对软件质量的控制时我们的薄弱环节,特别是对底层的嵌入式系统软件的测试还没有一套完善的科学的方案。国内的一些专家也多次提到,目前国内产品与国外产品的主要是在可靠性和稳定性上有一定的差距。随着加入WTO的临近,一场恶战即将展开,而市场对产品质量的要求必将越来越高,为了在残酷的竞争中获胜,就必须满足市场的要求,对产品的质量,从产品研发的各个环节进行严格的控制,形成以用户需求(应做什么)和产品质量(不应做什么)为核心的软件产品研发体系。 软件评测中心的发展方向 软件评测中心的成立,可以发展成为集软件第三方评测、设备租赁、软件开发技术资源库、通用软件设计平台的提供、测试技术咨询,测试体系构建的指导,软件工程技术研究为一体的组织机构. 之所以我们需要建立一个具备综合服务能力的软件评测中心的原因,主要有以下几点: l 软件开发过程质量保证的要求。 l 软件企业现实的需求。 1. 第三方评测 多年来,作为政府的职能部门,我们对企业生产的产品的质量控制多停留在以硬件为主,软件为辅的阶段,即便是对一些在主机平台上运行的软件,也多停留在对功能进行检验上,问题的关键在于对企业开发的软件缺乏行之有效的检测、管理的手段和工具,进而造成许多不合格的产品流向市场。面对市场的压力,现在产品推向市场的时间越来越短,产品尽快上市的压力,要求大大压缩产品的研发时间,在通常的情况下,企业因为精力、人员、资金、设备的不足,常常放弃软件产品的测试;而与此同时,在实际应用中,用户复杂的应用要求,使我们开发出的软件越来越复杂,软件中一定存在着错误,软件的质量控制面临着相当严峻的挑战。而嵌入式软件、工业应用软件因为实时性要求高,又常用于一些关键性任务的控制管理,所以,由它产生的错误往往会导致无可挽回的、致命的损失! 面对这种局面,我们作为一家中立的第三方评测机构,更需要本着对国家负责,对社会负责,对任命负责的严谨态度,采用先进的技术、方法和工具,把好产品上市的质量关。 2. 设备租赁 对软件开发而言,一般所谓的“质量保证”是指在产品完成后对其进行测试和检查,但实际上这能“保证”什么呢?当然,我们作为国家授权的软件质量验证单位,在适当授权下可以确保不让不合格产品出厂,然而这样却不能能够保证最初制造的产品就是一个合格产品,这一做法背后的理论是开发人员最终会懂得应该开发合格的产品,并将切实应用并改变他们的工作方法。然而,因为我国软件行业独特的发展特点,大多数的软件开发企业没有软件质量控制的观念,或者即便意识到了软件质量控制的重要性,但也不知如何开展,或者无实力开展。这样,造成软件开发的过程不规范,软件开发更多是一种个体的行为,无法做到组织的管理,质量无法重复,时间无法控制,项目无法得到持续不断的优化。最终造成在确认性测试之前,没有对各开发阶段的中间产品进行完善的验证,也会造成最终的软件测试难以执行或者没有效果。 每个产品都会有缺陷,在开发过程中应争取尽早发现缺陷,开发的时候提高软件质量要远比开发完成后再进行测试更为有效。验证和确认技术要求整个产品开发周期中,能确保所制造的是正确的产品,同时产品是在按正确的方法制造。问题发现得越早,解决问题的代价就越小。从下图可以看出,尽早的开始测试,可以降低测试和修改错误的费用,提早发现绝大多数的在影响系统级运行的错误,有效的防止它们的恶性膨胀。您可以通过软件开发人员,使用适当的静态分析工具,代码检查工具,单元测试工具,辅助开发人员开发健壮的高质量的代码,预防尽可能多的错误以及尽早发现和改正错误,尽早消灭错误,防止错误和费用的指数增长。这样,最初的测试常常把焦点放在单个程序模块上,进一步的测试重点转向模块的集成,最后在整个系统中寻找错误。这也是软件测试的常用策略。 时间 代码行 错误控制工作对错误数量的影响 这样的测试要求,使得测试的工作在软件的开发和测试人员来协作进行。对于软件测试,在单元和部分的集成阶段的测试是极其重要的,并且以上测试的完备程度,直接影响系统测试和确认性测试的效果和可行性;同时第三方的软件测试人员因为软件产品版权和时间的问题,也很难实施对软件的单元测试和部分集成测试。为了充分发挥第三方评测机构的作用,切实的提高深圳市软件企业的综合竞争实力,提高上市软件产品的质量,所以我们针对软件测试的某些阶段,提出开展工具的租赁服务,软件评测中心的任务重点放在对测试报告的检查和抽样上。这样,一方面解决了企业的资金问题,提高了资源的利用率;另一方面,使软件的质量、测试融入产品中去,融入整个产品开发周期中去,确保所制造的是正确的产品,同时产品是在按正确的方法制造,提高企业的质量管理、项目管理的水平,扶植一批符合CMM高级别开发水平要求的企业,使我们深圳市不但是软件企业在数量和质量上有个显著的提高。 3. 测试技术咨询 通过上节的分析,我们看到,通过将软件测试融入到整个产品开发周期中,可以确保所制造的是正确的产品,同时产品是在按正确的方法制造。测试是需要的,但测试的产品在最初制造时就必需达到一定的质量水平,特别当产品是某种嵌入式系统时更是如此,质量必需设计在软件中。但如何判定质量在最初是否融入到设计中了呢?一个重要的思路就是要在整个产品开发周期中始终注重质量,从提出要求直到第一个产品发运的整个过程。要想在软件开发的每个阶段都注重质量,需要有一个流程进行管理,大多数软件流程改进模型(像CMM和ISO 9000)都认为有效和正确的流程必然会导致生产出高质量软件。正确的软件开发流程中的质量控制行为分为评审、检查、验证、确认。见附图1。不但如此,即使是软件的测试工作,我们通常认为测试是在软件己编写完成后进行的。显然不能测试不存在的东西。这种观点假设测试仅仅指测试执行。当然没有软件运行测试不可能执行。但需要指出的是,测试活动不仅仅包括运行测试本身。附图1。软件开发的V模型说明了何时应进行测试。V模型指出每个开发活动都有相应的测试活动。每一层的测试检验都对应于相应的开发活动。成功应用V模型的关键因素是设计测试事例的时机。无论在哪个阶段的测试设计的目标都是发现缺陷。例如,设计验收测试事例应发现需求的缺陷,设计系统测试事例应发现功能说明的缺陷,设计集成测试事例应发现设计的缺陷,设计单元测试事例应发现编码的缺陷。测试设计不能等到测试运行的时候才进行;测试设计可以在获得所需要的信息后的任何时候开始。这样发现缺陷的效果较好,而且对系统来说不是破坏性的,因为在软件进行下一阶段前可以将缺陷改正。 而要做到以上这些工作,我们除了要给用户提供代理测试和设备租赁服务以外,还需要通过广泛的培训和咨询服务才可以做到。 4. 软件开发技术资源库 软件的开发和测试工作,有许多可以借鉴的经验。在国外,通过多年的开发实践,总结出许多行之有效的编程的规则和方法,嵌入式系统软件开发中,还有许多器件驱动程序和板级支持封装(BSP)都是可复用。软件评测中心通过中心的组织和协调作用,可以组织相关企业提供错误现象,分析错误原因,不但可以大力引进国外的现有的编码规则,还可以根据现实错误编制新的编码规则,形成深圳市特有的知识库,吸引软件企业来深,筑巢引凤。还可以为广大的中小企业提供可复用的代码IP库,形成规模优势。 同时,软件测试也需要测试标准。从理论上讲,我们可以基于概率论和软件可靠性理论建立一种模型,用来描述软件的故障率(执行时间的函数)。当软件的故障率低于一个可以接受的程度时,我们就认为测试可以结束了。在测试中不可能穷举所有的路径,但充分覆盖程序逻辑,并确保软件的所有条件都至少执行一次,是有可能的,在现实中是很难实现的。我们需要针对不同的测试阶段,定一个标准来决定什么时候可以停止测试,发行产品了。这是一种权衡投入/产出比的原则,测试既不要不充分,也不要过分。不充分和过分都是一种不负责任的表现。Zero-bug是一种理想,Good-enough是我们的原则。建立标准,也是我们可以为企业所做的贡献。 5. 通用软件设计平台 在软件开发领域中,有相当一部分工具软件,对无论何种规模的软件企业都可以起到巨大的帮助,但因为诸如价格的因素、使用维护的难度、使用的频率,造成了在中小企业无法使用,障碍了软件企业产品质量的改善、生产效率的提高和规模的扩大,例如版本管理软件、器件驱动程序开发环境(3DE)、虚拟建模工具等。 我们软件评测中心可以发挥面向社会的优势,为我市提供统一的产品开发工具和管理平台,采用网络访问和设备租赁等多种形式,服务于社会,服务于企业。 6. 测试体系构建的指导 软件测试,是一门需要专业技术和经验积累的行业,而对于我们软件企业的现实,也正处于逐步重视软件测试,有缺乏专业基础知识的阶段。作为专业的软件测试部门,我们有能力为广大软件企业提供他们所需要的服务。 7. 软件工程技术研究 软件质量的保证,是一个涉及软件生命周期各个方面的系统工程,它涉及项目管理,虚拟建模,错误跟踪,文档体系建设,版本管理,软件测试,产品维护等方面,建立一个完整的体系。这也是我们中心努力的方向。 华唐信息技术有限公司成立于1999年,公司力足于深圳,业务范围辐射全国,是当今全国范围在软件设计测试自动化领域内,唯一将总部设立在深圳的公司。公司自1999年引进第一个测试工具以来,公司的发展方向经历的从提供嵌入式系统研发测试工具,到立足于嵌入式系统的研发,主要提供产品测试的工具提供、实施咨询、指导和技术服务,终于发展到面向整个软件行业,针对软件工程的过程管理,涉足软件开发生命周期的各个环节,为客户提供开发过程管理的咨询服务和工具体系的构建指导,测试方法培训这三个发展阶段。在技术上,对当今流行的测试软件、测试理论和方法进行深入的研究和理解。通过服务,我们力求能够帮助用户有效地、有步骤地调整其现有软件生产过程,帮助企业通过ISO9001认证,提高开发队伍的CMM等级,最终达到提高软件产品质量,加强企业竞争力促进企业发展的目的。 [upload=jpg]uploadImages/200283111495857330.jpg[/upload][upload=gif]uploadImages/200283111502386221.gif[/upload]



关键词: 发展     软件     评测中心     意义     质量     开发     过程     进行    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]