火龍果-自動(dòng)化測試_第1頁
火龍果-自動(dòng)化測試_第2頁
火龍果-自動(dòng)化測試_第3頁
火龍果-自動(dòng)化測試_第4頁
火龍果-自動(dòng)化測試_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、A.自動(dòng)化測試的意義B.自動(dòng)化測試的引入C.自動(dòng)化測試的原理和方法D.自動(dòng)化測試生存周期 軟件測試工作量很大(常占到40%的開發(fā)時(shí)間;一些可靠性要求非常高的軟件,甚至60%) 測試中的許多操作是重復(fù)性的、非智力性的和非創(chuàng)造性的,并要求做準(zhǔn)確細(xì)致的工作,計(jì)算機(jī)就最適合于代替人工去完成這樣的任務(wù)。自動(dòng)化測試自動(dòng)化測試: :編寫軟件去測試其它軟件。編寫軟件去測試其它軟件。 編寫驅(qū)動(dòng)被測試應(yīng)用程序的測試腳本以執(zhí)行編寫驅(qū)動(dòng)被測試應(yīng)用程序的測試腳本以執(zhí)行鍵盤、鼠標(biāo)動(dòng)作和后臺進(jìn)程并驗(yàn)證應(yīng)用程序響鍵盤、鼠標(biāo)動(dòng)作和后臺進(jìn)程并驗(yàn)證應(yīng)用程序響應(yīng)和行為。應(yīng)和行為。 無法做到覆蓋所有代碼路徑 機(jī)械、重復(fù),工作量大 許多

2、與時(shí)序、死鎖、資源沖突、多線程等有關(guān)的錯(cuò)誤,通過手工測試很難捕捉到 進(jìn)行負(fù)載、性能測試,很難通過手工測試模擬大量數(shù)據(jù)或大量并發(fā)用戶 可靠性測試時(shí),常需要模擬系統(tǒng)運(yùn)行10年、幾十年,以驗(yàn)證穩(wěn)定性,這也是手工測試無法做到的 如果有大量(幾千)的測試用例,需要在短時(shí)間內(nèi)(1天)完成,手工測試幾乎不可能做到自動(dòng)化測試的好處 良好的可操作性、可重復(fù)性和高效率等 縮短軟件開發(fā)測試周期,讓產(chǎn)品更快投放市場 測試效率高,充分利用硬件資源??蛇\(yùn)行更多,更頻繁 節(jié)省人力資源,降低測試成本 增強(qiáng)測試的穩(wěn)定性和可靠性 提高測試的準(zhǔn)確度和精確度,增加軟件信任度 能做負(fù)載、性能測試等手工不能做的事情 可以選擇受影響測試集

3、,自動(dòng)進(jìn)行回歸測試 B. 自動(dòng)化測試的引入 自動(dòng)化測試有很多優(yōu)點(diǎn),但它只是測試工作的一部分,是對手工測試的一種補(bǔ)充。 自動(dòng)化測試不可能完全代替手工測試在功能邏輯測試、適用性測試、涉及物理交互性測試時(shí),多采用黑盒測試的手工測試方法單元測試、集成測試、負(fù)載測試、性能測試、穩(wěn)定性測試、可靠性測試等較適合自動(dòng)化 測試計(jì)劃制定基本靠人 一種測試工具不完全適用于所有測試 自動(dòng)測試不一定減輕工作量 測試進(jìn)度可能不一定縮短 測試工具不一定易于使用 測試覆蓋率不會(huì)達(dá)到100% 自動(dòng)化測試很難普遍應(yīng)用,一些軟件很難自動(dòng)化測試,可測性低的產(chǎn)品也不易自動(dòng)化測試 測試自動(dòng)化初始代價(jià)高,技術(shù)要求也高 工具本身缺乏想象力和

4、靈活性,據(jù)報(bào)道,自動(dòng)化測試只能發(fā)現(xiàn)15的缺陷,而手工測試可以發(fā)現(xiàn)85的缺陷 自動(dòng)化測試對測試設(shè)計(jì)質(zhì)量的依賴極大。錯(cuò)誤的測試設(shè)計(jì)可能使測試情境與用戶使用情境相背離 測試工具在進(jìn)行功能測試時(shí),更多是做回歸測試,這時(shí)工具不能發(fā)現(xiàn)更多的新問題,但可以保證對已經(jīng)測試過部分的準(zhǔn)確性和客觀性。 工具不能處理突發(fā)情況。自動(dòng)化測試工具雖然能處理部分異常事件,但是對真正的突發(fā)事件和不能由軟件解決的問題就無能為力。 多數(shù)情況下,手工測試和自動(dòng)化測試應(yīng)該相結(jié)合,多數(shù)情況下,手工測試和自動(dòng)化測試應(yīng)該相結(jié)合,以最有效的方法來完成測試任務(wù)。以最有效的方法來完成測試任務(wù)。 非常重要的測試 涉及范圍很廣的測試 對主要功能的測試

