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