Faultinjection實現(xiàn)原理與應用課件_第1頁
Faultinjection實現(xiàn)原理與應用課件_第2頁
Faultinjection實現(xiàn)原理與應用課件_第3頁
Faultinjection實現(xiàn)原理與應用課件_第4頁
Faultinjection實現(xiàn)原理與應用課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實現(xiàn)原理與應用實現(xiàn)原理與應用1個人簡介簡歷年月加入淘寶,先后從事自動化測試平臺建設、報表引擎設計、性能測試工具關鍵技術攻關,目前專注于字節(jié)碼測試方法探索與研發(fā)。工作職責代碼覆蓋率

字節(jié)碼檢查字節(jié)碼測試方法論團隊建設個人簡介簡歷大綱為何要?什么是?最佳實踐小結實現(xiàn)原理核心技術點現(xiàn)場演示展望大綱為何要?為何要?測試過程中可能遇到的問題:系統(tǒng)依賴系統(tǒng)依賴系統(tǒng),我希望在系統(tǒng)有故障情形下,測試系統(tǒng)的穩(wěn)定性,如何做?硬件故障如何模擬因為硬盤壞道或空間滿導致的寫文件失敗的情形?網絡故障如何模擬網絡延遲導致遠程調用大量超時的情形?并發(fā)測試如何驗證可能含有線程安全問題的代碼?為何要?測試過程中可能遇到的問題:傳統(tǒng)解決辦法暴力模式:關機、拔網線、拔硬盤溫柔模式:故意改壞代碼,并重新發(fā)布,然后恢復傳統(tǒng)解決辦法暴力模式:關機、拔網線、拔硬盤不好解決的問題不能精確模擬某個組件出現(xiàn)問題的情形造成較大范圍的故障,可能影響他人工作服務器在托管機房,無法自由操作麻煩,不夠優(yōu)雅不好解決的問題不能精確模擬某個組件出現(xiàn)問題的情形什么是?—故障注入 是指人為的向被測軟件的代碼中某個指定的位置加入一些指令,以模擬出軟件不能正常運行的情形(或者說狀態(tài)),這些情形可能包括:拋出異常、運行緩慢等。人們通常把這種方法作為檢測系統(tǒng)的整體穩(wěn)定性表現(xiàn)的常用手段。什么是?—故障注入部署架構部署架構流程指定故障注入對象開始測試登陸執(zhí)行故障注入流程指定故障注入對象開始測試登陸執(zhí)行故障注入最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證需要做的驗證: 當為空時,上層組件的表現(xiàn)是否符合期望?,F(xiàn)實的麻煩: 但在正常的情況下,不會為空。傳統(tǒng)做法: 需要準備一些數據,過程中到某一步驟時還需要手工修改數據庫等操作,經過相當麻煩的過程才能讓為空。: 可以免去一切數據準備過程,可以直接拋出空指針異常。最佳實踐一:穩(wěn)定性驗證需要做的驗證:最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證例子一:穩(wěn)定性驗證例子一:穩(wěn)定性驗證最佳實踐一:穩(wěn)定性驗證這時,測試人員可以很容易看到,當系統(tǒng)指定組件出現(xiàn)問題時,被測功能的表現(xiàn)是否符合預期,并根據測試結果要求開發(fā)改進異常處理邏輯。最佳實踐一:穩(wěn)定性驗證最佳實踐二:線程安全驗證什么樣的類可能含有線程安全問題? 類實例存在并發(fā)訪問 類中含有成員變量,并且在方法有被改變的可能最佳實踐二:線程安全驗證什么樣的類可能含有線程安全問題?Faultinjection實現(xiàn)原理與應用課件18最佳實踐二:穩(wěn)定性驗證需要做的驗證:進行并發(fā)測試,讓程序暴露出問題,或者證明它沒有問題?,F(xiàn)實的麻煩:難以證明程序有或者沒有問題要足夠快的發(fā)起兩次或更多的請求需要借助壓測工具傳統(tǒng)做法:需要借助性能壓測工具,還要錄腳本,準備數據,但最后也無法證明程序沒有問題,因為并發(fā)并不能觸發(fā)線程安全問題。:可以免去一切數據準備過程,無需借助性能壓測工具,可以證明程序沒有問題。最佳實踐二:穩(wěn)定性驗證需要做的驗證:最佳實踐二:線程安全驗證最佳實踐二:線程安全驗證最佳實踐二:線程安全驗證最佳實踐二:線程安全驗證最佳實踐二:線程安全驗證開始驗證: 使用瀏覽器在秒內相繼向含有故障的頁面發(fā)起兩個請求即完成了驗證工作,根本不需要性能壓測。結論: 相比傳統(tǒng)方法,可以節(jié)省至少的時間與精力。最佳實踐二:線程安全驗證問題解決了嗎?測試過程中可能遇到的問題:系統(tǒng)依賴系統(tǒng)依賴系統(tǒng),我希望在系統(tǒng)有故障情形下,測試系統(tǒng)的穩(wěn)定性,如何做?在系統(tǒng)注入異常。硬件故障如何模擬因為硬盤壞道或空間滿導致的寫文件失敗的情形?在有文件操作的地方拋出異常。網絡故障如何模擬網絡延遲導致遠程調用大量超時的情形?在有網絡通訊的地方,并且隨后拋出超時異常。并發(fā)測試如何驗證可能含有線程安全問題的代碼?在可能有異常處。問題解決了嗎?測試過程中可能遇到的問題:小結如何才能用好,發(fā)揮它的最大價值?對系統(tǒng)主要流程的底層依賴進行故障注入測試,找出問題或者證明它足夠健壯。結合等靜態(tài)代碼檢查工具使用,對檢查出可能有問題的代碼進行故障注入。不盲目注入故障,這樣只會增加測試成本,卻很難發(fā)現(xiàn)。小結如何才能用好,發(fā)揮它的最大價值?故障注入工具的實現(xiàn)原理取回遠程內存中正在運行的字節(jié)碼實時的回傳到遠程中,并讓其立即生效修改,生成新的字節(jié)碼故障注入工具的實現(xiàn)原理取回遠程內存中正在運行的字節(jié)碼實時的回故障注入工具的實現(xiàn)原理關鍵技術點: 、生成正確的指令并寫入到文件中。 、如何做到像遠程那樣,讓修改后的字節(jié)碼實時生效? 、熟識文件結構,熟悉指令,推薦閱讀《虛擬機規(guī)范》故障注入工具的實現(xiàn)原理關鍵技術點:故障注入工具的實現(xiàn)原理關鍵技術點: 生成正確的指令并寫入到文件中,可以使用下面的插件,可以輕易取得源碼對應的代碼,然后使用框架改寫字節(jié)碼,插件地址:。故障注入工具的實現(xiàn)原理關鍵技術點:源碼:指令:代碼:源碼:28故障注入工具的實現(xiàn)原理關鍵技術點: 如何做到像遠程那樣,讓修改后的字節(jié)碼實時生效?實時生成類轉換器并傳送到目標服務器上遠程執(zhí)行類換器,完成類的轉換并重新加載 故障注入工具的實現(xiàn)原理關鍵技術點:故障注入工具的實現(xiàn)原理類傳換器入口類代碼:故障注入工具的實現(xiàn)原理類傳換器入口類代碼:故障注入工具的實現(xiàn)原理故障注入工具的實現(xiàn)原理核心技術點現(xiàn)場演示現(xiàn)場演示一個動態(tài)修改中正在運行的類的例子核心技術點現(xiàn)場演示現(xiàn)場演示一個動態(tài)修改中正在運行的類的例子展望將用于驗證測試用例的有效性 即:一個有效的測試用例在有故障的環(huán)境運行,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論