企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题基于汽车音响软件测试技术的设计
技术领域
行业
简介本文基于从事汽车音响软件测试工作的基础上,介绍软件测试的基本测试过程和测试大纲的设计以及测试的实施和测试结果的报告,对提高软件测试质量具有一定的现实意义。
内容

                      
1引言

软件测试是保证软件质量和可靠性的关键性技术,而测试阶段的测试,又是对软件需求规格说明、设计和编成进行最终评价的一个机会。大量统计资料表明,软件测试的工作量往往占整个软件开发的40%以上,在极端情况下,测试成本可高达相当于软件工程其它步骤总成本的35倍。软件测试的工作无疑应予高度重视,对于汽车音响系统软件更是如此。在软件产品的测试方面均使用软件工程中提出的两种测试方法进行测试,即白盒测试和黑盒测试。白盒测试是已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,白盒测试又叫结构测试。黑盒是已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求,黑盒测试又叫功能测试。对汽车音响软件的测试就采用的是黑盒测试方法。


2测试准则

一个软件实现后,通过测试来实现该软件是个合格的产品,但是作为汽车音响软件,更需要通过软件测试来控制它的质量. 软件测试的主要原则是:

²        软件测试是为了发现错误而执行程序的过程。

²        测试是为了证明程序有错,而不是证明程序无错误。

²        一个好的测试用例是在于它能发现至今未发现的错误。

²        一个成功的测试是发现了至今未发现的错误的测试。


3软件测试的基本过程

在汽车音响量产以后有时因为软件故障造成某些功能失常遭到客户的投诉造成的损失严重。所以保证汽车音响软件质量的可靠性尤为重要,虽然造成软件质量低劣原因可能有开发人员的责任但如果在软件测试上加强力度,使用正确的测试方法对控制软件质量是非常有效的。

软件测试的包括的基本测试活动:1,拟定软件测试计划。2,编写软件测试流程。3,设计和生成测试用例。4,实施测试。5,生成软件问题报告。

汽车音响的软件测试过程实际上是与整个软件开发过程是平行的。在需求分析阶段开始制定相应的软件测试计划,然后由一位对整个系统设计熟悉的设计人员编写测试大纲,明确测试的内容和测试通过的准则,设计完整合理的测试用例,以便系统实现后进行全面测试。充分的准备工作可以有效地克服测试的盲目性、缩短测试周期、提高测试效率、并且起到测试文档与开发文档的互查的作用。

软件测试的实施阶段是由一系列的测试周期组成的,在每个测试周期中,软件测试工程师将依据预先编制好的测试大纲和准备好的测试用例,对每次纠正了被测试软件的已知错误之后生成的更新版本进行新一轮的测试,理论上,系统需要在达到无错误时方可终止测试,但实际上,由于人们无法证明系统是否无错。因此,终止测试只是标志着系统的当前版本的质量经过确认已经达到预期的要求,不再对其做任何修改。

 


                       

     软件测试过程中的各项测试活动


4软件测试用例的设计

在软件测试过程中,软件测试用例的设计是非常关键的一步。测试用例设计的好坏直接影响到以后的测试质量。测试用例应该包括正常范围测试用例和异常范围测试用例。正常范围测试用例的目的是用来证明软件响应正常输入和条件的能力。异常测试用例的目的是要验证软件响应异常输入和条件的能力。在汽车音响软件的测试中采用黑盒的测试方法,其策略包括:(1)用等价分类的方法和边值分析法提出基本的测试用例。(2)用猜测法补充新的测试用例。

汽车音响包括内藏CD,内藏MD,TUNER,内藏MP3,外接CD_Changer,MD_changersource,在对其中的某一功能的软件进行测试的时候,提前都要彻底详细阅读并理解这部分的式样说明书,对每个部分都要编写详细的测试用例。下面以内藏CD为例进行简单介绍。

1,  完整的测试用例必须包括对输入数据的描述和由这些输入数据应产生的程序正确结果

的精确描述,以验证程序的输出是否与预期的正确结果一致。在对内藏CD这一功能进行编写测试用例时,要包括所有在CD source 下进行的所有操作所产生的动作结果和显示结果。比如在CD正常Play状态下,进行快进、快退等按键,样机要进行快进快退动作,按键发出有效的BEEP音,同时在显示上要与显示式样书上的要求一致。在写测试用例时按键是否发有效音,进行什么动作,进行什么样的显示画面,都要一一列出。当在CD source 下进行source 切换时,可以切换到TUNER source ,如果外接CD_changer,也可以切换到CD_changer source下。切换到不同的source 进行不同source 相应的显示。关于CD正常范围测试的测试用例,如下图所示:

 

 

 

 

软件版本号:                                                评价者:        日期:

当前状态

按键操作

 

           CD 通常PLAY

 

评价结果(OK/NG

Up

0.5秒未满

0.5秒以上

Track Up动作,开始下一曲的开头进行play.

Forward动作,现曲的结束进行下一曲的Forward动作

 

Down

0.5秒未满

 

0.5秒以上

Track Down动作。演奏时间不满一秒时,动作后进行前曲play

                演奏时间一秒以上时,从现曲开头play

Backward动作。当进行到当前DISC曲头时从头开始进行play

 

Source/

Power

2.5秒未满

25秒以上

Audio source 进行切换

Audio  Power Off

 

 

 

 

 

 2,在设计汽车音响软件的测试用例时不仅包括合理的操作,而且还要包括不合理的操作,因程序开发人员往往忽略的是对于不合理操作的处理,在软件功能测试的前期注重基本功能的测试,比如内藏CD正常播放,快进、快退等一些基本的功能都实现了之后,使用预期的不合理的操作进行测试会比合理的操作收获大。因为程序测试就是一个破坏的过程,其目的就是为了发现程序中更多的错误,所以除了测试一些合法操作外,还要对其进行破坏性测试,比如,把CD反插入mech中的动作和显示;把CD插入一半时强行脱出时的动作以及显示情况。如下为当时测试的部分破坏性测试(异常测试范围)的部分测试用例。

3,已使用的测试用例设计应予保留,当程序改错或者改进之后,需要进行重新测试时,可再次使用,以免重新编写测试用例。

 
5
软件测试的实施

²        测试人员要在测试之前仔细阅读汽车音响的相应资料,包括产品企划书,模式迁移表、以及在设计过程中形成的测试大纲,全面熟悉系统,编写测试计划,设计测试用例,做好测试前的准备工作。

²        当一个软件版本由开发人员那边提交到测试组这边的时候就要开始测试,按照测试计划进行,一般都是对每个版本,用编好的测试用例,客户方提供的产品企划书,客户方提供的模式迁移表等分别进行测试,最大程度的减少错误流出。

²        在进行测试时,要详细记录测试的环境、测试的过程,和测试中发现的错误。对于许多组织已经发现的比较经典的错误,连同测试报告、测试分析等都要保存起来了,正是每个问题迟早都要通过测试的,所以这样的文件都是以后测试有用的资源。

²        当每个软件版本的错误改正之后,提交给新一个软件版本,然后同样通过不同的测试手法,对其进行测试,并每次测试结束填好测试报告,

   
6
软件测试的结果与报告

将每次测试的结果都必须详细记录,对于测出的bug要做到描述准确。每次测试结束后要详细填写测试报告(buglist)。一个典型的测试报告应包括下面的信息:

²        被测试的项目的软件的当前阶段,测试机能,所测程序所使用的硬件模型。

²        负责项目和测试的人。

²        特殊的测试用例(包括它们的编号),还包括软件版本号和测试日期。

²        测试时所连接的设备以及型号。

²        测试结果,所有发现的错误,并包括错误的现象的描述和错误的数目以及产生错误的测试用例,任何测试操作的统计,包括错误出现的几率



  




7结束语

   我国软件行业迅猛发展,随着软件技术水平的提高,软件测试的地位和重要性将会越来越显著,虽然软件测试在软件开发中是很乏味的工作,但是对提高软件质量却有着不可低估的作用。开发一套汽车音响成本很高,低效率的软件测试已经远远不能满足需求,所以采用正确的软件测试方法可以显著提高软件测试的质量和效率,从而软件质量得到了很好的控制。

 


8参考文献

[1]冯建勋,  软件测试的规范化过程。   华南金融电脑,   2000910,第9

[2]陈志才,  作战软件的测试技术。    现代防御技术,       1995,第3