在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

軟件詳細設計文檔在動態單元測試過程中的應用

北匯信息POLELINK ? 2022-07-27 17:18 ? 次閱讀

前言

隨著汽車日益互聯化、智能化和電動化,硬件組件的抽象化,軟件功能變得愈發復雜——汽車正在從基于硬件的創新轉向基于軟件的創新,并且軟件安全和質量越來越受到制造商和消費者的關注,而傳統的工具和流程可能無法滿足汽車發展與應用的實際需求。為了解決這些安全和質量方面的問題,汽車工業已經采用了ASPICE標準和ISO 26262標準,它們為電氣電子系統的開發提供了最佳的實踐。

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

軟件詳細設計文檔為單元測試提供了基礎的輸入參照。從ASPICE角度來說,沒有詳細設計文檔是無法進行單元驗證或測試的。這表明,詳細設計文檔指導著單元測試過程的所有活動。同時,使用像VectorCAST/C++這樣的專業工具,高效進行功能測試的同時,保證了代碼的覆蓋度,符合ASPICE和ISO26262行業規范要求。

1、WHY:(軟件詳細設計文檔與單元測試的基本關系)

1.1從V模型角度

pYYBAGLg9_6ACDwCAADOHNzK_3o680.png

圖 1 ISO 26262里面的V模型

V模型是在快速應用開發(Rapid Application Development,RAD)模型基礎上演變而來,其特點就是它清楚的標識了開發和測試的各個階段以及他們之間的對應關系;左邊部分是軟件開發階段,右邊部分是軟件測試階段。從上圖中我們可以看出,軟件詳細設計文檔對應著軟件單元測試,所以要想做好單元測試,就必須有軟件詳細設計文檔作為輸入,同時要求測試工程師對軟件詳細設計文檔有著深刻的理解。

軟件詳細設計文檔應在編寫代碼之前完成,軟件代碼是對軟件詳細設計文檔的具體實現,軟件單元測試則是以軟件詳細設計為參照,判斷軟件代碼是否符合軟件詳細設計文檔的工作。

1.2軟件詳細設計文檔是測試輸入的基礎參照之一

pYYBAGLg-FiAOpOeAAA3LgjWxKM744.png

圖 2 軟件詳細設計文檔是測試輸入的基礎參照之一

VectorCAST/C++可以為單元測試和集成測試提供高度自動化的解決方案,能夠顯著提升開發人員在驗證安全和任務關鍵型嵌入式系統方面的工作效率。廣泛應用于航空電子、醫療設備、汽車、工業控制、鐵路和金融行業。

如上圖所示,將詳細設計文檔和單元需求文檔結合起來,會大大的提高編寫測試用例效率。特別是對于那些顆粒度較大的“單元需求文檔”,需要結合軟件詳細設計文檔,從顆粒度較大的需求提取出有效的部分來進行功能測試。

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

然后,通過相應的源代碼使用VectorCAST/C++工具創建測試工程,接著通過VectorCAST/C++工具為需求測試自定義編寫測試用例,同時將需求映射到測試用例,形成測試用例與單元測試需求、測試用例與代碼覆蓋度之間的雙向可追溯性,并且可以在最后的測試報告中體現出來。

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

如果負責該項測試測試的人員對項目內容了解很有限的話,這就免不了與開發人員進行頻繁的溝通。即使是一個公司內部進行測試,只要不是開發人員來進行測試,一般也避免不了與開發人員進行溝通,但是如果有了軟件詳細設計文檔,測試人員可以快速了解開發內容,理解功能需求,降低與開發人員溝通時間與次數,而且能夠較完整的完成其單元測試。

pYYBAGLg-HaAQWfeAABR874yI00171.png

圖 3 有無軟件詳細設計文檔對測試周期和溝通次數的影響示意圖

2、WHAT:(什么是軟件詳細設計文檔)

2.1詳細設計基本概念

