通過測試避免嵌入式軟件缺陷
商務期望與在開發和測試過程中的要求演變之間的這種隔閡原因比字面意義上要深刻得多。這是與傳統組織文化相關的典型癥狀,即工程師認為商務人員不理解軟件開發過程的復雜性。與此同時,組織的商務側人員認為工程師患有聰明開發人員綜合病癥(SDS)——一種病態失調,即工程師所做的都是他們認為最好的,因為他們聰明嘛。
實現策略
那么解決方案是什么?一個組織如何在商務目標和開發過程之間架起溝通的橋梁?策略是確保工程師提供滿足期望值的軟件的關鍵,并且將品質意識根植于軟件開發流程。通過實現策略驅動的開發方法,組織就可以在從創建到支持的整個軟件開發周期內降低風險、提高產能并降低成本。策略驅動的開發基礎是三個核心行動:
1. 定義策略形式的期望值,并以此指導工程師如何開發和測試軟件
2. 在驅動這些策略的商務目標方面培訓工程師
3. 在適當的基礎設施幫助下自動監視策略的堅持力
清晰地定義可實施和可測量的策略可形成前后一致性和很高的精度,確保用文字定義的嚴格質量過程能夠貫徹實行。此外,為了高效地達到清晰性和可測量性,策略增強自動化很有必要。
指導方針還是策略
如果你詢問一個組織的開發策略,許多人會很快指向他們的最佳實踐和指導方針。但指導方針和策略是不可互換的兩個概念。指導方針描述建議的行為,而策略描述期望的行為。所有策略都有以下三個組成部分:
● 策略必須是自動可實施的:人工檢查工程師是否遵循策略是不可行的。必須使用某種自動機制來檢查違例并加以提醒。
● 策略違例提醒必須有針對性:只有所編寫的代碼違反策略的工程師才應被提醒。這樣,符合策略的工程師可以繼續不中斷地工作。
● 必須制定糾正策略違例的自動化工作流程:應該定義工程師發現和處理策略違例的方法并實現自動化。
對嵌入式軟件組織來說好消息是,有現成的技術可用來自動執行策略,如果執行正確的話,可以改善質量、提高產能、降低開發成本和風險。
策略與過程的匹配
“胡佛水壩必須滴水不漏”是一個合理的策略,它以平實明確的語言確立了一個組織的目標。現在考慮“每天檢查一次漏水情況”的策略。表面上,這個策略似乎可以推動組織朝目標邁進,但更仔細的檢查可以暴露出在許多嵌入式開發商店中流行的缺點類型。
這種策略達不到預期效果的地方是它允許問題先發生。它不是支持第一個策略的目標,而只是檢查與不能滿足在“胡佛水壩必須滴水不漏”中確定的組織目標相關的癥狀。遺憾的是,許多開發測試實踐都遵循這種治標不治本的模型。
一個好得多的策略是“每天加強水壩的最弱點”。通過匹配策略和過程來滿足想要的商務目標,你可以創建一個框架來確保并保持嵌入式軟件的強度、安全性和可靠性。
圖1:靜態增強編碼策略的開發測試平臺。
策略與開發測試
開發測試是在整個開發過程中對軟件測試行為的持續整合。它可以減少技術過失,防止缺陷生成,這是在應用生命期內提高效率和降低風險的關鍵。開發測試平臺是實現開發測試實踐一致性應用自動化的基礎設施,這些實踐活動包括靜態分析、單元測試、對端檢查、覆蓋率分析、運行時錯誤檢測,以及精確和客觀地測量產能和應用質量。
每個組織可能發現不同的開發測試活動在特定環境下更有價值。策略驅動的開發測試可以確保這些開發測試活動以價值集中的、風險明確的、可核查的方式得到正確實施。開發測試平臺接受策略形式的輸入,并將它們翻譯成一套定義一個或更多過程的規則。這種平臺使該過程自動化、跟蹤策略的持續性并驗證結果是否符合期望值。也就是說,開發測試平臺可以讓商務領導更好地控制開發過程,并更好地觀察過程改變的效果。
本文小結
值得注意的是,開發測試并不能替代品質管理(QA),而是作為確認軟件功能是否正確實現了最初意圖的一個過程。開發測試也不只是測試過程的“左移”。開發測試的出現代表了與業界組織目前采用的更多反復、更為靈活的開發過程的一致性。開發測試是軟件開發行為的一種模型,如果能夠貫徹執行,將形成一種軟件缺陷無法生存的環境。
評論