自動化測試課件_第1頁
自動化測試課件_第2頁
自動化測試課件_第3頁
自動化測試課件_第4頁
自動化測試課件_第5頁
已閱讀5頁,還剩155頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

ShiZhu_FFH1軟件自動化測試基礎ShiZhu_FFH1軟件自動化測試基礎ShiZhu_FFH2軟件自動化測試基礎自動化測試基礎軟件自動化測試工具簡述自動化測試解決方案舉例ShiZhu_FFH2軟件自動化測試基礎自動化測試基礎ShiZhu_FFH3自動化測試基礎自動化測試的定義自動化測試的意義自動化測試的引入自動化測試的原理和方法軟件自動化測試生存周期方法學軟件自動化測試生存周期方法學的應用自動化測試存在的一些問題和限制建立正確的自動化測試目標ShiZhu_FFH3自動化測試基礎自動化測試的定義自動化測試什么是自動化測試?一般是指軟件測試的自動化。自動化測試可理解為測試過程自動化和測試結果分析自動化,包括測試活動的管理與實施、測試腳本的開發與執行。軟件自動化測試就是模擬手動測試步驟,控制被測軟件的執行,完成全自動或半自動測試的過程。全自動測試:指不需人工干預,由程序自動完成測試的全過程。半自動測試:指在測試過程中,需手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試。ShiZhu_FFH4自動化測試什么是自動化測試?ShiZhu_FFH4ShiZhu_FFH5自動化測試的意義軟件測試工作量大,重復性高通常,軟件測試的工作量很大(據統計,測試會占用到40%的開發時間;一些可靠性要求非常高的軟件,測試時間甚至占到開發時間的60%)。而測試中的許多操作是重復性的、非智力性的和非創造性的,并要求做準確細致的工作,計算機就最適合于代替人工去完成這樣的任務。要理解為什么要進行自動化測試,可以從兩個方面考慮:一是手工測試的局限性;二是軟件自動化測試所帶來的好處。ShiZhu_FFH5自動化測試的意義軟件測試工作量大,重復ShiZhu_FFH6手工測試的局限性手工測試優點具有創造性;可舉一反三,從一個測試用例想到另一些測試用例,特別是可考慮測試用例不能覆蓋的一些特殊或邊界情況;對那些復雜的邏輯判斷、界面是否友好,手工測試有明顯優勢。手工測試的局限性通過手工測試無法做到覆蓋所有代碼路徑。簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機械性、重復性,工作量往往較大。許多與時序、死鎖、資源沖突、多線程等有關的錯誤,通過手工測試很難捕捉到。(接下頁)ShiZhu_FFH6手工測試的局限性手工測試優點ShiZhu_FFH7手工測試的局限性手工測試的局限性進行系統負載、性能測試時,需要模擬大量數據或大量并發用戶等各種應用場合時,很難通過于工測試來進行。進行系統可靠性測試時,需要模擬系統運行10年、幾十年,以驗證系統能否穩定運行,這也是手工測試無法模擬的。如果有大量(幾千)的測試用例,需要在短時間內(1天)完成,手工測試幾乎不可能做到。ShiZhu_FFH7手工測試的局限性手工測試的局限性ShiZhu_FFH8自動化測試帶來的好處縮短軟件開發測試周期,可讓產品更快投放市場。提高測試效率,充分利用硬件資源。節省人力資源,降低測試成本。增強測試的穩定性和可靠性。提高軟件測試的準確度和精確度,增加軟件信任度。測試工具使測試工作相對較容易,且能產生更高質量的測試結果。手工不能做的事情,自動化測試能做,如負載、性能測試。軟件測試實行自動化進程,絕不是因為厭煩了重復的測試工作,而是因為測試工作的需要,更準確地說是回歸測試和系統測試的需要。ShiZhu_FFH8自動化測試帶來的好處縮短軟件開發測試周ShiZhu_FFH9自動化測試的引入正確的認識觀在進行自動化測試前,首先要建立一個對軟件測試自動化的認識觀。軟件測試工具能提高測試效率、覆蓋率和可靠性等,自動化測試雖然具有很多優點,但它只是測試工作的一部分,是對手工測試的一種補充。ShiZhu_FFH9自動化測試的引入正確的認識觀自動化測試的引入前提條件通常需要同時滿足以下條件:1)軟件需求變動不頻繁

從維護成本考慮:相對穩定的模塊進行自動化測試,而變動較大的仍是用手工測試。2)項目周期足夠長

自動化測試本身就是一個測試軟件的開發過程,需較長時間完成。如項目周期較短,就沒足夠的時間去支持這個過程。3)自動化測試腳本可重復使用

成本應不大于所創造的經濟價值ShiZhu_FFH10自動化測試的引入前提條件ShiZhu_FFH10ShiZhu_FFH11自動化測試的引入自動化測試和手工測試的范圍自動化測試絕不能代替手工測試,它們各有各自的特點,其測試對象和測試范圍都不一樣:在系統功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法。單元測試、集成測試、系統負載測試、性能測試、穩定性測試、可靠性測試等比較適合采用自動化測試。那種不穩定軟件的測試、開發周期很短的軟件、一次性的軟件等不適合自動化測試。工具本身并沒有想象力和靈活性,根據報道,自動化測試只能發現15%的缺陷,而手工測試可以發現85%的缺陷。(接下頁)ShiZhu_FFH11自動化測試的引入自動化測試和手工測試ShiZhu_FFH12自動化測試的引入自動化測試和手工測試的范圍(續)自動化測試工具在進行功能測試時,其準確的含義是回歸測試工具,這時工具不能發現更多的新問題,但可以保證對已經測試過部分的準確性和客觀性。多數情況下,手工測試和自動化測試應該相結合,以最有效的方法來完成測試任務。ShiZhu_FFH12自動化測試的引入自動化測試和手工測試ShiZhu_FFH13自動化測試的引入通常,當軟件開發過程具有下列情況時,就需要考慮引入自動化測試:1)測試用例的生成:包括測試輸入、測試輸出、測試操作指令等;2)測試的執行與控制:包括單機運行和網絡多機分布式的運行,在節假日的運行,測試個案調用控制,測試對象、測試范圍與測試版本的控制等;3)測試結果與標準輸出進行對比;4)不吻合預期的測試結果的分析、記錄、分類和通報5)總體測試狀況的統計及報表的產生。ShiZhu_FFH13自動化測試的引入通常,當軟件開發過程ShiZhu_FFH14自動化測試的原理和方法軟件測試自動化實現的基礎是通過設計的特殊程序模擬測試人員對計算機的操作過程、操作行為;或者類似于編譯系統那樣對計算機程序進行檢查。軟件測試自動化實現的原理和方法主要有:直接對代碼進行靜態和動態分析、測試過程的捕獲和回放、測試腳本技術、虛擬用戶技術和測試管理技術。ShiZhu_FFH14自動化測試的原理和方法軟件測試自動化自動化測試的原理和方法1)代碼分析代碼分析類似于高級語言編譯系統,一般針對不同的高級語言去構造分析工具,在工具中定義類、對象、函數、變量等定義規則、語法規則;在分析時對代碼進行語法掃描,找出不符合編碼規范的地方;根據某種質量模型評價代碼質量,生成系統的調用關系圖等。ShiZhu_FFH15自動化測試的原理和方法1)代碼分析ShiZhu_FFH15ShiZhu_FFH16自動化測試的原理和方法2)捕獲和回放代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應的操作、狀態變化或是屬性變化。所有的記錄轉換為一種腳本語言所描述的過程,以模擬用戶的操作。回放時,將腳本語言所描述的過程轉換為屏幕上的操作,然后將被測系統的輸出記錄下來同預先給定的標準結果比較。捕獲和回放可以大大減輕黑盒測試的工作量,在迭代開發的過程中,能夠很好地進行回歸測試。ShiZhu_FFH16自動化測試的原理和方法2)捕獲和回放ShiZhu_FFH17自動化測試的原理和方法關于自動化測試中的“錄制—回放”技術所謂的“錄制-回放”技術,就是先由手工完成一遍需要測試的流程,同時由計算機記錄下這個流程期間客戶端和服務器端之間的通信信息,這些信息通常是一些協議和數據,并形成特定的腳本程序(Script)。然后在系統的統一管理下同時生成多個虛擬用戶,并運行該腳本,監控硬件和軟件平臺的性能,提供分析報告或相關資料。這樣,通過幾臺機器就可以模擬出成百上千的用戶對應用系統進行負載能力的測試。ShiZhu_FFH17自動化測試的原理和方法關于自動化測試ShiZhu_FFH18自動化測試的原理和方法3)腳本技術腳本是一組測試工具執行的指令集,也是計算機程序的一種形式。腳本可通過錄制測試的操作產生,然后再做修改,這樣可減少腳本編程的工作量。當然,也可以直接用腳本語言編寫腳本。腳本中包含的是測試數據和指令,一般包括如下信息:同步(何時進行下一個輸入)。比較信息(比較什么,比較標準)。埔獲何種屏幕數據及存儲在何處。從哪個數據源或從何處讀取數據。控制信息等。ShiZhu_FFH18自動化測試的原理和方法3)腳本技術ShiZhu_FFH19自動化測試的原理和方法

