什么是軟件測試:通俗的講:就是找軟件的“茬”(bug),即發現程序錯誤,然后提交給開發人員修改並進行驗證的一系列過程,以滿足上線后系統能按期望的設計穩定、正確的運行。沒有經過測試的軟件是不可靠的,后果也是可以想象到的。
測試的作用:是在用戶使用之前發現錯誤,測試工程師要站在用戶的角度來發現錯誤,使用戶拿到的產品質量更高,讓用戶更滿意。
測試的目的:
發現被測對象與用戶需求之間的差異,即缺陷;
通過測試活動發現並解決缺陷,增加人們對軟件質量的信心;
通過測試活動了解被測對象的質量狀況,為決策提供數據依據;
通過測試活動積累經驗,預防缺陷出現,降低產品失敗風險。
測試的原則:
測試應盡早啟動,盡早介入。發現的越早,修復的成本越低。通常項目立項就應該開始介入
一般來說:測試主要分為功能測試、性能測試、UI測試、安全測試等,其中最廣泛的測試就是功能測試。
按不同維度又有不同的分類方法:
按階段:單元測試、集成測試、系統測試、回歸測試、α測試、β測試、驗收測試;
按是否運行:靜態測試、動態測試;
按代碼可見:黑盒測試、白盒測試、灰盒測試;
按是否手工:手工測試、自動化測試;
其它:冒煙測試、隨機測試…
1、需求澄清階段: 測試主要是參加需求評審會議,這個是由產品發起的,測試不需要提交交付件;
2、測試准備階段: 需求澄清完了,就需要測試團隊進行測試前的准備工作了,
A、測試計划, 測試計划是在所有測試工作開展之前完成,主要是計划測試資源分配(硬件資源、軟件資源、人力資源),測試規范制定(轉測試規范、用例規范、bug規范), 測試范圍的制定, 測試策略的制定, 測試時間的制定, 測試的風險預估及應對方法;
B、測試用例, 在執行測試前必須按要求把用例寫好、並進行評審及修改;
3、測試執行階段:
A、bug文檔是測試執行階段的交付件;
B、測試用例執行結果是測試執行階段的交付件;
4、測試結束階段:
測試報告:包括測試的內容、測試系統各個模塊的質量,測試人力投入情況, 測試用例執行分析, bug 的分析,測試結論, 遺留問題及解決辦法。
軟件安全屬於軟件領域里一個重要的子領域。在以前的單機時代,安全問題主要是操作系統容易感染病毒,單機應用程序軟件安全問題並不突出。但是自從互聯網普及后,軟件安全問題愈加顯加突顯,使得軟件安全性測試的重要性上升到一個前所未有的高度。
一般來說,對安全性要求不高的軟件,其安全性測試可以混在單元測試、集成測試、系統測試里一起做。但對安全性有較高需求的軟件,則必須做專門的安全性測試,以便在破壞之前預防並識別軟件的安全問題。
全稱 IBM Security App Scan Standard ,是IBM公司出的一款web安全掃描工具,可以利用爬蟲技術進行網站安全滲透測試,根據網站入口自動對網頁鏈接進行安全掃描,掃描之后會提供掃描報告
和修復建議等。
工作原理:
1)通過explorer(探索)了解整個web頁面結構;
2)通過分析,使用掃描規則庫對修改的HTTP Request進行攻擊嘗試 ;
3)分析 Response 來驗證是否存在安全漏洞。
通過兩個示例來對AppScan工具進行一個入門的使用:
1、測試一個網站
2、測試webApi接口
新建一個掃描
選擇自動或手動,下一步
輸入起始URL,將從這個地址開始進行探索,下一步:
選擇登陸方法,這里面要看網站的登陸方式,主要是在探索網站過程中session超時,會自動進行登陸,以便繼續探索
記錄:會打開網站登錄頁面,記錄你登陸的過程 (有驗證碼的不適合);
提示:需要時,彈出登錄頁面,進行手動輸入 (可以解決驗證碼問題);
自動:直接輸入用戶名、密碼 (不適用有驗證碼的情況);
無:無需登錄的情況(測試api等無需登陸的情況)。
下一步:
下一步:
掃描過程…
掃描完成
四個漏洞等級
高、中、低、參考信息,每個問題后面都會有相應的問題描述和修訂建議
對於REST類型的web服務,主要有兩種方法:
對調用服務的應用程序進行手工探索調用該服務,從而進行安全掃描;
利用代理使用“外部流量/客戶機”進行安全掃描。
對於第一種情況
下一步:
下一步:
注意:get方法的沒問題,post的有參數的會有問題。
用post的接口使用第二種方式來進行
第二種情況,使用postman作為外部工具,進行接口的測試,同時這種方式支持post的有參數的情況。
選擇 外部設備/客戶機選項
下一步,並設置好外部客戶機(postman,稍后會進行設置)要使用的代理端口
下一步
直接下一步,策略選擇web Service:
下一步,點擊完成:
彈出外部流量記錄器:
這時,打開postman,進行代理設置,代理服務端口設成上面的51050
使用postman進行接口的測試,這里進行了2個接口的測試,如下面
接口測試完成后,發現外部流量記錄器記錄了接口的操作, 點擊 停止記錄
點擊確定:
結果:
結果: