硕士论文网第2020-11-15期,本期硕士论文写作指导老师为大家分享一篇
软件工程文章《基于洁净室软件工程统计测试的工具的研究与实现》,供大家在写论文时进行参考。
本篇论文是一篇软件工程硕士论文范文,软件测试的统计方法首先由HarlanMills(MillS,oyer,andLinger1987)和他的IBM同事开发出来。JohnMusa(1993)和他AT&T的同事也提出了类似的方法。MillS和uMsa的方法所用的术语虽有细微的差别,但他们都是运用成熟的工程准则对产品进行测试和验证的科学方法。在工业界,通常采用抽样的方法进行合格性检查:首先,对要验证的产品进行随机抽样,测试样本的统计特征。然后,利用统计方法进行分析和推断。最终,只有满足一定标准的产品才被认为是合格的。
第一章 绪论
1.1 课题背景
随着我军现代化建设的不断深入,面对战场信息化和数字化的趋势,软件已经成为我军装备的重要组成部分,在国防中发挥日益重要的作用。与此同时,由于软件普遍地渗透到武器装备、航空航天、指挥自动化等各个方面,软件可靠性和质量成为战斗力保障的重要因素。在这些领域中,软件技术的突破将有效地提高战斗力,而软件失效会导致巨大的损失。随着对计算机的需求和依赖与日俱增,计算机发生失效而引起危机的可能性逐渐增加。例如,由于计算机系统的实时故障,导致了爱国者导弹没有及时拦截飞毛腿导弹造成美军在海湾战争中的最大一次伤亡。19%年6月,由于软件失效使得欧盟的阿丽亚娜5型运载火箭的首次发射失败,带来了巨额损失。由于软件问题,美推迟了Bl轰炸机的部署,基于相同原因部分取消了580亿美元的A12飞机计划。可见,软件的故障和失效已变成了武器系统和工程项目失败的重要原因。如何提高软件可靠性、保证软件质量受到了前所未有的重视。为此,人们对软件开发的机理进行了大量的研究,并建立了许多软件工具和环境以支持软件开发过程。然而,对软件密集型产品的可靠性工程化方面缺少足够的支持。工程化软件可靠性指用恰当的时间、可接受的开销开发具有满意的可靠性的软件。这是一个工程化的目标,传统的软件开发并未对此提供足够的支持。软件可靠性工程于是应运而生了。软件可靠性是指软件在特定环境和给定时间内无失效运行的概率。软件可靠性工程是加速产品投放、降低产品开销,从而提高软件生产率。它的基本思想是:定量地刻画产品所期望的用途,根据该信息,将资源集中到最常用/关键的系统功能上并使测试能真实地代表实际运行;定量地评估和预测软件可靠性,使用户在软件开发中准确地跟踪软件可靠性,平衡可靠性、开发时间和开销的需求。为此,在国防预研基金和总装软件评测中心的资助下我们决定开发一个基于净室软件工程统计测试的软件可靠性测试辅助工具,把它和“软件可靠性评估与预测工具CasoR”结合起来,形成一个完整的软件可靠性工程环境。在该环境中,用户可以建立软件的使用模型,进行可靠性测试分析、测试用例生成和失效数据记录,然后依据软件项目特征和软件失效数据,利用模型实施软件的可靠性评估和预测。这对于在军用和国防软件研制与评测中大力推广软件可靠性工程,实施我军软件可靠性保障有重要的现实意义和应用价值。
1.2 课题研究的主要内容.
课题的主要任务是构造一个辅助统计测试工具,其主要作用是辅助人工进行较为完备的可靠性测试,为已研制的“软件可靠性评估和预测工具CasoR”提供科学、客观、准确的输入数据。该工具应覆盖软件使用模型的建立、可靠性测试准备和实施等过程。主要需要解决的问题有:辅助建立软件使用模型。支持用直观的矢量图形方式建立使用模型,支持模型的层次化。使用模型静态分析。对模型进行静态参数分析,计算出模型复杂度、测试用例平均长度等参数,这有助于验证使用模型的正确性和更好的理解系统的使用方式。测试用例自动生成。根据规范和软件使用模型,自动进行测试用例的生成。使用模型描述了用户对软件的使用方式,根据使用模型状态间的迁移概率,可以生成符合用户使用方式的测试用例序列。判定测试终止的时机。当测试环境在一定范围内近似于实际使用环境时,就可以停止测试。系统可以定量计算测试环境和使用环境的差异,提供用户判定测试终止时机的依据。
第二章 净室软件工程概述
净室软件工程是一种应用数学和统计学方法以经济有效的方式开发高质量软件的工程技术I’。15年HalaMlls、Mcaloy和形ag正式提出了“净室软件工程”的概念,“净室”这个词源于半导体工业的生产硬件的净室。在硬件生产过程中,严格的工程过程预防了缺陷的产生,而不是事后再去排除故障。它以此预示净室软件工程主要通过防止错误的引入来保证软件的质量。净室方法根植于科学,它的应用可提高软件生产效率并获得软件的高可靠性。净室技术的重点在于通过设计和测试中的质量认证来保证软件开发的正确性。它的主要特征表现为它的三个关键技术。基于统计方法的过程控制下的增量式开发;基于函数理论的规范、设计和验证;统计测试和软件证明。净室软件工程有两个重要目标:一是开发过程的可管理性;二是软件使用时的高可靠性。
2.1 净室软件工程基础
净室软件工程的理论基础来自于数学,它由HarlanMills博士于1970年末到1980年初建立起来的。他当时受到EdsgerDijkstra的结构化程序设计、NihcolasiWhrt的逐步求精以及DvaidPamas模块化思想的启发,开始把数学、统计学和工程的思想应用到软件开发。他认为程序是规则化的数学函数,这种观点把数学中的函数理论应用到了软件开发并且产生了盒子结构的规范和设计的技术。同时他还认为程序的潜在的执行是无限多的,只能通过统计抽样进行程序质量证明。这又把统计理论应用到了软件测试,产生了基于统计分析的测试和质量证明技术。Mills提出的软件开发的科学基础使得净室软件工程成为一门真正的软件工程学科。净室软件开发方法基于数学中的函数理论,一个函数定义了一个从定义域到值域的映射,定义域中的每一个元素都可在值域中找到唯一的元素与之对应。一个特定的程序也描述了一个从定义域(程序所有可能输入序列的集合)到值域(所有对应于输入的输出集合)的映射。因此,程序的规范就相当于函数的规范,描述了一个程序的输入到输出的对应关系。一个定义明确的函数有如下特性:完备性(completenes:)、一致性(consisetncy)和正确性(coerrcntess)。因为一个程序规范描述了一个函数,所以它必须是完备的、一致的和正确的。令数学完备性要求对定义域中的每一个元素,值域中至少有一个元素与之对应。也就是说,每种可能的输入都必须定义,并且有一个输出与之对应。令数学一致性要求定义域中的每一个元素在值域中最多有一个元素与之对应。也就是说,每个输入只能对应一个输出。令与需求相关的规范的正确性由领域内的专家来判断。然而,对于一个给定的正确规范,某项对应于该规范的设计的正确性是可以通过基于函数理论的推理来验证的。iLgner、iMlls和iWtt(1979)提出的将函数理论应用于软件开发的方法最终通过iLgner、Mills和Henver(1986)提出的用于净室软件开发的盒子结构(box;tructuer)得到了实现。被明确提出的有三种功能形式的盒子:黑盒b(lackbox)、状态盒(satetbox)和明盒(。Zea:box),它们按照严格的规则分别对待。净室测试方法基于统计学。在实际应用中,当从经济上或技术上无法测试样本全体的时候,我们可以使用统计抽样的方法。在过程控制上,如果统计结果没有达到预期的指标,生产过程就需要做必要的调整。这种以统计学为基础的从产品质量度量到生产过程之间的反馈循环,得到了广泛的应用。在软件测试中,源于软件的特殊性,统计方法表现得更为重要。通常情况下,我们不可能对软件的所有使用情况进行测试,只能采用抽样的方法测试软件的部分使用情况,然后运用统计学原理以软件在样本上表现出的性能为依据度量软件的整体性能。在净室软件工程中,用于采样的全体(populaiton)是软件所有可能使用方式的集合,集合中的每个元素代表软件系统的一种可能的使用情况。统计的目的是度量软件系统正确运行一个样本的能力。因为总体是庞大的,不可能进行完全的测试。不论测试过程如何扩展,测试输入都只能是输入总体的一个很小的集合,所有的测试活动只能是总体中的抽样。所以,必须利用统计学方法对系统性能做一个有效的推断。
2.2 净室软件工程技术
净室软件工程包含如下三项关键技术[’]:基于统计方法的过程控制下的增量式开发、基于函数的规范、设计和验证以及统计测试和软件证明。这些技术可以分开或合起来使用,它们的采用可以有效的改进软件生产过程。增量开发(icnermenatldeveloPment)是基于产品开发中受控迭代的工程原理。它不是把整个开发过程作为一个整体,而是将其划分为一系列较小的、累积的增量。每个增量都是以前的增量和当前工作的累积,随着开发过程的推进逐步形成最终的产品。增量开发是开发小组保持对项目良好控制的基础。在任何时刻小组成员都只需把注意力集中于工作的当前部分,而不必同时考虑所有的事情。增量开发方法把净室项目分成一个有序的开发周期序列,每个周期完成一些用户功能。在每个增量阶段结束时,产品的功能便可向客户演示。这样,客户对产品有真实的感观认识,他们可重新确认需求或使需求更加清晰。这将使产品在完成时双方的不满意程度降到最低。增量开发计划由系统结构驱动111。在成熟的生产过程中,一个参考结构描述了系统高层的结构和接口。根据这种结构和接口,增量被设计出来服务于软件的可重用性、可维护性或者在体系结构的已知位置开发组件。在新项目的开发过程中,顶层结构要么先于第一个增量,要么是第一个增量所关注的对象,而后续增量将具体完成结构中的空缺模块。在一个业已存在的旧系统中,增量计划可以和一个再工程计划结合起来,使得变化不是动摇而是改进了系统。在软件维护的情况下,修补和增强被视为增量开发的一种延续,可以采用增量开发中用到的同样的过程准则。给定一个系统结构,在增量计划中有许多要考虑的因素。在嵌入式系统中,与硬件开发进度的协调是一个要考虑的要素。在图形用户界面(GU)I系统中,第一个增量通常是原型化用户界面接口,它是需求中最不确定的部分。在给增量分配开发任务时还要考虑功能依赖的问题,比如:只有先显示出图片,然后才能对其进行编辑,所以显示图片所属的增量应该先于编辑图片所属的增量。影响增量开发的其他因素还有风险大小、复杂性、新颖性、重用性以及使用频率等。在实际操作中,如果可能,应把那些最不确定的部分包含在较早的增量中,这样可把需求变化对开发过程的影响降到最小。除了智能控制、客户反馈、风险管理以外,增量开发还使项目组能够有效的进行统计过程控制[`]。在每个增量开发结束时,都要度量产品的质量并和小组的预定指标进行比较,比较的结果可以确定开发是否在控制之下。如果出现较小的偏差,表明项目仍然处在我们的控制之下。而出现不可接受的偏差时,要进行仔细的性能评审。确定了问题所在,小组要调整过程以改进下一个增量的性能。
第三章 统计测试理论
3.1 基于使用模型的统计测试的优点
3.2 统计测试的理论基础
3.3 统计测试的实际应用
第四章 使用模型静态参数的计算
4.1与模型相关的静态参数
4.2与状态相关的静态参数
4.3与边相关的静态参数
4.4与激励相关的静态参数
第五章 测试用例自动生成和测试充分性度量
5.1 测试用例生成
5.2 测试充分性度量
第六章 统计测试辅助工具STTOOLKIT的实现
6.1 使用模型构造器
6.2 静态参数分析器
6.3 测试用例产生器
6.4 与其他工具的比较
结束语
20世纪年代初由工提出的净室方法如今己被全球工业和政府软件组织广泛采用。获奖的美国国家宇航局软件工程实验室(在or空间飞行中心实施了一系列有良好记录的净室项目。美军PItanny兵工厂说明了在一个年的周期中,净室技术投资回报比超过1:20。基于使用模型的统计测试自它诞生之日起就表现出了强大的生命力和适用性,成功的应用于许多大型的软件开发项目中,时至今日它还在不断的发展和进步。大量实践表明,基于使用模型的统计测试更经济有效,并且能够获得软件的高可靠性。事实证明了统计测试是一种有效加高效的测试方法,可以很好的用于软件可靠性评估与预测。STTO。1kit较好的实现了统计测试的各部分功能活动,具有简单、实用、易操作等特点,在2001年H月份顺利通过了专家鉴定。在净室软件工程的实施过程中,使用模型的建立是很自然的事,先对软件进行顺序规范,抽取出不同的状态,然后标明状态间的转移关系。但把它作为单独的测试方法独立出来,其主要问题是使用模型的建立过于繁琐,需要做许多额外的工作。因此,我们下一步的工作主要集中在使用模型的自动生成,即根据统一建模语言(MU)L的状态图、合作图等自动生成使用模型。
以上论文内容是由
硕士论文网为您提供的关于《基于洁净室软件工程统计测试的工具的研究与实现》的内容,如需查看更多硕士毕业论文范文,查找硕士论文、博士论文、研究生论文参考资料,欢迎访问硕士论文网软件工程栏目。