腳本技術可以分為以下幾類:線性腳本——是錄制手工執行的測試用例得到的腳本。結構化腳本——類似于結構化程序設計,具有各種邏輯結構(順序、分支、循環),而且具有函數調用功能。共享腳本——是指某個腳本可被多個測試用例使用,即腳本語言允許一個腳本調用另一個腳本。數據驅動腳本——將測試輸入存儲在獨立的數據文件中。關鍵字驅動腳本——是數據驅動腳本的邏輯擴展,將數據文件變為測試用例描述,用一系列關鍵字指定要執行的任務。ShiZhu_FFH19自動化測試的原理和方法 腳本技術可以自動化測試的原理和方法例:以下語句指示QTP選中Itinerary網頁上的所有復選框:SetMyDescrīption=Descrīption.Create()MyDescrīption("htmltag").Value="INPUT"MyDescrīption("type").Value="checkbox"SetCheckboxes=Browser("Itinerary").Page("Itinerary").ChildObjects(MyDescrīption)NoOfChildObjs=Checkboxes.CountForCounter=0toNoOfChildObjs-1Checkboxes(Counter).Set"ON"NextShiZhu_FFH20自動化測試的原理和方法例:以下語句指示QTP選中ItiShiZhu_FFH21自動化測試的原理和方法4)自動比較靜態比較和動態比較靜態比較,在測試過程中不比較,而是將結果存入文件或數據庫,最后比較結果;動態測試,在測試過程中比較。簡單比較和復雜比較簡單比較,實際結果和預期結果完全相同;復雜比較,允許有一定誤差。ShiZhu_FFH21自動化測試的原理和方法4)自動比較ShiZhu_FFH22自動化測試的原理和方法4)自動比較敏感性測試比較和健壯性測試比較敏感性測試比較,比較盡可能多的信息。如測試用例的每一步都比較;健壯性測試比較,只比較最需要的信息。如最后結果。比較過濾器對預期輸出進行預處理,執行過濾任務后,再比較。5)測試管理ShiZhu_FFH22自動化測試的原理和方法4)自動比較ShiZhu_FFH23軟件自動化測試生存周期方法學自動化測試生存周期方法學1.自動化測試決定2.測試工具獲取3.自動化測試引入過程4.測試計劃、設計與開發5.測試執行與管理6.測試評審與評估圖自動化測試生存周期方法學結構ShiZhu_FFH23軟件自動化測試生存周期方法學自動化測ShiZhu_FFH24軟件自動化測試生存周期方法學采用自動化測試方法的確認自動化測試工具的獲取自動化測試的引入階段

——包括測試過程分析和測試工具的考查。測試計劃與測試設計

——包括制訂測試計劃、建立測試環境、測試設計和設計開發。測試執行與管理測試活動評審與評估ShiZhu_FFH24軟件自動化測試生存周期方法學采用自動ShiZhu_FFH25自動化測試生存周期方法的應用自動化測試生存周期方法學1.自動化測試決定2.測試工具獲取3.自動化測試引入過程4.測試計劃、設計與開發5.測試執行與管理6.測試評審與評估A.系統生存周期過程評估與改進F.生成維護階段C.小型工具先導/原型D.系統設計與開發階段B.業務分析與需求階段E.組裝與測試階段ShiZhu_FFH25自動化測試生存周期方法的應用自動化測ShiZhu_FFH26自動化測試存在的一些問題不正確的觀念或不現實的期望缺乏具有良好素質和有經驗的測試人才測試工具本身的問題影響測試的質量沒有進行有效、充分的培訓不考慮公司的實際情況、盲目引入測試工具沒有形成一個良好的測試工具使用環境其他技術問題和組織問題ShiZhu_FFH26自動化測試存在的一些問題不正確的觀念ShiZhu_FFH27測試自動化限制測試自動化可以帶來非常明顯的收益,但也有以下限制:不能取代手工測試手工測試比自動測試發現的缺陷更多對測試質量的依賴性極大測試自動化不能提高有效性測試自動化可能會制約軟件開發。工具本身并無想象力另外,人工測試比測試工具更優越的另一個方面是可以處理意外事件。雖然工具也能處理部分異常事件,但是對真正的突發事件和不能由軟件解決的問題就無能為力。ShiZhu_FFH27測試自動化限制測試自動化可以帶來非常ShiZhu_FFH28建立正確的自動化測試目標克服不正確的觀念,需要建立正確的自動化測試目標。測試計劃產生:主要靠測試工程師與軟件生產質量保證專家的合作,自動化工具只能起到一定的輔助作用。一種測試工具不完全適用于所有測試自動測試不一定會減輕工作量測試進度可能不一定會縮短測試工具不一定易于使用自動化測試的普遍應用存在局限測試覆蓋率不會達到百分之百ShiZhu_FFH28建立正確的自動化測試目標克服不正確的ShiZhu_FFH29軟件自動化測試工具簡述自動化測試工具的作用及優勢自動化測試工具的特征自動化測試工具的分類選擇自動化測試工具使用測試工具和自動化的實質常用測試工具概要ShiZhu_FFH29軟件自動化測試工具簡述自動化測試工具ShiZhu_FFH30自動化測試工具的作用及優勢軟件測試自動化通常借助測試工具進行。測試工具可以進行部分的測試設計、實現、執行和比較的工作。部分的測試工具可以實現測試用例的自動生成,但通常的工作方式為人工設計測試用例,使用工具進行用例的執行和比較。自動化測試工具的作用:(1)確定系統最優的硬件配置。虛擬硬件進行配置測試。(2)檢查系統的可靠性。大負載,長時間。(3)檢查系統硬件和軟件的升級情況。軟硬件對系統性能的影響。(4)評估新產品。ShiZhu_FFH30自動化測試工具的作用及優勢軟件測試自ShiZhu_FFH31自動化測試工具的作用及優勢自動化測試工具的優勢主要體現在以下幾個方面:(1)記錄業務流程并生成腳本程序的能力。(2)對各種網絡設備(客戶機或服務器、其它網絡設備)的模仿能力。(3)用有限的資源生成高質量虛擬用戶的能力。(4)對于整個軟件和硬件系統中各個部分的監控能力。(5)對于測試結果的表現和分析能力。ShiZhu_FFH31自動化測試工具的作用及優勢自動化測試ShiZhu_FFH32自動化測試工具的特征支持腳本化語言(ScriptingLanguage)對程序界面中對象的識別能力支持函數的可重用支持外部函數庫抽象層—將程序界面中的對象實體映射成邏輯對象分布式測試(DistributedTest)的支持支持數據驅動測試(Data-DrivenTest)錯誤處理調試器(Debugger)源代碼管理支持腳本的命令行(CommandLine)方式ShiZhu_FFH32自動化測試工具的特征支持腳本化語言(ShiZhu_FFH33自動化測試工具的分類測試工具可以從多個不同的方面去分類。從入侵角度,分入侵式工具和非入侵式工具:非入侵式工具:如果工具僅用于監視和檢查軟件而不對其進行修改,就認為是非入侵式工具。入侵式工具:如果工具以任何方式修改了程序代碼或者控制了操作環境,就屬于入侵式工具。由于入侵的程度各有不同,測試員通常設法使用侵入性盡量小的工具,以減少工具影響測試結果的可能性。根據測試方法不同,自動化測試工具可以分為:白盒測試工具、黑盒測試工具(Continue)ShiZhu_FFH33自動化測試工具的分類測試工具可以從多ShiZhu_FFH34自動化測試工具的分類測試工具可以從多個不同的方面去分類。(續)根據測試的對象和目的,自動化測試工具可以分為:單元測試工具、功能測試工具、負載測試工具、性能測試工具、Web測試工具、數據庫測試工具、回歸測試工具、嵌入式測試工具、頁面鏈接測試工具、測試設計與開發工具、測試執行和評估工具、測試管理工具等根據使用方式,自動化測試工具可以分為:查看器和監視器、驅動程序、樁、壓力和負載工具、干擾注入器和噪聲發生器和分析工具。ShiZhu_FFH34自動化測試工具的分類測試工具可以從多ShiZhu_FFH35自動化測試工具的分類測試工具可以從多個不同的方面去分類。(續)按測試工具的收費方式,又可分為以下幾類。商業測試工具。開源測試工具。免費測試工具。ShiZhu_FFH35自動化測試工具的分類測試工具可以從多ShiZhu_FFH36白盒測試工具白盒測試工具一般是針對被測源程序進行的測試,測試所發現的故障可以定位到代碼級。根據測試工具工作原理的不同,白盒測試的自動化工具可分為靜態測試工具和動態測試工具。靜態測試工具——是在不執行程序的情況下,分析軟件的特性。靜態分析主要集中在需求文檔、設計文檔以及程序結構方面。按照完成的職能不同,靜態測試工具包括以下幾種類型:

(1)代碼審查(2)一致性檢查(3)錯誤檢查(4)接口分析

(5)輸入輸出規格說明分析檢查(6)數據流分析

(7)類型分析(8)單元分析(9)復雜度分析ShiZhu_FFH36白盒測試工具白盒測試工具一般是針對被ShiZhu_FFH37白盒測試工具動態測試工具——是直接執行被測程序以提供測試活動。它需要實際運行被測系統,并設置斷點,向代碼生成的可執行文件中插入一些監測代碼,掌握斷點這一時刻程序運行數據(對象屬性、變量的值等),具有功能確認、接口測試、覆蓋率分析、性能分析等性能。動態測試工具可以分為以下幾種類型:

(1)功能確認與接口測試(2)覆蓋測試

(3)性能測試(4)內存分析常用的動態工具有:

Compuware公司的DevPartnerIBM公司的RationalPurifyShiZhu_FFH37白盒測試工具動態測試工具——是直接執ShiZhu_FFH38黑盒測試工具黑盒測試工具是在明確軟件產品應具有的功能的條件下,完全不考慮被測程序的內部結構和內部特性,通過測試來檢驗軟件功能是否按照軟件需求規格的說明正常工作。按照完成的職能不同,黑盒測試工具可以分為:功能測試工具——用于檢測程序能否達到預期的功能要求并正常運行。性能測試工具——用于確定軟件和系統的性能。常用的黑盒測試工具有:

Compuware公司的QACenterIBM公司的RationalTeamTestShiZhu_FFH38黑盒測試工具黑盒測試工具是在明確軟件ShiZhu_FFH39測試設計與開發工具測試設計是說明被測軟件特征或特征組合的方法,并確定選擇相關測試用例的過程。測試開發是將測試設計轉換成具體的測試用例的過程。測試設計和開發需要的工具類型有:測試數據生成器基于需求的測試設計工具捕獲/回放覆蓋分析ShiZhu_FFH39測試設計與開發工具測試設計是說明被測ShiZhu_FFH40測試執行和評估工具測試執行和評估是執行測試用例并對測試結果進行評估的過程,包括選擇用于執行的測試用例、設置測試環境、運行所選擇的測試用例、記錄測試執行過程、分析潛在的故障,并檢查測試工作的有效性。評估類工具對執行測試用例和評估測試結果過程起到輔助作用。測試執行和評估類工具有:捕獲/回放覆蓋分析存儲器測試ShiZhu_FFH40測試執行和評估工具測試執行和評估是執ShiZhu_FFH41測試管理工具測試管理工具用于對測試過程進行管理,幫助完成制定測試計劃,跟蹤測試運行結果。通常,測試管理工具對測試計劃、測試用例、測試實施進行管理,還包括缺陷跟蹤管理等。常用的測試管理工具有:

IBM公司的RationalTestManager測試管理工具包括以下內容:測試用例管理缺陷跟蹤管理(問題跟蹤管理)配置管理ShiZhu_FFH41測試管理工具測試管理工具用于對測試過測試工具分類查看器(viewer)和監視器(monitor)查看器或監視器:測試工具能看到正常情況下看不到的運行的細節。如:1)代碼覆蓋率分析器就是查看器的一個例子。代碼覆蓋率分析器是如何提供一種方式來查看哪些代碼行得以運行、什么函數正在運行、執行測試時所運行的代碼分支的。大多數的代碼覆蓋率分析器是入侵式工具,因為它們需要編譯并鏈接到原程序中才能獲得所需信息。ShiZhu_FFH42測試工具分類查看器(viewer)和監視器(monitor)測試工具分類查看器(viewer)和監視器(monitor)(續)2)通信分析器(communicationsanalyzer)是另一種查看器的例子。它只是監聽線路,提取經過的數據,在另一臺計算機上顯示。利用該系統可以查看通信數據的正確性以及觀察軟件缺陷為什么會產生。通過查看從線上提取的數據,就可以確定問題是出于創建數據的機器還是解釋數據的機器。這種類型的系統對軟件是非入侵式的。在網絡中,真正監視器被稱為嗅探器(sniffer)。3)大多數編譯器所帶的代碼調試器也可以看做是查看器,看到一般用戶看不到的數據的工具都可以歸類為查看測試工具。ShiZhu_FFH43測試工具分類查看器(viewer)和監視器(monitor)測試工具分類驅動程序驅動程序是控制和操作被測試軟件的工具。在設法驅動被測軟件時,想一想從外部控制程序的所有可行方法,然后,想方法用自動提供測試輸入的方式代替外部控制。樁樁接收或者響應被測軟件發送的數據。當軟件需要與外部設備進行通信時經常要用到樁。一般在開發過程中不能得到某些設備,或這些設備很少,樁就可以使測試在沒有硬件的條件下進行,使測試更加有效。仿真器(emulator):仿真器是在實際使用中用來代替真正設備的設備。仿真器和樁的區別在于樁還給測試程序提供手段來查看和解釋發送給它的數據,樁是仿真器的超集。ShiZhu_FFH44測試工具分類驅動程序ShiZhu_FFH44測試工具分類壓力和負載工具壓力(stress)和負載(load)工具用于向被測試軟件增加壓力和負載。一般的壓力測試軟件可以分別設置內存量、磁盤空間大小、文件數量,以及在該機器上運行軟件的其它可用資源。把這些值設置為零或者近似為零,會使軟件執行不同的代碼分支以試圖處理這種緊迫限制。理想情況是軟件運行不發生崩潰或者數據丟失。它可能會運行得很慢,或者宣布在內存不足情況下運行,但是無論如何它會正確運行,或者正常地降級運行。負載工具和壓力工具的相似之處在于,它們為軟件創造了用其它方式難以創造的環境條件。如,運行在web服務器上的商用程序可以通過模擬一定數量的鏈接和單擊次數來增大負載,使其不堪重負。ShiZhu_FFH45測試工具分類壓力和負載工具ShiZhu_FFH45測試工具分類干擾注入器和噪聲發生器干擾注入器(interferenceinjectors)和噪聲發生器(noisegenerators)是類似于壓力和負載工具的另一類工具。它們在行為上更具有隨機性。如,掛在通信線路上的干擾注入器可以測試軟件能否處理由噪聲引起的錯誤情況。決定在哪里和如何使用干擾注入器和噪聲發生器時,考慮何種外部因素會影響測試軟件,然后設法改變和操縱這些影響因素看軟件如何應付。ShiZhu_FFH46測試工具分類干擾注入器和噪聲發生器ShiZhu_FFH46測試工具分類分析工具用于分析測試。軟件的復雜性和方向性總是在變,要視具體情況來決定最有效的工具是什么,以及如何運用它們。1)文字處理軟件2)電子表格軟件3)數據庫軟件4)文件比較軟件5)抓屏和比較軟件6)調試器7)二進制——十六進制計算器8)秒表9)錄象機或者照相機ShiZhu_FFH47測試工具分類分析工具ShiZhu_FFH47隨機測試隨機測試:猴子和大猩猩有一類測試工具不是為幫助執行或者自動執行測試用例而設計的,其目標是模擬用戶可能的操作,此類自動化工具稱為測試猴子(testmonkey)。測試猴子的來源:如果讓一百萬只猴子在一百萬只鍵盤上敲一百萬年,從統計的角度上講,它們最終就可能寫出莎士比亞話劇AdventuresofCuriousGeorge(好奇喬治歷險記)等巨著。1、笨拙的猴子最簡單、最直接的測試猴子是笨拙的猴子:只是隨機地單擊鼠標或者敲擊按鍵。不停重復和使用笨拙的猴子可能會暴露內存泄漏等軟件缺陷。ShiZhu_FFH48隨機測試隨機測試:猴子和大猩猩ShiZhu_FFH48隨機測試隨機測試:猴子和大猩猩(續)2、半聰明的猴子在笨拙的猴子的基礎上加上日志記錄,將猴子的所有操作記錄到一個文件中。當猴子發現軟件缺陷時,只需查看日志文件,找出在失敗前猴子做了些什么。另外一個解決方法時用攝像機錄下屏幕上的內容。當發現軟件出現故障時,就倒回去重新看看。3、聰明的猴子不僅限于查找崩潰缺陷,同時還查看數據、檢查操作結果、找出其與預期結果的差別。ShiZhu_FFH49隨機測試隨機測試:猴子和大猩猩(續)ShiZhu_FFH4ShiZhu_FFH50選擇自動化測試工具測試人員在選擇和使用自動化測試工具時,可以從以下角度來考慮:按照用途選擇匹配的測試工具在適當的生命周期選擇測試工具按照測試人員的實際技能選擇匹配的測試工具選擇一個可提供的測試工具ShiZhu_FFH50選擇自動化測試工具測試人員在選擇和使使用測試工具和自動化的實質如正確規劃和執行,自動化測試可提高測試效率并能發現其它方式不能發現的缺陷。如自動化測試步入歧途,會導致無數的自動化測試努力被放棄,項目成本大大增加。考慮以下因素:1)軟件變更; 2)人眼和自覺是不可替代的;3)驗證難以實現; 4)容易過分依賴自動化;5)不要花費太多時間使用達不到測試軟件目的的測試工具和自動化;6)編寫宏、開發工具和編制猴子都屬于開發工作;7)某些工具是入侵式的。ShiZhu_FFH51使用測試工具和自動化的實質如正確規劃和執行,自動化測試可提高ShiZhu_FFH52常用測試工具目前,軟件測試方面的工具很多,主要有HPMercuryInteractive(MI)、IBMRational、Compuware、Segue和Empirix等公司的產品,而HPMI公司和IBMRational公司的產品占了主流。ShiZhu_FFH52常用測試工具目前,軟件測試方面的工具ShiZhu_FFH53Mercury公司測試工具HPMercury(美科利)質量中心:提供一個全面的、基于Web的集成系統,可在廣泛的應用環境下自動執行軟件質量管理和測試。其主要產品如下:Winrunner:是一種企業級的用于檢驗應用程序是否如期運行的功能性測試工具。通過自動捕獲,檢測,和重復用戶交互的操作,WinRunner能夠辨認缺陷并且確保那些跨越多個應用程序和數據庫的業務流程在初次發布就能避免出現故障,并且保持長期可靠運行。Loadrunner:是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,LoadRunner能夠對整個企業架構進行測試。通過使用LoadRunner,企業能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。ShiZhu_FFH53Mercury公司測試工具HPMeShiZhu_FFH54Mercury公司測試工具TestDirector:是基于Web的測試管理解決方案,它可以在公司內部進行全球范圍的測試協調。TestDirector能夠在一獨立的應用系統中提供需求管理功能,并且可以把測試需求管理于測試計劃、測試日程控制、測試執行和錯誤跟蹤等功能融合為一體,因此極大地加速了測試的進程。TestDirector提供完整且無限制的測試管理框架,實現對應用測試全部階段的管理與控制。QuickTestProfessional::是一個功能測試自動化工具,主要應用在回歸測試中。QuickTest針對的是GUI應用程序,包括傳統的Windows應用程序,以及現在越來越流行的Web應用。它可以覆蓋絕大多數的軟件開發技術,簡單高效,并具備測試用例可重用的特點。其中包括:創建測試、插入檢查點、檢驗數據、增強測試、運行測試、分析結果和維護測試等方面。ShiZhu_FFH54Mercury公司測試工具TestDShiZhu_FFH55Rational公司測試工具ShiZhu_FFH55Rational公司測試工具ShiZhu_FFH56Rational公司測試工具RationalPurifyPlus企業版:為Windows、Linux和UNIX提供了運行時分析。RationalPurifyPlusforLinuxandUNIX:為基于Linux和Unix的Java和C/C++開發提供了分析工具集。RationalPurifyPlusforWindows:為基于Windows的Java、C/C++、VisualBasic和托管.NET開發提供了運行時分析。RationalRobot:客戶機/服務器應用程序的通用測試自動化工具。可以對使用各種集成開發環境(IDE)和語言建立的軟件應用程序,創建、修改并執行自動化的功能測試、分布式功能測試、回歸測試和集成測試。RationalTestManager:提供開放、可擴展的測試管理。RationalTestRealTime:支持嵌入式和實時的跨平臺軟件的組件測試和運行時分析。ShiZhu_FFH56Rational公司測試工具RatiShiZhu_FFH57Compuware公司測試工具ShiZhu_FFH57Compuware公司測試工具ShiZhu_FFH58其他公司測試工具ShiZhu_FFH58其他公司測試工具ShiZhu_FFH59其他公司測試工具ShiZhu_FFH59其他公司測試工具ShiZhu_FFH60其他公司測試工具Radview公司的TestView系列Web性能測試工具和WebLoadAnalyzer性能分析工具,旨在測試Web應用和Web服務的功能、性能、程序漏洞、兼容性、穩定性和抗攻擊性,并且能夠在測試的同時分析問題原因和定位故障點。整套Web性能測試和分析工具包含兩個相對獨立的子系統:Web性能測試子系統、Web性能分析子系統。其中Web性能測試子系統包含3個模塊:TestViewManager、WebFT以及WebLoad。Web性能分析子系統只有WebLoadAnalyzer。ShiZhu_FFH60其他公司測試工具Radview公司的ShiZhu_FFH61其他公司測試工具美國IXIA公司的應用層性能測試軟件IxChariot是一個獨特的測試工具,也是在應用層性能測試領域得到業界認可的測試系統。對于企業網而言,IxChariot可應用于設備選型、網絡建設及驗收、日常維護等3個階段,提供設備網絡性能評估、故障定位和SLA基準等服務。

