日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車(chē)測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車(chē)測(cè)試網(wǎng)

    • 在線課堂

    • 電車(chē)測(cè)試

動(dòng)態(tài)單元測(cè)試,一手好牌少不了詳細(xì)設(shè)計(jì)文檔

2021-03-10 15:40:46·  來(lái)源:北匯信息  作者:陳鎮(zhèn)江  
 
隨著汽車(chē)日益互聯(lián)化、智能化和電動(dòng)化,硬件組件的抽象化,軟件功能變得愈發(fā)復(fù)雜——汽車(chē)正在從基于硬件的創(chuàng)新轉(zhuǎn)向基于軟件的創(chuàng)新,并且軟件安全和質(zhì)量越來(lái)越受到制造商和消費(fèi)者的關(guān)注,而傳統(tǒng)的工具和流程可能無(wú)法滿足汽車(chē)發(fā)展與應(yīng)用的實(shí)際需求。為了解決這些
隨著汽車(chē)日益互聯(lián)化、智能化和電動(dòng)化,硬件組件的抽象化,軟件功能變得愈發(fā)復(fù)雜——汽車(chē)正在從基于硬件的創(chuàng)新轉(zhuǎn)向基于軟件的創(chuàng)新,并且軟件安全和質(zhì)量越來(lái)越受到制造商和消費(fèi)者的關(guān)注,而傳統(tǒng)的工具和流程可能無(wú)法滿足汽車(chē)發(fā)展與應(yīng)用的實(shí)際需求。為了解決這些安全和質(zhì)量方面的問(wèn)題,汽車(chē)工業(yè)已經(jīng)采用了ASPICE標(biāo)準(zhǔn)和ISO 26262標(biāo)準(zhǔn),它們?yōu)殡姎夂碗娮酉到y(tǒng)的開(kāi)發(fā)提供了最佳的實(shí)踐

單元測(cè)試是軟件測(cè)試階段最基本的測(cè)試,它能夠消除深度未知隱患。它反饋更快,更省時(shí)間。此外,ASPICE過(guò)程及ISO26262安全規(guī)范同樣對(duì)單元測(cè)試提出了相關(guān)要求。

軟件詳細(xì)設(shè)計(jì)文檔為單元測(cè)試提供了基礎(chǔ)的輸入?yún)⒄铡腁SPICE角度來(lái)說(shuō),沒(méi)有詳細(xì)設(shè)計(jì)文檔是無(wú)法進(jìn)行單元驗(yàn)證或測(cè)試的。這表明,詳細(xì)設(shè)計(jì)文檔指導(dǎo)著單元測(cè)試過(guò)程的所有活動(dòng)。同時(shí),使用像VectorCAST/C++這樣的專(zhuān)業(yè)工具,高效進(jìn)行功能測(cè)試的同時(shí),保證了代碼的覆蓋度,符合ASPICE和ISO26262行業(yè)規(guī)范要求,并為產(chǎn)品的第三方認(rèn)證提供便捷有力的支持。

WHY:(軟件詳細(xì)設(shè)計(jì)文檔與單元測(cè)試的基本關(guān)系)

從V模型角度




圖 1  ISO 26262里面的V模型 

V模型是在快速應(yīng)用開(kāi)發(fā)(Rapid Application Development,RAD)模型基礎(chǔ)上演變而來(lái),其特點(diǎn)就是它清楚的標(biāo)識(shí)了開(kāi)發(fā)和測(cè)試的各個(gè)階段以及他們之間的對(duì)應(yīng)關(guān)系; 左邊部分是軟件開(kāi)發(fā)階段,右邊部分是軟件測(cè)試階段 。從上圖中我們可以看出,軟件詳細(xì)設(shè)計(jì)文檔對(duì)應(yīng)著軟件單元測(cè)試,所以要想做好單元測(cè)試,就必須有軟件詳細(xì)設(shè)計(jì)文檔作為輸入,同時(shí)要求測(cè)試工程師對(duì)軟件詳細(xì)設(shè)計(jì)文檔有著深刻的理解。

軟件詳細(xì)設(shè)計(jì)文檔應(yīng)在編寫(xiě)代碼之前完成,軟件代碼是對(duì)軟件詳細(xì)設(shè)計(jì)文檔的具體實(shí)現(xiàn),軟件單元測(cè)試則是以軟件詳細(xì)設(shè)計(jì)為參照,判斷軟件代碼是否符合軟件詳細(xì)設(shè)計(jì)文檔的工作。

軟件詳細(xì)設(shè)計(jì)文檔是測(cè)試輸入的基礎(chǔ)參照之一


 
圖 2  軟件詳細(xì)設(shè)計(jì)文檔是測(cè)試輸入的基礎(chǔ)參照之一 

VectorCAST/C++可以為單元測(cè)試和集成測(cè)試提供高度自動(dòng)化的解決方案,能夠顯著提升開(kāi)發(fā)人員在驗(yàn)證安全和任務(wù)關(guān)鍵型嵌入式系統(tǒng)方面的工作效率。廣泛應(yīng)用于航空電子、醫(yī)療設(shè)備、汽車(chē)、工業(yè)控制、鐵路和金融行業(yè)。

如上圖所示,將詳細(xì)設(shè)計(jì)文檔和單元需求文檔結(jié)合起來(lái),會(huì)大大的提高編寫(xiě)測(cè)試用例效率。特別是對(duì)于那些顆粒度較大的“單元需求文檔”,需要結(jié)合軟件詳細(xì)設(shè)計(jì)文檔,從顆粒度較大的需求提取出有效的部分來(lái)進(jìn)行功能測(cè)試。

軟件詳細(xì)設(shè)計(jì)文檔與單元需求文檔相輔相成,所以軟件詳細(xì)設(shè)計(jì)文檔在單元測(cè)試中有著十分重要的作用。

然后,通過(guò)相應(yīng)的源代碼使用VectorCAST/C++工具創(chuàng)建測(cè)試工程,接著通過(guò)VectorCAST/C++工具為需求測(cè)試自定義編寫(xiě)測(cè)試用例,同時(shí)將需求映射到測(cè)試用例,形成測(cè)試用例與單元測(cè)試需求、測(cè)試用例與代碼覆蓋度之間的雙向可追溯性,并且可以在最后的測(cè)試報(bào)告中體現(xiàn)出來(lái)。

快速理解功能需求,降低溝通成本

如果負(fù)責(zé)該項(xiàng)測(cè)試的人員對(duì)項(xiàng)目?jī)?nèi)容了解很有限的話,這就免不了與開(kāi)發(fā)人員進(jìn)行頻繁的溝通。即使是一個(gè)公司內(nèi)部進(jìn)行測(cè)試,只要不是開(kāi)發(fā)人員來(lái)進(jìn)行測(cè)試,一般也避免不了與開(kāi)發(fā)人員進(jìn)行溝通,但是如果有了軟件詳細(xì)設(shè)計(jì)文檔,測(cè)試人員可以快速了解開(kāi)發(fā)內(nèi)容,理解功能需求,降低與開(kāi)發(fā)人員溝通時(shí)間與次數(shù),而且能夠較完整的完成其單元測(cè)試。
 
圖 3  有無(wú)軟件詳細(xì)設(shè)計(jì)文檔對(duì)測(cè)試周期和溝通次數(shù)的影響示意圖

WHAT:(什么是軟件詳細(xì)設(shè)計(jì)文檔)

01、詳細(xì)設(shè)計(jì)基本概念

詳細(xì)設(shè)計(jì)是為了確立每個(gè)模塊的實(shí)現(xiàn)算法、數(shù)據(jù)結(jié)構(gòu)以及接口定義,用適當(dāng)?shù)姆椒ū硎舅惴ê蛿?shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。

