- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.1 嵌入式软件的质量控制 9.1.1 嵌入式软件开发的质量问题 嵌入式软件作为一种特殊的软件,对安全性和可靠性的要求都是相当高的。 通过实际项目的统计,得出在不同的阶段发现和更改错误的费用是不同的,如表9-1所示。 另一方面,统计表明一个项目中的80%的错误往往是由20%的程序引起的。 9.1.2 嵌入式软件的质量模型 9.1.3 软件缺陷 1.软件缺陷的定义 软件在它的生命周期内各个阶段都可能发生问题,发生问题的情况和形式是各不相同的,大家都习惯使用“bug(软件缺陷)”这个词来描述这些问题,它包含一些偏差、谬误或错误,更多地表现在功能上的失败(failure)和实际需求的不一致,及矛盾(inconsistency)。 在IEEE Standard729中对软件缺陷的定义是: 此产品内部看,软件缺陷是软件产品开发或维护过程中所粗在的错误、毛病等各种问题。 从外部来看,软件缺陷是系统所需要实现的某种功能的失效或违背。 下列情况认为是软件缺陷: 功能、属性没有实现或者部分实现; 设计不合理,存在潜在缺陷; 实际结果和预期结果不一致; 运行错误,包括运行中断、系统崩溃、界面混乱等; 数据结果不正确、精度不够; 用户不能接受的其他问题,如存取时间过长、界面不美观等。 2.软件缺陷产生的原因 由于软件系统越来越复杂,不管是需求分析、系统结构设计、编码、测试都面临越来越大的挑战。软件缺陷产生是不可避免的,基于软件开发过程归纳出软件开发各阶段软件缺陷产生的原因。 规格说明书为什么是引入软件缺陷最多的几种原因。 用户是非计算机专业人士,软件开发人员和用户的沟通存在较大困难,对要开发的软件产品功能理解不一致。 由于软件产品还没有设计、开发,完全靠想象去描述软件系统的实际情况,所以有些特性思考得不够清晰。 需求变化的不一致。用户的需求总是在不断变化的,这些变化如果没有在产品规格说明书中得到正确的描述,容易引起前后的矛盾。 对于规格说明书普遍不够重视,在规格说明书的设计和写作上投入的人力、时间不足。 软件缺陷发现后,要尽快修复缺陷,不然会随着产品开发过程的进行,缺陷会越变越大,以至于造成严重的后果。缺陷发现或解决得越晚,成本就越高。 9.1.4 提高嵌入式软件质量的方法 可以通过以下方法来提高嵌入式软件的质量: 重视缺陷的评估分级。 建立文档和缺陷管理制度。 强调测试自动化。 测试自动化主要包括: 测试准备的自动化。 测试用例的自动化生成; 测试的实施、记录和诊断的自动化。 关键在前两点,目前主要有两种途径来实现测试自动化: 利用被测对象设计阶段的建模结构; 对源代码进行自动分析 9.2 软件测试的基本概念 9.2.1 软件测试的定义 在IEEE Std 829-1998对IEEE(1983)修订版中,将测试定义为:测试(A)一个或多个测试用例集,或(B)一个或多个测试过程集,或(C)一个或多个测试用例和测试过程集,是软件的分析过程,其目的在于发现软件功能特性等实现和要求不一致的地方(也即软件错误)及对软件的评估。 9.2.2 软件测试的目的和作用 测试的最基本目标应是以最少的时间和人力找出软件中潜在的各种错误和缺陷,可以通过严格的测试过程和精心的测试用例选取来达到这一目的。 基于此,有一些典型的认识,包括: 测试是为了寻找错误而运行程序的过程。 一个好的测试用例是指可能找到的迄今为止尚未发现错误的用例。 一个成功的测试是指揭示了迄今为止尚未发现错误的测试。 软件测试的更高层次的目标应体现质量改进、验证与确认、可靠性评估。 1. 质量改进 如果应用于关键应用中的计算机和软件系统出现问题,后果十分严重的。软件错误将引起巨大的损失,比如导致飞机失事、火箭失去控制、股市交易中断等。软件质量和可靠性对于嵌入式应用系统而言,更是生死攸关的大问题。 质量意味着产品符合设计的要求规范。正确性是指软件符合环境下可运行的要求,是软件质量的最低要求。调试是软件测试中的一个重要方法,是程序员定位和修复软件错误的一个过程。发现和修复错误是程序调试的只要目的。 2. 验证和确认 软件质量是客观的,能精确地度量和比较。质量属性包括功能性、可用性、安全性、可靠性和可测性等。 软件测试的一个重要目的是验证和确认软件质量。质量因素表现在三个典型方面:功能性、工程性和适应性。这三方面的因素可视为软件质量的三维空间。 功能性(外在质量):正确性、可靠性、可用性、完整性。 工程性(内在质量):有效性、可测性、文档化。 适应性(未来质量):可扩展性、可重要性、可维护性。 3. 可靠性评估
文档评论(0)