IxChariot由兩部分組成:控制端(Console)和遠端(Endpoint),兩者都可安裝在普通PC或者服務器上,控制端安裝在Windows操作系統上,遠端支持各種主流的操作系統。控制端為該產品的核心部分,控制界面(也可采用命令行方式)、測試設計界面、腳本選擇及編制、結果顯示、報告生成以及API接口提供等都由控制端提供。遠端根據實際測試的需要,安裝在分布的網絡中,負責從控制端接收指令、完成測試并將測試數據上報到控制端。ShiZhu_FFH61其他公司測試工具美國IXIA公司的應ShiZhu_FFH62一些開源測試工具ShiZhu_FFH62一些開源測試工具ShiZhu_FFH63一些開源測試工具單元測試工具JUNIT(CppUnit):JUnit是一個開源的java測試框架,它是Xuint測試體系架構的一種實現。在JUnit單元測試框架的設計時,設定了三個總體目標,第一個是簡化測試的編寫,這種簡化包括測試框架的學習和實際測試單元的編寫;第二個是使測試單元保持持久性;第三個則是可以利用既有的測試來編寫相關的測試。使用環境:Windows,OSIndependent,LinuxShiZhu_FFH63一些開源測試工具單元測試工具ShiZhu_FFH64一些開源測試工具性能測試工具ApacheJMeter(/jmeter/):ApacheJMeter是100%的Java桌面應用程序,它被設計用來加載被測試軟件功能特性、度量被測試軟件的性能。設計Jmeter的初衷是測試Web應用,后來又擴充了其它的功能。Jmeter可以完成針對靜態資源和動態資源(訛誤女監,Servlets,Perl腳本,Java對象,數據查詢s,FTP服務等)的性能測試。。Jmeter可以模擬大量的服務器負載、網絡負載、軟件對象負載,通過不同的加載類型全面測試軟件的性能。Jmeter提供圖形化的性能分析。使用環境:Solaris,Linux,Windows(98,NT,2000).JDK1.4以上.DBMonster(http://dbmonster.kernelpanic.pl/):DBMonster是一個生成隨機數據,用來測試SQL數據庫的壓力測試工具。使用環境:OSIndependentShiZhu_FFH64一些開源測試工具性能測試工具ShiZhu_FFH65一些開源測試工具ShiZhu_FFH65一些開源測試工具ShiZhu_FFH66一些開源測試工具ShiZhu_FFH66一些開源測試工具ShiZhu_FFH67一些開源測試工具測試管理工具TestLink(/docs/testLink.php):基于WEB的測試管理和執行系統。測試小組在系統中可以創建、管理、執行、跟蹤測試用例,并且提供在測試計劃中安排測試用例的方法。使用環境:Apache,MySQL,PHPBugzillaTestRunner(/projects/testrunner/):BugzillaTestRunner基于Bugzilla缺陷管理系統的測試用例管理系統。使用環境:Bugzilla2.16.3orabove(bugzilla是一個可以發布bug以及跟蹤報告bug進展情況的開源軟件)ShiZhu_FFH67一些開源測試工具測試管理工具自動化測試解決方案舉例(來源:百度百科)公司背景介紹公司應用系統的情況公司軟件測試現狀可供選擇的方案方案評價ShiZhu_FFH68自動化測試解決方案舉例(來源:百度百科)ShiZhu_FFH自動化測試解決方案舉例公司背景介紹A公司是一家大型保險公司,擁有近20個城市的分公司,并在其中5個城市建立了IT支持中心。平均每年的上線應用數量在20個左右(新業務系統和原有業務系統的主要版本發布)。目前A公司的專職測試團隊人數不足30人,而且測試團隊的測試人員技能參差不齊,目前測試只是作為項目上線前的一道工序而已。在測試團隊內部也幾乎沒有自動化的手段,主要依靠手工測試。由于已上線應用系統的問題,開發團隊必須分出一部分資源去維護和修復上線應用,而同時測試團隊的測試成果和效率卻無法和這些應用質量掛鉤,也更無從談起對軟件質量的控制。所以,A公司決定在軟件質量和測試方面進行投入,他們考慮以下幾方面:ShiZhu_FFH69自動化測試解決方案舉例公司背景介紹ShiZhu_FFH69自動化測試解決方案舉例公司背景介紹引進軟件測試流程管理的自動化,提高軟件測試過程的管理水平,使軟件測試和軟件開發一樣可被評估、被衡量。實現性能測試自動化,所有應用上線之前必須有應用性能風險評估報告和相關部門的確認逐步實現功能測試的自動化,在目前人員配置的情況下,把部分手工測試變成自動化測試,提高測試可信度,降低人為錯誤。通過軟件測試自動化,管理軟件測試中的案例、缺陷、報告等資產,進一步提升軟件測試的效率并建立測試基礎庫。在規劃中,將來的2~3年內使所有的應用系統上線都必須有數字化的測試數據作為依據。ShiZhu_FFH70自動化測試解決方案舉例公司背景介紹ShiZhu_FFH70自動化測試解決方案舉例公司應用系統的情況由于保險公司的業務種類繁多,同時在經過了幾十年的經營后,公司內的應用系統從早期的終端方式到現代的J2EE和.NET等應有盡有,魚龍混雜。IT部門已建立3年規劃,即在未來的3年時間內將所有終端和C/S方式的應用轉換成B/S架構,但當前仍然需要對這些舊應用系統進行維護,以保證業務的順利進行。對于開發部門來說,目前新應用開發基本上以B/S架構為主,主要是WebHTTP應用和部分.NET

Form應用。ShiZhu_FFH71自動化測試解決方案舉例公司應用系統的情況ShiZhu_FFH自動化測試解決方案舉例公司軟件測試現狀企業機構在做測試自動化選型時一定要考慮清楚企業內部哪些部分可以實施自動化、哪些部分暫不實施自動化、哪些部分僅在某幾個項目做自動化試點。切忌匆忙上馬或盲目否定,缺乏實事求是的理性思考。ShiZhu_FFH72自動化測試解決方案舉例公司軟件測試現狀ShiZhu_FFH7自動化測試解決方案舉例公司軟件測試現狀測試部門目前僅負責系統測試和對用戶驗證測試進行管理,對于之前的單元測試和集成測試主要由開發團隊中劃分出的一部分臨時測試人員完成。由于缺乏監測手段,測試部門也無法收集和確定集成測試和單元測試的完成情況,在整個軟件測試過程中,業務需求是由開發部門進行管理,但測試需求目前尚沒有提出要求,測試案例主要通過在公司公用的文件服務器中的目錄管理方式管理,對測試中缺陷流程等管理主要依靠郵件的流轉進行處理。目前90%以上的測試是通過Excel和Word等測試案例文檔來完成,測試人員對軟件測試自動化的認識僅停留在“記錄+回放”的認識上。ShiZhu_FFH73自動化測試解決方案舉例公司軟件測試現狀ShiZhu_FFH7自動化測試解決方案舉例可供選擇的方案方案A:A公司可以采用HP-美科利(HP-Mercury)公司產品為主的軟件測試自動化方案。依照原先的郵件流轉過程配置TestDirector缺陷管理流程,為每個保險業務的開發小組和測試團隊分配相應的用戶許可證,取消原有郵件方式。部署QuickTestProfessional,以便完成應用程序相關功能測試。部署LoadRunner。從測試團隊中分化出專職的性能測試自動化工程師和小組,和業務部門協調,建立A公司應用系統上線性能指標,通過LoadRunner給出測試指標。ShiZhu_FFH74自動化測試解決方案舉例可供選擇的方案ShiZhu_FFH74自動化測試解決方案舉例可供選擇的方案方案A:建議A公司成立專門的質量控制部門,對TestDirector中的數據定期進行分析,建立相關質量模型,以便于企業量化管理和過程改進。ShiZhu_FFH75自動化測試解決方案舉例可供選擇的方案ShiZhu_FFH75自動化測試解決方案舉例可供選擇的方案方案B:A公司也可以采用IBMRational產品為主的軟件測試自動化方案。采用Testmanager來進行整個測試流程的管理,為相關開發和測試小組成員分配相應權限,改變以前通過郵件以及Word、Excel文檔管理測試的工作方式。部署Robot,用它來完成功能相關的測試工作以及新版本發布時的冒煙測試。此外,Robot也能較好地完成性能相關測試。統一的操作方式降低了工具的學習周期和培訓帶來的大筆開銷。部署Purifyplus,使測試工作前移到開發階段。由于Purifyplus能較好地支持白盒測試,編程人員在編碼階段引入的錯誤能盡早被檢測到,這大幅降低了后期測試的開銷。ShiZhu_FFH76自動化測試解決方案舉例可供選擇的方案ShiZhu_FFH76自動化測試解決方案舉例可供選擇的方案方案B:A公司也可以采用IBMRational產品為主的軟件測試自動化方案。建議A公司成立專門的質量控制部門,對Testmanager中的數據定期進行分析,建立相關質量模型,以便于企業量化管理和過程改進。ShiZhu_FFH77自動化測試解決方案舉例可供選擇的方案ShiZhu_FFH77自動化測試解決方案舉例可供選擇的方案方案C:A公司也可以采用開源軟件為主的軟件測試自動化方案。采用Bugzilla來進行Bug跟蹤管理,采用BugzillaTestRunner進行測試用例管理,采用CVS進行測試資源的配置管理。采用MaxQ和WebInject對B/S結構的應用系統進行功能測試。采用DBMonster、Open-STA、LoadSim進行性能相關測試。可采用Xunit架構的開源工具對不同語言的程序單元進行單元測試。ShiZhu_FFH78自動化測試解決方案舉例可供選擇的方案ShiZhu_FFH78自動化測試解決方案舉例可供選擇的方案方案C:建議A公司成立專門的開源軟件維護小組,以解決可能會碰到的工具維護工作。建議A公司成立專門的質量控制部門,對Bugzilla、TestRunner、CVS中的數據定期進行分析,建立相關質量模型,以便于企業量化管理和過程改進。ShiZhu_FFH79自動化測試解決方案舉例可供選擇的方案ShiZhu_FFH79自動化測試解決方案舉例方案評價由于不同客戶在組織架構、員工素質以及流程管理水平等方面的不同,很難用一兩句話來說明不同解決方案的適用性。上面3種可行的方案,具體選擇哪一個,需仔細權衡。一般性建議:對于不想受制于某個測試自動化廠家的企業,開源是一個理想的選擇。它不需要支付成本,工具的源代碼可以隨意修改,因而具有較好的靈活性。但開源工具的弊端也是明顯的:缺乏使用培訓和技術支持,沒有正確保證,工具的用戶界面一般也較為粗糙。對于比較看重培訓和售后支持的企業,建議選擇IBMRational或HP(Mercury)或其他廠家的產品。這樣雖然需要支付一部分費用,但省去了工具維護所需要的大量工作。ShiZhu_FFH80自動化測試解決方案舉例方案評價ShiZhu_FFH80ShiZhu_FFH81軟件自動化測試基礎ShiZhu_FFH1軟件自動化測試基礎ShiZhu_FFH82軟件自動化測試基礎自動化測試基礎軟件自動化測試工具簡述自動化測試解決方案舉例ShiZhu_FFH2軟件自動化測試基礎自動化測試基礎ShiZhu_FFH83自動化測試基礎自動化測試的定義自動化測試的意義自動化測試的引入自動化測試的原理和方法軟件自動化測試生存周期方法學軟件自動化測試生存周期方法學的應用自動化測試存在的一些問題和限制建立正確的自動化測試目標ShiZhu_FFH3自動化測試基礎自動化測試的定義自動化測試什么是自動化測試?一般是指軟件測試的自動化。自動化測試可理解為測試過程自動化和測試結果分析自動化,包括測試活動的管理與實施、測試腳本的開發與執行。軟件自動化測試就是模擬手動測試步驟,控制被測軟件的執行,完成全自動或半自動測試的過程。全自動測試:指不需人工干預,由程序自動完成測試的全過程。半自動測試:指在測試過程中,需手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試。ShiZhu_FFH84自動化測試什么是自動化測試?ShiZhu_FFH4ShiZhu_FFH85自動化測試的意義軟件測試工作量大,重復性高通常,軟件測試的工作量很大(據統計,測試會占用到40%的開發時間;一些可靠性要求非常高的軟件,測試時間甚至占到開發時間的60%)。而測試中的許多操作是重復性的、非智力性的和非創造性的,并要求做準確細致的工作,計算機就最適合于代替人工去完成這樣的任務。要理解為什么要進行自動化測試,可以從兩個方面考慮:一是手工測試的局限性;二是軟件自動化測試所帶來的好處。ShiZhu_FFH5自動化測試的意義軟件測試工作量大,重復ShiZhu_FFH86手工測試的局限性手工測試優點具有創造性;可舉一反三,從一個測試用例想到另一些測試用例,特別是可考慮測試用例不能覆蓋的一些特殊或邊界情況;對那些復雜的邏輯判斷、界面是否友好,手工測試有明顯優勢。手工測試的局限性通過手工測試無法做到覆蓋所有代碼路徑。簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機械性、重復性,工作量往往較大。許多與時序、死鎖、資源沖突、多線程等有關的錯誤,通過手工測試很難捕捉到。(接下頁)ShiZhu_FFH6手工測試的局限性手工測試優點ShiZhu_FFH87手工測試的局限性手工測試的局限性進行系統負載、性能測試時,需要模擬大量數據或大量并發用戶等各種應用場合時,很難通過于工測試來進行。進行系統可靠性測試時,需要模擬系統運行10年、幾十年,以驗證系統能否穩定運行,這也是手工測試無法模擬的。如果有大量(幾千)的測試用例,需要在短時間內(1天)完成,手工測試幾乎不可能做到。ShiZhu_FFH7手工測試的局限性手工測試的局限性ShiZhu_FFH88自動化測試帶來的好處縮短軟件開發測試周期,可讓產品更快投放市場。提高測試效率,充分利用硬件資源。節省人力資源,降低測試成本。增強測試的穩定性和可靠性。提高軟件測試的準確度和精確度,增加軟件信任度。測試工具使測試工作相對較容易,且能產生更高質量的測試結果。手工不能做的事情,自動化測試能做,如負載、性能測試。軟件測試實行自動化進程,絕不是因為厭煩了重復的測試工作,而是因為測試工作的需要,更準確地說是回歸測試和系統測試的需要。ShiZhu_FFH8自動化測試帶來的好處縮短軟件開發測試周ShiZhu_FFH89自動化測試的引入正確的認識觀在進行自動化測試前,首先要建立一個對軟件測試自動化的認識觀。軟件測試工具能提高測試效率、覆蓋率和可靠性等,自動化測試雖然具有很多優點,但它只是測試工作的一部分,是對手工測試的一種補充。ShiZhu_FFH9自動化測試的引入正確的認識觀自動化測試的引入前提條件通常需要同時滿足以下條件:1)軟件需求變動不頻繁

從維護成本考慮:相對穩定的模塊進行自動化測試,而變動較大的仍是用手工測試。2)項目周期足夠長

自動化測試本身就是一個測試軟件的開發過程,需較長時間完成。如項目周期較短,就沒足夠的時間去支持這個過程。3)自動化測試腳本可重復使用

成本應不大于所創造的經濟價值ShiZhu_FFH90自動化測試的引入前提條件ShiZhu_FFH10ShiZhu_FFH91自動化測試的引入自動化測試和手工測試的范圍自動化測試絕不能代替手工測試,它們各有各自的特點,其測試對象和測試范圍都不一樣:在系統功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法。單元測試、集成測試、系統負載測試、性能測試、穩定性測試、可靠性測試等比較適合采用自動化測試。那種不穩定軟件的測試、開發周期很短的軟件、一次性的軟件等不適合自動化測試。工具本身并沒有想象力和靈活性,根據報道,自動化測試只能發現15%的缺陷,而手工測試可以發現85%的缺陷。(接下頁)ShiZhu_FFH11自動化測試的引入自動化測試和手工測試ShiZhu_FFH92自動化測試的引入自動化測試和手工測試的范圍(續)自動化測試工具在進行功能測試時,其準確的含義是回歸測試工具,這時工具不能發現更多的新問題,但可以保證對已經測試過部分的準確性和客觀性。多數情況下,手工測試和自動化測試應該相結合,以最有效的方法來完成測試任務。ShiZhu_FFH12自動化測試的引入自動化測試和手工測試ShiZhu_FFH93自動化測試的引入通常,當軟件開發過程具有下列情況時,就需要考慮引入自動化測試:1)測試用例的生成:包括測試輸入、測試輸出、測試操作指令等;2)測試的執行與控制:包括單機運行和網絡多機分布式的運行,在節假日的運行,測試個案調用控制,測試對象、測試范圍與測試版本的控制等;3)測試結果與標準輸出進行對比;4)不吻合預期的測試結果的分析、記錄、分類和通報5)總體測試狀況的統計及報表的產生。ShiZhu_FFH13自動化測試的引入通常,當軟件開發過程ShiZhu_FFH94自動化測試的原理和方法軟件測試自動化實現的基礎是通過設計的特殊程序模擬測試人員對計算機的操作過程、操作行為;或者類似于編譯系統那樣對計算機程序進行檢查。軟件測試自動化實現的原理和方法主要有:直接對代碼進行靜態和動態分析、測試過程的捕獲和回放、測試腳本技術、虛擬用戶技術和測試管理技術。ShiZhu_FFH14自動化測試的原理和方法軟件測試自動化自動化測試的原理和方法1)代碼分析代碼分析類似于高級語言編譯系統,一般針對不同的高級語言去構造分析工具,在工具中定義類、對象、函數、變量等定義規則、語法規則;在分析時對代碼進行語法掃描,找出不符合編碼規范的地方;根據某種質量模型評價代碼質量,生成系統的調用關系圖等。ShiZhu_FFH95自動化測試的原理和方法1)代碼分析ShiZhu_FFH15ShiZhu_FFH96自動化測試的原理和方法2)捕獲和回放代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應的操作、狀態變化或是屬性變化。所有的記錄轉換為一種腳本語言所描述的過程,以模擬用戶的操作。回放時,將腳本語言所描述的過程轉換為屏幕上的操作,然后將被測系統的輸出記錄下來同預先給定的標準結果比較。捕獲和回放可以大大減輕黑盒測試的工作量,在迭代開發的過程中,能夠很好地進行回歸測試。ShiZhu_FFH16自動化測試的原理和方法2)捕獲和回放ShiZhu_FFH97自動化測試的原理和方法關于自動化測試中的“錄制—回放”技術所謂的“錄制-回放”技術,就是先由手工完成一遍需要測試的流程,同時由計算機記錄下這個流程期間客戶端和服務器端之間的通信信息,這些信息通常是一些協議和數據,并形成特定的腳本程序(Script)。然后在系統的統一管理下同時生成多個虛擬用戶,并運行該腳本,監控硬件和軟件平臺的性能,提供分析報告或相關資料。這樣,通過幾臺機器就可以模擬出成百上千的用戶對應用系統進行負載能力的測試。ShiZhu_FFH17自動化測試的原理和方法關于自動化測試ShiZhu_FFH98自動化測試的原理和方法3)腳本技術腳本是一組測試工具執行的指令集,也是計算機程序的一種形式。腳本可通過錄制測試的操作產生,然后再做修改,這樣可減少腳本編程的工作量。當然,也可以直接用腳本語言編寫腳本。腳本中包含的是測試數據和指令,一般包括如下信息:同步(何時進行下一個輸入)。比較信息(比較什么,比較標準)。埔獲何種屏幕數據及存儲在何處。從哪個數據源或從何處讀取數據。控制信息等。ShiZhu_FFH18自動化測試的原理和方法3)腳本技術ShiZhu_FFH99自動化測試的原理和方法

腳本技術可以分為以下幾類:線性腳本——是錄制手工執行的測試用例得到的腳本。結構化腳本——類似于結構化程序設計,具有各種邏輯結構(順序、分支、循環),而且具有函數調用功能。共享腳本——是指某個腳本可被多個測試用例使用,即腳本語言允許一個腳本調用另一個腳本。數據驅動腳本——將測試輸入存儲在獨立的數據文件中。關鍵字驅動腳本——是數據驅動腳本的邏輯擴展,將數據文件變為測試用例描述,用一系列關鍵字指定要執行的任務。ShiZhu_FFH19自動化測試的原理和方法 腳本技術可以自動化測試的原理和方法例:以下語句指示QTP選中Itinerary網頁上的所有復選框:SetMyDescrīption=Descrīption.Create()MyDescrīption("htmltag").Value="INPUT"MyDescrīption("type").Value="checkbox"SetCheckboxes=Browser("Itinerary").Page("Itinerary").ChildObjects(MyDescrīption)NoOfChildObjs=Checkboxes.CountForCounter=0toNoOfChildObjs-1Checkboxes(Counter).Set"ON"NextShiZhu_FFH100自動化測試的原理和方法例:以下語句指示QTP選中ItiShiZhu_FFH101自動化測試的原理和方法4)自動比較靜態比較和動態比較靜態比較,在測試過程中不比較,而是將結果存入文件或數據庫,最后比較結果;動態測試,在測試過程中比較。簡單比較和復雜比較簡單比較,實際結果和預期結果完全相同;復雜比較,允許有一定誤差。ShiZhu_FFH21自動化測試的原理和方法4)自動比較ShiZhu_FFH102自動化測試的原理和方法4)自動比較敏感性測試比較和健壯性測試比較敏感性測試比較,比較盡可能多的信息。如測試用例的每一步都比較;健壯性測試比較,只比較最需要的信息。如最后結果。比較過濾器對預期輸出進行預處理,執行過濾任務后,再比較。5)測試管理ShiZhu_FFH22自動化測試的原理和方法4)自動比較ShiZhu_FFH103軟件自動化測試生存周期方法學自動化測試生存周期方法學1.自動化測試決定2.測試工具獲取3.自動化測試引入過程4.測試計劃、設計與開發5.測試執行與管理6.測試評審與評估圖自動化測試生存周期方法學結構ShiZhu_FFH23軟件自動化測試生存周期方法學自動化測ShiZhu_FFH104軟件自動化測試生存周期方法學采用自動化測試方法的確認自動化測試工具的獲取自動化測試的引入階段

——包括測試過程分析和測試工具的考查。測試計劃與測試設計

——包括制訂測試計劃、建立測試環境、測試設計和設計開發。測試執行與管理測試活動評審與評估ShiZhu_FFH24軟件自動化測試生存周期方法學采用自動ShiZhu_FFH105自動化測試生存周期方法的應用自動化測試生存周期方法學1.自動化測試決定2.測試工具獲取3.自動化測試引入過程4.測試計劃、設計與開發5.測試執行與管理6.測試評審與評估A.系統生存周期過程評估與改進F.生成維護階段C.小型工具先導/原型D.系統設計與開發階段B.業務分析與需求階段E.組裝與測試階段ShiZhu_FFH25自動化測試生存周期方法的應用自動化測ShiZhu_FFH106自動化測試存在的一些問題不正確的觀念或不現實的期望缺乏具有良好素質和有經驗的測試人才測試工具本身的問題影響測試的質量沒有進行有效、充分的培訓不考慮公司的實際情況、盲目引入測試工具沒有形成一個良好的測試工具使用環境其他技術問題和組織問題ShiZhu_FFH26自動化測試存在的一些問題不正確的觀念ShiZhu_FFH107測試自動化限制測試自動化可以帶來非常明顯的收益,但也有以下限制:不能取代手工測試手工測試比自動測試發現的缺陷更多對測試質量的依賴性極大測試自動化不能提高有效性測試自動化可能會制約軟件開發。工具本身并無想象力另外,人工測試比測試工具更優越的另一個方面是可以處理意外事件。雖然工具也能處理部分異常事件,但是對真正的突發事件和不能由軟件解決的問題就無能為力。ShiZhu_FFH27測試自動化限制測試自動化可以帶來非常ShiZhu_FFH108建立正確的自動化測試目標克服不正確的觀念,需要建立正確的自動化測試目標。測試計劃產生:主要靠測試工程師與軟件生產質量保證專家的合作,自動化工具只能起到一定的輔助作用。一種測試工具不完全適用于所有測試自動測試不一定會減輕工作量測試進度可能不一定會縮短測試工具不一定易于使用自動化測試的普遍應用存在局限測試覆蓋率不會達到百分之百ShiZhu_FFH28建立正確的自動化測試目標克服不正確的ShiZhu_FFH109軟件自動化測試工具簡述自動化測試工具的作用及優勢自動化測試工具的特征自動化測試工具的分類選擇自動化測試工具使用測試工具和自動化的實質常用測試工具概要ShiZhu_FFH29軟件自動化測試工具簡述自動化測試工具ShiZhu_FFH110自動化測試工具的作用及優勢軟件測試自動化通常借助測試工具進行。測試工具可以進行部分的測試設計、實現、執行和比較的工作。部分的測試工具可以實現測試用例的自動生成,但通常的工作方式為人工設計測試用例,使用工具進行用例的執行和比較。自動化測試工具的作用:(1)確定系統最優的硬件配置。虛擬硬件進行配置測試。(2)檢查系統的可靠性。大負載,長時間。(3)檢查系統硬件和軟件的升級情況。軟硬件對系統性能的影響。(4)評估新產品。ShiZhu_FFH30自動化測試工具的作用及優勢軟件測試自ShiZhu_FFH111自動化測試工具的作用及優勢自動化測試工具的優勢主要體現在以下幾個方面:(1)記錄業務流程并生成腳本程序的能力。(2)對各種網絡設備(客戶機或服務器、其它網絡設備)的模仿能力。(3)用有限的資源生成高質量虛擬用戶的能力。(4)對于整個軟件和硬件系統中各個部分的監控能力。(5)對于測試結果的表現和分析能力。ShiZhu_FFH31自動化測試工具的作用及優勢自動化測試ShiZhu_FFH112自動化測試工具的特征支持腳本化語言(ScriptingLanguage)對程序界面中對象的識別能力支持函數的可重用支持外部函數庫抽象層—將程序界面中的對象實體映射成邏輯對象分布式測試(DistributedTest)的支持支持數據驅動測試(Data-DrivenTest)錯誤處理調試器(Debugger)源代碼管理支持腳本的命令行(CommandLine)方式ShiZhu_FFH32自動化測試工具的特征支持腳本化語言(ShiZhu_FFH113自動化測試工具的分類測試工具可以從多個不同的方面去分類。從入侵角度,分入侵式工具和非入侵式工具:非入侵式工具:如果工具僅用于監視和檢查軟件而不對其進行修改,就認為是非入侵式工具。入侵式工具:如果工具以任何方式修改了程序代碼或者控制了操作環境,就屬于入侵式工具。由于入侵的程度各有不同,測試員通常設法使用侵入性盡量小的工具,以減少工具影響測試結果的可能性。根據測試方法不同,自動化測試工具可以分為:白盒測試工具、黑盒測試工具(Continue)ShiZhu_FFH33自動化測試工具的分類測試工具可以從多ShiZhu_FFH114自動化測試工具的分類測試工具可以從多個不同的方面去分類。(續)根據測試的對象和目的,自動化測試工具可以分為:單元測試工具、功能測試工具、負載測試工具、性能測試工具、Web測試工具、數據庫測試工具、回歸測試工具、嵌入式測試工具、頁面鏈接測試工具、測試設計與開發工具、測試執行和評估工具、測試管理工具等根據使用方式,自動化測試工具可以分為:查看器和監視器、驅動程序、樁、壓力和負載工具、干擾注入器和噪聲發生器和分析工具。ShiZhu_FFH34自動化測試工具的分類測試工具可以從多ShiZhu_FFH115自動化測試工具的分類測試工具可以從多個不同的方面去分類。(續)按測試工具的收費方式,又可分為以下幾類。商業測試工具。開源測試工具。免費測試工具。ShiZhu_FFH35自動化測試工具的分類測試工具可以從多ShiZhu_FFH116白盒測試工具白盒測試工具一般是針對被測源程序進行的測試,測試所發現的故障可以定位到代碼級。根據測試工具工作原理的不同,白盒測試的自動化工具可分為靜態測試工具和動態測試工具。靜態測試工具——是在不執行程序的情況下,分析軟件的特性。靜態分析主要集中在需求文檔、設計文檔以及程序結構方面。按照完成的職能不同,靜態測試工具包括以下幾種類型:

(1)代碼審查(2)一致性檢查(3)錯誤檢查(4)接口分析

溫馨提示

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

評論

0/150

提交評論