它通過(guò)一些設(shè)計(jì)描述工具,無(wú)歧義的描述過(guò)程單位的相關(guān)細(xì)節(jié)。詳細(xì)設(shè)計(jì)產(chǎn)生的主要文件就是軟件詳細(xì)設(shè)計(jì)文檔。

此外,軟件詳細(xì)設(shè)計(jì)文檔一般來(lái)源于軟件架構(gòu)設(shè)計(jì)的進(jìn)一步分析。在軟件架構(gòu)設(shè)計(jì)活動(dòng)中,設(shè)計(jì)了軟件組件和組件間接口。

軟件詳細(xì)設(shè)計(jì)則是對(duì)軟件組件的進(jìn)一步分解和設(shè)計(jì),一般包含三個(gè)方面:軟件單元,軟件單元的內(nèi)部邏輯和軟件單元間的交互邏輯。

圖 4  軟件詳細(xì)文設(shè)計(jì)文檔包含的內(nèi)容 
02
詳細(xì)設(shè)計(jì)文檔基本內(nèi)容

由于自然語(yǔ)言不具有單義性,所以要進(jìn)行無(wú)歧義的描述軟件過(guò)程單元細(xì)節(jié),就必須使用一些特定的設(shè)計(jì)描述方法。詳細(xì)設(shè)計(jì)采用的方法一般有程序流程圖、HIPO(Hierarchy plus Input Process Output)圖、N-S圖等,還有其他描述說(shuō)明形式(如圖5)。使用這些方法就是來(lái)規(guī)范和輔助說(shuō)明算法、數(shù)據(jù)結(jié)構(gòu)和接口相關(guān)細(xì)節(jié)的。

這些細(xì)節(jié)涵蓋了數(shù)據(jù)結(jié)構(gòu)定義,全局變量和宏定義描述,動(dòng)態(tài)行為描述(比如任務(wù),中斷和需求方案分析等),每個(gè)函數(shù)的設(shè)計(jì)(比如輸入、輸出、流程圖、偽代碼等)等。

圖 5  軟件詳細(xì)設(shè)計(jì)文檔包含了GetStopSigLevel函數(shù)的定義 

HOW:(軟件詳細(xì)設(shè)計(jì)文檔在VectorCAST/C++工具中的應(yīng)用)

為測(cè)試用例的數(shù)據(jù)提供依據(jù)
圖 6  單元需求文檔csv文件
  • Key:FR6  
  • ID:FR6
  • Module:requirement  3
  • Title Description:"The signal light_intensity shall be an input to lights control. Its value shall range from 0 to 100." 
圖 7  需求文檔csv文件中的某條需求

如上圖標(biāo)黃區(qū)域,說(shuō)明了“light_intensity”變量變化范圍是0~100。所以根據(jù)這條詳細(xì)設(shè)計(jì)文檔說(shuō)明,就可以正確編寫(xiě)測(cè)試用例,并保證了測(cè)試用例數(shù)據(jù)是有實(shí)際意義的,避免像“light_intensity=120”等這樣無(wú)意義的賦值。
 
圖 8  具有意義的測(cè)試用例并通過(guò) 

 
圖 9  無(wú)意義的測(cè)試用例并失敗 

VectorCAST/C++工具RGW功能
圖 10  通過(guò)工具實(shí)現(xiàn)軟件單元需求與測(cè)試用例關(guān)聯(lián)

VectorCAST/C++提供一個(gè)RGW(Requirements Gateway)功能。VectorCAST/C++支持與一些需求管理系統(tǒng)Polarion、DOORS、RequisitePro等進(jìn)行集成,同時(shí)支持需求管理系統(tǒng)導(dǎo)出的CSV等格式文件。

對(duì)于經(jīng)過(guò)軟件詳細(xì)設(shè)計(jì)文檔印證的需求文檔,我們可以按照這些結(jié)構(gòu)文件編寫(xiě),使需求文檔契合VectorCAST/C++工具,使用該功能。可以實(shí)現(xiàn)軟件單元需求、測(cè)試用例和代碼覆蓋率之間的可追溯性,并允許將單元需求導(dǎo)入,映射到測(cè)試用例。

這樣可以幫助測(cè)試人員,當(dāng)需求發(fā)生更新或迭代時(shí),能夠快速更新測(cè)試用例或編寫(xiě)測(cè)試用例,提高工作效率。

所以軟件詳細(xì)設(shè)計(jì)文檔,在很大程度上為項(xiàng)目團(tuán)隊(duì)提升了測(cè)試效率、提升工作的自動(dòng)化率。

批量生成測(cè)試用例

對(duì)于那些詳細(xì)設(shè)計(jì)文檔里的某些函數(shù),若具有一般數(shù)學(xué)表達(dá)式的功能的函數(shù)且我們可以事先確定好它的輸入與輸出的,可以通過(guò)VectorCAST/C++工具提供的CSV Mapping功能來(lái)批量構(gòu)建測(cè)試用例。
 
圖 11  包含測(cè)試所需數(shù)據(jù)的CSV文件

首先我們根據(jù)函數(shù)關(guān)系確定好一系列的輸入值和期望值形成CSV文件,然后將CSV文件加載到工具中,接著確定好數(shù)據(jù)列與測(cè)試用例模板里變量的對(duì)應(yīng)關(guān)系,最后選擇創(chuàng)建測(cè)試用例。 

通過(guò)上面操作我們就會(huì)快速生成一系列的測(cè)試用例。
 
圖 12  對(duì)應(yīng)測(cè)試用例模板變量與CSV文件列的關(guān)系并生成測(cè)試用例 

總結(jié)

眾所周知,進(jìn)行單元測(cè)試不僅可以盡早地發(fā)現(xiàn)錯(cuò)誤,還容易發(fā)現(xiàn)深層次問(wèn)題,并能快速定位問(wèn)題的來(lái)源,針對(duì)相關(guān)需求,向開(kāi)發(fā)人員進(jìn)行反饋,小步快速迭代,高效的實(shí)現(xiàn)正確的需求和代碼。而詳細(xì)設(shè)計(jì)文檔不僅為開(kāi)發(fā)提供了標(biāo)準(zhǔn),也為后續(xù)的測(cè)試提供了參考。通過(guò)VectorCAST/C++聯(lián)系實(shí)際問(wèn)題,能快速的完成動(dòng)態(tài)單元測(cè)試。

北匯信息 專(zhuān)注于 汽車(chē)電子測(cè)試 ,提供專(zhuān)業(yè)的汽車(chē)電子測(cè)試系統(tǒng)搭建及測(cè)試咨詢(xún)服務(wù);提供完整的汽車(chē)新能源測(cè)試服務(wù)。當(dāng)然在代碼測(cè)試方面,我們也有完整的代碼測(cè)試解決方案。

VectorCAST/C++作為Vector公司的代碼動(dòng)態(tài)測(cè)試工具,既可以用于手寫(xiě)代碼,也可以用于自動(dòng)生成代碼的測(cè)試,如模型轉(zhuǎn)代碼的測(cè)試。

本次為大家簡(jiǎn)單介紹了軟件詳細(xì)設(shè)計(jì)文檔在單元測(cè)試過(guò)程的一些簡(jiǎn)單應(yīng)用。后續(xù)將會(huì)為大家?guī)?lái)更多基于VectorCAST/C++的動(dòng)態(tài)測(cè)試相關(guān)內(nèi)容。同時(shí)也歡迎垂詢(xún)和溝通,共同探討。


注:文中圖片來(lái)源于ISO 26262、VectorCAST/C++( Vector )。

參考文獻(xiàn):
[1] VectorCAST/C++相關(guān)文檔
[2] 仨人談起·基于模型開(kāi)發(fā)(MBD)場(chǎng)合,模型設(shè)計(jì)可以等同于軟件詳細(xì)設(shè)計(jì)嗎? 
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25