詳細設計是為了確立每個模塊的實現算法、數據結構以及接口定義,用適當的方法表示算法和數據結構的細節。

它通過一些設計描述工具,無歧義的描述過程單位的相關細節。詳細設計產生的主要文件就是軟件詳細設計文檔。

此外,軟件詳細設計文檔一般來源于軟件架構設計的進一步分析。在軟件架構設計活動中,設計了軟件組件和組件間接口。

軟件詳細設計則是對軟件組件的進一步分解和設計,一般包含三個方面:軟件單元,軟件單元的內部邏輯和軟件單元間的交互邏輯。

pYYBAGLg-KqABuMXAABAqr4qC3g094.png

圖 4 軟件詳細文設計文檔包含的內容

2.2詳細設計文檔基本內容

由于自然語言不具有單義性,所以要進行無歧義的描述軟件過程單元細節,就必須使用一些特定的設計描述方法。詳細設計采用的方法一般有程序流程圖、HIPO(Hierarchy plus Input Process Output)圖、N-S圖等,還有其他描述說明形式(如圖5)。使用這些方法就是來規范和輔助說明算法、數據結構和接口相關細節的。

這些細節涵蓋了數據結構定義,全局變量和宏定義描述,動態行為描述(比如任務,中斷和需求方案分析等),每個函數的設計(比如輸入、輸出、流程圖、偽代碼等)等。

pYYBAGLg-MCAfFTHAAD7kP9fZng504.png

圖 5 軟件詳細設計文檔包含了GetStopSigLevel函數的定義

3、HOW:(軟件詳細設計文檔在VectorCAST/C++工具中的應用)

3.1為測試用例的數據提供依據

pYYBAGLg-NqADg7iAAC6_tiE2_s402.png

圖 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."

pYYBAGLg-QGAbvNCAAAsIoMlhmU108.png

圖 7 需求文檔csv文件中的某條需求

如上圖標黃區域,說明了“light_intensity”變量變化范圍是0~100。所以根據這條詳細設計文檔說明,就可以正確編寫測試用例,并保證了測試用例數據是有實際意義的,避免像“light_intensity=120”等這樣無意義的賦值。

pYYBAGLg-Q2Ae-JhAAGF446ymys769.png

圖 8 具有意義的測試用例并通過

poYBAGLg-RiAIjezAAGOvT9T1Vc530.png

圖 9 無意義的測試用例并失敗

3.2VectorCAST/C++工具RGW功能

pYYBAGLg-S6AQQhEAAHUuZs7_Do771.png

圖 10 通過工具實現軟件單元需求與測試用例關聯

VectorCAST/C++提供一個RGW(Requirements Gateway)功能。VectorCAST/C++支持與一些需求管理系統Polarion、DOORS、RequisitePro等進行集成,同時支持需求管理系統導出的CSV等格式文件。

對于經過軟件詳細設計文檔印證的需求文檔,我們可以按照這些結構文件編寫,使需求文檔契合VectorCAST/C++工具,使用該功能。可以實現軟件單元需求、測試用例和代碼覆蓋率之間的可追溯性,并允許將單元需求導入,映射到測試用例。

這樣可以幫助測試人員,當需求發生更新或迭代時,能夠快速更新測試用例或編寫測試用例,提高工作效率。

所以軟件詳細設計文檔,在很大程度上為項目團隊提升了測試效率、提升工作的自動化率。

3.3批量生成測試用例

對于那些詳細設計文檔里的某些函數,若具有一般數學表達式的功能的函數且我們可以事先確定好它的輸入與輸出的,可以通過VectorCAST/C++工具提供的CSV Mapping功能來批量構建測試用例。

poYBAGLg-USAFtpGAAIOi-focgU905.png

圖 11 包含測試所需數據的CSV文件

首先我們根據函數關系確定好一系列的輸入值和期望值形成CSV文件,然后將CSV文件加載到工具中,接著確定好數據列與測試用例模板里變量的對應關系,最后選擇創建測試用例。

通過上面操作我們就會快速生成一系列的測試用例。

pYYBAGLg-VOAKpRsAAEcYv1ZbRA062.png

圖 12 對應測試用例模板變量與CSV文件列的關系并生成測試用例

總結

眾所周知,進行單元測試不僅可以盡早地發現錯誤,還容易發現深層次問題,并能快速定位問題的來源,針對相關需求,向開發人員進行反饋,小步快速迭代,高效的實現正確的需求和代碼。而詳細設計文檔不僅為開發提供了標準,也為后續的測試提供了參考。通過VectorCAST/C++聯系實際問題,能快速的完成動態單元測試。

北匯信息專注于汽車電子測試,提供專業的汽車電子測試系統搭建及測試咨詢服務;提供完整的汽車新能源測試服務。當然在代碼測試方面,我們也有完整的代碼測試解決方案。

VectorCAST/C++作為Vector公司的代碼動態測試工具,既可以用于手寫代碼,也可以用于自動生成代碼的測試,如模型轉代碼的測試。

本次為大家簡單介紹了軟件詳細設計文檔在單元測試過程的一些簡單應用。后續將會為大家帶來更多基于VectorCAST/C++的動態測試相關內容。

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

參考文獻

[1] VectorCAST/C++相關文檔

[2]仨人談起·基于模型開發(MBD)場合,模型設計可以等同于軟件詳細設計嗎?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5336

    瀏覽量

    126789
收藏 人收藏

    評論

    相關推薦

    測試過程中,如何防止電池擠壓試驗機的故障率?

    測試過程中,防止電池擠壓試驗機故障率的關鍵在于設備的使用、維護和保養。以下是一些具體的方法和建議: 一、正確使用設備 熟悉操作規程 · 操作人員必須熟讀并理解電池擠壓試驗機的操作規程和使用說明
    的頭像 發表于 01-10 08:55 ?14次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>測試過程中</b>,如何防止電池擠壓試驗機的故障率?

    開發者必讀!CircleCI?組件測試單元測試全解析

    軟件開發測試是保證軟件質量和可靠性的關鍵環節。作為領先的 CI/CD 平臺,CircleCI 提供了支持自動化
    的頭像 發表于 12-03 09:18 ?252次閱讀

    汽車軟件單元測試的重要性

    設計和測試不充分密切相關,這引發了社會各界對汽車軟件健壯性的重要性進行深入思考。本文將探討汽車軟件測試,尤其是單元測試的重要性,以及Win
    的頭像 發表于 11-29 10:57 ?191次閱讀

    嚴格的單元測試造就完美的軟件

    關鍵系統時,更是對軟件質量提出了極高的要求。而單元測試作為軟件開發過程中的核心環節,其重要性不言而喻。 單元測試的作用 單元測試是指對
    的頭像 發表于 11-26 13:22 ?184次閱讀

    嵌入軟件單元/集成測試工具專業分析

    引言 現代軟件開發過程中單元測試作為確保代碼質量的重要環節,得到了廣泛的關注和應用。隨著嵌入式系統的復雜性日益增加,對高效、可靠的單元測試工具的需求也愈加迫切。WinAMS作為一款
    的頭像 發表于 11-19 16:41 ?250次閱讀

    物聯網產品在生產測試過程中快速讀取貼片SIM卡號的方案

    卡號,讀卡表產品可以解決研發測試過程中,方便讀取物聯網貼片卡卡號的問題。 二、該問題帶來的危害及影響 如果不讀出設備的SIM卡卡號,無法將設備與SIM卡對應起來。當設備的SIM卡狀態異常時,比如:欠費,卡停機,無法查詢設備對應的SIM卡的狀態,
    的頭像 發表于 09-23 16:14 ?333次閱讀
    物聯網產品在生產<b class='flag-5'>測試過程中</b>快速讀取貼片SIM卡號的方案

    用vca821做測試,發現測試過程中芯片會發燙,這是什么原因呢?

    我最近在用vca821做測試,發現測試過程中芯片會發燙,但是工作狀態似乎有是正常的。請問這是什么原因呢?
    發表于 08-23 08:18

    INA321測試過程中,發現阻抗變化比較大,為什么?

    測試過程中,發現阻抗變化比較大,有時候是40mΩ,有的時候顯示70mΩ,感覺差別比較大,不知道是什么原因
    發表于 08-20 06:56

    RIGOL產品材料應力測試過程中的應用

    、強度、剛度、穩定性等,可以精確地控制產品質量。本篇解決方案將介紹RIGOL產品材料應力測試過程中的應用。
    的頭像 發表于 07-12 17:01 ?328次閱讀
    RIGOL產品<b class='flag-5'>在</b>材料應力<b class='flag-5'>測試過程中</b>的應用

    動態追溯方法:徹底革新軟件測試

    動態追溯方法為解決軟件開發追溯的挑戰提供了創新的解決方案。通過自動和動態地鏈接需求和測試用例,使測試過
    的頭像 發表于 07-05 17:40 ?420次閱讀
    <b class='flag-5'>動態</b>追溯方法:徹底革新<b class='flag-5'>軟件</b><b class='flag-5'>測試</b>

    單元測試、集成測試自動化工具

    CoverageMaster winAMS :?適用于嵌入式目標機代碼的單元測試/集成測試工具 全面支持嵌入式微機!驗證嵌入式C/C++軟件 實施以模塊為單位的自動化單元測試工具 不需
    的頭像 發表于 06-26 13:41 ?461次閱讀
    <b class='flag-5'>單元測試</b>、集成<b class='flag-5'>測試</b>自動化工具

    嵌入軟件單元測試工具的作用

    嵌入軟件單元測試工具是現代軟件開發過程中不可或缺的一環。它的作用在于幫助開發人員對軟件的各個單元
    的頭像 發表于 04-23 15:31 ?447次閱讀
    嵌入<b class='flag-5'>軟件</b><b class='flag-5'>單元測試</b>工具的作用

    為什么nulink會在調試過程中時不時的中斷?

    為啥nulink 會在調試過程中時不時的中斷?是不是要設置什么?
    發表于 01-17 06:52

    Tessy—嵌入式軟件單元測試/集成測試工具

    搭建測試環境、執行測試、評估測試結果并生成測試報告。目前Tessy被廣泛應用在汽車電子客戶
    的頭像 發表于 01-15 14:39 ?867次閱讀
    Tessy—嵌入式<b class='flag-5'>軟件</b><b class='flag-5'>單元測試</b>/集成<b class='flag-5'>測試</b>工具
    主站蜘蛛池模板: 国产色婷婷| 91热成人精品国产免费| 色欧美视频| 日日夜夜噜| 欧美一卡二三卡四卡不卡| 欧美一区二区三区视频| 美女三级在线| 国产精品99r8在线观看| aa黄色片| 天天操天天干天天玩| 国产一级簧片| 五月激情啪啪| 欧美午夜寂寞影院安卓列表| 韩国一区二区三区视频| 亚洲天堂网站| 色综合天天综合网国产成人| 欧美日韩乱国产| 国产成人精品曰本亚洲| 夜夜网站| 九九天天影视| 在线观看不卡一区| 亚洲综合激情网| 三级精品视频在线播放| 精品视频免费看| 窝窝午夜看片免费视频| 国产美女一级高清免费观看| miya亚洲私人影院在线| 国产成人精品曰本亚洲78| 四虎8848精品永久在线观看| 久久精品30| 天天碰天天操| 婷婷亚洲五月琪琪综合| 国产成人精品三级在线| 四虎国产在线观看| 日本亚洲卡一卡2卡二卡三卡四卡| 亚洲第一成年网| 老色皮| 午夜影院在线观看| 操操操综合| 一级特黄aa大片免费| 恐怖片大全恐怖片免费观看好看的恐怖片 |