基于故障模型的嵌入式软件缺陷分类研究

  摘要:针对嵌入式软件的特点,通过对现有一些软件缺陷分类方法进行研究分析,本文提出了一种基于故障模型的缺陷分类方法,这种方法在软件测试中能有效的发现一些极易疏忽的软件故障。   关键词:嵌入式;软件缺陷;故障模型;缺陷分类   中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2011) 24-0000-01   Embedded Software Defect Classification Study Based on Fault Model   You Wenlin   (302 Design and Research Institute,Guiyang550009,China)   Abstract:Aiming at the characteristics of embedded software,based on existing software defect classification method to carry on the research analysis,this paper presents a method based on fault model of the defect classification method,this method in software testing can effectively find some very easy to neglect software fault.   Keywords:Embedded;Software defect;Fault model;Defect classification   一、引言   在嵌入式领域目标系统的应用系统日益复杂,开发技术日新月异,同时硬件发展的日益稳定,而软件缺陷问题却日益突出,软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入式系统的测试势在必行。但由于嵌入式系统具有实时性、内存不丰富、I/O通道少,CPU种类繁多等特点,相对非嵌入式软件开发和策略有很大不同,测试更复杂。   针对嵌入式软件难测的特点,使用有效的测试策略是唯一的出路,而面向故障的软件测试方法是比较有效的方法之一。面向故障的测试包括故障模型和基于该模型的软件测试方法。软件的故障模型一直是软件测试的瓶颈,而如何对软件故障进行分类,是软件故障模型研究的关键点之一。   二、软件缺陷分析   (一)软件缺陷   软件缺陷不只是程序中存在的错误或疏忽,还包括在软件相关产品中存在的错误。在软件工程整个生命周期中,任何背离需求,无法正确完成用户所要求的功能问题,都属于缺陷范畴。   (二)软件缺陷的分类   软件缺陷的分类方法很多,各种分类方法的目的不同,观察问题的角度和复杂程度也不一样。程序是软件的具体表现,所以为了便于测试,其定义的故障模型必须落实到程序上,也就是说,故障是程序中某个或某几个程序元素的错误。定义在程序中的故障必须满足下列几个条件:1.故障必须是和实际是对应的。2.故障必须能引起错误。3.故障的个数是可以容忍的。   根据以上对缺陷的分析和研究以及项目研究的特点,我们尝试对缺陷进行一种新的分类,即按照故障模型来对缺陷进行分类。   三、缺陷分类模型   根据嵌入式软件应用的特点,可以分为以下几类型,分别是存储型、计算型、分支型、循环型、功能型、死锁型。   (一)存储型   包括坏的存储和存储泄露错误;坏的存储指没有指向存储块的指针被释放,或用Delete释放被new[]定义的简单数组等。存储泄漏指动态分配的指针变量没有释放,造成存储泄漏。   (二)计算型   包括变量的定义与使用方面的错误、数据的冗余、全局变量与局部变量(静态变量与动态变量)的混淆、数组变量的越界错误、用错指针变量、数据类型不匹配的错误、还有数据操作方面错误,包括函数调用参数传递错误、赋值语句错误等,该模型应该尽可能包括关于计算方面的各种错误。   (三)分支型   主要是对分支结构进行建模,因为分支结构会在整个程序中占有很大比例,所以这种模型的建立是非常重要的。该模型中应该包括谓词的错误、包括判定变量被赋予了错误的值、谓词操作符不正确或少操作符、谓词中的变量不正确或少变量、谓词的结构不正确(if else 不匹配,分号位置不对)、少默认情况或默认情况不对,少动作或动作不对、出现额外动作等故障。   (四)循环型   这也是一种程序控制流的模型,是对程序中同样占很大比例的循环结构建立的模型。主要包括永不循环故障或死循环故障,这主要是由循环变量引起的。因此这种模型中包括的物理故障有:循环谓词中循环变量被赋予了错误的值、循环谓词中操作符不正确或缺少操作不符、谓词中的变量本省不正确或少变量。   (五)功能型   是指一些软件功能或性能不完善的故障。具体包括功能或性能规定的有错误、遗漏了某些功能、规定的某些冗余的功能、为用户提供的信息有错误、对意外情况的处理有错误、设计界面用户不满意、功能的结果不完善、提供的用户接口不完善等等。在很多应用商业软件中,这种故障模型所覆盖的故障占有相当大的比例。   (六)死锁型   对于一些实时控制程序,如果需同时处理的任务较多的时候,往往需要多线程进行并行处理,当遇到多个线程相互等待的时候就进入了死锁。产生死锁的根本原因在于系统提供的资源少并发线程所要求的该类资源数。为了测试死锁是否发生,当线程进行资源请求时检查并发进程组是否构成资源的请求和保持环路。有限状态转移图和petriNet等技术都可用来有效的判断死锁发生。   四、结束语   软件缺陷作为软件开发过程的产物隐含了许多的信息,通过对这些缺陷的深入分析,不仅可以发现引发软件缺陷的根本原因,还能对软件进行更有效的测试。本文针对嵌入式软件的特点,提出按故障模型分类的嵌入式软件缺陷分类方法,在嵌入式软件测试中能有效的发现一些极易疏忽的软件故障。   参考文献:   [1]王丽,赵卢霞,李红卫,王梅娟.嵌入式软件测试工程化研究与实践[J].计算机应用,2009,29(z2)   [2]梁成才,章代雨,林海静.软件缺陷的综合研究[J].计算机工程,2006,32(19)   [作者简介]游文麟(1980.12-),男,本科,软件开发。      

  摘要:针对嵌入式软件的特点,通过对现有一些软件缺陷分类方法进行研究分析,本文提出了一种基于故障模型的缺陷分类方法,这种方法在软件测试中能有效的发现一些极易疏忽的软件故障。   关键词:嵌入式;软件缺陷;故障模型;缺陷分类   中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2011) 24-0000-01   Embedded Software Defect Classification Study Based on Fault Model   You Wenlin   (302 Design and Research Institute,Guiyang550009,China)   Abstract:Aiming at the characteristics of embedded software,based on existing software defect classification method to carry on the research analysis,this paper presents a method based on fault model of the defect classification method,this method in software testing can effectively find some very easy to neglect software fault.   Keywords:Embedded;Software defect;Fault model;Defect classification   一、引言   在嵌入式领域目标系统的应用系统日益复杂,开发技术日新月异,同时硬件发展的日益稳定,而软件缺陷问题却日益突出,软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入式系统的测试势在必行。但由于嵌入式系统具有实时性、内存不丰富、I/O通道少,CPU种类繁多等特点,相对非嵌入式软件开发和策略有很大不同,测试更复杂。   针对嵌入式软件难测的特点,使用有效的测试策略是唯一的出路,而面向故障的软件测试方法是比较有效的方法之一。面向故障的测试包括故障模型和基于该模型的软件测试方法。软件的故障模型一直是软件测试的瓶颈,而如何对软件故障进行分类,是软件故障模型研究的关键点之一。   二、软件缺陷分析   (一)软件缺陷   软件缺陷不只是程序中存在的错误或疏忽,还包括在软件相关产品中存在的错误。在软件工程整个生命周期中,任何背离需求,无法正确完成用户所要求的功能问题,都属于缺陷范畴。   (二)软件缺陷的分类   软件缺陷的分类方法很多,各种分类方法的目的不同,观察问题的角度和复杂程度也不一样。程序是软件的具体表现,所以为了便于测试,其定义的故障模型必须落实到程序上,也就是说,故障是程序中某个或某几个程序元素的错误。定义在程序中的故障必须满足下列几个条件:1.故障必须是和实际是对应的。2.故障必须能引起错误。3.故障的个数是可以容忍的。   根据以上对缺陷的分析和研究以及项目研究的特点,我们尝试对缺陷进行一种新的分类,即按照故障模型来对缺陷进行分类。   三、缺陷分类模型   根据嵌入式软件应用的特点,可以分为以下几类型,分别是存储型、计算型、分支型、循环型、功能型、死锁型。   (一)存储型   包括坏的存储和存储泄露错误;坏的存储指没有指向存储块的指针被释放,或用Delete释放被new[]定义的简单数组等。存储泄漏指动态分配的指针变量没有释放,造成存储泄漏。   (二)计算型   包括变量的定义与使用方面的错误、数据的冗余、全局变量与局部变量(静态变量与动态变量)的混淆、数组变量的越界错误、用错指针变量、数据类型不匹配的错误、还有数据操作方面错误,包括函数调用参数传递错误、赋值语句错误等,该模型应该尽可能包括关于计算方面的各种错误。   (三)分支型   主要是对分支结构进行建模,因为分支结构会在整个程序中占有很大比例,所以这种模型的建立是非常重要的。该模型中应该包括谓词的错误、包括判定变量被赋予了错误的值、谓词操作符不正确或少操作符、谓词中的变量不正确或少变量、谓词的结构不正确(if else 不匹配,分号位置不对)、少默认情况或默认情况不对,少动作或动作不对、出现额外动作等故障。   (四)循环型   这也是一种程序控制流的模型,是对程序中同样占很大比例的循环结构建立的模型。主要包括永不循环故障或死循环故障,这主要是由循环变量引起的。因此这种模型中包括的物理故障有:循环谓词中循环变量被赋予了错误的值、循环谓词中操作符不正确或缺少操作不符、谓词中的变量本省不正确或少变量。   (五)功能型   是指一些软件功能或性能不完善的故障。具体包括功能或性能规定的有错误、遗漏了某些功能、规定的某些冗余的功能、为用户提供的信息有错误、对意外情况的处理有错误、设计界面用户不满意、功能的结果不完善、提供的用户接口不完善等等。在很多应用商业软件中,这种故障模型所覆盖的故障占有相当大的比例。   (六)死锁型   对于一些实时控制程序,如果需同时处理的任务较多的时候,往往需要多线程进行并行处理,当遇到多个线程相互等待的时候就进入了死锁。产生死锁的根本原因在于系统提供的资源少并发线程所要求的该类资源数。为了测试死锁是否发生,当线程进行资源请求时检查并发进程组是否构成资源的请求和保持环路。有限状态转移图和petriNet等技术都可用来有效的判断死锁发生。   四、结束语   软件缺陷作为软件开发过程的产物隐含了许多的信息,通过对这些缺陷的深入分析,不仅可以发现引发软件缺陷的根本原因,还能对软件进行更有效的测试。本文针对嵌入式软件的特点,提出按故障模型分类的嵌入式软件缺陷分类方法,在嵌入式软件测试中能有效的发现一些极易疏忽的软件故障。   参考文献:   [1]王丽,赵卢霞,李红卫,王梅娟.嵌入式软件测试工程化研究与实践[J].计算机应用,2009,29(z2)   [2]梁成才,章代雨,林海静.软件缺陷的综合研究[J].计算机工程,2006,32(19)   [作者简介]游文麟(1980.12-),男,本科,软件开发。      


相关文章

  • 软件评测中心发展意义
  • 随着软.硬件技术的发展计算机的应用领域越来越广,而其中软件的功能也越来越强大,软件也越来越复杂.这就使保证软件的质量,保证软件的高度可靠性,面临巨大的挑战.特别是诸如通讯.交通.金融.医疗.军事.航空航天等行业,软件的微小瑕疵就可能造成对生 ...查看


  • 软件测试工具
  • 随着软件测试的地位在软件开发过程中逐步提高,重要性逐步显现,测试工具的应用也已经成为了普遍的趋势.本文主要对软件测试工具的发展进行了介绍,一起来看 软件测试是软件工程中的一个重要过程,也是保证软件质量的重要手段.随着软件测试的地位在软件开发 ...查看


  • 石油管道无损检测中的漏磁在线检验方法
  • 摘 要:当前,石油和天然气成为我国的主要能源支柱,其传输的方式也以管道传输为主.在长距离的管道传输当中,经常会发生管道的损害或泄露,因此有必要对其进行无损检测.在无损检测中,漏磁在线检验方式是较为有效的一种检测方式,为此,对其研究背景.应用 ...查看


  • 北大青鸟软件测试基础知识
  • 1.什么是软件的特点: 1> 2> 3> 4> 5> 6> 7> 软件是一种逻辑实体 软件的生产和硬件的生产不同 软件运行和使用没有机械磨损和老化 软件的开发和运行对计算机系统有一定的依赖性 软件是 ...查看


  • 软件测试需要的技能有哪些?需要学些什么
  • 软件测试需要的技能有哪些?需要学些什么 软件测试工程师学习大纲 一.软件测试的原理 v 软件工程:软件的含义.软件开发过程的特性 .软件生命周期模型.软件管理过程软件质量和质量保证:软件质量就是客户的满意度 .质量的概念.软件质量的内涵.质 ...查看


  • 基于Flexsim的图书配送中心作业流程优化研究
  • 摘 要 本文提出了Flexsim模拟仿真软件对于图书配送中心仓储研究的作用以及影响,明确了图书配送中心实施仓储自动化的优势所在以及实施仓储自动化的可行性. 关键词 现代仓储 模拟仿真 仓储自动化 中图分类号:F253.4 文献标识码:A 一 ...查看


  • 软件工程师论文
  • 本科学年论文 论文题目: 软件工程师 学生姓名: 学 专 班 号: 业: 级: XXX XXXXX 软件工程 软件 1202 班 XXX 指导教师: 完成日期: 2013 年 11 月 20 日 软件工程专业本科学年论文 软件工程师 目录 ...查看


  • 压电换能器的热仿真分析
  • 第35卷第4期2009年7月中国测试 CHINA MEASUREMENT &TEST Vol.35No.4July ,2009 压电换能器的热仿真分析 陈 摘 飞,傅波 (四川大学制造科学与工程学院,四川成都610065) 要:压电 ...查看


  • 计算机控制技术的发展与应用(合肥学院)
  • HEFEI UNIVERSITY 计算机控制在生产工业中的应用 题 目: 系 别: 电子信息与电气工程系 专业(班级): 自动化 完成时间: 2014-03-20 目录 摘要 ................................ ...查看


热门内容