软件测试基础
軟件測試目標
測試效率
測試覆蓋率
軟件測試的原則
一、測試證明缺陷存在,但不能保證系統不存在缺陷
二、窮盡測試不可能,設置終止條件
三、測試盡早進行
四、缺陷具備群集特性
五、測試的殺蟲劑悖論:不定期修改測試用例和方法
六、測試的二八原則:20%重要模塊測試
七、測試活動依賴于測試背景:安全性/并發性
軟件測試分類
———————————————————————————
一、按測試階段分類
單元測試、集成測試、系統測試、驗收測試
1、單元測試
定義: 對軟件中的最小可測試單元進行檢查和驗證
原則:
1)盡可能保證各個測試用例相互獨立;
2)單元測試一般由代碼的開發人員來實施;
好處:
1)能盡早發現缺陷;
2)有利于重構;
3)簡化集成;
4)文檔;
5)用于設計
限制:
1)不可能覆蓋所有的執行路徑,所以不能保證捕捉到所有路徑的錯誤;
2)每一行代碼,一般需要3~5行測試代碼才能完成單元測試,所以存在投入和產出的一個平衡。
java單元測試框架:JUint
2、集成測試
**定義:是在單元測試的基礎上,測試在將所有的軟件單元按照概要設計規格說明的要求組裝成模塊、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求的活動
和單元測試區別:
1)測試對象不同;
類 、模塊
2)測試依據;
3)測試方法;
3、系統測試
定義:是將經過集成測試的軟件,作為計算機系統的一個部分,與系統中其他部分結合起來,在實際運行環境下對計算機系統進行的一系列嚴格有效的測試,以發現軟件潛在的問題,保證系統的正常運行。
關注點:
4、驗收測試
定義:也稱為交付測試。針對用戶需求、業務流程的正式的測試,確定系統是否滿足延后標準,由用戶、客戶或其他授權機構決定是否接受系統。
細分:
用戶驗收測試
運行驗收測試
合同和規范驗收測試
alpha測試:開發端
Beta測試:用戶端
——————————————————————————————-
二、按測試手段分類
黑盒測試、白盒測試
靜態測試、動態測試
手工測試、自動化測試
1、黑盒測試
不關注內部,更貼近用戶
一般系統測試階段采用黑盒測試
測試覆蓋率低<40%
復用率低,維護成本高
黑盒主要測試什么?
1、是否有不正確或遺漏功能?
2、在接口上,輸入是否能正確的接收?是否輸出正確的結果
3、是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
4、性能上是否能滿足要求?
2、白盒測試
強調邏輯覆蓋
主要邏輯單位:語句、條件、條件組合、分支、路徑
優點:迫使思考軟件愛你實現原理、覆蓋率高
缺點:昂貴、無法檢測代碼遺漏路徑
3、靜態測試
無需執行程序,通過評審軟件文檔或代碼,度量程序靜態復雜度,檢查軟件是否符合編程標準,從而減少錯誤出現的概率。
4、動態測試
通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率,正確性和健壯性等。
5、手工測試
由專門測試人員從用戶視角來驗證軟件是否滿足設計要求的行為。更適用針對深度的測試和強調主觀判斷的測試。
6、自動化測試
使用單獨的測試工具軟件控制測試的自動化執行以及對預期和結果進行自動檢查。‘
單元測試、接口測試、性能測試等
——————————————————————————————
三、按測試模式分類
1、傳統的瀑布模型

2、V模型
3、W模型
4、X模型
5、H模型
6、敏捷測試
7、基于腳本的測試-SBT
—————————————————————————————–
四、按測試類型分類
1、功能測試**
2、性能測試
性能測試:負載測試、壓力測試、穩定性測試
靜態性能評估:對web應用的頁面進行靜態分析,給出評估結果的性能分析方法
工具:YSlow PageSpeed
應用性能管理(APM):提供對性能的實時監控以及性能管理、故障管理的解決方案。
3、安全測試
對軟件產品進行測試以確保其符合產品安全需求和質量標準
OWASP(open web application security project) :開放的web應用安全項目
The OWASP Top 10 2017 (10項最嚴重的 Web 應用程序安全風險)
A1:2017-注入
將不受信任的數據作為命令或查詢的一部分發送到解析器時,會產生諸如SQL注入、NoSQL注入、OS
注入和LDAP注入的注入缺陷。攻擊者的惡意數據可以誘使解析器在沒有適當授權的情況下執行非預
期命令或訪問數據。
A2:2017-失效的身份認證
通常,通過錯誤使用應用程序的身份認證和會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌,
或者利用其它開發缺陷來暫時性或永久性冒充其他用戶的身份。
A3:2017-敏感數據泄露
許多Web應用程序和API都無法正確保護敏感數據,例如:財務數據、醫療數據和PII數據。攻擊者可
以通過竊取或修改未加密的數據來實施信用卡詐騙、身份盜竊或其他犯罪行為。未加密的敏感數據
容易受到破壞,因此,我們需要對敏感數據加密,這些數據包括:傳輸過程中的數據、存儲的數據
以及瀏覽器的交互數據。
A4:2017-XML 外部實體(XXE)
未對通過身份驗證的用戶實施恰當的訪問控制。攻擊者可以利用這些缺陷訪問未經授權的功能或數
據,例如:訪問其他用戶的帳戶、查看敏感文件、修改其他用戶的數據、更改訪問權限等。
A6:2017-安全配置錯誤
安全配置錯誤是最常見的安全問題,這通常是由于不安全的默認配置、不完整的臨時配置、開源云
存儲、錯誤的 HTTP 標頭配置以及包含敏感信息的詳細錯誤信息所造成的。因此,我們不僅需要對所
有的操作系統、框架、庫和應用程序進行安全配置,而且必須及時修補和升級它們。
A7:2017-跨站腳本(XSS)
當應用程序的新網頁中包含不受信任的、未經恰當驗證或轉義的數據時,或者使用可以創建 HTML或
JavaScript 的瀏覽器 API 更新現有的網頁時,就會出現 XSS 缺陷。XSS 讓攻擊者能夠在受害者的瀏覽器
中執行腳本,并劫持用戶會話、破壞網站或將用戶重定向到惡意站點。
A8:2017-不安全的反序列化
不安全的反序列化會導致遠程代碼執行。即使反序列化缺陷不會導致遠程代碼執行,攻擊者也可以
利用它們來執行攻擊,包括:重播攻擊、注入攻擊和特權升級攻擊。
A9:2017-使用含有已知漏洞的組件
組件(例如:庫、框架和其他軟件模塊)擁有和應用程序相同的權限。如果應用程序中含有已知漏
洞的組件被攻擊者利用,可能會造成嚴重的數據丟失或服務器接管。同時,使用含有已知漏洞的組
件的應用程序和API可能會破壞應用程序防御、造成各種攻擊并產生嚴重影響。
A10:2017-不足的日志記錄和監控
不足的日志記錄和監控,以及事件響應缺失或無效的集成,使攻擊者能夠進一步攻擊系統、保持持
續性或轉向更多系統,以及篡改、提取或銷毀數據。大多數缺陷研究顯示,缺陷被檢測出的時間超
過200天,且通常通過外部檢測方檢測,而不是通過內部流程或監控檢測。
4、滲透測試
通過模擬對軟件系統的惡意攻擊行為來評估系統安全性的一種測試
滲透測試VS安全測試
攻———-防
點———-面
5、兼容性測試
軟件本身的兼容性:
不同平臺下的兼容性:
不同系統發行版
軟件運行設備的兼容性:
32/64位系統,手機,平板,pc,電視盒子
軟件互操作性:
比如開發的軟件是否和主流微信兼容
瀏覽器兼容性:
瀏覽器內核不同
6、文檔測試
針對軟件產品的交付品,配套的文檔類部件的測試。如用戶手冊、使用說明、用戶幫助文檔等。
文檔測試關注要點
完整性、正確性、一致性、易理解性、易瀏覽性
7、可靠性測試
軟件可靠性、硬件可靠性
8、易用性測試
是測試用戶使用軟件時是否感覺方便,是否能夠保證用戶使用體驗的測試類型
9、本地化測試
針對軟件的本地化版本實施的針對性測試
主要測試內容:
語言、書寫習慣
時區、時期格式、貨幣
當地風俗、法律法規
政治敏感內容
10、部署測試
安裝測試,驗證系統部署過程,確保軟件經過安裝測試之后可以正常使用
主要測試內容:
在不同環境下的部署驗證
參照部署文檔執行,過程的合理、正確性
基礎數據
11、無障礙測試
可訪問測試,針對有障礙人士的測試
—————————————————————————————–
五、其他分類
總結
總結
- 上一篇: 学计算机逻辑思维能力测试题,逻辑思维题(
- 下一篇: MatLab:数字图像处理实验