基于QTP的自動(dòng)化測試_第1頁
基于QTP的自動(dòng)化測試_第2頁
基于QTP的自動(dòng)化測試_第3頁
基于QTP的自動(dòng)化測試_第4頁
基于QTP的自動(dòng)化測試_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本科畢業(yè)論文(設(shè)計(jì))題目:基于QTP的自動(dòng)化測試姓名:張海波學(xué)號:1042157124專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)院系:信息工程學(xué)院指導(dǎo)老師:錢麗職稱學(xué)位:講師/碩士完成時(shí)間:2014年5月12日教務(wù)處制安徽新華學(xué)院本科畢業(yè)論文(設(shè)計(jì))獨(dú)創(chuàng)承諾書本人按照畢業(yè)論文(設(shè)計(jì))進(jìn)度計(jì)劃積極開展實(shí)驗(yàn)(調(diào)查)研究活動(dòng),實(shí)事求是地做好實(shí)驗(yàn)(調(diào)查)記錄,所呈交的畢業(yè)論文(設(shè)計(jì))是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我所知,除文中特別加以標(biāo)注引用參考文獻(xiàn)資料外,論文(設(shè)計(jì))中所有數(shù)據(jù)均為自己研究成果,不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果。與我一同工作的同志對本研究所做的工作已在論文中作了明確說明并表示謝意。畢業(yè)論文(設(shè)計(jì))作者簽名:日期:安徽新華學(xué)院2014屆本科畢業(yè)論文(設(shè)計(jì))概述1.1課題研究背景按時(shí)、高質(zhì)量地發(fā)布軟件產(chǎn)品是軟件開發(fā)的最基本要求,而軟件測試是軟件質(zhì)量保證的最重要的手段之一。對于軟件,不論采用什么技術(shù)和方法來進(jìn)行開發(fā),軟件產(chǎn)品中都會(huì)存在或多或少的錯(cuò)誤和問題[1]。于是,軟件測試便扮演了極其重要的角色,貫穿于整個(gè)軟件生命周期,檢驗(yàn)各個(gè)階段的成果是否符合質(zhì)量要求和達(dá)到預(yù)先定義的目標(biāo)。據(jù)大量統(tǒng)計(jì)資料顯示,在典型的軟件開發(fā)的項(xiàng)目中,軟件測試投入的成本和工作量往往占到軟件的總成本和總工作量的40%以上。傳統(tǒng)的軟件測試方式大多停留在內(nèi)部測試、手工測試階段,并不能完全適用于應(yīng)用測試。由于較多的企業(yè)采用瀑布模型進(jìn)行開發(fā),往往在軟件開發(fā)結(jié)束后才開始進(jìn)行測試。這些都在極大程度上降低了測試的覆蓋率,增加了測試的成本,影響了軟件質(zhì)量的可靠性[4]。因此,軟件測試自動(dòng)化技術(shù)的出現(xiàn),從真正意義上把測試人員從簡單重復(fù)的勞動(dòng)中解放出來,彌補(bǔ)了手動(dòng)測試在應(yīng)付大規(guī)模測試中疲態(tài)的缺陷,尤其是面對大量的數(shù)據(jù)需要檢查時(shí),人工的比較和搜索不僅效率低,而且容易出錯(cuò),覆蓋面偏低。它為軟件開發(fā)團(tuán)隊(duì)節(jié)約了測試成本,提高了軟件質(zhì)量,縮短了產(chǎn)品發(fā)布周期。1.2國內(nèi)外研究現(xiàn)狀軟件測試是軟件質(zhì)量的護(hù)航者,只有通過了測試軟件的設(shè)計(jì)、編碼和規(guī)約的評審才能通過,在軟件的整個(gè)生命周期中具有與軟件開發(fā)相同的地位。在許多大型的軟件公司,其測試人員和開發(fā)人員比例達(dá)到了1:1,甚至更多[4]。然而,在早期軟件測試常常被忽視,軟件經(jīng)過開發(fā)人員簡單的單元測試后進(jìn)行發(fā)布,導(dǎo)致的后果可想而知。在美國北卡羅來納大學(xué)召開的軟件測試的正式技術(shù)會(huì)議,是軟件測試技術(shù)發(fā)展歷史上的一個(gè)轉(zhuǎn)折點(diǎn),它標(biāo)志著軟件測試成為了軟件工程領(lǐng)域中一個(gè)獨(dú)立而重要的分支。此后,Gerhart進(jìn)一步總結(jié)原來的測試?yán)碚?,將軟件測試提升到理論的高度,作為實(shí)踐性學(xué)科的參考[2]。為了更好的實(shí)現(xiàn)測試的自動(dòng)化,用自動(dòng)化測試代替手工勞動(dòng),許多IT廠商推出了以工具為中心的測試,是測試人員只需要關(guān)注腳本技術(shù)和配置文件的編寫。常用的測試工具有MercuryInteractive公司的QTP、LoadRunner、TestDirectior,IBM的Web自動(dòng)化測試工具RationalFunctionTester,SegueSoftware公司的Segue,Compuware公司的QACenter。這些測試工具融入了許多新的技術(shù),如面向?qū)ο蠹夹g(shù),當(dāng)針對不同的測試重點(diǎn),可以采用相應(yīng)的工具[3]。國內(nèi)的軟件測試技術(shù)起步較晚,但隨著國內(nèi)軟件企業(yè)規(guī)模的壯大,人才的引進(jìn)和培養(yǎng),越來越多的軟件生產(chǎn)商開始在自動(dòng)化測試領(lǐng)域中進(jìn)行軟件分析和測試工具的研究和開發(fā)。西北工業(yè)大學(xué)在C/S系統(tǒng)的測試方面進(jìn)行了許多的研究工作,并且取得了一定的成績。北京航空航天大學(xué)和北京大學(xué)經(jīng)過技術(shù)的攻關(guān),共同研制了一系列測試工具和程序理解工具,例如具有典型代表的SafePro/javao和SafeProC/C++。南京大學(xué)和航空局計(jì)算研究所開發(fā)的靜態(tài)分析工具和測試用例自動(dòng)生成工具,在嵌入式系統(tǒng)測試方面取得了較大的成功[10]。擁有自主知識產(chǎn)權(quán)的澤眾軟件是國內(nèi)領(lǐng)先的專業(yè)功能測試工具、測試管理工具的供應(yīng)商,從2004年起就推出了AutoRunner、TestCenter等優(yōu)秀產(chǎn)品。1.3課題研究目的本文旨在通過QTP在具體案例中的使用,包括設(shè)計(jì)測試案例、錄制、優(yōu)化腳本功能等,來具體認(rèn)識自動(dòng)化測試對于普通應(yīng)用軟件,都可以發(fā)揮其功能測試和回歸測試的優(yōu)點(diǎn),省去了手工測試的繁瑣,更加低成本,便捷而快速的找出軟件的BUG所在,是軟件開發(fā)中一個(gè)不可或缺的重要的一部分。2軟件缺陷與軟件測試2.1軟件缺陷2.1.1軟件缺陷與硬件缺陷異同對于用戶來說,軟件缺陷與硬件缺陷一樣,會(huì)對用戶在使用時(shí)造成困擾。但是軟件缺陷在一般情況下,不會(huì)對用戶造成直接的人身傷害或經(jīng)濟(jì)損失,也因此很多人意識不到軟件缺陷的危害性和嚴(yán)重性。然而在一些比較依賴軟件進(jìn)行業(yè)務(wù)處理的領(lǐng)域,便可能造成重大的經(jīng)濟(jì)損失,甚至危及生命,例如2007年4月,某個(gè)軟件缺陷導(dǎo)致某地鐵系統(tǒng)的列車火災(zāi),軟件未能檢測和防止剩余動(dòng)力在設(shè)備中的使用,導(dǎo)致車過熱而起火。因此,軟件缺陷與硬件缺陷一樣,都需要人們重視他們可能造成的危害與損失。不同在于,硬件缺陷大多是可預(yù)見的,比較容易被發(fā)現(xiàn)。軟件缺陷的可預(yù)見性就沒有那么強(qiáng),其一個(gè)重要特點(diǎn)就是隱蔽性。由于軟件的復(fù)雜度高,狀態(tài)空間廣闊,因此,要覆蓋軟件所有的可能行為幾乎是不可能的。2.1.2如何通過軟件測試發(fā)現(xiàn)軟件缺陷手工測試仍然是主要的查找錯(cuò)誤的方式,自動(dòng)化測試能部分地解決覆蓋面的問題和測試效率的問題,但是不能從根本上解決問題。而在軟件測試之前的開發(fā)環(huán)節(jié)中,開發(fā)人員已經(jīng)對對軟件進(jìn)行缺陷控制,盡管大多停留在“調(diào)試”階段的測試水平。也因此軟件測試成為了軟件缺陷的主要控制手段和解決方法。測試人員通過產(chǎn)品需求,以及用戶的實(shí)際業(yè)務(wù)背景,設(shè)計(jì)出各種測試用例,通過執(zhí)行測試用例,判斷被測試的應(yīng)用程序是否滿足用戶需求。在測試用例中,主要分為兩種。一是驗(yàn)證軟件功能正確的;另一種適用于證明軟件錯(cuò)誤的。如果將這這些用例轉(zhuǎn)化為可被自動(dòng)化測試工具執(zhí)行的腳本,那么就成了一個(gè)自動(dòng)化測試用例,使用自動(dòng)化的方式執(zhí)行,提高效率。2.2軟件質(zhì)量與軟件測試軟件質(zhì)量是軟件產(chǎn)品的核心價(jià)值體現(xiàn),也是企業(yè)競爭力的體現(xiàn),重視軟件質(zhì)量的企業(yè)通常能獲得更多的收益。軟件質(zhì)量也是軟件項(xiàng)目管理的重要組成部分,在不同的開發(fā)模式中,都會(huì)圍繞軟件質(zhì)量管理提出相應(yīng)的做法。1986年,ISO8492給出了質(zhì)量定義:質(zhì)量是產(chǎn)品或服務(wù)滿足明示或暗示需求能力的固有特性和特征的集合。而在IBMRUP(統(tǒng)一過程)中,質(zhì)量被定義為“滿足或超出認(rèn)定的一組要求,并使用經(jīng)過的認(rèn)可的評測方法和標(biāo)準(zhǔn)來評估,還使用認(rèn)定的流程生產(chǎn)”。因此,質(zhì)量不是簡單地滿足用戶需求,還得包含證明質(zhì)量達(dá)標(biāo)所使用的評測方法及標(biāo)準(zhǔn),以及如何實(shí)施可管理、可重復(fù)使用的流程,以確保由此流程生產(chǎn)的產(chǎn)品已達(dá)到預(yù)期的、穩(wěn)定的質(zhì)量水平。1983年,ANSIIEEESTD729給出了軟件質(zhì)量的定義[6],包括:軟件產(chǎn)品質(zhì)量滿足用戶要求的程度;軟件各種屬性的組合程度;用戶對軟件產(chǎn)品的綜合反映程度;軟件在使用過程中滿足用戶要求的程度。簡而言之,功能、性能和可靠性是衡量軟件質(zhì)量的三個(gè)維度指標(biāo)。2.2.1軟件開發(fā)模式與自動(dòng)化測試在不同的開發(fā)模式中,軟件測試的地位和作用略有不同,但卻不可能消失。在傳統(tǒng)的瀑布開發(fā)模型中,軟件測試作為一個(gè)獨(dú)立的階段出現(xiàn),在進(jìn)入測試階段之前,應(yīng)該完成編碼并且提供完善的需求、設(shè)計(jì)和文檔。如果在需求定義方面做得很好,對自動(dòng)化測試十分有益,可以盡早的選擇測試策略,讓自動(dòng)化測試高層次整體地進(jìn)行。而在RUP迭代模型中,實(shí)施自動(dòng)化測試時(shí),需要與開發(fā)策略緊密結(jié)合,關(guān)注早期構(gòu)建、迭代的速度、風(fēng)險(xiǎn)、覆蓋目標(biāo)等。敏捷方法則打破了傳統(tǒng)的自動(dòng)化測試方法,第一個(gè)破壞點(diǎn)集中在自動(dòng)化的可接受性測試,很難被其他類型的自動(dòng)化重用。細(xì)粒度的迭代讓每次的測試很難擊中目標(biāo)和定義標(biāo)準(zhǔn)。2.3軟件自動(dòng)化測試與手動(dòng)測試2.3.1自動(dòng)化測試與手工測試比較軟件測試的一個(gè)顯著特點(diǎn)就是重復(fù)性,重復(fù)的工作除了機(jī)器人沒人忍受的了。在精確性的問題上,當(dāng)手動(dòng)測試遭遇大量的數(shù)據(jù)需要檢查的時(shí)候,數(shù)據(jù)比較和搜索定位不僅效率不高而且易出錯(cuò),達(dá)不到預(yù)期的覆蓋率。伴隨著產(chǎn)品的完善,軟件功能的逐步完善,需要測試的內(nèi)容有時(shí)候會(huì)呈現(xiàn)幾何倍數(shù)增長,人工進(jìn)行回歸測試便顯得捉襟見肘。當(dāng)然不意味著手動(dòng)測試就這樣被淘汰,手工測試有這其不可替代的地方:測試用例的設(shè)計(jì):測試人員的經(jīng)驗(yàn)和判斷能力是一切工具不具備的界面和用戶體驗(yàn):人類的審美和感官及心理體驗(yàn)是其他無法代替的正確性的檢查:工具是不具備推理和邏輯思維的。而在借助計(jì)算機(jī)強(qiáng)大的計(jì)算能力下,可以不知疲倦、重復(fù)的運(yùn)行,對于大量的數(shù)據(jù)也能在短時(shí)間內(nèi)處理結(jié)束。于是自動(dòng)化測試的優(yōu)勢則表現(xiàn)如下:可重復(fù)性強(qiáng)(2)計(jì)算精確(3)大批量操作(4)覆蓋面廣(5)搜索效率高2.3.2如何開展自動(dòng)化測試在軟件測試的階段,自動(dòng)化測試應(yīng)該被當(dāng)作一個(gè)項(xiàng)目來開展。首先要確定所開發(fā)的軟件項(xiàng)目采用自動(dòng)化測試是否適用。短期的或者一次性的項(xiàng)目不宜采用,因?yàn)檫@反而增加開發(fā)周期和成本。同樣,在一個(gè)非常緊迫的項(xiàng)目中也是不合適的,因?yàn)樾枰獪y試人員開發(fā)編寫測試腳本,并需要開發(fā)人員的配合使得整個(gè)進(jìn)程更加緊張倉促,適得其反。其次,什么時(shí)候開始自動(dòng)化測試項(xiàng)目?不能過早,太早的話,軟件不成形,界面、編碼等不穩(wěn)定,改動(dòng)頻繁,這時(shí)候開展自動(dòng)化徒增成本,得不償失??梢栽陔r形期做一些準(zhǔn)備,考慮測試工具的選擇。熟悉和了解各種編程語言、編程工具,以及各種控件會(huì)使得在開展測試時(shí)得心用手。2.3.3自動(dòng)化測試方案在選擇測試方案的時(shí)候,要參照下列因素[4]:項(xiàng)目的影響:制定的方案是否對整個(gè)項(xiàng)目有積極作用,或者讓開發(fā)更敏捷復(fù)雜度:自動(dòng)化是否容易實(shí)現(xiàn)時(shí)間:自動(dòng)化測試的實(shí)現(xiàn)需要多少時(shí)間早期需求和代碼的穩(wěn)定性:如果不能穩(wěn)定,那么自動(dòng)化測試介入會(huì)很尬尷覆蓋率:能否覆蓋程序中的關(guān)鍵特性和功能資源:有沒有足夠的人力資源、數(shù)據(jù)資源、硬件資源來支持自動(dòng)化的開展在確定方案后,測試腳本的編碼階段,編寫方法也左右著自動(dòng)化測試的效率和質(zhì)量。自動(dòng)化功能測試的開發(fā)方式主要有:線性的結(jié)構(gòu)化的共享的數(shù)據(jù)驅(qū)動(dòng)的關(guān)鍵字驅(qū)動(dòng)的2.4自動(dòng)化測試工具介紹QTP全名HPQuickTestProfessionalsoftware,2012年12月6日發(fā)布了11.5版本,并更名為UnifiedFunctionalTesting

QTP是QuicktestProfessional的簡稱,是一款自動(dòng)化測試工具。自動(dòng)化工具出現(xiàn)目的是想用它來執(zhí)行重復(fù)的手動(dòng)測試,主要是用于回歸測試和測試同一軟件的新版本。在測試前要考慮好如何制定相應(yīng)的測試計(jì)劃,例如要測試那些功能、操作步驟、輸入數(shù)據(jù)和期望的輸出數(shù)據(jù)等。

WinRunner是MercuryInteractive公司的一種企業(yè)級的功能測試工具,用于檢測應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。通過自動(dòng)錄制、檢測和回放測試用戶的操作,WinRunner能夠有效地幫助測試人員對復(fù)雜應(yīng)用的不同發(fā)布版進(jìn)行測試,提高測試人員的工作效率和質(zhì)量,且保障跨平臺的、復(fù)雜的企業(yè)級應(yīng)用能夠無故障發(fā)布及長期穩(wěn)定運(yùn)行。

RationalRobot作為業(yè)界最頂尖的自動(dòng)化功能測試工具,它可以在測試人員學(xué)習(xí)高級腳本技術(shù)同時(shí)幫助其進(jìn)行成功的測試。集成在測試人員的桌面IBMRationalTestManager上,測試人員可以計(jì)劃、組織、執(zhí)行、管理和報(bào)告所有測試活動(dòng),包括手動(dòng)測試報(bào)告。這種測試和管理的雙重功能十分利于剛進(jìn)入測試領(lǐng)域的人員。AdventNetQEngine.AdventNetQEngine是一個(gè)應(yīng)用廣泛且獨(dú)立于平臺的自動(dòng)化軟件測試工具,可用于JavaAPI測試、web性能測試、Java應(yīng)用性能測試、Web功能測試、SOAP測試、回歸測試和Java應(yīng)用功能測試。支持對于使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、傳統(tǒng)客戶端/服務(wù)器等開發(fā)的應(yīng)用程序進(jìn)行測試。此工具為Java技術(shù)開發(fā),十分便于移植并可提供多平臺支持。SilkTest,是用于對企業(yè)級應(yīng)用進(jìn)行功能測試的領(lǐng)先產(chǎn)品,可用于測試Web、Java或是傳統(tǒng)的C/S結(jié)構(gòu)。SilkTest提供了豐富的功能,使用戶能夠高效地進(jìn)行自動(dòng)化測試。包括以下功能:測試的計(jì)劃和管理,數(shù)據(jù)庫訪問及校驗(yàn),便捷、強(qiáng)大的4Test腳本語言,內(nèi)置恢復(fù)系統(tǒng)(RecoverySystem),并具有使用同一套腳本進(jìn)行跨平臺、瀏覽器進(jìn)行測試的功能。QARun。QARun的測試實(shí)現(xiàn)方式是通過檢測鼠標(biāo)移動(dòng)、鍵盤點(diǎn)擊操作等被測應(yīng)用,即而得到相應(yīng)的測試腳本,對該腳本可以進(jìn)行需要編輯和調(diào)試。在記錄的過程中可針對被測應(yīng)用中所包含的功能點(diǎn)進(jìn)行基線值的建立,即在插入檢查點(diǎn)的同時(shí)建立預(yù)期值。在這里檢查點(diǎn)是目標(biāo)系統(tǒng)的一個(gè)特殊方面在一特定點(diǎn)的期望狀態(tài)。一般,檢查點(diǎn)在QARun提示目標(biāo)系統(tǒng)執(zhí)行一系列事件之后被執(zhí)行。檢查點(diǎn)用于確定當(dāng)前實(shí)際結(jié)果與預(yù)期值是否一樣。TestPartner作為一個(gè)自動(dòng)化的功能測試工具,它專為測試基于微軟、Java和Web技術(shù)的復(fù)雜應(yīng)用而設(shè)計(jì)。它使測試人員和開發(fā)人員都可以使用可視的腳本編制和自動(dòng)向?qū)砩煽芍貜?fù)的測試,用戶可以在任何水平層次和細(xì)節(jié)條件下,調(diào)用VBA的所有功能進(jìn)行測試。TestPartner通過采用通用的、分層的方式來進(jìn)行腳本的開發(fā)。各水平的的測試人員都可以通過TestPartner的可視化導(dǎo)航器來快速創(chuàng)建測試并執(zhí)行。通過可視的導(dǎo)航器錄制并回放測試,每一個(gè)測試都將以樹狀結(jié)構(gòu)展示,以清楚地顯現(xiàn)測試通過的應(yīng)用路徑。Holodeck-強(qiáng)大的故障植入軟件測試工具

Holodeckisanadvancedfault-injectiontoolthatgivesyouthepowertoattackanapplicationwhileitmonitorsandlogseverythingyourapplicationdoes-everyfunctioncall,registryentry,pieceofdatareadorwritten.AutoRunner。AutoRunner是黑盒測試工具,可以用來完成功能測試、回歸測試,可以提高測試效率,降低測試人工成本。產(chǎn)品可以對以下類型對象進(jìn)行GUI功能性測試:(1)Windows類型對象,一般為用C++/Delphi/VB/VFP/PB/.NetForm等技術(shù)開發(fā)的桌面程序。(2)IE網(wǎng)頁對象,一般性的網(wǎng)站,比如大的門戶類網(wǎng)站。(3)Java對象,一般為用AWT/Swing/SWT等技術(shù)開發(fā)的桌面程序。(4)Flex對象,網(wǎng)頁的內(nèi)容是用Flex開發(fā)的。(5)Silverlight對象,網(wǎng)頁的內(nèi)容是用Silverlight開發(fā)的。(6)WPF對象,一般為用WPF技術(shù)開發(fā)的桌面程序。(7)QT對象,一般為用QT技術(shù)開發(fā)的桌面程序。3QuickTestProfessional的簡介QTP是QuicktestProfessional的簡稱,是一款自動(dòng)化測試工具。自動(dòng)化工具出現(xiàn)目的是想用它來執(zhí)行重復(fù)的手動(dòng)測試,主要是用于回歸測試和測試同一軟件的新版本。在測試前要考慮好如何制定相應(yīng)的測試計(jì)劃,例如要測試那些功能、操作步驟、輸入數(shù)據(jù)和期望的輸出數(shù)據(jù)等[13]。

QTP測試的對象,包括傳統(tǒng)的Windows應(yīng)用程序,Web應(yīng)用等等。它可以覆蓋絕大多數(shù)的軟件開發(fā)技術(shù),不僅簡單高效而且具備測試用例可重用的特點(diǎn)。其中包括:創(chuàng)建測試腳本、插入檢查點(diǎn)、增強(qiáng)測試腳本、運(yùn)行測試與分析結(jié)果和維護(hù)測試等方面。3.1QTP的安裝與配置第一步:點(diǎn)擊QTP的執(zhí)行文件,選擇路徑進(jìn)行安裝第二步:安裝完成后會(huì)出現(xiàn)下圖的對話框,然后點(diǎn)擊”O(jiān)K”,如圖3.1.1;圖3.1初始界面圖第三步:選擇“BlankTest”選項(xiàng),如圖3.1.2;圖3.2空白測試創(chuàng)建3.2QTP的使用QTP進(jìn)行功能測試的測試流程包括(1)制定測試計(jì)劃(2)創(chuàng)建測試腳本(3)增強(qiáng)測試腳本功能(4)運(yùn)行測試(5)分析測試結(jié)果]五個(gè)步驟:創(chuàng)建測試腳本創(chuàng)建測試腳本制定測試計(jì)劃分析測試結(jié)果運(yùn)行測試增強(qiáng)測試腳本功能圖3.3測試流程圖3.2.1制定測試計(jì)劃自動(dòng)測試的測試計(jì)劃是作為測試全工程的指導(dǎo),根據(jù)被測項(xiàng)目的具體需求,和使用的測試工具特征而制定。QTP作為功能測試工具,主要用于軟件的功能測試。當(dāng)然QTP是不能完全取代測試人員的手工操作,如測試腳本的創(chuàng)建和測試用例的設(shè)計(jì)。但是在批量操作時(shí),使用QTP的確能夠幫助測試人員高效的完成很多工作。在測試計(jì)劃階段,首先要做的就是分析被測應(yīng)用的特點(diǎn),決定應(yīng)該對哪些功能點(diǎn)進(jìn)行測試,可以考慮細(xì)化到具體頁面或者具體控件。在普通的應(yīng)用程序測試應(yīng)用方面,QTP在回歸測試中是非常有效的。3.2.2創(chuàng)建測試腳本QTP的自動(dòng)錄制機(jī)制能夠?qū)y試人員的每一個(gè)操作步驟及被操作的對象記錄下來,自動(dòng)生成測試腳本。相較于其他自動(dòng)測試工具錄制腳本更方便的是,QTP除了以VBScript腳本語言的方式生成腳本語句以外,還將被操作的對象及相應(yīng)的動(dòng)作按照層次和順序保存在一個(gè)基于表格的KeywordView(關(guān)鍵字視圖)中。比如,當(dāng)測試人員單擊一個(gè)鏈接或選擇一個(gè)CheckBox或者提交一個(gè)表單,相應(yīng)的操作流程都會(huì)被記錄在關(guān)鍵字視圖中。3.2.3增強(qiáng)測試腳本功能腳本的錄制只是為了實(shí)現(xiàn)創(chuàng)建或者設(shè)計(jì)腳本的第一步,基本腳本錄制完畢后,測試人員可以根據(jù)需要增加所需要的功能,QTP允許測試人員通過腳本編輯器,在腳本中增加或更改測試步驟來修正或自定義測試流程,如增加多種類型的檢查點(diǎn)功能,既可以讓QTP檢查一下在程序的某個(gè)特定位置或?qū)υ捒蛑惺欠癯霈F(xiàn)了需要的文字。以及通過變量的參數(shù)化功能,使用多組的數(shù)據(jù)驅(qū)動(dòng)整個(gè)測試過程。3.2.4運(yùn)行與分析QTP從腳本的第一行開始執(zhí)行語句,運(yùn)行過程中會(huì)對設(shè)置的檢查點(diǎn)進(jìn)行驗(yàn)證,從DataTable中獲取實(shí)際數(shù)據(jù)代替參數(shù)值,并給出相應(yīng)的輸出結(jié)構(gòu)信息。測試過程中測試人員還可以調(diào)試自己的腳本,直到腳本完全符合要求。圖3.4關(guān)鍵字視圖運(yùn)行結(jié)束后系統(tǒng)會(huì)自動(dòng)生成一份詳細(xì)完整的測試結(jié)果報(bào)告。包括測試名稱。測試開始和結(jié)束的時(shí)間,測試腳本運(yùn)行的迭代次數(shù)、測試通過狀態(tài)等。通過報(bào)告中的測試信息,發(fā)現(xiàn)錯(cuò)誤并增強(qiáng)腳本。

