基于模型的测试综述报告
行人检测综述报告[推荐]
![行人检测综述报告[推荐]](https://img.taocdn.com/s3/m/16aec28db1717fd5360cba1aa8114431b90d8e2c.png)
行人检测综述报告[推荐]第一篇:行人检测综述报告[推荐]基于深度神经网络的行人检测综述摘要:行人检测是汽车自动驾驶的基础技术之一。
基于深度神经网络模型的行人检测方法取得的效果已经远超于使用传统特征经行识别得到的效果。
仿生物视觉系统的卷积神经网络作为深度学习的重要组成、在图像、语音等领域得到了成功应用。
其局部感受野、权值共享和降采样三个特点使之成为智能机器视觉领域的研究热点。
通过增加网络层数所构造的深层神经网络使机器能够获得抽象概念能力,在诸多领域都取得了巨大的成功,又掀起了神经网络研究的一个新高潮。
本文回顾了神经网络的发展历程,综述了其当前研究进展以及存在的问题,展望了未来神经网络的发展方向。
关键词:行人检测;卷积神经网络;深度学习Survey of Pedestrian detection based on Deep Neural Network Yin Guangchuan,Zhangshuai,Qi Shuaihui Abstract:Pedestrian detection is one of the basic technologies of unmanned vehicles. The pedestrian detection method based on the deep neural network model has achieved much more effect than the traditional one. Convolutional neural network which imitates the biological vision system has made great success on image and audio, which is the important component of deep learning. Local receptive field, sharing weights and down sampling are three important characteristics of CNN which lead it to be the hotspot in the field of intelligent machine vision.With the increasing number of layers, deep neural network entitles machines the capability to capture “abstract concepts” and it has achieved great success in various fields, leading a new and advanced trend in neural network research. This paper recalls the development of neuralnetwork, summarizes the latest progress and existing problems considering neural network and points out its possible future directions.Keywords: pedestrian detection; convolutional neural network; deep learning国防科技大学课程设计机器视觉1 引言行人兼具刚性和柔性物体的特性,外观易受穿着、尺度、遮挡、姿态和视角等影响,使得行人检测成为计算机视觉的研究难点与热点。
基于模型的测试综述报告

基于模型的测试综述报告摘要:本综述报告主要对基于模型的测试进行综述,介绍了基于模型的测试的定义、用途和特点,总结了现有的基于模型的测试方法,并对其进行评价和比较。
一、引言基于模型的测试是软件工程领域中一种重要的测试方法,它通过使用系统的形式模型来指导测试用例的设计和生成。
基于模型的测试能够提高测试效率、降低测试成本,并且能够提高测试覆盖率和准确性。
本综述报告将对基于模型的测试进行详细的介绍和评价。
二、基于模型的测试方法1.模型设计2.测试用例设计根据系统的形式模型,可以生成相应的测试用例。
常见的测试用例设计方法有路径覆盖、边界值分析、等价类划分等。
测试用例的生成可以通过手工设计、遍历系统的状态空间和符号执行等方法实现。
3.测试执行测试执行阶段根据设计的测试用例进行实际的测试。
测试可以在软件开发周期的不同阶段进行,如单元测试、集成测试、系统测试等。
测试执行可以通过手工执行、自动化测试工具和平台进行。
4.测试评估测试执行后需要对测试的结果进行评估。
评估指标包括测试覆盖率、错误检出率、性能指标等。
通过评估结果可以调整测试策略和改进测试技术。
三、基于模型的测试方法评价1.优点-提高测试效率,通过生成测试用例减少了手工设计的工作量。
-提高测试准确性,通过模型的形式化描述能够避免测试用例的遗漏和错误。
-提高测试覆盖率,通过遍历模型的状态空间能够达到更全面的测试覆盖。
-减少测试成本,通过自动化测试和测试工具的支持,能够节约测试资源和时间。
2.挑战-模型设计的复杂性,需要对系统进行深入的理解和抽象。
-测试用例的生成和执行的复杂性,需要设计适应于模型的测试用例生成算法和执行策略。
-测试评估的准确性,需要选择合适的评估指标和方法来评估测试的有效性和覆盖率。
四、结论基于模型的测试是一种有效的测试方法,能够提高测试效率、准确性和覆盖率,并降低测试成本。
尽管该方法面临一些挑战,但是通过合适的模型设计、测试用例生成和执行策略以及评估方法,可以克服这些挑战,并改进测试质量。
基于DEA模型的商业银行经营效率测算开题报告文献综述

基于DEA模型的商业银行经营效率测算开题报告文献综述一、研究背景由于金融市场的不断开放与竞争加剧,商业银行作为其中的重要一环,其经营效率问题也逐渐成为学术界和实践界共同关注的焦点。
对于商业银行而言,提高经营效率,不仅可以使得银行更好地服务于实体经济,也可以优化银行自身的管理和市场竞争地位。
因此,如何有效地测算商业银行的经营效率,成为当前金融领域研究的重要课题之一。
二、 DEA模型的相关概念和基本原理“DEA”是“Data Envelopment Analysis”的缩写,中文意为数据包络分析。
它是一种非参数线性规划方法,用于衡量相对效率。
换句话说,DEA方法能够确定某一单位使用给定的资源是否“最有效”,即用最小的资源成本或最大化某商品的产量,来获得最高的效益,或者在最小的成本下获得最大的效益。
以“输入”和“输出”来定义效率,称为输入导向型DEA模型(input-oriented DEA model)。
其本质目的是在给定的投入量下获得最大的产出。
基于这种方法,研究者可以通过比较输入与输出来测算银行的效率水平。
三、相关研究进展1. 建立了经典的商业银行效率评价模型在20世纪90年代,Charnes、Cooper和Rhodes最初为了研究工业生产的效率问题而引入了DEA模型。
随后,由于商业银行与工业生产之间存在一些共性,因此相关学者使用DEA模型并对其进行改进,建立了经典的商业银行效率评价模型。
2. 研究DEA模型的应用在不同环境下对经营效率的影响随着各类研究的不断深入,一些学者对DEA模型的应用在不同环境下对经营效率的影响进行了研究。
Moreno和Salmerón等人研究了货币政策对西班牙银行效率的影响,结果发现货币政策的不稳定性能降低银行的效率。
而Duygun,Sen和Shahbaz等人则研究了土耳其和伊朗银行的效率,结果表明它们受到银行规模、公司治理和市场力量等多种因素的影响。
3. 运用DEA模型进行国际商业银行的效率比较除此之外,一些学者也利用DEA模型对国际商业银行的效率进行了比较。
面向智能驾驶测试的仿真场景构建技术综述

面向智能驾驶测试的仿真场景构建技术综述随着汽车智能化程度的不断提高,智能汽车通过环境传感器与周边行驶环境的信息交互与互联更为密切,需应对的行驶环境状况也越来越复杂,包括行驶道路、周边交通和气象条件等诸多因素,具有较强的不确定性、难以重复、不可预测和不可穷尽。
限于研发周期和成本、工况复杂多样性,特别是安全因素的考虑,传统的开放道路测试试验或基于封闭试验场的测试难以满足智能驾驶系统可靠性与鲁棒性的测试要求。
因此,借助数字虚拟技术的仿真测试成为智能驾驶测试验证一种新的手段,仿真场景的构建作为模拟仿真的重要组成部分,是实现智能驾驶测试中大样本、极限边界小概率样本测试验证的关键技术,这对提升智能驾驶系统的压力和加速测评水平显得尤为重要。
面向智能驾驶测试的仿真场景构建技术已成为当前汽车智能化新的研究课题和世界性的研究热点,作为一种新兴技术仍面临许多挑战。
随着汽车智能化和共享化程度的不断提高,智能驾驶汽车通过环境感知与周边行驶环境的交互也在不断增多,行驶环境已成为智能驾驶不可分割的重要组成部分。
汽车的行驶环境涉及道路、气象条件和交通状况,其复杂性和动态变化是影响汽车智能驾驶系统性能最为关键的因素。
因此,建立一种模拟和重现复杂开放行驶环境的仿真测试方法和系统,实现对汽车智能驾驶有效的测试验证,是汽车智能驾驶技术与产品开发的关键技术,对于提升汽车智能化水平尤为重要。
汽车行驶环境包括行驶道路、周边交通和气象条件等诸多因素,其高逼真的重现和构建面临诸多挑战。
随着智能驾驶功能的不断增强,汽车需应对的行驶环境越来越复杂,环境高度的不确定性、难以重复、不可预测和不可穷尽等特征使得有限的场地和道路测试远远无法复制、重现或穷举行驶环境对智能驾驶系统的影响。
一方面,限于研发周期和成本,现有的封闭场地测试和开放道路测试不仅周期长、成本高,无法满足对系统数十亿公里行程的大样本和可靠性测试要求。
另一方面,与汽车行驶安全测试密切相关的极限危险工况属于小样本、小概率事件,开放的道路测试往往难以复制,测试安全也无法保障。
软件安全缺陷检测技术最新研究进展综述

软件安全缺陷检测技术最新研究进展综述Abstract:Software security detection has become a very important work in the software industry. Fatal security vulnerabilities are caused by undefined behaviors of C/C++ language used in Safety-Critical software. This paper will give out eight kinds of new technology about the software security detection based on eight cutting-edge papers.design.摘要:软件安全缺陷检测已经成为软件行业非常重要的一项工作。
安全关键软件设计使用的C/C++语言含有大量未定义行为,使用不当可能产生重大安全隐患。
本文将根据八篇前沿论文,总结提出八种比较新的软件安全缺陷检测技术和算法。
1、基于XML的软件安全检测[1]软件静态检测是从软件代码和结构中找出安全缺陷的重要手段。
从安全规则的角度,提出了基于XML(eXtensible Markup Language)中间模型的静态检测方法。
该方法将C/C++源代码解释为XML中间模型,将安全规则转化为缺陷模式,利用Xquery 查询表达式对软件安全缺陷进行定位。
基于该方法的原型系统检验结果表明:该方法能够有效地检测出违反安全规则的软件缺陷,并具有安全规则可定制的特点。
航天型号软件等安全关键(Safety-Critical)软件中广泛使用的C/C++语言并不是一种安全编程语言,一个重要的原因在于其标准中存在大量未定义行为和不安全用法,使用不当将产生严重的安全隐患。
当前,避免这些安全隐患的通常做法是制定针对C/C++语言编程的安全子集,在编写代码阶段加以限制和规范。
软件质量评估模型综述及其应用研究

软件质量评估模型综述及其应用研究随着信息时代的到来,软件应用领域越来越广泛,而软件的质量成为人们关注的焦点之一。
通过软件质量评估,可以衡量软件产品的质量,从而指导软件开发过程中的改进和优化。
本文将对软件质量评估模型进行综述,并探讨其在实际应用中的研究进展。
一、软件质量评估模型概述软件质量评估模型指对软件进行质量评价的方法论,是对软件质量的量化分析和评价。
根据评估模型的不同,软件质量可以从不同角度来进行评估。
常用的软件质量评估模型包括CMMI、ISO9001、ISO15504、ISO9126等。
1.1 CMMICMMI级别划分了软件过程改进的五个级别:初始级、管理级、定量级、优化级和最高级别。
CMMI可以对软件开发过程进行评估和监控,从而提高软件开发的效率。
1.2 ISO9001ISO9001是国际标准化组织制定的一种质量管理体系标准。
ISO9001可以对软件产品质量进行评估,同时也可以提高软件开发过程的效率,确保软件产品的质量。
1.3 ISO15504SPICE(软件过程改进和能力确定)定位于ISO/IEC 15504是一套包含多个模型的软件过程能力评估(PA)框架。
通过评估软件过程的能力水平,提高软件产品的质量。
1.4 ISO9126ISO9126定义了软件产品质量的六个维度:功能性、可靠性、可用性、可维护性、可移植性和效率。
这些维度可以用于量化和评估软件产品的质量。
二、软件质量评估模型的应用研究软件质量评估模型在实际应用中有着广泛的研究和应用。
下面就结合实际应用来探讨其中的研究进展。
2.1 软件缺陷预测软件缺陷预测是软件质量评估的一个重要研究方向。
通过对软件质量的评估,可以预测软件缺陷的发生,从而提前发现并解决问题。
目前,有很多基于机器学习的软件缺陷预测模型被提出。
例如,支持向量机、人工神经网络和决策树等。
这些模型通过对软件质量数据的训练,可以识别软件缺陷的出现概率,从而提高软件质量。
2.2 软件功能测试软件功能测试是软件质量评估的另一个重要研究方向。
基于模型的系统工程(mbse)方法论综述_概述说明

基于模型的系统工程(mbse)方法论综述概述说明1. 引言1.1 概述引言部分主要旨在介绍本篇长文的主题——基于模型的系统工程(MBSE)方法论,并概述文章的结构和目的。
MBSE是一种系统工程方法论,通过建立和使用模型来描述、分析、设计和验证系统,以提高系统开发过程中的效率和质量。
1.2 文章结构本文将按照以下结构展开对MBSE方法论的综述。
首先,我们将对系统工程和模型驱动工程进行简介,为读者提供一定背景知识。
接着,我们将详细探讨MBSE 方法论的定义与特点。
随后,我们将重点关注MBSE方法论中的三个关键要点:模型建立与表示、模型验证与验证以及模型驱动设计与开发。
最后,在应用层面上,我们将通过案例分析来展示MBSE方法论在不同行业领域中的应用情况。
最后一部分是结论与展望,在此部分我们将总结文章中阐述的观点和发现,并对MBSE方法论未来发展进行展望。
1.3 目的本文旨在全面回顾和概述基于模型的系统工程(MBSE)方法论,并探索其在实践中存在的关键要点和挑战。
同时,本文也将通过应用案例分析,展示MBSE 方法论在不同行业领域中的应用情况。
通过阅读本文,读者可以深入了解MBSE方法论的定义、特点以及其对系统工程过程的价值和影响。
最后,我们希望能为读者提供对MBSE方法论发展趋势的展望,引发更多关于此领域未来可能性的思考。
2. 基于模型的系统工程方法论概述2.1 系统工程简介系统工程是一门综合性学科,它解决了复杂系统设计和开发过程中遇到的各种问题。
它通过从整体上考虑、分析和优化系统的需求、功能、结构和性能,以及在整个生命周期中管理系统各个方面的交互作用,实现了有效的系统集成与开发。
2.2 模型驱动工程概念模型驱动工程(Model-Driven Engineering, MDE)是一种软件开发方法,其核心理念是将模型作为软件开发过程中的主要产物和交流媒介。
MDE通过建立抽象、可执行的模型来描述系统需求、设计和实现,并通过自动化转换或代码生成来实现软件开发生命周期中的各个阶段。
基于经验的软件测试执行工作量估算模型的开题报告

基于经验的软件测试执行工作量估算模型的开题报告一、选题背景软件测试是保证软件质量的重要手段之一,测试执行是软件测试中不可或缺的一个环节。
因此,为了正确评估和计划测试项目,准确的测试执行工作量估算显得尤为重要。
当前,国内外已有一些软件测试工作量估算模型的研究和应用,但大多数模型只考虑了项目规模和人力因素,并未充分考虑特定领域的测试特征及其影响因素。
因此,本课题旨在建立一种基于经验的软件测试执行工作量估算模型,以提高测试估算的准确性和可靠性。
二、研究内容1. 对国内外现有的软件测试工作量估算模型进行综述,分析其优缺点。
2. 通过对测试实践的研究和分析,确定对软件测试执行工作量影响的关键因素,并建立与之对应的指标体系。
3. 收集实际项目中的测试执行数据,对数据进行统计和分析,构建基于经验的软件测试执行工作量估算模型。
4. 通过实验验证模型的性能和可靠性,比较其与其他测试工作量估算模型的优劣。
三、研究意义1. 为测试团队提供准确可靠的测试执行工作量估算,避免测试过程中出现资源不足等问题,保证测试质量。
2. 提高测试进度的可控性,将测试时间和成本降至最低,节约企业资源。
3. 拓宽测试领域的研究方向,推动中国软件测试领域的发展。
四、研究方法1. 文献综述法:对国内外现有的软件测试工作量估算模型进行综述和分析,找出有效因素,为模型的建立提供理论依据。
2. 问卷调查法:对测试专家进行问卷调查,获取实际项目中的测试数据和测试经验,提供实践支持。
3. 统计分析法:对收集到的数据进行统计学和数据挖掘分析,从中找出软件测试执行工作量的关键影响因素。
4. 建模法:将以上分析结果综合起来,建立基于经验的软件测试执行工作量估算模型,通过实验验证其可靠性和有效性。
五、预期成果1. 建立一种基于经验的软件测试执行工作量估算模型,以确定测试执行工作量的关键影响因素,并建立对应的指标体系。
2. 通过对实际项目数据的分析和实验验证,验证模型的准确性和可靠性,为软件测试的管理提供支持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于模型的测试综述2016年1月摘要面向对象软件开发应用越来越广泛,自动化测试也随之被程序员认可和接受,随之而来的就是基于UML的软件开发技术的大范围普及和基于模型的软件测试技术的普遍应用。
基于模型的测试是软件编码阶段的主要测试方法之一,具有测试效率高、排除逻辑复杂故障测试效果好等特点。
本文描述了基于模型的测试的模型以及建模标准,并介绍基于模型的测试的基本过程以及支持工具,同时通过七个维度对基于模型的测试方法进行描述。
最后分析基于模型的测试的优缺点并列举了应用案例。
关键词:软件测试,基于模型的测试,软件模型,测试工具目录摘要 (I)1 引言 (2)2 基于模型的测试、模型以及建模标准 (2)2.1基于模型的测试 (2)2.2基于模型的测试的模型 (3)2.3建模标准 (4)3 基于模型的测试的基本过程及支持工具 (5)3.1基于模型的测试的基本过程 (5)3.2支持工具 (6)4 分类 (7)4.1 模型主体 (7)4.2 模型冗余程度 (7)4.3 模型特征 (7)4.4 模型表示法 (7)4.5 测试用例选择标准 (8)4.6 测试用例生成技术 (8)4.7 联机、脱机测试用例生成 (9)5 基于模型的测试的工具Spec Explorer (9)5.1 Spec Explorer (9)5.2 连接测试用例和待测系统 (9)5.3 静态模型和实例模型 (11)6 基于模型的测试的优缺点 (11)参考文献 (13)1 引言在软件开发的生命周期中,测试是一个非常重要的阶段。
软件测试[1]通过为特定测试目的而设计的测试用例的执行情况,与预期的软件行为进行一致性对比,从而判定软件错误所在,以此确保软件的可靠性和正确性。
由于软件产品的固有的复杂性质,软件测试的难度也就不言而喻。
传统的测试方法被认为是繁琐的、强工作量且容易出错。
应运而生的基于模型的测试开始受到日渐广泛的关注。
基于模型的测试(Model-Based Testing)[2]是一种系统化的测试方法,可被应用于软件生命周期早期阶段的产品的测试,并且它使完全自动化测试成为可能,其特点是:在产生测试例和进行测试结果评价时,都是根据被测试应用程序的模型及其派生模型(一般称作测试模型)进行的。
基于模型的测试深受工业界的青睐,原因如下:一是工业界通常需要验证软件产品的系统行为。
在产品设计的早期,基于模型的测试的使用有利于帮助找出不清晰的、易存在二义性的软件系统规格说明(“即编码前的分析设计模型/文档”)。
二是基于模型的测试方法使得大量不重复的、有意义的测试用例产生变得可能。
三是使用基于模型的测试一旦系统规格说明发生改变,只需要对测试模型进行修改就可以轻松地达到更新测试用例的目的。
本文组织如下,首先介绍了基于模型的测试及其特点,分析了主要的测试模型及如何选择合适的测试模型,重点是有限状态机模型、UML模型和马尔可夫链模型,并且提出了建模的标准;接着介绍基于模型的测试的基本过程以及支持工具,再通过七个维度对基于模型的测试方法进行描述,并对每一个维度探讨了可能取值,然后与其他软件测试技术相比,分析基于模型的测试的优缺点,最后列举了一些基于模型的测试的应用案例。
2 基于模型的测试、模型以及建模标准2.1基于模型的测试首先应该要明确软件模型的概念,是指用抽象化的方式对软件行为和软件结构进行阐述,软件行为可以通过一系列的输入输出逻辑和数据流分析来表示,软件结构则是通过部署图、流程图等图形方式直观表述,基于模型的测试就是通过上述两种抽象化方式产生测试用例。
相比于针对程序代码本身的测试,而基于模型的测试方法不仅可以有效地提高测试效率,提高测试例生成的自动化程度,进行测试失效辨识,也有利于评价测试结果。
基于模型的测试是对被测系统的模型化,然后根据模型特性,完全或者部分地自动生成测试用例的一种软件测试技术。
基于模型的测试是一个轻量级的,形式化的验证软件系统的方法。
首先,基于模型的测试对待测软件系统(通常被称为System Under Test,简称SUT)进行形式化的建模,设计出机器可读的模型;其次,和其他形式化方法比,基于模型的测试并不致力于让待测软件系统与规格说明在所有可能情况下都保持一致,而是系统化的从模型生成一组测试用例,使用这组测试用例测试待测软件系统,得到充分的证据说明待测系统的行为与模型期望是一致的。
2.2基于模型的测试的模型理想的模型需要容易被测试人员理解,能够把大的复杂的问题描述成小的简单的系统,最好还是以一种测试用例生成工具方便识别的形式。
想要同时满足以上所有的特性是很困难的,但是可以把几种不同的模型整合成一个,扬长避短地得到理想模型。
在基于模型的测试中使用过的模型可能有几十甚至上百种,我们不可能也没有必要去逐一了解,Mark Utting和Bruno Legeard把它们大致分为以下几种[3]:表2.1 MBT模型分类基于模型的测试中使用的典型模型有: 有限状态机(FSM,Finite State Machine)、UML模型和马尔可夫链等模型。
1.有限状态机该类模型是用状态转移图来表示,并通过状态的覆盖来生成测试用例。
这种模型可以将测试用的数据结合图的遍历算法自动生成输入的序列进行相应测试。
该种测试模型可以充分结合形式语言与自动机理论来进行分析和设计,适用范围主要是反应式的软件,但由于模型构造的工作规模比较大,自动构造就成为了这一模型的一个关键点。
2.UML模型又称为统一建模语言,是软件工程中面向对象设计与分析中常用到的规范化建模语言。
该模型主要是利用状态图进行行为建模,状态图可以看作是有限状态机的扩展,强调了对复杂实时系统进行建模,提供了层次状态机的框架,即一个单独状态可以扩展为更低级别的状态机,并提供了并发机制的描述[4],因此UML使用状态图作对单个类的行为建模。
3.马尔可夫链是一种以统计理论为基础的统计模型,可以描述软件的使用在软件统计测试中得到了广泛应用。
马尔可夫链实际上是一种迁移具有概率特征的有限状态机,不仅可以根据状态间迁移概率自动产生测试例,还可以分析测试结果对软件性能指标和可靠性指标等进行度量[5,6]。
另外,马尔可夫链模型适用于对多种软件进行统计测试,并可以通过仿真得到状态和迁移覆盖的平均期望时间,有利于在开发早期对大规模软件系统进行测试时间和费用的规划。
马尔可夫链是统计测试的基本模型,在净室软件工程中得到了深入研究,在微软、Raytheon 及美国联邦航空署(FAA)都得到了成功应用[7]。
马尔可夫链可以用随机迁移矩阵或者带迁移概率的状态迁移图表示。
基于马尔可夫链的测试充分性准则一般要求测试过程中对马尔可夫链迁移的覆盖与实际使用相同[6]。
4.文法模型可以描述程序的语法。
由于不同的文法等价于不同的状态机因此也可以视为状态机模型的变体。
有关基于文法的测试可见文[8],这方面研究工作相对较少。
2.3建模标准随着系统的增长,建模是捕获和再利用有关系统知识的一个非常经济的手段。
对于一个测试团队来说,这些信息是非常宝贵的:一个测试工程师了解被测系统的行为需要占据的工作量,一旦这个信息被理解,该如何保存给下一个工程师、下一个版本或者更改要求呢?如果你处于测试的设计阶段,那么你是幸运的。
但是更常见的是,这些信息被埋藏在一个测试脚本中,一旦改变或者丢失就只能等待重新发现。
测试团队通过给系统构建一个给予指定输入得到所需行为的模型,可以获得有重用的最大优势就是这些工作都不会丢失。
一旦这个测试周期停止,下一周期就可以迅速开始。
如果该产品具有新的功能,它们可以逐步加入到模型中;如果产品的质量需要提高,那么模型需要改善和扩大测试;如果有新的人员加入到测试团队中,他们可以通过回顾模型迅速投入进来。
一旦你决定想要为被测系统建模,下一步建模的时候要思考这个系统管理的数据、执行的操作和与它通信的子系统。
下面给出几条原则:1.抽象原则,通常不把输入、输出纳入到模型中。
2.模型与被测系统不必完全一致。
3 基于模型的测试的基本过程及支持工具3.1基于模型的测试的基本过程基于模型的测试的基本过程共有6个步骤,如图2.1所示,其步骤如下:1.分析被测系统首先分析被测软件的系统特性,主要分析的是开发方式,主要有所采用的开发技术(面向对象、面向过程),开发语言,开发系统环境等。
然后根据分析结果,结合各个模型的特性选择合适的模型作为测试用例生成的模型。
2.建立抽象模型根据所选择的模型对被测软件进行建模,可以进一步分析该模型是否适合软件。
模型选择和建立模型可能是个反复的过程,只有在充分了解该软件系统的特点和各个模型的特点才可能为软件系统建立最恰当的模型。
这个模型是一个抽象模型,因为它应该比待测软件系统(通常被称为System Under Test,简称SUT)本身更小,更简单,它只关注关键环节。
建立完成后,需要检查该模型与所期望的行为是否一致。
3.生成抽象测试从模型生成抽象测试,必须选择一些测试选择标准,因为通常有无限多的可能的测试。
比如使用有限状态机FSM模型时,根据一定的覆盖准则遍历状态间的迁移所获得的转换路径就是测试路径,而且在使用FSM模型时选择不同的测试覆盖准则所产生的测试用例是不同的。
4.具体化抽象测试基于模型的测试的第四步是把高层的抽象测试转化为可执行的具体测试。
主要有两种方法:(1)使用模板和映射抽象测试的变换工具;(2)通过一些环绕在SUT 和代码实现间的适配器。
5.执行具体测试基于模型的测试的第五步是在被测系统上执行具体的测试用例,不管是在在线的还是离线的基于模型的测试,都可以使用测试执行工具和方法。
6.分析测试结果得到测试结果后,必须确定产生该故障的原因并采取纠正措施,因为有可能是建模时的缺陷模型导致的测试用例本身故障。
然后根据测试结果和分析结果,评估被测软件的质量,并且指出出错的地方和提出改进的意见和建议。
图2.1 基于模型的测试过程3.2支持工具基于模型的软件测试必须有相关工具支持。
当前支持基于模型的软件测试工具中比较具有代表性的有:1)支持状态机模型的工具。
包括,Software Engineering Technology 的测试工具toolSET_Certify运行于RISC6OOO和SUN 平台;现在此工具属于G-Lab,并已经提供了对统计测试的支持;IBM 的GOTCHA,可以根据用户事先确定的测试充分性准则进行基于软件状态模型的测试例生成;IBM的TCBean 是一个提供测试脚本管理功能的基于状态机的测试引擎。
2)支持马尔可夫链模型的工具。
包括,Cleanroom Software Engineering 的CleanTest,支持统计测试,是商用的使用模型及统计测试例生成工具;IBM 的Cleanroom Certification Assistant,可以自动化统计验证过程,通过使用概率分布产生测试例,并对测试结果进行分析。