微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻橀弻鐔虹磼閵忕姵鐏嶉梺绋块椤︻垶鈥﹂崸妤佸殝闂傚牊绋戦~宀€绱撴担鍝勭彙闁搞儜鍜佸晣闂佽瀛╃粙鎺曟懌闁诲繐娴氶崢濂告箒濠电姴锕ら幊搴㈢閹灔搴ㄥ炊瑜濋煬顒€鈹戦垾宕囧煟鐎规洜鍠栭、姗€鎮欏顔锯偓鎾⒒閸屾瑧顦﹂柟璇х節閹兘濡疯瀹曞弶鎱ㄥ璇蹭壕閻庢鍠栭…鐑藉极閹邦厼绶炲┑鐘插閸氬懘姊绘担鐟邦嚋缂佽鍊歌灋妞ゆ挾鍊e☉銏犵妞ゆ挾濮烽敍婊堟⒑缂佹ê濮﹂柛鎾寸懇瀹曟繈濡堕崱娆戭啎缂佺虎鍙冮ˉ鎾跺姬閳ь剟鎮楀▓鍨灈妞ゎ厾鍏橀獮鍐閵堝懎绐涙繝鐢靛Т鐎氼喛鍊撮梻鍌氬€风粈渚€骞夐敓鐘茬闁糕剝绋戝婵囥亜閺冨倻鎽傞柛鐔锋噽缁辨捇宕掑顑藉亾閹间礁纾归柣鎴eГ閸ゅ嫰鏌ら幖浣规锭闁搞劍姊归妵鍕箻閸楃偟浠奸梺鎼炲妼閸婂潡寮诲☉銏╂晝闁挎繂妫涢ˇ銉╂⒑閽樺鏆熼柛鐘崇墵瀵寮撮悢铏诡啎闂佺粯鍔﹂崜姘舵偟閺囥垺鈷戠紒瀣儥閸庡繑淇婇锝囩疄鐎殿喛顕ч埥澶婎潩椤愶絽濯伴梻浣告啞閹稿棝鍩€椤掆偓鍗遍柛顐g箥濞撳鏌曢崼婵囧殗闁绘稒绮撻弻鐔煎礄閵堝棗顏�04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涢梺缁樺姉閸庛倝宕戠€n喗鐓熸俊顖濆吹濠€浠嬫煃瑜滈崗娑氭濮橆剦鍤曢柟缁㈠枛椤懘鏌嶉埡浣告殲闁绘繃娲熷缁樻媴閽樺-鎾绘煥濮橆厹浜滈柨鏃囶嚙閺嬨倗绱掓潏銊︻棃鐎殿喗鎸虫慨鈧柍閿亾闁归绮换娑欐綇閸撗呅氬┑鐐叉嫅缁插潡寮灏栨闁靛骏绱曢崢閬嶆⒑閸濆嫬鏆婇柛瀣尰缁绘盯鎳犻鈧弸娑㈡煟濞戝崬娅嶇€殿喕绮欓、妯款槼闁哄懏绻堝娲濞戞艾顣哄┑鐐额嚋缁茶法鍒掗鐔风窞濠电姴瀛╃€靛矂姊洪棃娑氬婵☆偅绋掗弲鍫曟焼瀹ュ棛鍘遍柣搴秵閸撴瑦绂掗柆宥嗙厵妞ゆ洖妫涚弧鈧繝纰夌磿閸忔﹢宕洪敓鐘茬<婵犲﹤鍟粻娲⒒閸屾瑧顦﹂柟纰卞亜鐓ら柕濞炬櫅绾剧粯绻涢幋娆忕仼闁绘帒鐏氶妵鍕箳閸℃ぞ澹曟繝鐢靛Л閸嬫捇姊洪鈧粔鎾倿閸偁浜滈柟鍝勭Х閸忓矂鏌涢悢鍝ュ弨闁哄瞼鍠栧畷娆撳Χ閸℃浼�14闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涢梺缁樺姉閸庛倝宕戠€n喗鐓熸俊顖濆吹濠€浠嬫煃瑜滈崗娑氭濮橆剦鍤曢柟缁㈠枛椤懘鏌嶉埡浣告殲闁绘繃鐗犲缁樼瑹閳ь剟鍩€椤掑倸浠滈柤娲诲灡閺呭爼骞嶉鍓э紲濡炪倖娲栧Λ娑㈠礆娴煎瓨鎳氶柡宥庣亹瑜版帗鏅查柛顐ゅ櫏娴犫晛顪冮妶鍡樷拹婵炶尙鍠庨~蹇撁洪鍛画闂佽顔栭崰妤呭箟婵傚憡鈷戦柤濮愬€曢弸鍌炴煕鎼达絾鏆鐐插暙椤粓鍩€椤掑嫬鏄ラ柨鐔哄Т缁€鍐┿亜韫囨挻锛旂紒杈ㄧ叀濮婄粯鎷呴搹鐟扮闂佽崵鍠嗛崹钘夌暦閹达箑绠荤紓浣贯缚閸橀亶姊洪棃娴ㄥ綊宕曢幎钘夋槬闁挎繂娲犻崑鎾斥枔閸喗鐏堝銈庡弮閺€杈ㄧ┍婵犲洤绠瑰ù锝呮憸閸樻悂姊虹粙鎸庢拱闁活収鍠氶懞杈ㄧ鐎n偀鎷绘繛杈剧到閹虫瑨銇愰幒鎴濈彉濡炪倖甯掗崐濠氭儗濞嗘挻鐓欓弶鍫熷劤閻︽粓鏌℃担绋库偓鍧楀蓟閵娾晜鍋嗛柛灞剧☉椤忥拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涢梺缁樺姉閸庛倝宕戠€n喗鐓熸俊顖濆吹濠€浠嬫煃瑜滈崗娑氭濮橆剦鍤曢柟缁㈠枛椤懘鏌eΟ鑽ゅ灩闁搞儯鍔庨崢閬嶆煟韫囨洖浠滃褌绮欓幃锟狀敍濮樿偐鍞甸柣鐔哥懃鐎氼厾绮堥埀顒勬⒑鐎圭媭娼愰柛銊ユ健閵嗕礁鈻庨幋鐘碉紲闂佽鍎虫晶搴g玻濡ゅ懏鈷掑ù锝呮啞閸熺偞銇勯鐐搭棦鐎规洘锕㈤弫鎰板幢濞嗗苯浜炬繛宸簼閸婂灚顨ラ悙鑼虎闁告梹纰嶇换娑㈡嚑椤掆偓閳诲牏鈧娲橀崹鍧楃嵁濮椻偓閹虫粓妫冨☉娆戔偓顓㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鈩冩珫濠电偞鍨崹娲煕閹达附鐓曟繛鎴炃氶惇瀣箾閸喐绀€闁宠鍨块幃娆戞嫚瑜戦崥顐︽⒑鐠団€虫灆闁告濞婇妴浣割潩鐠鸿櫣鍔﹀銈嗗坊閸嬫捇鏌i敐鍥у幋鐎规洖銈稿鎾Ω閿旇姤鐝滄繝鐢靛О閸ㄧ厧鈻斿☉銏╂晞闁糕剝銇涢弸宥夋倶閻愮紟鎺楀绩娴犲鐓熸俊顖濇娴犳盯鏌¢崱蹇旀珔闁宠鍨块、娆撴嚍閵夈儱鏀俊銈囧Х閸嬫盯鏁冮妷銉殫闁告洦鍨扮粻娑欍亜閹烘垵浜扮紒閬嶄憾濮婄粯鎷呯粵瀣秷閻庤娲橀敃銏ゃ€佸鎰佹▌闂佸搫琚崝鎴炰繆閸洖骞㈤柡鍥╁Х閻i箖姊绘笟鈧ḿ褔鎮ч崱娆屽亾濮樼厧鐏︾€规洘顨呴悾婵嬪礋椤掑倸骞堟繝鐢靛仜濡鎹㈤幋位澶愬閳╁啫寮挎繝鐢靛Т閹冲繘顢旈悩鐢电<閺夊牄鍔岀粭鎺楁懚閿濆鐓犲┑顔藉姇閳ь兙鍊曞嵄妞ゆ帒瀚埛鎺懨归敐鍛殘鐟滅増甯楅弲婵嬫煏閸繃瀚呴柤鏉挎健濮婃椽顢楅埀顒傜矓閹绢喗鍊块柛顭戝亖娴滄粓鏌熼崫鍕ラ柛蹇撶焸閺屾盯鎮㈤崫銉ュ绩闂佸搫鐬奸崰鏍х暦濞嗘挸围闁糕剝顨忔导锟�婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈嗐亜椤撶姴鍘寸€殿喖顭烽弫鎰緞婵犲嫮鏉告俊鐐€栫敮濠囨倿閿曞倸纾块柟鍓х帛閳锋垿鏌熼懖鈺佷粶濠碘€炽偢閺屾稒绻濋崒娑樹淮閻庢鍠涢褔鍩ユ径鎰潊闁冲搫鍊瑰▍鍥⒒娴g懓顕滅紒璇插€歌灋婵炴垟鎳為崶顒€唯鐟滃繒澹曢挊澹濆綊鏁愰崨顔藉創閻忓繐绻樺娲川婵犲孩鐣锋繝鐢靛仜閿曘倝顢氶敐鍡欑瘈婵﹩鍘兼禍婊堟⒑閹呯婵犫偓闁秵鏅繝濠傜墛閳锋垿姊婚崼鐔恒€掔紒鐘插暱閳规垿顢欓悙顒佹瘓闂佽鍠楅敃銏犵暦婵傜ǹ顫呴柕蹇f緛缁辨煡姊绘担铏瑰笡闁告棑绠撳畷婊冣枎閹惧磭顦梺闈涚墕濡孩绂嶅⿰鍕╀簻闁规崘娉涘瓭闂佸憡锚椤曨參鍩€椤掍緡鍟忛柛鐘崇墵閳ワ箓鏌ㄧ€b晝绠氶梺褰掓?缁€渚€鎮″☉銏$厱閻忕偛澧介悡顖滅磼閵娿倗鐭欐慨濠勭帛閹峰懘宕ㄩ棃娑氱Ш鐎殿喚鏁婚、妤呭磼濠婂懐鍘梻浣侯攰閹活亞鈧潧鐭傚顐﹀磼閻愬鍙嗛梺缁樻礀閸婂湱鈧熬鎷�
首页 > 硬件设计 > 嵌入式设计 > 嵌入式软件运行剖面建模及测试用例生成

嵌入式软件运行剖面建模及测试用例生成

时间:11-06 来源: 点击:

航天应用中的大部分软件都是嵌入式软件,可靠性要求很高,因此,对其进行充分测试显得尤为重要。但是,嵌入式软件运行环境同硬件有着密切的关系,使得嵌入式软件测试过程非常复杂,目前存在的一些测试工具偏重于白盒测试且价格昂贵,针对黑盒测试,目前还是以人工测试为主。由于软件的复杂程度越来越高,导致人为设计测试用例数量巨大且无法保证测试充分性。而对航天软件来说,是否满足任务要求是软件的重点,因此,从用户的角度对软件运行剖面进行数学建模,对系统是怎样的以及它会怎样被使用做出一个定量描述,根据这些量值可以对软件中至关重要的、生命攸关的、关系到系统成败的部分给与充分的测试。通过任务剖面模型可获取测试用例和测试数据的等价类信息,自动生成测试用例,大大减轻测试人员的工作量,提高了测试工作的效率和质量。本文中采用带标记的Markov链对软件运行剖面进行描述,并据此生成测试用例。

  1.软件运行剖面

  软件运行剖面是用来描述软件的实际使用情况的。1993年,MUSA在IEEE发表了一篇题为《软件可靠性工程中的运行剖面》的文章,开创了软件运行剖面的研究,文中MUSA给出了实施软件运行剖面的一般步骤。MUSA(参考文章[1])对软件分析的原则,不仅适用于嵌入式软件,对一般的应用软件也适用。首先对软件的使用者进行分类,不同类型的使用者可能以不同的方式来使用软件,根据对使用者的划分将软件划分成不同的模式剖面。其次,模式剖面又可以划分为不同的功能剖面,即每个模式下都有许多不同的功能。最后,每一个功能又由许多运行组成。这些运行的集合便构成了运行剖面。上述的每一次划分都是依据概率发生的,这些概率估计主要是基于如下几个方面: ① 从现有系统收集到的数据, ② 与用户的交谈或对用户进行观察获得的信息, ③ 原型使用与试验分析的结果, ④ 相关领域专家的意见。定义使用概率的最佳方法是使用实际的用户数据,如来自原型系统、前一版本的使用数据;其次是由该软件应用领域的用户和专家提供的预期使用数据。软件的运行剖面是定量描述用户实际使用软件方式的有效方法。MUSA的软件划分原则简单且容易实施,只要按照步骤逐步实行就可以得出软件的比较准确的运行剖面。但是,也要看到,MUSA的软件分析原则只是提供了一个分析软件的方法,在特定的应用中,有些步骤可以简化处理,根据具体的实际情况,灵活运用。

  2.运行剖面的构造过程

  2.1 运行的表示方法

  首先来定义两种图,第一种图用来描述分解后的运行,即运行图,定义为TF={P1,P2,……Pn},其中,P1,P2……Pn表示构成运行的各个状态,Pi的下一个状态为Pi+1,Pi的上一个状态为Pi-1,这些状态表示的是一个任务从开始到结束的一个过程,即P1-〉P2……-〉Pn。我们可以用这个图来描述经分析得到的运行。当运行图中某个状态中可以有几种不同的路径到达下一个状态时,仅用运行图就不能准确表达该运行,此时,就要用到状态细化图,状态细化图用来描述运行图中状态的内部细节,定义为一个三元组DTF= ,其中,sequence={Bi|Bi=TFi}, i="1"……n。start为此细化图的公共开始节点,end为此细化图的公共终止节点。被测软件中所有的运行,只要划分的足够细,都可以由上面两种图准确的表示出来。

  2.2 将由运行图、状态细化图表示的运行剖面转化为Markov链表示

  将以上两种图描述的运行剖面转化成Markov链描述主要基于以下考虑:

  1.Markov链的特点是下一个状态只和当前状态有关,而与历史状态无关,在这里就是软件的当前状态只和上一状态有关,与更早的历史状态无关,若上一状态正确,则在正确的输入下,软件的当前状态一定正确,否则,软件一定存在缺陷,这对于定位软件测试中的错误是十分方便的,通过Markov链中状态转移概率,还能直观的认识到软件中各个功能的使用频率,给出一个定量的描述。

  2.这里的Markov链描述相当于编译中的中间语言,即程序的所有处理都是基于Markov链的。使用中间语言便于程序内部处理。

  3.当某个节点内部有需要细化的分支时,Markov链会综合内部分支,给出一个整体的综合表述。这对于产生测试用例非常方便。

  4.算法1:图描述转化为Markov链描述算法:该算法的输入为运行图、以及状态细化图,将运行图进行化简、并综合其中的状态细化图,将每一个运行都表示为一Markov链。

  对每一个运行图,调用以下算法:

  1.首先,插入一个开始状态,读入第一个节点

  2.对该节点进行以下判断:

3.1.1 该节点是否为分支节点,若是

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top