新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 通過測試避免嵌入式軟件缺陷

通過測試避免嵌入式軟件缺陷

作者: 時(shí)間:2017-03-23 來源:網(wǎng)絡(luò) 收藏
當(dāng)表達(dá)一個(gè)要求時(shí),商務(wù)人員的期望是實(shí)現(xiàn)只要能夠正常工作。但對于最終產(chǎn)品是否真正按料想的方式工作,在商務(wù)或軟件歷史上就幾乎沒有達(dá)成過一致意見。從工程角度看,與性能、可靠性、安全性等相關(guān)的任何問題如果不能滿足要求就都應(yīng)該被視作缺陷。而從商務(wù)角度看,人們認(rèn)為避免這些問題本身就是所表達(dá)的要求的一部分。

商務(wù)期望與在開發(fā)和測試過程中的要求演變之間的這種隔閡原因比字面意義上要深刻得多。這是與傳統(tǒng)組織文化相關(guān)的典型癥狀,即工程師認(rèn)為商務(wù)人員不理解軟件開發(fā)過程的復(fù)雜性。與此同時(shí),組織的商務(wù)側(cè)人員認(rèn)為工程師患有聰明開發(fā)人員綜合病癥(SDS)——一種病態(tài)失調(diào),即工程師所做的都是他們認(rèn)為最好的,因?yàn)樗麄兟斆髀铩?

實(shí)現(xiàn)策略

那么解決方案是什么?一個(gè)組織如何在商務(wù)目標(biāo)和開發(fā)過程之間架起溝通的橋梁?策略是確保工程師提供滿足期望值的軟件的關(guān)鍵,并且將品質(zhì)意識根植于軟件開發(fā)流程。通過實(shí)現(xiàn)策略驅(qū)動(dòng)的開發(fā)方法,組織就可以在從創(chuàng)建到支持的整個(gè)軟件開發(fā)周期內(nèi)降低風(fēng)險(xiǎn)、提高產(chǎn)能并降低成本。策略驅(qū)動(dòng)的開發(fā)基礎(chǔ)是三個(gè)核心行動(dòng):

1. 定義策略形式的期望值,并以此指導(dǎo)工程師如何開發(fā)和測試軟件

2. 在驅(qū)動(dòng)這些策略的商務(wù)目標(biāo)方面培訓(xùn)工程師

3. 在適當(dāng)?shù)幕A(chǔ)設(shè)施幫助下自動(dòng)監(jiān)視策略的堅(jiān)持力

清晰地定義可實(shí)施和可測量的策略可形成前后一致性和很高的精度,確保用文字定義的嚴(yán)格質(zhì)量過程能夠貫徹實(shí)行。此外,為了高效地達(dá)到清晰性和可測量性,策略增強(qiáng)自動(dòng)化很有必要。

指導(dǎo)方針還是策略

如果你詢問一個(gè)組織的開發(fā)策略,許多人會(huì)很快指向他們的最佳實(shí)踐和指導(dǎo)方針。但指導(dǎo)方針和策略是不可互換的兩個(gè)概念。指導(dǎo)方針描述建議的行為,而策略描述期望的行為。所有策略都有以下三個(gè)組成部分:

● 策略必須是自動(dòng)可實(shí)施的:人工檢查工程師是否遵循策略是不可行的。必須使用某種自動(dòng)機(jī)制來檢查違例并加以提醒。

● 策略違例提醒必須有針對性:只有所編寫的代碼違反策略的工程師才應(yīng)被提醒。這樣,符合策略的工程師可以繼續(xù)不中斷地工作。

● 必須制定糾正策略違例的自動(dòng)化工作流程:應(yīng)該定義工程師發(fā)現(xiàn)和處理策略違例的方法并實(shí)現(xiàn)自動(dòng)化。

嵌入式軟件組織來說好消息是,有現(xiàn)成的技術(shù)可用來自動(dòng)執(zhí)行策略,如果執(zhí)行正確的話,可以改善質(zhì)量、提高產(chǎn)能、降低開發(fā)成本和風(fēng)險(xiǎn)。

策略與過程的匹配

“胡佛水壩必須滴水不漏”是一個(gè)合理的策略,它以平實(shí)明確的語言確立了一個(gè)組織的目標(biāo)?,F(xiàn)在考慮“每天檢查一次漏水情況”的策略。表面上,這個(gè)策略似乎可以推動(dòng)組織朝目標(biāo)邁進(jìn),但更仔細(xì)的檢查可以暴露出在許多嵌入式開發(fā)商店中流行的缺點(diǎn)類型。

這種策略達(dá)不到預(yù)期效果的地方是它允許問題先發(fā)生。它不是支持第一個(gè)策略的目標(biāo),而只是檢查與不能滿足在“胡佛水壩必須滴水不漏”中確定的組織目標(biāo)相關(guān)的癥狀。遺憾的是,許多開發(fā)測試實(shí)踐都遵循這種治標(biāo)不治本的模型。

一個(gè)好得多的策略是“每天加強(qiáng)水壩的最弱點(diǎn)”。通過匹配策略和過程來滿足想要的商務(wù)目標(biāo),你可以創(chuàng)建一個(gè)框架來確保并保持嵌入式軟件的強(qiáng)度、安全性和可靠性。

圖1:靜態(tài)增強(qiáng)編碼策略的開發(fā)測試平臺。
圖1:靜態(tài)增強(qiáng)編碼策略的開發(fā)測試平臺。

策略與開發(fā)測試

開發(fā)測試是在整個(gè)開發(fā)過程中對軟件測試行為的持續(xù)整合。它可以減少技術(shù)過失,防止缺陷生成,這是在應(yīng)用生命期內(nèi)提高效率和降低風(fēng)險(xiǎn)的關(guān)鍵。開發(fā)測試平臺是實(shí)現(xiàn)開發(fā)測試實(shí)踐一致性應(yīng)用自動(dòng)化的基礎(chǔ)設(shè)施,這些實(shí)踐活動(dòng)包括靜態(tài)分析、單元測試、對端檢查、覆蓋率分析、運(yùn)行時(shí)錯(cuò)誤檢測,以及精確和客觀地測量產(chǎn)能和應(yīng)用質(zhì)量。

每個(gè)組織可能發(fā)現(xiàn)不同的開發(fā)測試活動(dòng)在特定環(huán)境下更有價(jià)值。策略驅(qū)動(dòng)的開發(fā)測試可以確保這些開發(fā)測試活動(dòng)以價(jià)值集中的、風(fēng)險(xiǎn)明確的、可核查的方式得到正確實(shí)施。開發(fā)測試平臺接受策略形式的輸入,并將它們翻譯成一套定義一個(gè)或更多過程的規(guī)則。這種平臺使該過程自動(dòng)化、跟蹤策略的持續(xù)性并驗(yàn)證結(jié)果是否符合期望值。也就是說,開發(fā)測試平臺可以讓商務(wù)領(lǐng)導(dǎo)更好地控制開發(fā)過程,并更好地觀察過程改變的效果。

本文小結(jié)

值得注意的是,開發(fā)測試并不能替代品質(zhì)管理(QA),而是作為確認(rèn)軟件功能是否正確實(shí)現(xiàn)了最初意圖的一個(gè)過程。開發(fā)測試也不只是測試過程的“左移”。開發(fā)測試的出現(xiàn)代表了與業(yè)界組織目前采用的更多反復(fù)、更為靈活的開發(fā)過程的一致性。開發(fā)測試是軟件開發(fā)行為的一種模型,如果能夠貫徹執(zhí)行,將形成一種軟件缺陷無法生存的環(huán)境。



評論


技術(shù)專區(qū)

關(guān)閉