課程大綱
1、兩種架構(Architecture)
1.1、B/S(Browser/Server)
????????瀏覽器服務器架構(大體3步):用戶通過瀏覽器向服務器發出請求,服務器處理請求,將結果通過網絡返回到用戶瀏覽器展示。
????????服務器內部,會有應用層處理請求,操作數據庫(增刪改查),返回用戶請求的數據。
通信方式
????????標準的 Web 協議:http/https。
舉例
????????各種網站、管理系統、云平臺、辦公協作平臺(藍湖、即時設計……)。
1.2、C/S(Client/Server)
????????客戶端服務器架構:用戶在電腦手機等設備上安裝客戶端,通過客戶端將請求發送給服務器端進行處理,服務器端進行計算和處理后將結果返回給客戶端。
????????服務器內部,會有應用層處理請求,操作數據庫(增刪改查),返回用戶請求的數據。
通信方式
????????socket協議或其他協議。
舉例
????????電腦:QQ、微信、大型游戲。
????????手機:各種app。
2、軟件測試工程師大方向
1.業務測試:
????????web端、移動端(app、小程序、h5)
2.測試開發:
????????服務端測試開發、UI自動化測試、接口自動化測試、性能測試、滲透測試(安全測試)……
????????大數據測試、AI算法測試、自動駕駛……
3、測試類型
3.1、按開發階段分
1.單元測試
????????代碼模塊(程序的最小單位)的測試,一般由開發完成。
????????從程序內部結構出發設計用例,驗證是否實現設計說明書中的功能、性能、接口、約束條件等。
????????各模塊可平行獨立進行。
2.集成測試
????????模塊組裝到一起后,測試模塊之間、子系統之間是否互相影響功能,即測試系統內部接口。
????????(再想具體了解,就百度吧!)
3.系統測試
????????整個系統開發、集成完畢后進行測試,也就是常見的功能測試階段。
4.驗收測試
????????交付用戶前,與客戶一起進行,向用戶演示、驗證軟件與需求一致(功能、性能、安全性等)。
3.2、按是否運行程序分
1.靜態測試(static test)
????????不運行程序,不對軟件進行輸入輸出對比預期的驗證,只靜態地檢查程序代碼、界面或文檔中可能存在的錯誤。
????????常見方法:
????????a.文檔測試,驗證用戶手冊和需求說明是否符合用戶的實際需求。
????????b.代碼測試,驗證代碼是否符合相應的標準和規范。
????????c.界面測試,驗證軟件的實際界面與需求中的說明是否相符。
2.動態測試(dynamic test)
????????運行程序,輸入數據后查看輸出數據是否與預期一致。
????????常見方法:功能測試、性能測試……
3.3、按是否看代碼分
1.黑盒測試
????????不看代碼,直接根據輸入輸出判斷軟件是否有錯誤。
????????測試方法:功能測試、UI測試(界面測試)、兼容性測試……
2.白盒測試
????????又稱結構測試,透明盒測試、邏輯驅動測試或基于代碼的測試。
????????測試方法:語句覆蓋、判定覆蓋、路徑覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋。
????????注意:白盒測試可能靜態或動態,黑盒也是; 反之亦然。
????????(想看更多,去百度吧。)
3.灰盒測試
????????介于白盒測試與黑盒測試之間,多用于集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。
3.4、按是否手工執行分
1.手工測試
????????人工執行測試用例來識別軟件中的錯誤、問題和缺陷。
2.自動化測試
????????編寫腳本自動執行測試用例來保證產品主體功能正確和完整。
3.5、其他
1.文檔測試(Documentation Testing)
????????主要指對軟件文檔進行審核、驗證,確保文檔的質量和準確性(完整性、正確性、一致性、易理解性、易瀏覽性)。
????????找了一篇關于文檔測試的文章:https://blog.csdn.net/2301_76387166/article/details/134643883
2.冒煙測試(Smoke testing)
????????又叫“版本驗證測試”、“高壓線測試”。
????????來源:硬件開發完成后,通電看機器是否冒煙,初步驗證是否有問題。
????????開發與測試共同進行。
????????新版本開發完成后 ,驗證基本/核心的功能和流程能否走通、是否有致命性和阻塞流程bug。通過冒煙,則正式轉測,否則打回到開發流程。
????????(可以通過自動化測試提效。)
3.回歸測試(Regression test)
????????重復執行以前(版本)的全部或部分的相同測試用例,驗證軟件修改后未影響原有功能。
????????回歸策略有2種:
????????① 完全回歸,運行所有測試用例。最保險、成本最高。用例庫不斷變大,成本難以控制。
????????② 部分回歸,運行最重要的、關鍵的、最頻繁使用的和可疑的測試用例。有改動的模塊或接口,功能未改動部分的測試用例。回歸效率更高。
4.交叉測試
????????測試人員相互交換測試的模塊。
????????優點:防止漏測;避免思維固化,保持測試新鮮感。
????????注意項:用例管理;明確任務分配;測試人員熟悉系統;測試結果留存,體現在用例中。
5.隨機測試(Ad-hoc testing)
????????根據測試者的經驗對軟件進行功能和性能抽查。
????????是執行測試用例的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。
????????對被測軟件的一些重要功能進行復測,對于軟件更新和新增加的功能要重點測試。重點對一些特殊點情況點、特殊的使用環境、并發性、進行檢查。尤其對以前測試發現的重大Bug,進行再次測試。
????????可以結合回歸測試(Regressive testing)一起進行。
????????隨機測試的文章:https://blog.csdn.net/xiao1542/article/details/132718631
6.探索性測試(Exploratory Testing)
????????基于敏捷模型的軟件測試風格,不是一種具體的軟件測試技術。
????????找了一篇文章,大家自由探索:https://www.cnblogs.com/klb561/p/11997890.html
7.安全測試(Security Testing)
????????驗證系統安全性。3種方法:
????????① 代碼漏掃,掃描代碼安全漏洞;
????????② 滲透測試,使用自動化工具或者人工的方法模擬黑客的輸入,對應用系統進行攻擊性測試,從中找出運行時刻所存在的安全漏洞。真實有效,一般找出來的問題都是正確的,也是較為嚴重的。
????????一個致命的缺點:模擬的測試數據只能到達有限的測試點,覆蓋率很低。
????????③ 程序數據掃描。
????????一篇文章:https://blog.csdn.net/hlsxjh/article/details/131313986
8.alpha測試(開發者內測)
????????非正式驗收測試,類似于用戶驗收測試,是另一種質量控制。
????????軟件開發完成初期到測試完成之間均可。
????????由熟悉產品預期功能的產品開發人員和工程師執行。
????????使用白盒測試和黑盒測試技術來執行。
????????通過發現和修復在開發初始階段未解決的故障來微調軟件產品,尤其注重界面和特色。
9.beta測試(用戶內測)
????????軟件、產品或服務在正式發布之前進行的最后一輪測試。
????????內部測試和產品發布之間進行。
????????目標受眾抽樣試用產品。
????????發現和修復潛在的問題和Bug。
????????縮小產品與用戶需求之間的差距:獲取用戶反饋,從而改進和優化產品。
10.兼容性測試(Compatibility testing)
????????電腦系統:Linux、Windows、Mac……
????????移動端系統:iOS、android、windows……
????????手機品牌、型號:按照市場份額選購測試機、三方測試平臺。
????????分辨率:按照市場份額測試。
????????web不同瀏覽器:chrome、Firefox、ie……
????????手機不同瀏覽器
????????……
附:課程完整思維導圖
參考文章:
- 《軟件測試的定義及如何進行分類》https://m.elecfans.com/article/998116.html
- 《軟件測試的定義以及分類》https://www.cnblogs.com/liyongmei/p/10633744.html
- 《白盒測試基本方法》https://testerhome.com/topics/14755
B站:【土小帽軟件測試(行入門到高級)-嗶哩嗶哩】 https://b23.tv/1c2U5fN
測試資源(百度網盤):https://pan.baidu.com/s/1Ypm8-VKuPurLtu0bCJovnA?pwd=5eji 提取碼: 5eji
【騰訊文檔】(流程圖)https://docs.qq.com/s/FQZsGpzsiYH9wj26JvSaFW