CMMI和软件测试he基于搜索的软件测试_第1页
CMMI和软件测试he基于搜索的软件测试_第2页
CMMI和软件测试he基于搜索的软件测试_第3页
CMMI和软件测试he基于搜索的软件测试_第4页
CMMI和软件测试he基于搜索的软件测试_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CMMI和软件测试CMMI全称是CapabilityMaturityModelIntegration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型)11.2CMMI简介01CMMI简介CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI成本效益明确重点过程集中灵活性CMMI的表述方式阶段式模型连续型模型优点是具备管理跨组织过程的能力,便于在雇员之间进行过程的友好沟通,改善项目估计的准确性,改善成本和质量控制,可以使用可度量的数据来指导问题分析和改善工作

优点是自由和可见性,具体表现为组织通过可以获益于在每个过程域的所有共性实践中加以应用,更加明确地关注个别过程域的特定风险,便于形成一个更兼容于ISO/IECl5004的结构,一个更加有助于在已有模型结构上以最少的工作添加新的过程域的结构CMMI简介CMMI过程的可视性CMMI框架结构CMMI成熟度等级与能力等级之间的关系CMMI过程域的等级分类CMMI的成熟度等级特征CMMI过程域的能力等级特征CMMI简介未实施级已管理级已实施级已定义级量化管理级CMMI简介CMMI的等级特征主要有未实施级、已实施级、已管理级、已定义级、量化管理级、持续优化级5个等级,显示一个组织在实施和控制其过程以及改善其过程性能等方面所具备的或设计的能力持续优化级CMMI简介CMMI的成熟度等级特征为软件组织实现过程改进展示出一种分阶段的前浏顺序,分为初始级、已管理级、已定义级、量化管理级和持续优化级初始级已管理级量化管理级持续优化级CMMI12345已定义级CMMI简介CMMI的关键过程域有24个,过程域的分类可以采用以下几种分类方式:按成熟度等级分类,按过程域紧密关系分类,其中按过程域紧密分类可以分为“过程管理类”、“项目管理类”、“工程类”、“支持类”4类020304支持类项目管理类过程管理类工程类01CMMI简介1.CMMI与软件测试最为紧密的两个关键过程域是验证(VER)和确认(VAL)两个关键过程域。3.“确认”的目的在于证明产品或产品构件被置于预期的环境时能够满足其预期的用途2.“验证”的目的在于保证工作产品满足其规定要求基于CMMI的软件测试流程当前在软件项目开发过程中存在着两种较为流行的测试模型:X模型和V模型,这两种模型提供了较为合理的软件测试流程和软件开发模型02需求分析1详细设计3单元测试5系统测试7概要设计2编码4集成测试6验收测试8V模型宣称测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程测试阶段(流程)由单元测试、集成测试、系统测试和验收测试组成整个开发流程先后的次序基于CMMI的软件测试流程基于CMMI的软件测试流程X模型是对V模型的改进X模型提出针对单独的程序片段进行相互分离的编码和测试此后通过频繁的交接通过集成最终合成为可执行的程序基于搜索的软件测试基于搜索的软件工程,从问题的解空间出发,将传统的软件工程问题转化为优化问题,并使用高性能的搜索方法,在问题所有可能解的空间中,寻找最优解或者近似最优解03基于搜索的软件测试基于搜索的软件工程技术在软件工程生命周期各个阶段发表文章数量的分布,可以看出超过50%文章是基于搜索的软件测试与调试方向。基于搜索的软件测试11.3智能搜索算法基于搜索的软件测试的基石是高性能的搜索算法01智能搜索算法基于微积分的搜索方法带有向导的随机搜索方法枚举方法目前软件工程领域中用到的搜索方法遗传算法爬山算法蚁群算法模拟退火算法粒子群算法其他智能搜索算法遗传算法遗传算法是一种模拟自然界生物进化过程的启发式搜索算法。它属于演化算法的一种,苏凡借鉴了进化生物学中的一些现象,这些现象通常包括遗传、突变、自然选择以及杂交等。但遗传算法有可能在使用不当的情况下收敛于局部最优解,同时,遗传算法也具有不确定性的缺点。但是这丝毫也没影响到遗传算法的应用广度,它是一种确定的搜索技术。智能搜索算法遗传算法操作步骤中关键的几步操作为:怎么从问题空间得到信息编码、染色体交叉以及适应度函数的构造。该算法基本的算法流程描述如下:智能搜索算法遗传算法应用实例例4.1设如图11-4所示,有五个城市,依次表示A,B,C,D,E,这五个城市之间的路径拓扑图如图所示,欲求解的是从A出发,遍历每个城市,并且每个城市只走一次,当遍历完所有的城市,回到起始点位置,找出所有路径路程中路径路程最小的一条终止变异交叉选择确定适应度产生初始化种群编码智能搜索算法理解赌轮算法前,我们先必须了解个体的选择概率,个体的选择概率的计算公式为:其中,

为适应度函数,为的适应度。可以看出,染色体被选中的概率就是适应度所占种群中全体染色体适应度之和的比例如下图所示,假设种群中有4个染色体:,,,,其选择概率依次为:0.11,0.45,0.29,0.15,则他们在轮盘上上所占的份额如图中的各扇形区域所示智能搜索算法蚁群算法简介:蚁群算法的各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物,当一只找到食物以后,它会向环境释放一种挥发性分泌物pheromone(称为信息素,该物质随着时间的推移会逐渐挥发消失,信息素浓度的大小表征路径的远近)来实现的,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物。有些蚂蚁并没有像其他蚂蚁一样总重复同样的路,他们会另辟蹊径,如果另开辟的道路比原来的其他道路更短,那么,渐渐地,更多的蚂蚁被吸引到这条较短的路上来。最后,经过一段时间运行,可能会出现一条最短路径被大多数蚂蚁重复着。智能搜索算法关于蚁群算法的几个比较重要的规则范围环境觅食规则移动规则避障规则信息素规则智能搜索算法蚁群算法的四个基本的特点:一种自组织的算法一种本质上并行的算法一种正反馈的算法具有较强的鲁棒性1243智能搜索算法蚁群算法应用示例设蚂蚁的数量为,城市的数量为,城市与城市之间的距离为,时刻城市与城市之间的信息素浓度为,初始时刻,各个城市间连接路径上的信息素浓度相同,不妨记为。蚂蚁根据各城市间连接路径上的信息素浓度,决定其下一个要访问的城市,设表示时刻,蚂蚁从城市到城市的概率,其计算公式如下公式所示。其中:为启发式函数,,表示蚂蚁城市转移到城市的期望程序;表示蚂蚁待访问的城市的集合,开始时为其他城市,随着时间推进,其中的元素不断减少,直至为空,表示所有的城市访问完,即遍历所有城市。为信息素的重要程度因子,为启发函数的重要程度因子。智能搜索算法蚂蚁释放的信息素会随着时间的推进而减少,设参数表示信息素的挥发度,当所有蚂蚁完成一次循环后,各个城市间连接路径上的信息素浓度,需要实时更新。表示蚂蚁在城市与城市的连接路径上释放的信息素浓度,表示所有蚂蚁在城市与城市的连接路径上,释放的信息素浓度。

的计算方法如下公式为常数,表示蚂蚁循环一次释放的信息素的总量;为第中蚂蚁经过路径的长度,;智能搜索算法蚁群算法实现步骤:020304更新信息素构建解空间初始化参数判断是否终止01人工鱼群算法禁忌搜索算法人工免疫算法粒子群算法其它智能优化算法:模拟退火算法爬山算法智能搜索算法搜索技术在软件测试中的应用软件测试是进行软件质量保证的一种活动,软件测试活动的目的是度量和提高软件质量,通过对待测软件及文档、测试标准进行分析,进而设计并执行一系列的测试用例,测试人员往往想通过测试用例检测出软件中尽可能多的故障02功能测试用例生成方法1)等价类划分搜索技术在软件测试中的应用等价类划分是测试用例设计的非常形式化的方法,它将测试软件的输入输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。形成测试区间的数据不只是函数/过程的参数,也是软件可以访问的全局变量,系统资源等,这些变量或资源可以是以时间形式存在的数据,或是以状态形式存在的输入输出序列。搜索技术在软件测试中的应用对等区间划分的原则:若输入条件规定了取值范围,或者值的个数,则可以确定一个有效等价类和两个无效等价类。若输入条件规定了输入值得集合,或者是规定了“必须如何”的条件,这时可以确定一个有效等价类和一个无效等价类。若输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。若规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确定一个等价类,而对于这组值之外的所有值确定一个等价类。若规定了输入数据必须遵守的规则,则可以确定一个有效等价类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据)。若确知以划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类,利用对等区间划分选择测试用例。为每个等价类规定一个唯一的编号设计一个新的测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使其仅覆盖一个无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。搜索技术在软件测试中的应用2)边界值分析边界值分析假定错误最有可能出现在区间之间的边界,边界值分析将一定程度的负面测试加入到测试设计中,期望错误会在区间边界发生,对边界值的两边都需设计测试用例。其做法是:首先确定边界情况。通常输入和输出等价类的边界值就是应该着重测试的边界情况。其次,应当选取正好等于、刚好大于或刚好小于边界的值作为测试数据而不是选取等价类中的典型值或任意值作为测试数据。考虑前面的平方根函数的2个输入区间如下图所示。0和大于0区间的边界是0和最大正实数,小于0区间的边界是0和最大负实数。输出区间的边界是0和最大正实数。搜索技术在软件测试中的应用选择测试用例的原则:如果输入条件规定了值的范围。则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数作为测试数据。根据规格说明的每一个输出条件,使用规则一。根据规格说明的每一个输出条件,使用规则二。如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例。如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例。分析规格说明,找出其他可能的边界条件。搜索技术在软件测试中的应用3)因果图分析软件规格说明描述中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。分析软件规格说明描述中的语义。找出原因与结果之间、原因与原因之间对应的关系。根据这些关系,画出因果图。由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。把因果图转化为判定表。把判定表的每一列拿出来作为依据,设计测试用例。因果图方法最终生成的是判定表,它适合于检查程序输入条件的各种组合情况。利用因果图生成测试用例的基本步骤:此外还有错误猜测法和功能图等方法路径覆盖语句覆盖判断覆盖条件覆盖判定-条件覆盖条件组合覆盖0102希望获取哪些信息在程序的什么部位设置探测点搜索技术在软件测试中的应用结构测试用例生成方法:1.逻辑覆盖2.程序插装设计程序插装程序时需要考虑的问题包括:搜索技术在软件测试中的应用基于遗传算法的分支覆盖测试用例生成基于遗传算法的分支覆盖测试用例生成系统主要包括三个部分:测试环境构造、遗传算法报的实现和测试运行。1.用例生成模型测试环境构造是整个系统的基础,它主要是通过对被测程序的静态分析提取有用的参数(包括参数的范围)和对程序进行插装。遗传算法包则是用例生成系统的核心部分。它首先对测试环境构造中提取出来的参数及其范围确定种群的规模,按照编码规则进行编码,生成初始种群,然后根据测试运行部分得到的信息计算适应度值,根据评价规则对初始种群反复应用GA运算(选择、交叉、变异)生成新一代的种群,直至最终达到终止条件。测试运行时第一部分和第二部分的桥梁与实现,主要完成的任务是实时地调用并运行插装后的被测程序,获取追踪信息传递给遗传算法包,根据遗传算法中的评价结果决定程序的运行与终止。测试用例生成系统模型图搜索技术在软件测试中的应用基于遗传算法的分支覆盖测试用例生成2.参数的选择单元的入口参数(如函数的形参)单元的出口参数(如函数的返回值)全局变量单元内部的变量程序单元中的变量类型搜索技术在软件测试中的应用对于不同类型的参数,首先对参数进行位串编码,使它成为一系列的有限长度串。这里测试用例生成系统中这里采用二进制编码。种群的初始化包括初始种群规模的确定及其初始值的选取。对于二进制的编码方式,Goldberg已经证明了若个长度L,则种群规模的最优值为2L/2。因此在实际应用中,可以以此作为参考,同时结合程序的规模:如分支

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论