RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在重構(gòu)或重新設(shè)計(jì)時(shí)驗(yàn)證代碼

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Pierre-Henri Stanek ? 2022-11-25 15:17 ? 次閱讀

這些概念之間的主要區(qū)別在于:重新設(shè)計(jì)意味著你修改軟件以改變它的功能,而重構(gòu)是修改它的工作方式。

重新設(shè)計(jì)和重構(gòu)軟件有什么區(qū)別?

這些概念之間的主要區(qū)別在于:重新設(shè)計(jì)意味著你修改你的軟件來改變它的功能,而重構(gòu)是修改它的方式。

重新設(shè)計(jì)工作有多種原因。例如,由于硬件更改,軟件需要在不同的CPU上工作,或者必須處理新的外圍設(shè)備,因此需要修改或擴(kuò)展代碼以解決這些物理修改并提供新功能。當(dāng)軟件需要與新的或更新的軟件接口時(shí),也可能會(huì)發(fā)生重新設(shè)計(jì) 3RD-提供新服務(wù)的派對(duì)庫,這些服務(wù)將使您的應(yīng)用程序受益。您可能會(huì)發(fā)現(xiàn)重新設(shè)計(jì)的許多其他原因,但在大多數(shù)情況下,在此上下文中執(zhí)行的軟件更改會(huì)影響修改后的應(yīng)用程序提供的一般行為或功能。

與重新設(shè)計(jì)相反,重構(gòu)是一種優(yōu)化代碼內(nèi)部實(shí)現(xiàn)的努力,以提高其可維護(hù)性并降低其總體運(yùn)營成本。和許多人一樣,我相信軟件重構(gòu)的最佳定義之一是由Martin Fowler在他的“重構(gòu)書”中寫的:

“對(duì)軟件的內(nèi)部結(jié)構(gòu)進(jìn)行了更改,使其更易于理解且修改成本更低,而無需更改其可觀察的行為。

根據(jù)此定義,重構(gòu)通常由開發(fā)人員在以下情況下執(zhí)行:

需要將技術(shù)債務(wù)控制在可接受的水平,即低于從頭開始重建整個(gè)代碼似乎更經(jīng)濟(jì)的線。

降低復(fù)雜性和內(nèi)部依賴性,使軟件更模塊化,更易于擴(kuò)展,更易于開發(fā)團(tuán)隊(duì)中的新手閱讀和管理等。

確保隨著時(shí)間的推移,原始設(shè)計(jì)保持可理解和清晰,并保留其預(yù)期功能。..。..

鑒于我們現(xiàn)在對(duì)重新設(shè)計(jì)與重構(gòu)工作有了更清晰的理解,

哪些情況需要重新驗(yàn)證您的軟件?

好吧,軟件測(cè)試的本質(zhì)是它們主要檢查代碼是否符合其目的。換句話說,它們根據(jù)應(yīng)用程序的功能要求驗(yàn)證組成系統(tǒng)的每個(gè)軟件單元是否按預(yù)期運(yùn)行。話雖如此,如果您嘗試重新設(shè)計(jì)代碼,則必須對(duì)其進(jìn)行測(cè)試以確保根據(jù)新引入的要求驗(yàn)證新功能,同時(shí)確保這些新擴(kuò)展不會(huì)在現(xiàn)有的通過測(cè)試中引入回歸。

您可能會(huì)爭(zhēng)辯說,重構(gòu)工作只影響軟件內(nèi)部結(jié)構(gòu),因此不一定影響代碼接口和根據(jù)應(yīng)用程序要求交付的一般服務(wù)。是的,但是。..像任何其他開發(fā)活動(dòng)一樣,重構(gòu)是引入新錯(cuò)誤的一種非常簡(jiǎn)單的方法,因此您必須重新測(cè)試您的軟件。維護(hù)一組完整而詳盡的通過測(cè)試將確保重構(gòu)不會(huì)導(dǎo)致代碼中的回歸錯(cuò)誤未被檢測(cè)到。事實(shí)上,每當(dāng)你做一個(gè)小的改變時(shí),你應(yīng)該重新執(zhí)行現(xiàn)有的測(cè)試作為安全網(wǎng),以檢查你沒有修改預(yù)期的行為。經(jīng)過一系列增量更改后,您將以安全的方式達(dá)到最初面向的重構(gòu)狀態(tài)。

大多數(shù)組織希望通過在源代碼更改時(shí)更新這些測(cè)試來保留以前測(cè)試投資的價(jià)值。但這可能會(huì)導(dǎo)致高昂的測(cè)試維護(hù)成本。該解決方案并不像僅確定受代碼更改影響的受影響測(cè)試的子集(有時(shí)稱為測(cè)試影響分析或基于更改的測(cè)試)那樣簡(jiǎn)單。測(cè)試維護(hù)的昂貴部分是開發(fā)人員花費(fèi)在識(shí)別依賴項(xiàng)和更新相應(yīng)測(cè)試以確保它們與修改后的軟件同步上的努力。

那么,適當(dāng)?shù)臏y(cè)試自動(dòng)化如何降低這些測(cè)試維護(hù)成本呢?

1)通過對(duì)代碼更改和測(cè)試依賴關(guān)系的初步分析:

·了解對(duì)正在測(cè)試的代碼的更改(通過保留上次測(cè)試時(shí)的代碼信息并將其與更改的代碼進(jìn)行比較)

·確定哪些測(cè)試受代碼更改的影響

·在單個(gè)視圖中識(shí)別代碼中影響測(cè)試的所有更改

·識(shí)別可能影響現(xiàn)有測(cè)試實(shí)現(xiàn)的代碼覆蓋率的代碼更改

2) 通過為開發(fā)人員提供自動(dòng)測(cè)試更新的指導(dǎo)選擇,以便重新同步源代碼和測(cè)試:

? 對(duì)于每個(gè)代碼更改,建議對(duì)測(cè)試腳本和案例進(jìn)行適當(dāng)?shù)母?/p>

? 自動(dòng)重構(gòu)測(cè)試腳本,以便節(jié)省時(shí)間和成本效益

3)對(duì)于主要影響軟件內(nèi)部結(jié)構(gòu)的代碼更改,自動(dòng)生成通過測(cè)試的安全網(wǎng)或基線,以便:

? 在回歸測(cè)試或持續(xù)集成期間查明故障

? 識(shí)別可測(cè)試性問題,例如無法訪問的代碼

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10854

    瀏覽量

    211574
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68521
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HSSC MicroStar BGA停產(chǎn)并重新設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《HSSC MicroStar BGA停產(chǎn)并重新設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 11-25 15:24 ?0次下載
    HSSC MicroStar BGA停產(chǎn)并<b class='flag-5'>重新設(shè)</b>計(jì)

    CTS MicroStar BGA停產(chǎn)并重新設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《CTS MicroStar BGA停產(chǎn)并重新設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 11-24 14:24 ?0次下載
    CTS MicroStar BGA停產(chǎn)并<b class='flag-5'>重新設(shè)</b>計(jì)

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)控件位置調(diào)整場(chǎng)景與重新設(shè)置新焦點(diǎn)位置的場(chǎng)景

    是一致的。例如,桌面圖標(biāo)被托起時(shí),會(huì)播報(bào)已托起,移動(dòng)的過程中,根據(jù)即將放置的位置播報(bào)“移至第幾行,第幾列”,放置后播報(bào)“已放至第幾行,第幾列”。應(yīng)用可調(diào)用主動(dòng)播報(bào)的接口來進(jìn)行主動(dòng)播報(bào)。 二、重新設(shè)
    發(fā)表于 10-25 09:49

    三星重新設(shè)計(jì)1a DRAM以提升HBM質(zhì)量

     三星電子正面臨嚴(yán)峻挑戰(zhàn),特別是在其半導(dǎo)體業(yè)務(wù)領(lǐng)域。除了代工業(yè)務(wù)停滯的問題,該公司高帶寬存儲(chǔ)器(HBM)市場(chǎng)的競(jìng)爭(zhēng)力也引發(fā)了廣泛關(guān)注。據(jù)業(yè)內(nèi)人士透露,為了提升在HBM領(lǐng)域的競(jìng)爭(zhēng)力,三星可能會(huì)著手重新設(shè)計(jì)部分1a DRAM電路。
    的頭像 發(fā)表于 10-22 14:37 ?377次閱讀

    中繼器如何重新設(shè)

    中繼器(Repeater)是一種網(wǎng)絡(luò)設(shè)備,用于擴(kuò)展無線信號(hào)覆蓋范圍,增強(qiáng)無線網(wǎng)絡(luò)的信號(hào)強(qiáng)度。無線網(wǎng)絡(luò)中,中繼器可以幫助解決信號(hào)衰減問題,提高網(wǎng)絡(luò)的穩(wěn)定性和覆蓋范圍。重新設(shè)置中繼器通常涉及到以下幾個(gè)
    的頭像 發(fā)表于 09-05 09:33 ?1749次閱讀

    重構(gòu):改善既有代碼的設(shè)計(jì)」實(shí)戰(zhàn)篇

    背景 軟件開發(fā)的世界里,代碼重構(gòu)是提升項(xiàng)目質(zhì)量、適應(yīng)業(yè)務(wù)變化的關(guān)鍵步驟。最近,我重新翻閱了《重構(gòu):改善既有
    的頭像 發(fā)表于 08-14 10:42 ?248次閱讀
    「<b class='flag-5'>重構(gòu)</b>:改善既有<b class='flag-5'>代碼</b>的設(shè)計(jì)」實(shí)戰(zhàn)篇

    FPGA和ASIC有什么不同之處

    FPGA是“可重構(gòu)邏輯”器件。先制造的芯片,再次設(shè)計(jì)時(shí)重新配置”。
    的頭像 發(fā)表于 07-24 09:32 ?1011次閱讀
    FPGA和ASIC有什么不同之處

    spi_flash期間的計(jì)時(shí)器中斷導(dǎo)致崩潰怎么解決?

    : spi_flash_erase_sector(...); spi_flash_write(...); 如果在閃存訪問期間發(fā)生計(jì)時(shí)器中斷,ESP 似乎會(huì)崩潰并重新啟動(dòng)。 當(dāng)然,這可以通過訪問 Flash 時(shí)禁用中斷來
    發(fā)表于 07-12 11:54

    ESP8266隨機(jī)崩潰,不會(huì)自行啟動(dòng)重新啟動(dòng)怎么處理?

    看門狗軟件看門狗的幫助下崩潰,它也應(yīng)該再次重新啟動(dòng)并正常工作。為什么它期待硬重啟。 您能否建議問題的根本原因。模塊遇到這種情況的可能性有多大,為什么看門狗計(jì)時(shí)器無法幫助模塊啟動(dòng)和運(yùn)行,以及模塊在運(yùn)行時(shí)環(huán)境中期望硬重啟的可能性
    發(fā)表于 07-11 07:41

    每次調(diào)用espconn_send之前,重新設(shè)置遠(yuǎn)程IP和端口的目的是什么?

    每次調(diào)用 espconn_send() 之前,應(yīng)重新設(shè)置遠(yuǎn)程 ip 和遠(yuǎn)程端口的目的是什么? 如果我們只將它用于一對(duì)一的重復(fù) UDP 通信,它仍然是必須的嗎? 首先,我們通過打印調(diào)試發(fā)現(xiàn),如果
    發(fā)表于 07-11 07:25

    TLE986x如何定期重新啟動(dòng)計(jì)時(shí)器?

    模式 0-13 位定時(shí)器模式下運(yùn)行 T3。 達(dá)到溢出時(shí),計(jì)時(shí)器停止。 請(qǐng)問如何定期重新啟動(dòng)計(jì)時(shí)器?
    發(fā)表于 07-03 07:13

    該如何提高代碼容錯(cuò)率、降低代碼耦合度?

    處理用戶輸入外部數(shù)據(jù)時(shí),進(jìn)行嚴(yán)格的輸入驗(yàn)證和數(shù)據(jù)校驗(yàn)是確保系統(tǒng)安全和穩(wěn)定的重要步驟。硬件和軟件的故障隔離:硬件和軟件設(shè)計(jì)中,采取故障隔離的措施可以減少故障傳
    的頭像 發(fā)表于 06-26 08:10 ?655次閱讀
    該如何提高<b class='flag-5'>代碼</b>容錯(cuò)率、降低<b class='flag-5'>代碼</b>耦合度?

    FPGA的sata接口設(shè)計(jì)時(shí)需要注意哪些問題

    FPGA的SATA接口設(shè)計(jì)時(shí),需要注意以下幾個(gè)方面的問題,以確保設(shè)計(jì)的穩(wěn)定性和性能: 接口版本和速度 : SATA有三代標(biāo)準(zhǔn),分別為SATA I(1.5 Gb/s)、SATA II(3.0 Gb
    發(fā)表于 05-27 16:20

    計(jì)時(shí)器觸發(fā)的中斷中使用了HAL_I2C_Mem_Read函數(shù)(I2C數(shù)據(jù)讀取)導(dǎo)致代碼卡死怎么解決?

    計(jì)時(shí)器觸發(fā)的中斷中使用了HAL_I2C_Mem_Read函數(shù)(I2C數(shù)據(jù)讀?。?dǎo)致代碼卡死,這有什么解決辦法嗎?十分感謝,個(gè)人猜測(cè)是中斷優(yōu)先級(jí)問題,但是不知如何設(shè)置 以下是計(jì)時(shí)器相關(guān)
    發(fā)表于 05-20 07:34

    fpga驗(yàn)證和uvm驗(yàn)證的區(qū)別

    FPGA驗(yàn)證和UVM驗(yàn)證芯片設(shè)計(jì)和驗(yàn)證過程中都扮演著重要的角色,但它們之間存在明顯的區(qū)別。
    的頭像 發(fā)表于 03-15 15:00 ?1585次閱讀
    RM新时代网站-首页