4基于QTP自動(dòng)化測試的實(shí)施本篇論文使用的是Flight這個(gè)Windows應(yīng)用程序,這個(gè)程序所實(shí)現(xiàn)的是關(guān)于機(jī)票預(yù)訂、查詢、傳真等操作,下面通過設(shè)計(jì)各功能的測試用例,借助QTP這款自動(dòng)化測試工具,進(jìn)行回歸測試,實(shí)現(xiàn)對Flight功能測試的自動(dòng)化,從而展現(xiàn)出自動(dòng)化測試的優(yōu)勢,并測試該應(yīng)用軟件是否有需要改進(jìn)的地方。4.1登錄功能測試4.1.1測試用例表4-1登錄測試用例表測試編號NamePassword預(yù)期結(jié)果實(shí)際結(jié)果測試結(jié)果Flight_01TexText提示錯(cuò)誤passFlight_02TexMercury提示錯(cuò)誤passFlight_03Tex提示錯(cuò)誤passFlight_04Text提示錯(cuò)誤passFlight_05Mercury提示錯(cuò)誤passFlight_06提示錯(cuò)誤failedFlight_07Text提示錯(cuò)誤passFlight_0812345提示錯(cuò)誤passFlight_09TextMercury正確,進(jìn)入Flight正確,進(jìn)入Flightpass續(xù)表4-1登錄測試用例表Flight_10TextText提示錯(cuò)誤passFlight_11queenqueen提示錯(cuò)誤passFlight_12*)123提示錯(cuò)誤passFlight_13+-/45mry提示錯(cuò)誤passFlight_14mercurymercury提示錯(cuò)誤正確,進(jìn)入FlightpassFlight_15axhumercury正確,進(jìn)入Flight正確,進(jìn)入FlightpassFlight_16AXHUMERCURY正確,進(jìn)入Flight正確,進(jìn)入Flightpass4.1.2腳本錄制第一步:對于登錄界面,首先對登錄進(jìn)行了錄制,分別輸入用戶名及密碼,生成了最簡單的VB腳本。如圖4.1所示:圖4.1登錄界面第二步:為了能全面的測試在任何輸入的情況下都會(huì)有預(yù)想的結(jié)果,根據(jù)設(shè)計(jì)出來的測試用例,在DataTable中設(shè)置了AgentName及Password列,把可能的情況均輸入進(jìn)去,之后讓其自動(dòng)的逐個(gè)運(yùn)行測試。第三步:測試要具有全面性,根據(jù)登錄界面的按鈕分布,先對Help按鈕進(jìn)行設(shè)計(jì),用IF語句來控制確定Help之中的內(nèi)容后的確認(rèn)。第四步:接著運(yùn)用For語句,來實(shí)現(xiàn)對DataTable中Name和Password的逐個(gè)執(zhí)行測試。第五步:對容易出錯(cuò)的地方設(shè)置檢查點(diǎn),以便在自動(dòng)測試時(shí)對其進(jìn)行檢測,有對話框上標(biāo)題“Login”,按鈕“OK”。如圖4.2所示:圖4.2Login檢查點(diǎn)設(shè)置4.1.3測試腳本Dialog("Login").WinButton("Help").Click'點(diǎn)擊Help按鈕IfDialog("Login").Dialog("FlightReservations").ExistThenDialog("Login").Dialog("FlightReservations").WinButton("確定").ClickEndIf'判斷在點(diǎn)擊后是否出現(xiàn)對話框DimiFori=1todatatable.GetSheet("Action1").GetRowCountDialog("Login").CheckCheckPoint("Login_2")Dialog("Login").WinEdit("AgentName:").SetDataTable("name",dtLocalSheet)Dialog("Login").WinEdit("Password:").SetSecureDataTable("password",dtLocalSheet)Dialog("Login").WinButton("OK").CheckCheckPoint("OK")'點(diǎn)擊OK按鈕添加檢查點(diǎn)Dialog("Login").WinButton("OK").Click'從datatable中調(diào)取測試用例IfDialog("Login").Dialog("FlightReservations").ExistThenDialog("Login").Dialog("FlightReservations").WinButton("確定").ClickEndIfdatatable.GetSheet("Action1").SetNextRowNextDialog("Login").WinEdit("AgentName:").Set"mercury"Dialog("Login").WinEdit("Password:").SetSecure"mercury"Dialog("Login").WinButton("OK").CheckCheckPoint("OK")'點(diǎn)擊OK按鈕添加檢查點(diǎn)Dialog("Login").WinButton("OK").Click'輸入正確的用戶名和密碼wait(5)'等待5秒Window("FlightReservation").WinMenu("Menu").Select"File;Exit'退出本測試腳本通過點(diǎn)擊Help按鈕,查看密碼;通過For循環(huán)語句來獲取DataTable里設(shè)計(jì)的用戶名和密碼,驗(yàn)證正確的用戶名和密碼能夠進(jìn)入Flight訂票系統(tǒng),實(shí)現(xiàn)用戶名及密碼的輸入自動(dòng)化測試,并對其中的OK按鈕添加檢查點(diǎn)。4.1.4執(zhí)行結(jié)果如圖4.3所示:圖4.3測試執(zhí)行結(jié)果登陸測試的結(jié)果顯示:測試執(zhí)行了3次,并且全部未通過,說明在腳本里出現(xiàn)了錯(cuò)誤。Datatable中的status與outmsg兩列的參數(shù)值出現(xiàn)了誤差,導(dǎo)致在測試中,賦值對比中找不到正確的對象。修改后選取一個(gè)用列再次測試。圖4.4測試執(zhí)行結(jié)果登陸測試的結(jié)果顯示:本次測試運(yùn)行了一遍,并且通過,腳本錯(cuò)誤得到修正。4.2訂票功能測試4.2.1錄制腳本過程為了體現(xiàn)自動(dòng)化測試在測試中的高效率和便捷性,測試案例中對Flight訂票系統(tǒng)中的出發(fā)地、目的地、航班及訂購的票數(shù)進(jìn)行了隨機(jī)選取,用Randomnumber語句實(shí)現(xiàn),使QTP的自動(dòng)化更具說服力。第一步:打開QTP選擇“Record”,錄制腳本。第二步:在登錄界面中,AgentName和Password均以Mercury作為測試變量,點(diǎn)擊“OK”按鈕。第三步:輸入飛行時(shí)間、出發(fā)地、目的地,然后點(diǎn)擊“Flights”選擇航班,如圖4.4所示:圖4.5訂票界面第四步:選擇要乘坐飛機(jī)的航班,然后點(diǎn)擊確定。第五步:輸入顧客的姓名、票數(shù)、票的類型、點(diǎn)擊“Insert”第六步:點(diǎn)擊“Stop”結(jié)束錄制過程,腳本錄制成功第七步:在容易出錯(cuò)的點(diǎn)上右擊鼠標(biāo),選擇“InsertStandardCheckpoint”,如圖4.6所示:圖4.6InsertOrder檢查點(diǎn)4.2.2調(diào)試測試腳本及注解Dima1,b1,c1Window("FlightReservation").ActiveX("MaskEdBox").Type"033112"a1=Window("FlightReservation").WinComboBox("FlyFrom:").GetROProperty("itemscount")Window("FlightReservation").WinComboBox("FlyFrom:").Selectandomnumber(0,a1-1)'隨機(jī)獲取出發(fā)地b1=Window("FlightReservation").WinComboBox("FlyTo:").GetROProperty("itemscount")Window("FlightReservation").WinComboBox("FlyTo:").SelectRandomnumber(0,b1-1)'隨機(jī)獲取目的地Window("FlightReservation").WinButton("FLIGHT").CheckCheckPoint("FLIGHT")'為FLIGHT按鈕添加檢查點(diǎn)Window("FlightReservation").WinButton("FLIGHT").Clickc1=Window("FlightReservation").Dialog("FlightsTable").WinList("From").GetItemsCountWindow("FlightReservation").Dialog("FlightsTable").WinList("From").SelectRandomnumber(0,c1-1)'隨機(jī)選擇一航班Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"zy"Window("FlightReservation").WinEdit("Tickets:").SetRandomNumber(1,10)'隨機(jī)1到10之間的票數(shù)Dimrr=RandomNumber(1,3)Ifr=1Thenwindow("FlightReservation").WinRadioButton("First").SetendifIfr=2Thenwindow("FlightReservation").WinRadioButton("Business").SetendifIFr=3Thenwindow("FlightReservation").WinRadioButton("Economy").Setendif'隨機(jī)選擇機(jī)艙類型Window("FlightReservation").WinButton("InsertOrder").CheckCheckPoint("InsertOrder")'為InsertOrder按鈕添加檢查點(diǎn)Window("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").Close'退出注:測試腳本主要通過Randomnumber函數(shù)和If語句進(jìn)行隨機(jī)選擇出發(fā)地、目的地,航班、票數(shù)、機(jī)艙類型,以完成自動(dòng)化來實(shí)現(xiàn)測試功能。4.2.3執(zhí)行結(jié)果如圖4.7所示:圖4.7測試執(zhí)行結(jié)果訂票功能測試的結(jié)果顯示:本次測試運(yùn)行了2遍,并且全部通過,腳本沒有錯(cuò)誤以及警告。4.3修改訂單功能測試4.3.1測試用例表4-2修改訂單測試用例表測試編號輸入操作預(yù)期結(jié)果實(shí)際結(jié)果Update_01點(diǎn)擊open“按鈕”彈出openorder對話框成功彈出openorder對話框Update_02選擇“customername”彈出“searchresults”對話框彈出“searchresults”Update_03選擇第一個(gè)訂單,點(diǎn)擊“ok”按鈕對話框消失,訂單的內(nèi)容在飛機(jī)訂票系統(tǒng)中顯示,Insert按鈕不可用,update和delete按鈕可用提示錯(cuò)誤月份要小于13Update_04日期修改為 06/01/14可以修改可以修改Update_05出發(fā)地改為London可以修改可以修改Update_06目的地修改為Paris可以修改可以修改Update_07Flight修改為12594號航班可以修改可以修改Update_08Customername修改為Queen可以修改可以修改Update_09Ticket修改為2可以修改可以修改Update_10Class修改為first可以修改可以修改Update_11點(diǎn)擊update按鈕訂票成功修改訂票成功修改4.3.2錄制腳本過程第一步:打開QTP,選擇“Record”,錄制腳本第二步:在AgentName和Password中都輸入Mercury,點(diǎn)擊“OK”按鈕登錄第三步:點(diǎn)擊“”打開已有訂票單,如圖4.8所示:圖4.8查找訂單界面第四步:選擇已有的訂票,可以根據(jù)“顧客名”、“航班日期”、“訂單的NO”選擇訂單第五步:選擇具體的航班信息第六步:對所訂的票進(jìn)行編輯修改,點(diǎn)擊“Update”按鈕第七步:點(diǎn)擊“Stop”結(jié)束錄制過程,腳本錄制完成第八步:為UPdate插入檢查點(diǎn),選擇“InsertStandardCheckpoint”如圖4.8所示:圖4.9更新按鈕檢查點(diǎn)設(shè)置第九步:點(diǎn)擊“OK”4.3.3調(diào)試測試腳本及注解Window("FlightReservation").WinButton("Button").ClickWindow("FlightReservation").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation").Dialog("OpenOrder").WinEdit("Edit").Set"zy"Window("FlightReservation").Dialog("OpenOrder").WinButton("OK").ClickWindow("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinList("FlightNo.").Activate"zy103158AA2025327112.200012/12/2012WednesdayDENDenver08:12AMLONLondon03:23PM"Window("FlightReservation").ActiveX("MaskEdBox").Type"12"Window("FlightReservation").ActiveX("MaskEdBox").Type"31"Window("FlightReservation").WinComboBox("FlyFrom:").Select"London"Window("FlightReservation").WinComboBox("FlyTo:").Select"Paris"Window("FlightReservation").WinButton("FLIGHT").ClickWindow("FlightReservation").Dialog("FlightsTable").WinList("From").Activate"12594LON03:12PMPAR05:12PMAF$165.40"Window("FlightReservation").WinEdit("Tickets:").SetSelection0,1Window("FlightReservation").WinEdit("Tickets:").Set"2"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinEdit("Name:").SetSelection0,6Window("FlightReservation").WinEdit("Name:").Set"zy"Window("FlightReservation").WinButton("Update").CheckCheckPoint("Update")'為Update按鈕添加檢查點(diǎn)Window("FlightReservation").WinButton("Update").ClickWindow("FlightReservation").Close注解:進(jìn)入OpenOrder,通過輸入訂單用戶名來選擇所要修改的訂單,修改好內(nèi)容后,先對Update按鈕添加檢查點(diǎn),在測試過程中來檢查是否會(huì)出現(xiàn)問題,亦是通過自動(dòng)化來實(shí)現(xiàn)。4.3.4執(zhí)行結(jié)果如圖4.10所示:圖4.10測試執(zhí)行結(jié)果修改訂單功能測試的結(jié)果顯示:本次測試運(yùn)行了一遍,并且全部通過,腳本沒有錯(cuò)誤以及警告。4.4刪除訂單功能測試4.4.1測試用例表4-3刪除訂單測試用例表測試編號輸入操作預(yù)期結(jié)果實(shí)際結(jié)果D_01點(diǎn)擊“Open”按鈕彈出openorder對話框彈出openorder對話框D_02選擇“Customername”彈出“searchresults”對話框彈出“searchresults”對話框D_03選擇第一個(gè)訂單,點(diǎn)擊“OK”按鈕對話框消失,訂單的內(nèi)容在飛機(jī)訂票系統(tǒng)中顯示Insert按鈕不可用,Update和Delete按鈕可用提示錯(cuò)誤月份要小于13D_04選擇Delete按鈕可以刪除該信息可以刪除該信息4.4.2錄制腳本過程第一步:打開QTP錄制腳本,選擇“Record”第二步:在AgentName和Password中都輸入Mercury點(diǎn)擊“OK”按鈕第三步:點(diǎn)擊“”打開已有訂票單第四步:選擇已有的訂票,可以根據(jù)“顧客名”、“航班日期”、“訂單的NO”選擇訂單第五步:選擇具體的航班信息第六步:對選中的訂票信息進(jìn)行修改,點(diǎn)擊“delete”按鈕,如圖4.10所示:圖4.11刪除訂單界面第七步:確認(rèn)刪除第八步:點(diǎn)擊“Stop”結(jié)束錄制過程,腳本錄制成功第九步:在容易出錯(cuò)的點(diǎn)上右擊鼠標(biāo),選擇“InsertStandardCheckpoint”如圖4.12所示:圖4.12刪除按鈕檢查點(diǎn)設(shè)置第十步:點(diǎn)擊“OK”4.4.3調(diào)試測試腳本及注解Window("FlightReservation").WinButton("Button").ClickWindow("FlightReservation").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation").Dialog("OpenOrder").WinEdit("Edit").Set"zy"Window("FlightReservation").Dialog("OpenOrder").WinButton("OK").ClickWindow("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").ClickWindow("FlightReservation").WinButton("Delete").CheckCheckPoint("Delete")'為Delete按鈕添加檢查點(diǎn)Window("FlightReservation").WinButton("Delete").ClickWindow("FlightReservation").Dialog("FlightReservations").ActivateWindow("FlightReservation").Dialog("FlightReservations").ActivateWindow("FlightReservation").Dialog("FlightReservations").WinButton("是(Y)").ClickWindow("FlightReservation").ActivateWindow("FlightReservation").Close注:調(diào)試腳本通過打開OpenOrder,選擇一個(gè)訂單,接著對Delete按鈕進(jìn)行添加檢查點(diǎn),然后刪除該訂單,通過對檢查點(diǎn)的設(shè)置,驗(yàn)證測試是否正確。4.4.4執(zhí)行結(jié)果如圖4.12所示:圖4.13測試執(zhí)行結(jié)果刪除訂單功能測試的結(jié)果顯示:本次測試執(zhí)行一次,并且全部通過,腳本沒有錯(cuò)誤以及警告。4.5傳真功能測試4.5.1錄制腳本過程第一步:錄制腳本,選擇“Record”第二步:在AgentName和Password中都輸入Mercury點(diǎn)擊“OK”按鈕第三步:點(diǎn)擊“”打開原有訂票單第四步:選擇原有的訂票,可以根據(jù)“顧客名”、“航班日期”、“訂單NO”選擇要訂單第五步:從File中打開FaxOrder,如圖4.14所示:圖4.14傳真界面第六步:輸入FaxNumber傳真號第七步:由于這里的腳本錄制不能記錄下鼠標(biāo)的軌跡,即AgentSignature里不能直接去簽名,要用AnalogRecording來實(shí)現(xiàn)。第八步:單擊Send發(fā)送4.5.2調(diào)試測試腳本及注解Window("FlightReservation").WinMenu("Menu").Select"File;FaxOrder..."'進(jìn)入傳真界面Window("FlightReservation").Dialog("FaxOrderNo.43").ActiveX("MaskEdBox").Type"111111111111111111"'設(shè)置傳真號Window("FlightReservation").Window("FaxOrderNo.43").RunAnalog"Track1"'模擬鼠標(biāo)軌跡進(jìn)行自動(dòng)測試Window("FlightReservation").Dialog("FaxOrderNo.43").WinCheckBox("SendSignaturewithorder").CheckCheckPoint("SendSignaturewithorder")'為SendSignaturewithorder添加檢查點(diǎn)Window("FlightReservation").Dialog("FaxOrderNo.43").WinCheckBox("SendSignaturewithorder").Set"ON"Window("FlightReservation").Dialog("FaxOrderNo.43").WinButton("Send").CheckCheckPoint("Send")'為Send添加檢查點(diǎn)Window("FlightReservation").Dialog("FaxOrderNo.43").WinButton("Send").Click注:進(jìn)入傳真界面后,首先設(shè)置傳真號,再通過AnalogRecording按鈕對鼠標(biāo)軌跡進(jìn)行模擬,之后再添加了SendSignaturewithorder以及Send按鈕的檢查點(diǎn)。之后要繼續(xù)在QTP的菜單欄單擊ObjectRepository,選擇FaxOrderNo.43中對應(yīng)的text屬性,將其改成FaxOrderNo\...才能實(shí)現(xiàn)鼠標(biāo)軌跡模擬,從而實(shí)現(xiàn)自動(dòng)化測試[15]。如圖4.14所示:圖4.15ObjectRepository4.5.3執(zhí)行結(jié)果如圖4.15所示:圖4.16測試執(zhí)行結(jié)果傳真功能測試的結(jié)果顯示:本次測試運(yùn)行了一遍,錯(cuò)誤提示在自動(dòng)測試時(shí)有一處出錯(cuò)。其中通過檢查點(diǎn)的設(shè)置,發(fā)現(xiàn)SendSignaturewithorder按鈕中的checked和focused屬性與測試前預(yù)期值不匹配,出現(xiàn)BUG。5測試結(jié)果分析5.1測試用例匯總表表5-1測試用例匯總用例編號測試步驟、輸入數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果測試結(jié)果Test_01錄制登錄腳本根據(jù)測試用例執(zhí)行測試登錄,執(zhí)行腳本登錄成功登錄成功failedTest_02錄制訂票腳本根據(jù)測試用例執(zhí)行測試訂票,并提交數(shù)據(jù)在外面刪除數(shù)據(jù),執(zhí)行腳本訂票成功訂票成功passTest_03錄制修改腳本根據(jù)測試用例執(zhí)行測試打開已有的訂票,并修改訂票信息修改訂票信息成功修改訂票信息成功passTest_04錄制刪除腳本根據(jù)測試用例執(zhí)行測試打開已有的訂票,并刪除訂票信息增添訂票信息刪除訂票信息成功刪除訂票信息成功passTest_05錄制傳真腳本根據(jù)測試用例執(zhí)行測執(zhí)行腳本傳真成功傳真成功pass5.2檢查項(xiàng)表5-2檢查項(xiàng)序號檢查項(xiàng)結(jié)果1飛機(jī)訂票系統(tǒng)登錄功能可以增加不同權(quán)限的登錄模式2飛機(jī)訂票系統(tǒng)訂票功能訂票功能基本完備3飛機(jī)訂票系統(tǒng)修改功能修改功能基本完備4飛機(jī)訂票系統(tǒng)刪除功能刪除功能基本完備5飛機(jī)訂票系統(tǒng)傳真功能傳真功能基本完備5.3對比與分析本文中在Flight的登錄、訂票和刪除等操作中,設(shè)計(jì)的測試用例較多。如將這些測試用例完全由手工測試完成,將會(huì)耗費(fèi)大量時(shí)間和人力資源。以20個(gè)測試用例作說明,在登錄測試中,一個(gè)用列的測試需要時(shí)間大概為5秒鐘,20個(gè)用例則至少需要一百秒。而在調(diào)試好的腳本自動(dòng)執(zhí)行下,只需要兩三秒鐘。當(dāng)然會(huì)有疑問,難道錄制腳本和強(qiáng)化腳本的沉沒成本不算?當(dāng)然要算!這樣一來這20個(gè)用例所耗費(fèi)的時(shí)間不會(huì)比手動(dòng)測試少甚至更多!圖5.1測試用例1但這只是執(zhí)行一次的時(shí)間,如果我們需要重復(fù)測試這20個(gè)用例50次,那么兩者之間的時(shí)間效率比將遠(yuǎn)遠(yuǎn)超過100:3。在QTP中,我們通過For循環(huán)進(jìn)行獲取Datatable中的行號,每一行都代表一個(gè)用列。這樣將錄制的腳本優(yōu)化后,自動(dòng)執(zhí)行獲得的高效率和極低的出錯(cuò)率都是手工測試不能相比的。同時(shí),QuickTestProfessional還可以與其他工具整合。如在QTP中調(diào)用WinRunner的測試腳本和函數(shù),在LoadRunner中插入和運(yùn)行QTP腳本。不過在Loadrunner中運(yùn)行QTP腳本學(xué)要確保QTP已經(jīng)被關(guān)閉。5.4分析與建議Flight在測試中滿足了用戶訂票基本要求,但在現(xiàn)在服務(wù)至上的社會(huì)里,略顯得功能較為單一。建議增設(shè)查詢出行向?qū)?、航班正晚點(diǎn)折扣信息以及各個(gè)機(jī)場天氣等布告版塊。應(yīng)多設(shè)置幾個(gè)訪問權(quán)限,類似于12306的設(shè)置,一般用戶也能對系統(tǒng)進(jìn)行訪問,查看自己的訂票并進(jìn)行相關(guān)操作。同時(shí)可設(shè)計(jì)開放互聯(lián)網(wǎng)訂票的窗口,在互聯(lián)網(wǎng)進(jìn)行功能等測試。在傳真功能測試的最后,SendSignaturewithorder按鈕在測試前后有屬性出現(xiàn)不匹配的狀況,意味著本軟件出現(xiàn)了相應(yīng)的缺陷,需要進(jìn)行進(jìn)一步的完善。在測試的過程中,QTP在錄制和運(yùn)行設(shè)置中,Web的測試中瀏覽器常報(bào)錯(cuò)無法正常運(yùn)行。不能對本地的頁面進(jìn)行訪問。瀏覽器選擇設(shè)置局限太大,極易造成與用戶習(xí)慣的不便。結(jié)論通過這次畢業(yè)設(shè)計(jì),學(xué)到了許多實(shí)用的測試知識。在大學(xué)期間學(xué)習(xí)的測試知識也終于能得到實(shí)踐。經(jīng)過這次畢業(yè)設(shè)計(jì),把以前所學(xué)到的書本知識和實(shí)際應(yīng)用結(jié)合了起來,對軟件工程和軟件測試的理論知識有了深層次的理解,意識到了學(xué)習(xí)就是要多實(shí)踐,理論和實(shí)踐相結(jié)合,才能真正將知識留在自己的大腦里。本文通過QTP案例的實(shí)際測試,初步掌握了自動(dòng)化測試的基本知識。也再次熟悉了白盒測試與黑盒測試兩種方法。這一段時(shí)間里,查閱了大量的資料和文獻(xiàn),完成了以QTP為軟件平臺、Flight為對象的自動(dòng)化測試。過程中,腳本的增強(qiáng)與優(yōu)化以及檢查點(diǎn)的插入都是需要注意的地方。自動(dòng)化測試的過程中,腳本的規(guī)范性和可讀性十分重要。在測試的開始的階段,腳本比較混亂,出現(xiàn)錯(cuò)誤后難以發(fā)現(xiàn)。QTP的測試對象很多,如Windows對象、ActiveX對象以及VB和Web對象等等。在這里僅以Windows的Flight程序做測試對象。通過多次的測試比較,可以發(fā)現(xiàn)自動(dòng)化測試相對比手工測試在覆蓋率、時(shí)間效率和質(zhì)量上都有極大的優(yōu)勢。當(dāng)然也有不能完全替代手工測試的地方,如在GUI界面中,對布局的糾正。參考文獻(xiàn)[1]余杰,趙旭斌.精通QTP[M].人民郵電出版社,2012.[2]陳能技.QTP自動(dòng)化測試最佳實(shí)踐[M].電子工業(yè)出版社,2012.[3]黃文高.QTP自動(dòng)化測試與框架模型設(shè)計(jì)[M].機(jī)械工業(yè)出版社.2011[4]李曉鵬,趙書良,魏娜娣.軟件功能測試[M].清華大學(xué)出版社.2012[5]PaulC.Jorgensen著.(李海峰,馬琳譯)軟件測試[M]人民郵電出版社.2011[6]ElfriedeDustin,ThomGarrett.自動(dòng)化軟件測試實(shí)踐指南[M].電子工業(yè)出版社.2011[7]RexBlack.著,(鄭丹丹,王華譯)軟件測試基礎(chǔ)[M].人民郵電出版社.2013.05[8]朱少民.完美測試[M].電子工業(yè)出版社.2012[9]鄭文杰,許靜,于波.軟件測試[M].人民郵電出版社.2012[10]鄭煒.軟件測試.西北工業(yè)大學(xué)出版社[M].2011.08.[11]馬均飛,鄭文強(qiáng).軟件測試設(shè)計(jì)[M].電子工業(yè)出版社.2011.04[12]Ammann.P,Offutt.J著(郁蓮等譯)軟件測試基礎(chǔ)[M].2010.09[13]陳能技.QTP自動(dòng)化測試進(jìn)階[M].電子工業(yè)出版社.2010.06[14]蔡為東.贏在測試[M].電子工業(yè)出版社.2010.[15]劉宇飛.QTP在軟件項(xiàng)目管理中的新發(fā)展[M].北京:清華大學(xué)出版社,2010.[16]朱少民.軟件測試方法和技術(shù)[M].北京:清華大學(xué)出版社,2010.[17]軟件測試資源網(wǎng)站:/致謝本次設(shè)計(jì)在錢麗老師的悉心指導(dǎo)下,一步步完成。很幸運(yùn)地能夠由錢老師作為我的指導(dǎo)老師,在這里表示十分感謝。從開始的選題確定,我開始借助圖書館互聯(lián)網(wǎng)搜集和我論文有關(guān)的資料。畢竟我的能力有限,而錢老師給我提供了一些參考文獻(xiàn)、視屏等資料,是我獲益匪淺,在我的論文實(shí)現(xiàn)過程中解決了我不少疑惑和難題。雖然之前做過一些小論文和設(shè)計(jì),但還是稍顯拙劣和稚嫩。在錢老師幫助下,才能順利地完成本次畢業(yè)論文。在這里也感謝其他老師給予我的幫助,在與老師們聊天討論的過程中,給了我很多啟發(fā)。我的同學(xué)們對我來說也是一筆財(cái)富,在這次論文設(shè)計(jì)中,給我指正了不少不足之處,幫我及早的發(fā)現(xiàn)并修正。再次感謝各位。

