翻譯|使用教程|編輯:況魚杰|2020-11-20 11:16:47.757|閱讀 417 次
概述:開發(fā)團(tuán)隊(duì)進(jìn)行回歸測(cè)試,以驗(yàn)證軟件應(yīng)用程序中的代碼變化(修復(fù)錯(cuò)誤或添加新功能)不會(huì)導(dǎo)致引入另一個(gè)錯(cuò)誤或破壞現(xiàn)有系統(tǒng)的任何功能。本文將會(huì)告訴大家什么是回歸測(cè)試,以及為什么它在軟件開發(fā)實(shí)踐中占有如此重要的地位。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
開發(fā)團(tuán)隊(duì)進(jìn)行回歸測(cè)試,以驗(yàn)證軟件應(yīng)用程序中的代碼變化(修復(fù)錯(cuò)誤或添加新功能)不會(huì)導(dǎo)致引入另一個(gè)錯(cuò)誤或破壞現(xiàn)有系統(tǒng)的任何功能。
對(duì)于許多嵌入式系統(tǒng),團(tuán)隊(duì)在生命周期結(jié)束時(shí)進(jìn)行回歸測(cè)試,以確定每個(gè)軟件版本發(fā)布的穩(wěn)定性。這是一個(gè)反復(fù)的過程,一直持續(xù)到項(xiàng)目達(dá)到開發(fā)結(jié)束或維護(hù)結(jié)束。在其他工作流程中,回歸測(cè)試是開發(fā)人員日常的現(xiàn)實(shí)活動(dòng)。事實(shí)上,可以說在迭代和敏捷過程中,大部分測(cè)試都是回歸測(cè)試。在進(jìn)一步探討之前,我們先來看看什么是回歸測(cè)試,以及為什么它在軟件開發(fā)實(shí)踐中占有如此重要的地位。
回歸是指 "向較低或不完美狀態(tài)的趨勢(shì)或轉(zhuǎn)變"--這也是在開發(fā)軟件時(shí)都在努力避免的?;貧w測(cè)試有助于發(fā)現(xiàn)在添加新功能、修復(fù)錯(cuò)誤時(shí),以及在對(duì)測(cè)試用例本身進(jìn)行更改時(shí),潛入軟件中的缺陷。作為大多數(shù)軟件開發(fā)過程的一部分,開發(fā)人員在對(duì)軟件進(jìn)行更改后要進(jìn)行回歸測(cè)試。這些測(cè)試確定新的更改是否對(duì)軟件的現(xiàn)有運(yùn)行產(chǎn)生了影響。
當(dāng)然,回歸測(cè)試是必要的,但它們只是表明最近的代碼變化沒有導(dǎo)致測(cè)試失敗。并不能保證這些變化本身是有效的。此外,促使需要做回歸測(cè)試的變化的性質(zhì)可能會(huì)超出當(dāng)前應(yīng)用程序的范圍,包括硬件、操作系統(tǒng)和運(yùn)行環(huán)境的變化。
由于嵌入式系統(tǒng)往往有對(duì)安全和安保至關(guān)重要的限制,開發(fā)團(tuán)隊(duì)要對(duì)系統(tǒng)或子系統(tǒng)進(jìn)行回歸測(cè)試,測(cè)試可以說是在系統(tǒng)或子系統(tǒng)的每個(gè)迭代生命周期結(jié)束時(shí)進(jìn)行。這意味著必須執(zhí)行所有為前一個(gè)軟件系統(tǒng)或子系統(tǒng)版本定義的單元測(cè)試用例,加上為驗(yàn)證新功能而增加的新單元測(cè)試用例,以暴露軟件中的回歸。
如果以前的單元測(cè)試用例通過了,現(xiàn)在卻失敗了,那么可能已經(jīng)發(fā)現(xiàn)了一個(gè)潛在的回歸。新功能可能會(huì)導(dǎo)致失敗。如果是這種情況,那么測(cè)試用例可能需要考慮輸入和輸出值的變化而進(jìn)行更新。同樣至關(guān)重要的是,要明白回歸測(cè)試不僅僅意味著單元測(cè)試用例。嵌入式系統(tǒng)的回歸測(cè)試還包括集成測(cè)試用例、系統(tǒng)測(cè)試用例、性能測(cè)試用例、壓力測(cè)試用例等的執(zhí)行。事實(shí)上,開發(fā)人員應(yīng)該執(zhí)行所有之前創(chuàng)建的測(cè)試用例,以確保:
這兩點(diǎn)都很關(guān)鍵,因?yàn)槊恳粋€(gè)新的軟件系統(tǒng)或子系統(tǒng)的發(fā)布都是建立在前一個(gè)版本的基礎(chǔ)上或開發(fā)的。如果你沒有一個(gè)堅(jiān)實(shí)的基礎(chǔ),整個(gè)系統(tǒng)就會(huì)崩潰。
Parasoft C/C++test 可以自動(dòng)生成測(cè)試用例。將它們與手動(dòng)創(chuàng)建的測(cè)試用例結(jié)合起來,就會(huì)形成一個(gè)集合:測(cè)試套件。開發(fā)人員和測(cè)試人員執(zhí)行測(cè)試套件來識(shí)別應(yīng)用程序的缺陷。Parasoft C/C++test 捕獲測(cè)試結(jié)果,并識(shí)別出故障,進(jìn)行分析和修復(fù)。在這個(gè)初始周期之后,團(tuán)隊(duì)可以重復(fù)使用現(xiàn)有的測(cè)試用例或測(cè)試套件進(jìn)行回歸測(cè)試。
可能很明顯的是,軟件的更新和更改需要進(jìn)行測(cè)試。從這個(gè)意義上說,回歸測(cè)試是開發(fā)過程中一個(gè)明顯的步驟。在具有敏捷流程和持續(xù)集成和部署的現(xiàn)代軟件開發(fā)中,回歸測(cè)試成為每個(gè)周期的關(guān)鍵步驟。隨著軟件的增長(zhǎng),回歸測(cè)試的套件也在增長(zhǎng)。隨著套件的增長(zhǎng),執(zhí)行和調(diào)試時(shí)間也在增長(zhǎng),往往是管道的瓶頸。如果沒有專注和精簡(jiǎn)的回歸測(cè)試,很難擁有敏捷開發(fā)和精簡(jiǎn)的DevOps管道。
在嵌入式系統(tǒng)上工作會(huì)給測(cè)試增加另一個(gè)維度,因?yàn)樵谀繕?biāo)硬件上執(zhí)行測(cè)試往往是可取的,或者是必須的。由于在嵌入式目標(biāo)上啟動(dòng)和觀察測(cè)試的復(fù)雜性,回歸測(cè)試可能更具挑戰(zhàn)性。再加上由于這些目標(biāo)系統(tǒng)的高成本,軟件團(tuán)隊(duì)獲得目標(biāo)硬件的機(jī)會(huì)有限。因此,建立一個(gè)可重用和可配置的測(cè)試自動(dòng)化解決方案,可以從主機(jī)和/或虛擬系統(tǒng)上的執(zhí)行--以及目標(biāo)系統(tǒng)上的驗(yàn)證和確認(rèn)--以連續(xù)的方式無縫過渡,可以大大節(jié)省資源、時(shí)間和成本。
開發(fā)團(tuán)隊(duì)可以使用Parasoft C/C++test 在主機(jī)平臺(tái)、目標(biāo)處理器模擬器或嵌入式目標(biāo)上執(zhí)行單元測(cè)試。Parasoft C/C++test 經(jīng)過優(yōu)化,以最小的二進(jìn)制足跡或進(jìn)程周期的額外開銷,Parasoft C/C++test 的測(cè)試線束以源代碼的形式出現(xiàn)。這意味著團(tuán)隊(duì)可以針對(duì)所需的平臺(tái)特定修改進(jìn)行定制。這一點(diǎn)很有必要,因?yàn)閺哪繕?biāo)系統(tǒng)中收集測(cè)試結(jié)果和代碼覆蓋率數(shù)據(jù)對(duì)安全和安全關(guān)鍵型系統(tǒng)至關(guān)重要,并且是DO-178B/C、ISO 26262、IEC 62304等流程標(biāo)準(zhǔn)所要求的。
此外,Parasoft C/C++test 還提供了與嵌入式IDE和調(diào)試器的專用集成,使測(cè)試用例的執(zhí)行過程變得流暢和自動(dòng)化。支持的IDE環(huán)境包括Eclipse、VS Code、Green Hills Multi、Wind River Workbench、IAR EW、ARM MDK、ARM DS-5、TI CCS、Visual Studio等。查看所有Parasoft C/C++test 技術(shù)規(guī)范。
回歸測(cè)試的關(guān)鍵挑戰(zhàn)是確定測(cè)試應(yīng)用程序的哪些部分。當(dāng)對(duì)最近的代碼更改的影響有疑問時(shí),默認(rèn)運(yùn)行所有回歸測(cè)試并不罕見。這就是那種 "全有或全無 "的方法。然而,對(duì)于大型軟件項(xiàng)目來說,這就成了一項(xiàng)巨大的工程,拖累了團(tuán)隊(duì)的生產(chǎn)力。這種無法集中測(cè)試的情況阻礙了迭代和持續(xù)流程的許多好處--在測(cè)試目標(biāo)是有限資源的嵌入式軟件中可能會(huì)更加嚴(yán)重。
我們需要的是一種方法來確定哪些測(cè)試需要重新執(zhí)行,并將測(cè)試工作(單元測(cè)試、自動(dòng)功能測(cè)試和手動(dòng)測(cè)試)集中在驗(yàn)證受最新變化影響的功能和相關(guān)代碼上。利用Parasoft專有的覆蓋率分析引擎(C/C++test for C & C++、Jtest for Java和dotTEST for C#)和Parasoft DTP內(nèi)的過程智能引擎(PIE)的組合,開發(fā)人員和測(cè)試人員可以了解代碼庫在兩次構(gòu)建之間的變化,通過這種效率的提高,實(shí)現(xiàn)敏捷的承諾。這種形式的智能測(cè)試執(zhí)行被稱為測(cè)試影響分析(有時(shí)也被稱為基于變化的測(cè)試)。
測(cè)試影響分析使用測(cè)試運(yùn)行期間收集的數(shù)據(jù)和兩次構(gòu)建之間的代碼變化來確定哪些文件發(fā)生了變化,哪些特定的測(cè)試觸及了這些文件。Parasoft的分析引擎可以分析兩次構(gòu)建之間的delta,并確定要執(zhí)行的回歸測(cè)試子集。它還能理解修改后的單元的依賴性,以確定對(duì)其他單元的改動(dòng)會(huì)產(chǎn)生什么波及。
Parasoft C/C++test、Jtest 和 dotTest 可以深入了解軟件變更的影響,并提供建議,以確定在哪些地方增加測(cè)試,在哪些地方運(yùn)行更多的回歸測(cè)試。請(qǐng)看下面基于變更的測(cè)試報(bào)告示例。
通過測(cè)試影響分析簡(jiǎn)化回歸測(cè)試,大大降低了測(cè)試的整體負(fù)擔(dān)。它使開發(fā)人員和測(cè)試人員能夠只關(guān)注受影響的代碼和測(cè)試。結(jié)果是什么?
回歸測(cè)試不再是一種負(fù)擔(dān),而是提高產(chǎn)品質(zhì)量和安全性的關(guān)鍵步驟。它產(chǎn)生的指標(biāo)有助于衡量質(zhì)量、安全性和整體進(jìn)度。
通過最先進(jìn)的工具支持和基于目標(biāo)的測(cè)試,還可以在開發(fā)人員創(chuàng)建代碼時(shí)就開始回歸測(cè)試。隨著時(shí)間的推移,每個(gè)新的單元測(cè)試都會(huì)成為回歸測(cè)試,開發(fā)人員可以立即利用基于變化的測(cè)試。盡早進(jìn)行回歸測(cè)試(將其轉(zhuǎn)移到開發(fā)時(shí)間線的左側(cè))意味著更早地發(fā)現(xiàn)缺陷。向左移動(dòng)可以立即節(jié)省時(shí)間和金錢。在軟件生命周期的后期,它的回報(bào)率甚至更高。不要小看這種回報(bào)。它可以節(jié)省大量的下游成本。在SDLC中更早地發(fā)現(xiàn)缺陷,可以削減修復(fù)成本,減少對(duì)下游活動(dòng)的影響。請(qǐng)看下圖。
回歸測(cè)試是嵌入式軟件測(cè)試的核心活動(dòng)。每一個(gè)新增加的功能、錯(cuò)誤修復(fù)或配置變更都需要進(jìn)行測(cè)試,以確認(rèn)哪些功能已經(jīng)在工作并繼續(xù)工作。然而,隨著項(xiàng)目的增長(zhǎng)和軟件復(fù)雜性的增加,回歸測(cè)試的數(shù)量也在增加。最終,測(cè)試自動(dòng)化成為幫助處理測(cè)試負(fù)擔(dān)的必要手段。智能測(cè)試執(zhí)行等新技術(shù)讓回歸測(cè)試變得更容易。它促使開發(fā)人員和測(cè)試人員專注于專門測(cè)試更改和受影響代碼的測(cè)試。
將敏捷、CI/CD和DevOps等流程改進(jìn)與軟件測(cè)試自動(dòng)化相結(jié)合,使得幾乎在代碼寫好后就開始回歸測(cè)試成為可能。它有效地將測(cè)試轉(zhuǎn)移到左邊,并在成本更低、更容易修復(fù)的情況下更早地發(fā)現(xiàn)錯(cuò)誤。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: