雙向追溯保障需求到程式碼的一致性
前言
軟體交付過程中從需求設計到程式碼交付要經歷多個不同的角色和環節加工,而使用者最終看到的結果經常和需求預期存在差異,導致頻繁返工。造成這一現象的根本原因是研發過程資訊載體不同、表達方式不同,從而導致資訊傳遞失真。換成人話就是:需求文件、程式碼、測試用例等都在表達對需求的理解,但是他們又相互獨立,從而造成資訊偏差。
軟體研發中的一致性:
解決需求、程式碼、測試用例之間的一致性問題,這不僅涉及到單個元件的準確性,還涉及到它們之間的協同和整合,因此保障一致性最重要的基礎上建立彼此之間的連線性。從三者關係來說,需求定義了目標,程式碼是實現這些目標的手段,而測試用例則驗證目標是否已實現。
雙向追溯如何保障一致性:
雙向追溯結合 DevOps 實踐可以顯著提高需求與程式碼一致性。雙向追溯提供了需求與程式碼之間的明確連結(不理解雙向追溯的請看《雙向追溯(bidirectional traceability) 的原理和應用》),而 DevOps 透過其自動化和快速迭代的能力,確保這些需求可以快速且準確地轉化為軟體功能。雙向追溯結合 DevOps 在研發流程節點上的作用包括如下幾點:
1. 需求管理
- 價值:確保需求的一致性和完整性,響應需求變更。
- 關鍵點:在 DevOps 平臺為每個需求或子需求建立需求分支,從而可以在研發交付過程中自動追蹤需求的變更及其在開發週期中的實現情況。
2. 持續整合(CI)
- 價值:保證程式碼質量,確保新提交的程式碼與需求一致。
- 關鍵點:每次程式碼提交都觸發自動化測試和構建,以確保程式碼的質量和需求的實現目標。
3. 持續部署(CD)
- 價值:快速且一致地將新特性從 Dev 部署到 SIT,UAT 和生產環境。
- 關鍵點:自動化部署流程將經過測試的程式碼更改部署到生產環境,同時自動更新需求的部署狀態。
4. 測試和自動化測試
- 價值:確保需求得到正確實現。
- 關鍵點:建立和執行與需求相關聯的自動化測試用例,驗證程式碼和需求的一致性。同時自動更新需求的狀態。
5. 配置管理
- 價值:保證系統配置支援需求實現。
- 關鍵點:需求分支,開發分支,測試分支的規範運用。
6. 故障排查與缺陷修復
- 價值:快速定位和修復各環境中的問題。
- 關鍵點:使用動態鏈路來確定問題的根源,快速進行修復,更新需求狀態。
7. 版本控制與釋出管理
- 價值:確保釋出版本的完整性和一致性。
- 關鍵點:使用雙向追溯來確認釋出版本包含了所有需求的實現。特別是程式包,檔案與需求的關聯正確性。
結束語
雙向追溯在保障軟體開發過程中需求與程式碼一致性方面發揮著關鍵作用。它確保了從需求定義到程式碼實現和測試驗證的每一步都緊密對應,減少了開發過程中偏離原始需求的風險。透過提高開發和測試過程的透明度,雙向追溯不僅提升了軟體產品的質量,還加強了團隊成員之間的溝通和協作,有助於更有效地滿足使用者需求和業務目標。
相關網站
1、Hi-CodeCaptain 軟體研發質量管控平臺(簡稱 Hi-CC 平臺)
2、Hi-CC 魔法球網頁
3、Hi-CC 魔法球線上演示地址(注意先安裝 Hi-CC 魔法球擴充套件)
相關文章
- DOORS和Reqtify — 需求管理和需求追溯工具QT
- DOORS 和Reqtify — 需求管理和需求追溯工具QT
- DOORS和Reqtify—需求管理和需求追溯工具QT
- 從單向到雙向資料繫結
- MVVM雙向繫結機制的原理和程式碼實現MVVM
- vue雙向繫結的原理及實現雙向繫結MVVM原始碼分析VueMVVM原始碼
- 從程式導向到物件導向物件
- 原始碼分析:Vue的雙向資料繫結原始碼Vue
- 如何保障前端專案的程式碼質量前端
- go語言實現TLS雙向認證的客戶端 程式碼例子GoTLS客戶端
- vue-原始碼剖析-雙向繫結Vue原始碼
- GitHub + VSTS 開原始碼雙向同步Github原始碼
- redis快取一致性延時雙刪程式碼實現方式詳解Redis快取
- vue 雙向繫結(v-model 雙向繫結、.sync 雙向繫結、.sync 傳物件)Vue物件
- Vue原始碼學習之雙向繫結Vue原始碼
- @angular/forms 原始碼解析之雙向繫結AngularORM原始碼
- [筆記] 解碼Nginx:雙向佇列(Queue)筆記Nginx佇列
- [Redis]雙寫一致性Redis
- 0 到 1 掌握:Vue 核心之資料雙向繫結Vue
- 程式程式碼進化的一些思考:從物件導向到設計模式,到函數語言程式設計物件設計模式函數程式設計
- 雙向lstm原理
- google guava的BiMap:雙向MapGoGuava
- 揭密 Vue 的雙向繫結Vue
- javascript中的雙向繫結JavaScript
- Zoho Projects如何保障雙十一專案管理?Project專案管理
- 需求變更,程式碼改的像辣雞 - 論程式碼質量
- 京東為openKylin新增SBOM利器,保障軟體供應鏈安全和可追溯性!
- grpc雙向流RPC
- 雙向迭代介面:ListIterator
- UDP雙向通訊UDP
- 雙向連結串列
- 一文了解vue中watcher資料雙向繫結原理(附程式碼)Vue
- 如何解決研發資料傳輸層面安全可控、可追溯的共性需求?
- arm3.75版以後的從雙程式到單程式轉換的Script自動執行指令碼指令碼
- 向Github上提交程式碼Github
- 美團四面:如何保障 MySQL 和 Redis 的資料一致性?MySqlRedis
- java 雙向證書請求 雙向驗證機制 轉載Java
- 企業多儲存方式如何兼顧安全統一管理、便捷流暢訪問的雙向需求?