儘管提及軟件安全,大多數人都會聯想到網絡攻擊有關內容,但其實在功能性能上一樣須要充分考慮。也就是說,一個應用軟件在上線使用時,不只要讓人能夠放心的把我的敏感信息存放在應用軟件中,並且還須要軟件「質量」好。html
提到軟件「質量」就離不開應用軟件的功能/性能等測試。高「質量」的軟件不多出現錯誤,按時交付並在預算範圍內,知足要求、驗收標準和/或指望,而且是可維護的。但在「質量」要求上不一樣軟件的標準不一。通常來講,軟件質量包括如下這2個方面:安全
1) 性能效率:軟件系統及時提供相應服務的能力markdown
a.速度; 經過平均響應時間來度量網絡
b.吞吐量:經過單位時間處理的交易量來度量工具
c.持續高速性:保持高速處理速度的能力oop
2)信息安全性:性能
a.向合法用戶提供服務單元測試
b.阻止非受權用戶的使用測試
c.阻止惡意的攻擊spa
3)易用性:
軟件系統易於使用的程度
4)持續可用性
系統常時間無端障運行的能力
5)可伸縮性
指當用戶和數據量增長時,軟件系統保持高服務質量的能力
6)互操做性
指本軟件系統和其餘軟件系統交換數據和相互調用服務的難易程度
7)可靠性
軟件系統在必定時間之內無端障運行的能力
8)魯棒性Robust(也稱健壯性,容錯性)
是指軟件系統在如下狀況下依然可以正常運行的能力,用戶進行了非法操做,相連的軟件系統發生了故障,其餘非正常狀況的發生。
1)易理解性:指設計被開發人員理解的難易程度
2)可擴展性:爲適應新需求和需求的變化爲軟件增長功能的能力
3)可重用性:重用軟件系統或其一部分能力的難易程度
4)可測試性:對軟件測試以證實其知足需求規約的難易程度
6)可移植性:將軟件系統從一個運行環境轉移到另外一個不一樣的運行環境的難易程度。
一、明確的需求和驗收標準
清晰、完整、適當詳細、有凝聚力、可實現、可測試的規範或全部參與者都贊成的驗收標準。在「敏捷」類型的環境中,與產品全部者或其表明的持續密切協調是必要的,這能夠確保及時瞭解不斷變化的/新出現的需求。
二、合理的時間表
留出足夠的時間進行規劃、設計、測試、錯誤修復、從新測試、更改和文檔編制;開發人員應該能積極的完成項目並能以可持續的速度工做。
三、充分的測試
儘早開始測試,在修復或更改後從新測試,爲測試和錯誤修復計劃足夠的時間。「早期」測試能夠包括靜態代碼分析/測試、開源代碼分析、測試優先開發、開發人員的單元測試、內置測試和診斷功能等。若是做爲總體測試策略的一部分進行有效設計和實施,藉助自動化測試工具能夠幫助開發團隊高效工做。
四、儘可能堅持最初的要求/標準
在開發開始和最後階段儘可能避免過多增長或更改需求。若是須要更改,則應在相關日程更改或故事/點更改中充分反映,並與客戶/最終用戶密切溝通。在敏捷開發環境中,需求可能常常變化是能夠接受的,須要真正的敏捷過程到位。同時,在敏捷開發過程當中,事故不該該在最後階段才進行修改。
五、溝通
增強團隊成員之間的溝通及與客戶的溝通,確保信息保持一致,這不但能夠促進團隊合做,也能提升敏捷開發效率。
參讀連接: