西门子KTP600触摸式面板
作位于每次迭代以及迭代结尾发布的工作软件当中,敏捷方法的主要优势在于,它能完全适应用户环境,而且对产品进行持继迭代,它更注重交付能工作的软件,而不是实现需求规范中定义的需求。
软件的质量是软件的生命,它直接影响软件的使用与维护。软件开发人员和用户都十分重视软件的质量,软件质量问题也是软件工程的核心问题之一。什么是软件质量?软件质量是一个复杂的概念,不同的人从不同的角度来看软件质量问题,会有不同的理解。人们经常说某某软件好用,某某软件功能全、结构合理、层次分明、运行速度快等。这些模糊的语言实在不能算作是软件质量评价,特别不能算作是对软件质量科学的、定量的评价。其实,软件质量,乃至于任何产品质量,都是很复杂的事物性质。随着计算机软硬件技术的发展,人们对软件质量的理解不断深化,软件质量的标准也在不断改变。按照ISO/IEC 9126-1991(GB/T 16260—1996)“信息技术软件产品评价质量特性及其使用指南”标准,对软件质量定义如下。
软件质量是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和。其含义有以下4个方面。
• 能满足给定需求的特性。软件需求是衡量软件质量的基础,不符合需求的软件就不具备好的质量。设计的软件应在功能、性能等方面都符合要求,并可靠地运行。
• 具有所期望的各种属性的组合的程度,即软件结构良好,合理地利用系统资源,易读、易于理解,并易于修改
下几个方面。
• 可维护性,修改一个软件系统,提高其性能或修正其错误的能力。
• 灵活性,修改系统使其能适应于不同的用途或环境的能力,而不必对系统进行特定的设计。
• 可移植性,能修改所设计的某一部分,使其能在其他环境下运行的能力。
• 可重用性,能将系统的一部分用于其他系统的难易程度。
• 可读性,能读懂或理解系统源代码的能力。
• 可测试性,对整个系统进行单元或系统测试以证实其满足所有需求性能的测试难易程度。
• 可理解性,能从整个系统水平或细节上理解整个系统的难易程度。
外部质量的定义是软件产品在规定条件下使用时满足需求的程度。外部质量是从外部观点出发的软件产品特性的总体,它是当软件执行时,更典型的是使用外部度量在模拟环境中,用模拟数据测试时,所被测量和评价的质量,即在预定的系统环境中运行时可能达到的质量水平。
外部质量特征主要包括以下几个方面。
• 正确性,整个系统受说明、设计和实现的错误的影响程度。
• 可用性,用户学会和使用系统的难易程度。
定条件下执行特定功能的能简单地说,软件测试就是为了发现错误而执行程序的过程。软件测试是一个找错的过程,测试只能找出程序中的错误,而不能证明程序无错。软件测试要求以较少的用例、时间和人力找出软件中潜在的各种错误和缺陷,以确保软件的质量。
在IEEE所提出的软件工程标准术语中,软件测试被定义为:“使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”软件测试是与软件质量密切联系在一起的,软件测试归根结底是为了保证软件质量。通常软件质量是以“满足需求”为基本衡量标准,IEEE提出的软件测试定义明确提出了软件测试以检验是否满足需求为目标。
软件测试在软件生命周期中占据重要的地位,在传统的瀑布过程模型中,软件测试仅处于运行维护阶段之前,是软件产品交付用户使用之前保的测试过程包含在软件生命周期的每个阶段中。在需求阶段,重点要确认需求定义是否符合用户的需要;在设计和编码阶段,重点要确定设计和编码是否符合需求定义;在测试和安装阶段,重点是审查系统执行是否符合系统规格说明;在维护阶段,要重新测试系统,以确定更改的部分和没更改的部分是否都正常工作。2. 软件测试的目的
软件测试的目的是为了保证软件产品的*终质量,在软件开发的过程中,对软件产品进行质量控制。测试可以达到很多目的,但*重要的是可以衡量正在开发的软件的质量。
测试是为了证明程序有错,而不能保证程序没有错误。事实上,在软件运行期间测试活动从未间断,只是在软件产品交付给用户之后,将由用户继续扮演测试的角色而已。Glen Myers在关于软件测试的**著作《The Art of Software Testi