5、 容易自動(dòng)化的測試 很快有回報(bào)的測試 運(yùn)行最頻繁的測試那種不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適合開發(fā)測試工具進(jìn)行自動(dòng)化測試。 測試自動(dòng)化建立和維護(hù)等方面的負(fù)擔(dān)可能會(huì)測試自動(dòng)化建立和維護(hù)等方面的負(fù)擔(dān)可能會(huì)造成延誤工期、成本浪費(fèi)等問題造成延誤工期、成本浪費(fèi)等問題 應(yīng)選擇合理的點(diǎn)進(jìn)行自動(dòng)化,建立合理的自動(dòng)化體系結(jié)構(gòu),編寫合理的自動(dòng)化測試代碼, 優(yōu)秀自動(dòng)化測試體系的七個(gè)屬性應(yīng)根據(jù)測試目標(biāo),有針對性地提高自己關(guān)注的屬性,實(shí)施符合需要的自動(dòng)化測試體系 高效的自動(dòng)化測試體系源于好的測試軟件應(yīng)根據(jù)需要和能力決定自主開發(fā)或選購適合的測試工具優(yōu)秀自動(dòng)化測試體系的七個(gè)屬性 可維護(hù)性可維護(hù)性是否很

6、容易使測試更新跟上軟件升級的步伐自動(dòng)化測試的維護(hù)工作量過大可能導(dǎo)致整個(gè)測試自動(dòng)化工作被全面否決,甚至束之高閣。 高效性高效性自動(dòng)化測試的一個(gè)重要目標(biāo)就是更經(jīng)濟(jì)地運(yùn)行測試應(yīng)在測試計(jì)劃和設(shè)計(jì)階段全面審視各方面因素,在科學(xué)合理的測試流程基礎(chǔ)上利用優(yōu)秀的自動(dòng)化策略將自動(dòng)化測試與手工測試有機(jī)結(jié)合,才能實(shí)現(xiàn)效率最大化。 可靠性可靠性測試體制是否能給出精確而且可重現(xiàn)的結(jié)果 兼容性兼容性是否允許測試用例為不同的測試目標(biāo)而以不同方式組合 可用性可用性定制或更改測試用例是否容易,使用是否容易 健壯性健壯性是否可以處理意外情況而不退出或終止 可移植性可移植性在不同環(huán)境中運(yùn)行測試的能力 測試自動(dòng)化實(shí)現(xiàn)的基礎(chǔ)測試自動(dòng)化

7、實(shí)現(xiàn)的基礎(chǔ) 可以通過設(shè)計(jì)的特殊程序模擬測試人員對計(jì)算機(jī)的操作過程、操作行為,或者類似于編譯系統(tǒng)那樣對計(jì)算機(jī)程序進(jìn)行檢查。 測試自動(dòng)化實(shí)現(xiàn)的原理和方法主要有測試自動(dòng)化實(shí)現(xiàn)的原理和方法主要有 代碼靜態(tài)和動(dòng)態(tài)分析 測試過程的捕獲和回放(Record and Replay) 測試腳本技術(shù) 虛擬用戶技術(shù) 測試管理技術(shù) 代碼分析類似于高級編譯系統(tǒng),一般針對不同的高級語言去構(gòu)造分析工具 定義類、對象、函數(shù)、變量等的使用規(guī)則,推理檢查規(guī)則實(shí)現(xiàn)情況 在分析時(shí)對代碼進(jìn)行語法掃描,找出不符合編碼規(guī)范的地方 根據(jù)某種質(zhì)量模型評價(jià)代碼質(zhì)量 生成系統(tǒng)的調(diào)用關(guān)系圖等 常用技術(shù)Syntax analysisParsingCo

8、ntrol flow analysisData flow analysisConstraint based analysisAbstract interpretationType-effect systemSymbolic execution程序語法樹詞法語法抽象中間表示IR連接(link)抽象控制流圖CFG帶內(nèi)存抽象的IR內(nèi)存抽象pointer/heap/shape analysis調(diào)用圖CGICFG帶值信息的IR值抽象 abstract interpretation帶流信息的IR控制流抽象調(diào)用抽象帶符號信息的IR流抽象 dataflow analysis類型抽象 type-effect s

9、ystem帶類型抽象的IR帶約束信息的IR約束抽象constraint solving符號抽象symbolic evaluation 其它void m() throws Exception s1; if(s2) throw new Exception(); try s3; s4; catch(Exception e) s5; entrys1s2throws3s4s5exit異常分析 哪些語句可能拋出異常? 哪些異??赡鼙徊东@? 一個(gè)catch上可能捕獲哪些異常,來源哪些模塊?mainA.foo()s1B.foo()s1A.bar()B.bar()s2s2A.()B.()顯式調(diào)用隱式調(diào)用語句標(biāo)記

10、 概念 一種全局的控制流視圖,通過調(diào)用邊(call edge)和調(diào)用返回邊 (return edge) 聯(lián)系程序中的各個(gè)過程entryexitcallretentryexitentryexitcallret優(yōu)點(diǎn):簡單、快捷優(yōu)點(diǎn):簡單、快捷缺點(diǎn):靈活性差缺點(diǎn):靈活性差優(yōu)點(diǎn):靈活性好優(yōu)點(diǎn):靈活性好缺點(diǎn):復(fù)雜、工作量大缺點(diǎn):復(fù)雜、工作量大手工編寫測試驅(qū)動(dòng)手工編寫測試驅(qū)動(dòng)錄制回放方式錄制回放方式 捕獲捕獲 將用戶每一步操作都記錄下來。對GUI,記錄下操作對象,以及相對應(yīng)的操作、狀態(tài)變化或是屬性變化。所有的記錄轉(zhuǎn)換為一種腳本語言所描述的過程,以模擬用戶操作。 操作對象描述方式有兩種:以用戶界面的像素坐標(biāo)

11、描述,以邏輯對象(如窗口、按鈕等)描述 回放回放 將腳本語言所描述的過程轉(zhuǎn)換為屏幕上的操作,然后將被測系統(tǒng)的輸出記錄下來同預(yù)先給定的標(biāo)準(zhǔn)結(jié)果比較。這可以大大減輕黑盒測試的工作量,在迭代開發(fā)的過程中,能夠很好地進(jìn)行回歸測試。 目前的自動(dòng)化性能測試幾乎都采用錄制-回放技術(shù) 先由手工完成一遍需要測試的流程,同時(shí)由計(jì)算機(jī)記錄下這個(gè)流程期間客戶端和服務(wù)器端之間的通信信息,這些信息通常是一些協(xié)議和數(shù)據(jù),并形成特定的腳本程序 。 然后在系統(tǒng)的統(tǒng)一管理下同時(shí)生成多個(gè)虛擬用戶,并運(yùn)行該腳本,監(jiān)控硬件和軟件平臺的性能,提供分析報(bào)告或相關(guān)資料。這樣,通過幾臺機(jī)器就可以模擬出成百上千的用戶對應(yīng)用系統(tǒng)進(jìn)行負(fù)載能力的測試

12、。 腳本是一組測試工具執(zhí)行的指令集合,也是計(jì)算機(jī)程序的一種形式。 腳本可以通過錄制測試產(chǎn)生,然后再做修改(減少直接編寫的工作量);也可以直接用腳本語言編寫 腳本語言:vbscript, javascirpt, C子集,Python等 腳本技術(shù)可分為以下幾類腳本技術(shù)可分為以下幾類:線性腳本線性腳本結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本共享腳本共享腳本數(shù)據(jù)驅(qū)動(dòng)腳本數(shù)據(jù)驅(qū)動(dòng)腳本關(guān)鍵字驅(qū)動(dòng)腳本關(guān)鍵字驅(qū)動(dòng)腳本 腳本技術(shù)可分為以下幾類:線性腳本線性腳本:錄制手工執(zhí)行的測試用例得到的腳本缺點(diǎn):不具有邏輯判斷能力,可維護(hù)性差,效率低下,代碼量大,兼容性差優(yōu)點(diǎn):簡單,易得,用作程序操作的演示很不錯(cuò)結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本:類似于結(jié)構(gòu)

13、化程序,具有各種邏輯結(jié)構(gòu)(順序、分支、循環(huán)),甚至函數(shù)調(diào)用功能優(yōu)點(diǎn):腳本的邏輯判斷能力和處理問題的靈活性得到增強(qiáng),基本實(shí)現(xiàn)腳本的模塊化。缺點(diǎn):腳本內(nèi)仍然捆綁測試信息,即鍵盤、鼠標(biāo)動(dòng)作表示的輸入被固化在腳本中,測試修改和定制非常復(fù)雜困難。 腳本技術(shù)可分為以下幾類:共享腳本共享腳本:指某個(gè)腳本可被多個(gè)測試用例使用,即腳本語言允許一個(gè)腳本調(diào)用另一個(gè)腳本優(yōu)點(diǎn):可將公共操作放在一個(gè)地方提供調(diào)用實(shí)現(xiàn)共享,可重用性加強(qiáng),在需要更改此部分的代碼時(shí),不用修改所有使用此公共操作的腳本,大大減少了維護(hù)開銷。數(shù)據(jù)驅(qū)動(dòng)腳本數(shù)據(jù)驅(qū)動(dòng)腳本:將測試輸入存儲在獨(dú)立的數(shù)據(jù)文件中。數(shù)據(jù)和執(zhí)行控制分離 腳本技術(shù)可分為以下幾類:關(guān)鍵字

14、驅(qū)動(dòng)腳本:用關(guān)鍵詞序列表示測試關(guān)鍵字驅(qū)動(dòng)腳本:用關(guān)鍵詞序列表示測試優(yōu)點(diǎn):界面元素名與具體測試對象分離;測試描述與測試實(shí)優(yōu)點(diǎn):界面元素名與具體測試對象分離;測試描述與測試實(shí)現(xiàn)分離;腳本與數(shù)據(jù)分離現(xiàn)分離;腳本與數(shù)據(jù)分離缺點(diǎn):需要有驅(qū)動(dòng)程序去解釋測試描述,將關(guān)鍵詞序列變?yōu)槿秉c(diǎn):需要有驅(qū)動(dòng)程序去解釋測試描述,將關(guān)鍵詞序列變?yōu)榭蓤?zhí)行的程序可執(zhí)行的程序1.點(diǎn)擊”開始”菜單2.選擇菜單目錄 “程序:附件:計(jì)算器”3.將計(jì)算器移動(dòng)到屏幕中間位置4.按鍵計(jì)算7+8=155.關(guān)閉計(jì)算器 支持腳本化語言(Scripting Language) 對程序界面中對象的識別能力 支持函數(shù)的可重用 支持外部函數(shù)庫 抽象層將程

15、序界面中的對象實(shí)體映射成邏輯對象 分布式測試(Distributed Test)的支持 支持?jǐn)?shù)據(jù)驅(qū)動(dòng)測試(Data-Driven Test) 錯(cuò)誤處理 調(diào)試器(Debugger) 源代碼管理:持續(xù)集成、持續(xù)構(gòu)建持續(xù)集成、持續(xù)構(gòu)建 支持腳本的命令行(Command Line)方式 測試用例的生成測試用例的生成:測試輸入、測試輸出、測試操作指令等 測試的執(zhí)行與控制測試的執(zhí)行與控制:包括單機(jī)運(yùn)行和網(wǎng)絡(luò)多機(jī)分布式的運(yùn)行,在節(jié)假日的運(yùn)行,測試個(gè)案調(diào)用控制,測試對象、測試范圍與測試版本的控制等 測試結(jié)果與標(biāo)準(zhǔn)輸出進(jìn)行對比測試結(jié)果與標(biāo)準(zhǔn)輸出進(jìn)行對比 不吻合測試結(jié)果的分析處理不吻合測試結(jié)果的分析處理:不吻合預(yù)

16、期的測試結(jié)果的分析、記錄、分類和報(bào)告 總體測試狀況的統(tǒng)計(jì)及報(bào)表的產(chǎn)生總體測試狀況的統(tǒng)計(jì)及報(bào)表的產(chǎn)生 自動(dòng)化測試與開發(fā)中產(chǎn)品自動(dòng)化測試與開發(fā)中產(chǎn)品每日構(gòu)建每日構(gòu)建的配合的配合 確定系統(tǒng)最優(yōu)的硬件配置 檢查系統(tǒng)的可靠性 檢查系統(tǒng)硬件和軟件的升級情況 評估新產(chǎn)品 模仿各種設(shè)備 監(jiān)控軟硬件系統(tǒng)自動(dòng)化測試自動(dòng)化測試生存周期生存周期2. 測試工具獲取測試工具獲取3. 自動(dòng)化測試引入過程自動(dòng)化測試引入過程5. 測試執(zhí)行與管理測試執(zhí)行與管理6. 測試評審與評估測試評審與評估4. 測試計(jì)劃、設(shè)計(jì)與開發(fā)測試計(jì)劃、設(shè)計(jì)與開發(fā)1. 自動(dòng)化測試決定自動(dòng)化測試決定 包括制訂測試計(jì)劃、建立測試環(huán)境、測試設(shè)計(jì)和設(shè)計(jì)開發(fā)。包括

17、測試過程分析和測試工具的考查無自動(dòng)測試階段自動(dòng)測試初始階段自動(dòng)測試發(fā)展階段自動(dòng)測試成熟階段自動(dòng)測試高級階段特征無自動(dòng)測試用無自動(dòng)測試用例,測試工作全例,測試工作全部手工操作部手工操作非專業(yè)人員從非專業(yè)人員從事測試事測試有腳本文件驅(qū)有腳本文件驅(qū)動(dòng)的半自動(dòng)測試動(dòng)的半自動(dòng)測試無機(jī)算計(jì)軟件無機(jī)算計(jì)軟件專業(yè)人員從事測專業(yè)人員從事測試試無工具,無實(shí)無工具,無實(shí)驗(yàn)室驗(yàn)室有部分測試用有部分測試用例全部自動(dòng)化例全部自動(dòng)化有機(jī)算計(jì)軟件有機(jī)算計(jì)軟件專業(yè)人員從事測專業(yè)人員從事測試代碼的開發(fā),試代碼的開發(fā),使用使用Java,C#語言語言使用工具和專使用工具和專門的實(shí)驗(yàn)室測試門的實(shí)驗(yàn)室測試環(huán)境環(huán)境大量測試用例大量測試用例

18、全部自動(dòng)化全部自動(dòng)化有自己開發(fā)的有自己開發(fā)的共用代碼庫共用代碼庫有測試用例自有測試用例自動(dòng)運(yùn)行系統(tǒng),并動(dòng)運(yùn)行系統(tǒng),并與產(chǎn)品建造系統(tǒng)與產(chǎn)品建造系統(tǒng)項(xiàng)結(jié)合項(xiàng)結(jié)合有測試報(bào)告和有測試報(bào)告和統(tǒng)計(jì)分析服務(wù)統(tǒng)計(jì)分析服務(wù)有高水平的測有高水平的測試開發(fā)人員,測試開發(fā)人員,測試架構(gòu)師試架構(gòu)師有高度自動(dòng)化有高度自動(dòng)化的實(shí)驗(yàn)室系統(tǒng),的實(shí)驗(yàn)室系統(tǒng),和專業(yè)的系統(tǒng)管和專業(yè)的系統(tǒng)管理隊(duì)伍理隊(duì)伍有完善的自動(dòng)有完善的自動(dòng)化測試流程化測試流程能對外提供自能對外提供自動(dòng)測試的商業(yè)服動(dòng)測試的商業(yè)服務(wù)務(wù)計(jì)劃和措施培訓(xùn)和引進(jìn)人培訓(xùn)和引進(jìn)人才才培訓(xùn)和引進(jìn)機(jī)培訓(xùn)和引進(jìn)機(jī)算計(jì)軟件專業(yè)人算計(jì)軟件專業(yè)人才才嘗試測試工具嘗試測試工具建立實(shí)驗(yàn)室建立實(shí)驗(yàn)

19、室培訓(xùn)和引進(jìn)高培訓(xùn)和引進(jìn)高級編碼人才級編碼人才由開發(fā)人員幫由開發(fā)人員幫助設(shè)計(jì)測試代碼助設(shè)計(jì)測試代碼庫庫系統(tǒng)的選擇使系統(tǒng)的選擇使用和整合各種工用和整合各種工具具培訓(xùn)和引進(jìn)測培訓(xùn)和引進(jìn)測試設(shè)計(jì)和架構(gòu)人試設(shè)計(jì)和架構(gòu)人才才進(jìn)一步提高實(shí)進(jìn)一步提高實(shí)驗(yàn)室系統(tǒng)驗(yàn)室系統(tǒng)建立流程模型建立流程模型和商業(yè)服務(wù)模型和商業(yè)服務(wù)模型開發(fā)環(huán)境開發(fā)環(huán)境開發(fā)語言,庫程序,驅(qū)動(dòng)程序,開發(fā)工具測試用例管理測試用例管理測試用例的定義,設(shè)置,分類和組合運(yùn)行分析報(bào)告分析報(bào)告單運(yùn)行結(jié)果報(bào)告,多運(yùn)行綜合報(bào)告,長期走勢報(bào)告運(yùn)行環(huán)境運(yùn)行環(huán)境機(jī)器池,自動(dòng)安裝和配置, 運(yùn)行代碼管理代碼管理存儲,編譯硬件,基礎(chǔ)設(shè)施硬件,基礎(chǔ)設(shè)施實(shí)驗(yàn)室,機(jī)器,網(wǎng)絡(luò)SQL Adap

溫馨提示

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

評論

0/150

提交評論