附錄資料:不需要的可以自行刪除常見的電腦英語查詢大全3DNow!(3Dnowaiting)3DPA(3DPositionalAudio,3D定位音頻)3DS(3DSubSystem,三維子系統(tǒng))ABS(AutoBalanceSystem,自動(dòng)平衡系統(tǒng))AC(AudioCodec,音頻多媒體數(shù)字信號編解碼器)ACOPS:AutomaticCPUOverHeatPreventionSystem(CPU過熱預(yù)防系統(tǒng))ACPI(AdvancedConfigurationandPowerInterface,先進(jìn)設(shè)置和電源管理)AE(AtmosphericEffects,霧化效果)AFR(AlternateFrameRendering,交替渲染技術(shù))AGAS(AntiGlareAntiStaticCoatings,防強(qiáng)光、防靜電涂層)AGP:AccelaratedGraphicPort(加速圖形端口),一種CPU與圖形芯片的總線結(jié)構(gòu)AGU(AddressGenerationUnits,地址產(chǎn)成單元)AH:AuthenticationHeader,鑒定文件頭AHA(AcceleratedHubArchitecture,加速中心架構(gòu))AL:ArtificialLife(人工生命)ALU(ArithmeticLogicUnit,算術(shù)邏輯單元)AMR(Audio/ModemRiser,音效/數(shù)據(jù)主機(jī)板附加直立插卡)AMR(Audio/ModemRiser;音效/調(diào)制解調(diào)器主機(jī)板附加直立插卡)AnisotropicFiltering(各向異性過濾)API(ApplicationProgrammingInterfaces,應(yīng)用程序接口)APIC:AdvancedProgrammableInterruptController(高級程序中斷控制器)APM(AdvancedPowerManagement,高級能源管理)APPE(AdvancedPacketParsingEngine,增強(qiáng)形幀解析引擎)ARP(AddressResolutionProtocol,地址解析協(xié)議)ASC(AntiStaticCoatings,防靜電涂層)ASC(Auto-SizingandCentering,自動(dòng)調(diào)效屏幕尺寸和中心位置)ASCII(AmericanStandardCodeforInformationInterchange,美國國家標(biāo)準(zhǔn)信息交換代碼)ASIC:ApplicationSpecificIntegratedCircuit(特殊應(yīng)用積體電路)ASKIR(AmplitudeShiftKeyedInfra-Red,長波形可移動(dòng)輸入紅外線)ASMO(AdvancedStorageMagneto-Optical,增強(qiáng)形光學(xué)存儲(chǔ)器)ASPI(AdvancedSCSIProgramInterface,高級SCSI編程接口。它定義了當(dāng)和SCSI主機(jī)適配器通訊時(shí)應(yīng)用程序使用的一系列軟件命令)AST(AverageSeektime,平均尋道時(shí)間)ATA(ATAttachment,AT擴(kuò)展型)ATAPI(ATAttachmentPacketInterface)ATC(AccessTimefromClock,時(shí)鐘存取時(shí)間)ATL:ActiveXTemplateLibrary(ActiveX模板庫)ATM(AsynchronousTransferMode,異步傳輸模式)ATOMM(AdvancedsuperThin-layerandhigh-OutputMetalMedia,增強(qiáng)形超薄高速金屬媒體)ATX:ATExtend(擴(kuò)展型AT)AuxiliaryInput(輔助輸入接口)AV(AnalogVideo,模擬視頻)AVI(AudioVideoInterleave,音頻視頻插入)BackBuffer,后置緩沖Backfaceculling(隱面消除)BASIC:Beginner'sAll-purposeSymbolicInstructionCode(初學(xué)者通用指令代碼)BattleforEyeballs(眼球大戰(zhàn),各3D圖形芯片公司為了爭奪用戶而作的競爭)BCF(BootCatalogFile,啟動(dòng)目錄文件)Benchmarks:基準(zhǔn)測試程序數(shù)值BGA(BallGridArray,球狀矩陣排列)BGA(BallGridArray,球狀矩陣排列)BGA:BallGridArray(球狀網(wǎng)格陣列)BHT(branchpredictiontable,分支預(yù)測表)BIF(BootImageFile,啟動(dòng)映像文件)BilinearFiltering(雙線性過濾)BIOS(BasicInput/OutputSystem,基本輸入/輸出系統(tǒng))BLA:BearnLandingArea(電子束落區(qū))BMC(BlackMatrixScreen,超黑矩陣屏幕)BOD(BandwidthOnDemand,彈性帶寬運(yùn)用)BOPS:BillionOperationsPerSecond,十億次運(yùn)算/秒bps(bitpersecond,位/秒)BPU(BranchProcessingUnit,分支處理單元)BrachPediction(分支預(yù)測)BSD(BerkeleySoftwareDistribution,伯克利軟件分配代號)BSRAM(BurstpipelinedsynchronousstaticRAM,突發(fā)式管道同步靜態(tài)存儲(chǔ)器)BTB/C:BranchTargetBuffer/Cache(分支目標(biāo)緩沖)C2C:card-to-cardinterleaving,卡到卡交錯(cuò)存取CAD:computer-aideddesign,計(jì)算機(jī)輔助設(shè)計(jì)CAM(CommonAccessModel,公共存取模型)CAS(ColumnAddressStrobe,列地址控制器)CBR(CommittedBurstRate,約定突發(fā)速率)CC:CompanionChip(同伴芯片),MediaGX系統(tǒng)的主板芯片組CCD(ChargeCoupledDevice,電荷連接設(shè)備)CCIRN:CoordinatingCommitteeforIntercontinentalResearchNetworking,洲CCM(CallControlManager,撥號控制管理)cc-NUMA(cache-coherentnonuniformmemoryaccess,連貫緩沖非統(tǒng)一內(nèi)存尋址)CCS(CutChangeSystem)CCT(ClockCycleTime,時(shí)鐘周期)CDR(CDRecordable,可記錄光盤)CD-ROM/XA(CD-ROMeXtendedArchitecture,唯讀光盤增強(qiáng)形架構(gòu))CDRW(CD-Rewritable,可重復(fù)刻錄光盤)CDSL:ConsumerDigitalSubscriberLine(消費(fèi)者數(shù)字訂閱線路)CE(ConsumerElectronics,消費(fèi)電子)CEM(cubeenvironmentmapping,立方環(huán)境映射)CenterProcessingUnitUtilization,中央處理器占用率CEO(ChiefExecutiveOfficer,首席執(zhí)行官)CG(ComputerGraphics,計(jì)算機(jī)生成圖像)CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)CHRP(CommonHardwareReferencePlatform,共用硬件平臺,IBM為PowerPC制定的標(biāo)準(zhǔn),可以兼容MacOS,WindowsNT,Solaris,OS/2,Linux和AIX等多種操作系統(tǒng))CIEA:CommercialInternetExchangeAssociation,商業(yè)因特網(wǎng)交易協(xié)會(huì)CIR(CommittedInfomationRate,約定信息速率)CISC(ComplexInstructionSetComputing,復(fù)雜指令集計(jì)算機(jī))CISC(ComplexInstructionSetComputing,復(fù)雜指令集計(jì)算機(jī))CISC:ComplexInstructionSetComputing(復(fù)雜指令結(jié)構(gòu))Clipping(剪貼紋理)CLK(ClockCycle,時(shí)鐘周期)ClockSynthesizer,時(shí)鐘合成器CLV(ConstantLinearVelocity,恒定線速度)CMOS:ComplementaryMetalOxideSemiconductor(互補(bǔ)金屬氧化物半導(dǎo)體)CMOS:ComplementaryMetalOxideSemiconductor,互補(bǔ)金屬氧化物半導(dǎo)體CMOS:ComplementaryMetalOxideSemiconductor,互補(bǔ)金屬氧化物半導(dǎo)體COB(Cacheonboard,板上集成緩存)COB(Cacheonboard,板上集成緩存)COD(CacheonDie,芯片內(nèi)集成緩存)COD(CacheonDie,芯片內(nèi)集成緩存)COM:ComponentObjectModel(組件對象模式)COMDEX:ComputerDistributionExposition(計(jì)算機(jī)代理分銷業(yè)展覽會(huì))compressedtextures(壓縮紋理)ConcurrentCommandEngine,協(xié)作命令引擎COO(ChiefOrganizerOfficer,首席管理官)CP:CeramicPackage(陶瓷封裝)CPGA(CeramicPinGridArray,陶瓷針型柵格陣列)CPGA(CeramicPinGridArray,陶瓷針型柵格陣列)CPGA:CeramicPinGridArray(陶瓷針腳網(wǎng)格陣列)CPS:CertificationPracticeStatement(使用證明書)CPU(CenterProcessingUnit,中央處理器)CPU:CenterlProcessingUnit(中央處理器)CPU:CenterProcessingUnit,中央處理器CRC:CyclicalRedundancyCheck(循環(huán)冗余檢查)CRT(CathodeRayTube,陰極射線管)CS(ChannelSeparation,聲道分離)CSE(ConfigurationSpaceEnable,可分配空間)CSS(CommonCommandSet,通用指令集)CSS:CascadingStyleSheets,層疊格式表CTO(ChiefTechnologyOfficer,首席技術(shù)官)CTS(CarpalTunnelSydrome,計(jì)算機(jī)腕管綜合癥)CTS(CleartoSend,清除發(fā)送)CVS(ComputeVisualSyndrome,計(jì)算機(jī)視覺綜合癥)DAC(DigitaltoAnalogConverter,數(shù)模傳換器)DAC:DualAddressCycle,雙重地址周期DAE(digitalAudioExtraction,數(shù)據(jù)音頻抓?。〥ataForwarding(數(shù)據(jù)前送)DB:DeepBuffer(深度緩沖)DB:DeviceBay,設(shè)備插架DBS-PC:DirectBroadcastSatellitePC(人造衛(wèi)星直接廣播式PC)DCD:DocumentContentDescriptionforXML:XML文件內(nèi)容描述DCE:DataCircuitTerminalEquipment,數(shù)據(jù)通信設(shè)備DCOM:DistributingComponentObjectModel,構(gòu)造物體模塊DCT:DisplayCompressionTechnology(顯示壓縮技術(shù))DDC:DisplayDataChannel,顯示數(shù)據(jù)通道DDRSDRAM(DoubleDateRate,雙數(shù)據(jù)率SDRAM)DDSSII(DoubleDynamicSuspensionSystemII,第二代雙層動(dòng)力懸吊系統(tǒng))DDSS(DoubleDynamicSuspensionSystem,雙懸浮動(dòng)態(tài)減震系統(tǒng))DEC(DirectEtchingCoatings,表面蝕刻涂層)Decal(印花法,用于生成一些半透明效果,如:鮮血飛濺的場面)Decode(指令解碼)DES:DataEncryptionStandard,數(shù)據(jù)加密標(biāo)準(zhǔn)DFL(DynamicFocusLens,動(dòng)態(tài)聚焦)DFP(DigitalFlatPanel,數(shù)字式平面顯示器)DFS(DigitalFlexScan,數(shù)字伸縮掃描)DFS:DynamicFlatShading(動(dòng)態(tài)平面描影),可用作加速DHCP:DynamicHostConfigurationProtocol,動(dòng)態(tài)主機(jī)分配協(xié)議DIB(DualIndependentBus,雙獨(dú)立總線)DIB:DualIndependentBus(雙重獨(dú)立總線),包括L2cache總線和PTMM(ProcesserToMainMemory,CPU至主內(nèi)存)總線DIC:DigitalImageControl(數(shù)字圖像控制)DigitalMultiscanII(數(shù)字式智能多頻追蹤)DIL(dual-i

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論