版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 本科畢業(yè)論文(設(shè)計)題目:基于qtp的自動化測試 姓 名: 張 海 波 學(xué) 號: 1042157124 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 院 系: 信息工程學(xué)院 指導(dǎo)老師: 錢 麗 職稱學(xué)位: 講師碩士 完成時間: 2014年5月12日 教務(wù)處制安徽新華學(xué)院本科畢業(yè)論文(設(shè)計)獨(dú)創(chuàng)承諾書本人按照畢業(yè)論文(設(shè)計)進(jìn)度計劃積極開展實驗(調(diào)查)研究活動,實事求是地做好實驗(調(diào)查)記錄,所呈交的畢業(yè)論文(設(shè)計)是我個人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我所知,除文中特別加以標(biāo)注引用參考文獻(xiàn)資料外,論文(設(shè)計)中所有數(shù)據(jù)均為自己研究成果,不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果。與我一同工作的同志
2、對本研究所做的工作已在論文中作了明確說明并表示謝意。畢業(yè)論文(設(shè)計)作者簽名: 日期: 基于qtp的自動化測試摘 要 在軟件開發(fā)過程中,軟件測試是發(fā)現(xiàn)軟件缺陷的最直接手段,也是作為控制軟件缺陷最主要的手段。在不斷尋找有效的測試方法同時,自動化測試已經(jīng)成為提高軟件測試效率和解決覆蓋面的重要技術(shù)手段。本次畢業(yè)設(shè)計,首先對現(xiàn)階段國內(nèi)外對自動化測試的研究成果及發(fā)展前景進(jìn)行了調(diào)研,比較了傳統(tǒng)手動測試與自動化測試的優(yōu)缺點(diǎn)。然后利用自動化軟件測試工具quick test professional(簡稱qtp),以飛機(jī)訂票系統(tǒng)(flight)為測試對象,針對flight的具體功能進(jìn)行自動化測試。測試過程包括各
3、功能測試場景設(shè)計和用例的編寫,測試腳本的創(chuàng)建、編輯,對測試腳本的增強(qiáng)、調(diào)試,以及對測試執(zhí)行結(jié)果進(jìn)行分析,檢查測試運(yùn)行過程的正確性。同時通過手工測試與自動化測對比,凸顯自動化測試在測試效率等方面的優(yōu)勢。關(guān)鍵詞:軟件測試;自動化測試;qtp;功能測試qtp -based automated testingabstractin the process of software development , software testing is the most direct means to find software defects , but also as a means to control
4、the most important software defects . constantly looking for effective testing methods at the same time , improve the automated testing software testing has become an important technical means to solve the efficiency and coverage .the graduation project , the first stage at home and abroad for resea
5、rch and development prospects of automated testing conducted an investigation to compare the advantages and disadvantages of the traditional manual testing and automated testing . the use of automated software testing tools quick test professional ( referred qtp), to airline reservation systems (fli
6、ght) of the test object , automated testing of specific functional flight . the functional testing process , including the design and preparation of test scenarios use cases , test scripts to create , edit, enhance test scripts , debug , and analyze the results of the test execution , test run to ch
7、eck the correctness of the process . by simultaneously measuring manual testing and automated comparison , highlighting the advantages of automated testing efficiency and other aspects of the test .keywords:software testing;automated testing;qtp;functional testing目 錄1 概 述11.1 課題研究背景11.2 國內(nèi)外研究現(xiàn)狀11.3
8、課題研究目的22軟件缺陷與軟件測試32.1軟件缺陷32.1.1 軟件缺陷與硬件缺陷異同32.1.2 如何通過軟件測試發(fā)現(xiàn)軟件缺陷32.2軟件質(zhì)量與軟件測試42.2.1軟件開發(fā)模式與自動化測試42.3軟件自動化測試與手動測試52.3.1自動化測試與手工測試比較52.3.2如何開展自動化測試52.3.3自動化測試方案62.4自動化測試工具介紹63 quicktest professional的簡介93.1 qtp的安裝與配置93.2 qtp的使用103.2.1制定測試計劃113.2.2創(chuàng)建測試腳本113.2.3增強(qiáng)測試腳本功能113.2.4運(yùn)行與分析114 基于qtp自動化測試的實施134.1 登
9、錄功能測試134.1.1 測試用例134.1.2 腳本錄制144.1.3 測試腳本154.1.4 執(zhí)行結(jié)果164.2 訂票功能測試184.2.1 錄制腳本過程184.2.2 調(diào)試測試腳本及注解194.2.3 執(zhí)行結(jié)果214.3 修改訂單功能測試214.3.1 測試用例214.3.2 錄制腳本過程224.3.3 調(diào)試測試腳本及注解244.3.4 執(zhí)行結(jié)果254.4 刪除訂單功能測試264.4.1 測試用例264.4.2 錄制腳本過程264.4.3 調(diào)試測試腳本及注解284.4.4 執(zhí)行結(jié)果284.5 傳真功能測試294.5.1 錄制腳本過程294.5.2 調(diào)試測試腳本及注解304.5.3 執(zhí)行結(jié)
10、果315 測試結(jié)果分析335.1 測試用例匯總表335.2 檢查項345.3 對比與分析345.4 分析與建議35結(jié) 論37參考文獻(xiàn)38致 謝391 概 述1.1 課題研究背景按時、高質(zhì)量地發(fā)布軟件產(chǎn)品是軟件開發(fā)的最基本要求,而軟件測試是軟件質(zhì)量保證的最重要的手段之一。對于軟件,不論采用什么技術(shù)和方法來進(jìn)行開發(fā),軟件產(chǎn)品中都會存在或多或少的錯誤和問題1。于是,軟件測試便扮演了極其重要的角色,貫穿于整個軟件生命周期,檢驗各個階段的成果是否符合質(zhì)量要求和達(dá)到預(yù)先定義的目標(biāo)。據(jù)大量統(tǒng)計資料顯示,在典型的軟件開發(fā)的項目中,軟件測試投入的成本和工作量往往占到軟件的總成本和總工作量的40%以上。傳統(tǒng)的軟件
11、測試方式大多停留在內(nèi)部測試、手工測試階段,并不能完全適用于應(yīng)用測試。由于較多的企業(yè)采用瀑布模型進(jìn)行開發(fā),往往在軟件開發(fā)結(jié)束后才開始進(jìn)行測試。這些都在極大程度上降低了測試的覆蓋率,增加了測試的成本,影響了軟件質(zhì)量的可靠性4。因此,軟件測試自動化技術(shù)的出現(xiàn),從真正意義上把測試人員從簡單重復(fù)的勞動中解放出來,彌補(bǔ)了手動測試在應(yīng)付大規(guī)模測試中疲態(tài)的缺陷,尤其是面對大量的數(shù)據(jù)需要檢查時,人工的比較和搜索不僅效率低,而且容易出錯,覆蓋面偏低。它為軟件開發(fā)團(tuán)隊節(jié)約了測試成本,提高了軟件質(zhì)量,縮短了產(chǎn)品發(fā)布周期。1.2 國內(nèi)外研究現(xiàn)狀軟件測試是軟件質(zhì)量的護(hù)航者,只有通過了測試軟件的設(shè)計、編碼和規(guī)約的評審才能通
12、過,在軟件的整個生命周期中具有與軟件開發(fā)相同的地位。在許多大型的軟件公司,其測試人員和開發(fā)人員比例達(dá)到了1:1,甚至更多4。然而,在早期軟件測試常常被忽視,軟件經(jīng)過開發(fā)人員簡單的單元測試后進(jìn)行發(fā)布,導(dǎo)致的后果可想而知。在美國北卡羅來納大學(xué)召開的軟件測試的正式技術(shù)會議,是軟件測試技術(shù)發(fā)展歷史上的一個轉(zhuǎn)折點(diǎn),它標(biāo)志著軟件測試成為了軟件工程領(lǐng)域中一個獨(dú)立而重要的分支。此后,gerhart進(jìn)一步總結(jié)原來的測試?yán)碚?,將軟件測試提升到理論的高度,作為實踐性學(xué)科的參考2。為了更好的實現(xiàn)測試的自動化,用自動化測試代替手工勞動,許多it廠商推出了以工具為中心的測試,是測試人員只需要關(guān)注腳本技術(shù)和配置文件的編寫。
13、常用的測試工具有mercury interactive公司的qtp、loadrunner、testdirectior,ibm的web自動化測試工具rational function tester,segue software公司的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)商開始在自動化測試領(lǐng)域中進(jìn)行軟件分析和測試工具的研究和開發(fā)。西北工業(yè)大學(xué)在c/s系統(tǒng)的測試方面進(jìn)行了許多的研究工作,并且取得了一定
14、的成績。北京航空航天大學(xué)和北京大學(xué)經(jīng)過技術(shù)的攻關(guān),共同研制了一系列測試工具和程序理解工具,例如具有典型代表的safepro/javao和safepro c/c+。南京大學(xué)和航空局計算研究所開發(fā)的靜態(tài)分析工具和測試用例自動生成工具,在嵌入式系統(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è)計測試案例、錄制、優(yōu)化腳本功能等,來具體認(rèn)識自動化測試對于普通應(yīng)用軟件,都可以發(fā)揮其功能測試和回歸測試的優(yōu)點(diǎn),
15、省去了手工測試的繁瑣,更加低成本,便捷而快速的找出軟件的bug所在,是軟件開發(fā)中一個不可或缺的重要的一部分。2軟件缺陷與軟件測試2.1軟件缺陷2.1.1 軟件缺陷與硬件缺陷異同對于用戶來說,軟件缺陷與硬件缺陷一樣,會對用戶在使用時造成困擾。但是軟件缺陷在一般情況下,不會對用戶造成直接的人身傷害或經(jīng)濟(jì)損失,也因此很多人意識不到軟件缺陷的危害性和嚴(yán)重性。然而在一些比較依賴軟件進(jìn)行業(yè)務(wù)處理的領(lǐng)域,便可能造成重大的經(jīng)濟(jì)損失,甚至危及生命,例如2007年4月,某個軟件缺陷導(dǎo)致某地鐵系統(tǒng)的列車火災(zāi),軟件未能檢測和防止剩余動力在設(shè)備中的使用,導(dǎo)致車過熱而起火。因此,軟件缺陷與硬件缺陷一樣,都需要人們重視他們
16、可能造成的危害與損失。不同在于,硬件缺陷大多是可預(yù)見的,比較容易被發(fā)現(xiàn)。軟件缺陷的可預(yù)見性就沒有那么強(qiáng),其一個重要特點(diǎn)就是隱蔽性。由于軟件的復(fù)雜度高,狀態(tài)空間廣闊,因此,要覆蓋軟件所有的可能行為幾乎是不可能的。2.1.2 如何通過軟件測試發(fā)現(xiàn)軟件缺陷手工測試仍然是主要的查找錯誤的方式,自動化測試能部分地解決覆蓋面的問題和測試效率的問題,但是不能從根本上解決問題。而在軟件測試之前的開發(fā)環(huán)節(jié)中,開發(fā)人員已經(jīng)對對軟件進(jìn)行缺陷控制,盡管大多停留在“調(diào)試”階段的測試水平。也因此軟件測試成為了軟件缺陷的主要控制手段和解決方法。測試人員通過產(chǎn)品需求,以及用戶的實際業(yè)務(wù)背景,設(shè)計出各種測試用例,通過執(zhí)行測試用
17、例,判斷被測試的應(yīng)用程序是否滿足用戶需求。在測試用例中,主要分為兩種。一是驗證軟件功能正確的;另一種適用于證明軟件錯誤的。如果將這這些用例轉(zhuǎn)化為可被自動化測試工具執(zhí)行的腳本,那么就成了一個自動化測試用例,使用自動化的方式執(zhí)行,提高效率。2.2軟件質(zhì)量與軟件測試軟件質(zhì)量是軟件產(chǎn)品的核心價值體現(xiàn),也是企業(yè)競爭力的體現(xiàn),重視軟件質(zhì)量的企業(yè)通常能獲得更多的收益。軟件質(zhì)量也是軟件項目管理的重要組成部分,在不同的開發(fā)模式中,都會圍繞軟件質(zhì)量管理提出相應(yīng)的做法。1986年,iso8492給出了質(zhì)量定義:質(zhì)量是產(chǎn)品或服務(wù)滿足明示或暗示需求能力的固有特性和特征的集合。而在ibm rup(統(tǒng)一過程)中,質(zhì)量被定義
18、為“滿足或超出認(rèn)定的一組要求,并使用經(jīng)過的認(rèn)可的評測方法和標(biāo)準(zhǔn)來評估,還使用認(rèn)定的流程生產(chǎn)”。因此,質(zhì)量不是簡單地滿足用戶需求,還得包含證明質(zhì)量達(dá)標(biāo)所使用的評測方法及標(biāo)準(zhǔn),以及如何實施可管理、可重復(fù)使用的流程,以確保由此流程生產(chǎn)的產(chǎn)品已達(dá)到預(yù)期的、穩(wěn)定的質(zhì)量水平。1983年,ansi ieee std729給出了軟件質(zhì)量的定義 6,包括:(1) 軟件產(chǎn)品質(zhì)量滿足用戶要求的程度;(2) 軟件各種屬性的組合程度;(3) 用戶對軟件產(chǎn)品的綜合反映程度;(4) 軟件在使用過程中滿足用戶要求的程度。簡而言之,功能、性能和可靠性是衡量軟件質(zhì)量的三個維度指標(biāo)。2.2.1軟件開發(fā)模式與自動化測試在不同的開發(fā)模
19、式中,軟件測試的地位和作用略有不同,但卻不可能消失。在傳統(tǒng)的瀑布開發(fā)模型中,軟件測試作為一個獨(dú)立的階段出現(xiàn),在進(jìn)入測試階段之前,應(yīng)該完成編碼并且提供完善的需求、設(shè)計和文檔。如果在需求定義方面做得很好,對自動化測試十分有益,可以盡早的選擇測試策略,讓自動化測試高層次整體地進(jìn)行。而在rup迭代模型中,實施自動化測試時,需要與開發(fā)策略緊密結(jié)合,關(guān)注早期構(gòu)建、迭代的速度、風(fēng)險、覆蓋目標(biāo)等。敏捷方法則打破了傳統(tǒng)的自動化測試方法,第一個破壞點(diǎn)集中在自動化的可接受性測試,很難被其他類型的自動化重用。細(xì)粒度的迭代讓每次的測試很難擊中目標(biāo)和定義標(biāo)準(zhǔn)。2.3軟件自動化測試與手動測試2.3.1自動化測試與手工測試比
20、較軟件測試的一個顯著特點(diǎn)就是重復(fù)性,重復(fù)的工作除了機(jī)器人沒人忍受的了。在精確性的問題上,當(dāng)手動測試遭遇大量的數(shù)據(jù)需要檢查的時候,數(shù)據(jù)比較和搜索定位不僅效率不高而且易出錯,達(dá)不到預(yù)期的覆蓋率。伴隨著產(chǎn)品的完善,軟件功能的逐步完善,需要測試的內(nèi)容有時候會呈現(xiàn)幾何倍數(shù)增長,人工進(jìn)行回歸測試便顯得捉襟見肘。當(dāng)然不意味著手動測試就這樣被淘汰,手工測試有這其不可替代的地方:(1) 測試用例的設(shè)計:測試人員的經(jīng)驗和判斷能力是一切工具不具備的(2) 界面和用戶體驗:人類的審美和感官及心理體驗是其他無法代替的(3) 正確性的檢查:工具是不具備推理和邏輯思維的。而在借助計算機(jī)強(qiáng)大的計算能力下,可以不知疲倦、重復(fù)的
21、運(yùn)行,對于大量的數(shù)據(jù)也能在短時間內(nèi)處理結(jié)束。于是自動化測試的優(yōu)勢則表現(xiàn)如下:(1) 可重復(fù)性強(qiáng)(2)計算精確(3)大批量操作(4)覆蓋面廣(5)搜索效率高2.3.2如何開展自動化測試在軟件測試的階段,自動化測試應(yīng)該被當(dāng)作一個項目來開展。首先要確定所開發(fā)的軟件項目采用自動化測試是否適用。短期的或者一次性的項目不宜采用,因為這反而增加開發(fā)周期和成本。同樣,在一個非常緊迫的項目中也是不合適的,因為需要測試人員開發(fā)編寫測試腳本,并需要開發(fā)人員的配合使得整個進(jìn)程更加緊張倉促,適得其反。其次,什么時候開始自動化測試項目?不能過早,太早的話,軟件不成形,界面、編碼等不穩(wěn)定,改動頻繁,這時候開展自動化徒增成本
22、,得不償失??梢栽陔r形期做一些準(zhǔn)備,考慮測試工具的選擇。熟悉和了解各種編程語言、編程工具,以及各種控件會使得在開展測試時得心用手。2.3.3自動化測試方案在選擇測試方案的時候,要參照下列因素4:(1) 項目的影響:制定的方案是否對整個項目有積極作用,或者讓開發(fā)更敏捷(2) 復(fù)雜度:自動化是否容易實現(xiàn)(3) 時間:自動化測試的實現(xiàn)需要多少時間(4) 早期需求和代碼的穩(wěn)定性:如果不能穩(wěn)定,那么自動化測試介入會很尬尷(5) 覆蓋率:能否覆蓋程序中的關(guān)鍵特性和功能(6) 資源:有沒有足夠的人力資源、數(shù)據(jù)資源、硬件資源來支持自動化的開展在確定方案后,測試腳本的編碼階段,編寫方法也左右著自動化測試的效率和
23、質(zhì)量。自動化功能測試的開發(fā)方式主要有:(1) 線性的(2) 結(jié)構(gòu)化的(3) 共享的(4) 數(shù)據(jù)驅(qū)動的(5) 關(guān)鍵字驅(qū)動的2.4自動化測試工具介紹qtp全名hp quicktest professional software ,2012年12月6日發(fā)布了11.5版本,并更名為unified functional testingqtp是quick test professional的簡稱,是一款自動化測試工具。自動化工具出現(xiàn)目的是想用它來執(zhí)行重復(fù)的手動測試,主要是用于回歸測試和測試同一軟件的新版本。在測試前要考慮好如何制定相應(yīng)的測試計劃,例如要測試那些功能、操作步驟、輸入數(shù)據(jù)和期望的輸出數(shù)據(jù)等。w
24、inrunner是mercury interactive公司的一種企業(yè)級的功能測試工具,用于檢測應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。通過自動錄制、檢測和回放測試用戶的操作,winrunner能夠有效地幫助測試人員對復(fù)雜應(yīng)用的不同發(fā)布版進(jìn)行測試,提高測試人員的工作效率和質(zhì)量,且保障跨平臺的、復(fù)雜的企業(yè)級應(yīng)用能夠無故障發(fā)布及長期穩(wěn)定運(yùn)行。rational robot作為業(yè)界最頂尖的自動化功能測試工具,它可以在測試人員學(xué)習(xí)高級腳本技術(shù)同時幫助其進(jìn)行成功的測試。集成在測試人員的桌面ibm rational test manager上,測試人員可以計劃、組織、執(zhí)行、管理和報告所有測試活動,包括手動
25、測試報告。這種測試和管理的雙重功能十分利于剛進(jìn)入測試領(lǐng)域的人員。adventnet qengine.adventnet qengine是一個應(yīng)用廣泛且獨(dú)立于平臺的自動化軟件測試工具,可用于java api測試、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)行功
26、能測試的領(lǐng)先產(chǎn)品,可用于測試web、java或是傳統(tǒng)的c/s結(jié)構(gòu)。silktest提供了豐富的功能,使用戶能夠高效地進(jìn)行自動化測試。包括以下功能:測試的計劃和管理,數(shù)據(jù)庫訪問及校驗,便捷、強(qiáng)大的4test腳本語言,內(nèi)置恢復(fù)系統(tǒng)(recovery system),并具有使用同一套腳本進(jìn)行跨平臺、瀏覽器進(jìn)行測試的功能。qa run。qarun的測試實現(xiàn)方式是通過檢測鼠標(biāo)移動、鍵盤點(diǎn)擊操作等被測應(yīng)用,即而得到相應(yīng)的測試腳本,對該腳本可以進(jìn)行需要編輯和調(diào)試。在記錄的過程中可針對被測應(yīng)用中所包含的功能點(diǎn)進(jìn)行基線值的建立,即在插入檢查點(diǎn)的同時建立預(yù)期值。在這里檢查點(diǎn)是目標(biāo)系統(tǒng)的一個特殊方面在一特定點(diǎn)的期望
27、狀態(tài)。一般,檢查點(diǎn)在qarun提示目標(biāo)系統(tǒng)執(zhí)行一系列事件之后被執(zhí)行。檢查點(diǎn)用于確定當(dāng)前實際結(jié)果與預(yù)期值是否一樣。test partner作為一個自動化的功能測試工具,它專為測試基于微軟、java和web技術(shù)的復(fù)雜應(yīng)用而設(shè)計。它使測試人員和開發(fā)人員都可以使用可視的腳本編制和自動向?qū)砩煽芍貜?fù)的測試,用戶可以在任何水平層次和細(xì)節(jié)條件下,調(diào)用vba的所有功能進(jìn)行測試。testpartner通過采用通用的、分層的方式來進(jìn)行腳本的開發(fā)。各水平的的測試人員都可以通過testpartner的可視化導(dǎo)航器來快速創(chuàng)建測試并執(zhí)行。通過可視的導(dǎo)航器錄制并回放測試,每一個測試都將以樹狀結(jié)構(gòu)展示,以清楚地顯現(xiàn)測試通過
28、的應(yīng)用路徑。holodeck-強(qiáng)大的故障植入軟件測試工具h(yuǎn)olodeck is an advanced fault-injection tool that gives you the power to attack an application while it monitors and logs everything your application does - every function call, registry entry, piece of data read or written.autorunner。autorunner是黑盒測試工具,可以用來完成功能測試、回歸測試,可以提
29、高測試效率,降低測試人工成本。產(chǎn)品可以對以下類型對象進(jìn)行g(shù)ui功能性測試:(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ā)的桌面程序。3 quicktest profession
30、al的簡介qtp是quick test professional的簡稱,是一款自動化測試工具。自動化工具出現(xiàn)目的是想用它來執(zhí)行重復(fù)的手動測試,主要是用于回歸測試和測試同一軟件的新版本。在測試前要考慮好如何制定相應(yīng)的測試計劃,例如要測試那些功能、操作步驟、輸入數(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.1 qtp的安裝與配置第一步:點(diǎn)擊qtp的執(zhí)行文件,選擇路徑進(jìn)行安裝第二步:安裝
31、完成后會出現(xiàn)下圖的對話框,然后點(diǎn)擊”ok”,如圖3.1.1;圖3.1 初始界面圖第三步:選擇“blank test”選項,如圖3.1.2;圖3.2 空白測試創(chuàng)建3.2 qtp的使用qtp進(jìn)行功能測試的測試流程包括(1)制定測試計劃(2)創(chuàng)建測試腳本(3)增強(qiáng)測試腳本功能(4)運(yùn)行測試(5)分析測試結(jié)果 五個步驟:創(chuàng)建測試腳本制定測試計劃分析測試結(jié)果運(yùn)行測試增強(qiáng)測試腳本功能 圖3.3 測試流程圖3.2.1制定測試計劃自動測試的測試計劃是作為測試全工程的指導(dǎo),根據(jù)被測項目的具體需求,和使用的測試工具特征而制定。qtp作為功能測試工具,主要用于軟件的功能測試。當(dāng)然qtp是不能完全取代測試人員的手工操
32、作,如測試腳本的創(chuàng)建和測試用例的設(shè)計。但是在批量操作時,使用qtp的確能夠幫助測試人員高效的完成很多工作。在測試計劃階段,首先要做的就是分析被測應(yīng)用的特點(diǎn),決定應(yīng)該對哪些功能點(diǎn)進(jìn)行測試,可以考慮細(xì)化到具體頁面或者具體控件。在普通的應(yīng)用程序測試應(yīng)用方面,qtp在回歸測試中是非常有效的。3.2.2創(chuàng)建測試腳本qtp的自動錄制機(jī)制能夠?qū)y試人員的每一個操作步驟及被操作的對象記錄下來,自動生成測試腳本。相較于其他自動測試工具錄制腳本更方便的是,qtp除了以vb script腳本語言的方式生成腳本語句以外,還將被操作的對象及相應(yīng)的動作按照層次和順序保存在一個基于表格的keyword view(關(guān)鍵字視圖
33、)中。比如,當(dāng)測試人員單擊一個鏈接或選擇一個check box或者提交一個表單,相應(yīng)的操作流程都會被記錄在關(guān)鍵字視圖中。3.2.3增強(qiáng)測試腳本功能腳本的錄制只是為了實現(xiàn)創(chuàng)建或者設(shè)計腳本的第一步,基本腳本錄制完畢后,測試人員可以根據(jù)需要增加所需要的功能,qtp允許測試人員通過腳本編輯器,在腳本中增加或更改測試步驟來修正或自定義測試流程,如增加多種類型的檢查點(diǎn)功能,既可以讓qtp檢查一下在程序的某個特定位置或?qū)υ捒蛑惺欠癯霈F(xiàn)了需要的文字。以及通過變量的參數(shù)化功能,使用多組的數(shù)據(jù)驅(qū)動整個測試過程。3.2.4運(yùn)行與分析qtp從腳本的第一行開始執(zhí)行語句,運(yùn)行過程中會對設(shè)置的檢查點(diǎn)進(jìn)行驗證,從datata
34、ble中獲取實際數(shù)據(jù)代替參數(shù)值,并給出相應(yīng)的輸出結(jié)構(gòu)信息。測試過程中測試人員還可以調(diào)試自己的腳本,直到腳本完全符合要求。圖3.4 關(guān)鍵字視圖運(yùn)行結(jié)束后系統(tǒng)會自動生成一份詳細(xì)完整的測試結(jié)果報告。包括測試名稱。測試開始和結(jié)束的時間,測試腳本運(yùn)行的迭代次數(shù)、測試通過狀態(tài)等。通過報告中的測試信息,發(fā)現(xiàn)錯誤并增強(qiáng)腳本。4 基于qtp自動化測試的實施本篇論文使用的是flight這個windows應(yīng)用程序,這個程序所實現(xiàn)的是關(guān)于機(jī)票預(yù)訂、查詢、傳真等操作,下面通過設(shè)計各功能的測試用例,借助qtp這款自動化測試工具,進(jìn)行回歸測試,實現(xiàn)對flight功能測試的自動化,從而展現(xiàn)出自動化測試的優(yōu)勢,并測試該應(yīng)用軟件
35、是否有需要改進(jìn)的地方。4.1 登錄功能測試4.1.1 測試用例表4-1 登錄測試用例表測試編號namepassword預(yù)期結(jié)果實際結(jié)果測試結(jié)果flight_01textext提示錯誤passflight_02texmercury提示錯誤passflight_03tex提示錯誤passflight_04text提示錯誤passflight_05mercury提示錯誤passflight_06提示錯誤failedflight_07text提示錯誤passflight_0812345提示錯誤passflight_09textmercury正確,進(jìn)入flight正確,進(jìn)入flightpass續(xù)表4-1
36、 登錄測試用例表flight_10texttext提示錯誤passflight_11queenqueen提示錯誤passflight_12*)123提示錯誤passflight_13+-/45mry提示錯誤passflight_14mercurymercury提示錯誤正確,進(jìn)入flightpassflight_15axhumercury正確,進(jìn)入flight正確,進(jìn)入flightpassflight_16axhumercury正確,進(jìn)入flight正確,進(jìn)入flightpass4.1.2 腳本錄制第一步:對于登錄界面,首先對登錄進(jìn)行了錄制,分別輸入用戶名及密碼,生成了最簡單的vb腳本。如圖4.
37、1所示:圖4.1 登錄界面第二步:為了能全面的測試在任何輸入的情況下都會有預(yù)想的結(jié)果,根據(jù)設(shè)計出來的測試用例,在data table中設(shè)置了agentname及password列,把可能的情況均輸入進(jìn)去,之后讓其自動的逐個運(yùn)行測試。第三步:測試要具有全面性,根據(jù)登錄界面的按鈕分布,先對help按鈕進(jìn)行設(shè)計,用if語句來控制確定help之中的內(nèi)容后的確認(rèn)。第四步:接著運(yùn)用for語句,來實現(xiàn)對data table中name和password的逐個執(zhí)行測試。第五步:對容易出錯的地方設(shè)置檢查點(diǎn),以便在自動測試時對其進(jìn)行檢測,有對話框上標(biāo)題“l(fā)ogin”,按鈕“ok”。如圖4.2所示:圖4.2 logi
38、n檢查點(diǎn)設(shè)置4.1.3 測試腳本dialog(login).winbutton(help).click 點(diǎn)擊help按鈕if dialog (login).dialog (flight reservations).exist thendialog(login).dialog(flight reservations).winbutton(確定).clickend if 判斷在點(diǎn)擊后是否出現(xiàn)對話框dim ifor i=1 to datatable.getsheet(action1).getrowcountdialog(login).check checkpoint(login_2)dialog(l
39、ogin).winedit(agent name:).set datatable(name, dtlocalsheet)dialog(login).winedit(password:).setsecure datatable(password, dtlocalsheet)dialog(login).winbutton(ok).check checkpoint(ok) 點(diǎn)擊ok按鈕添加檢查點(diǎn)dialog(login).winbutton(ok).click 從datatable中調(diào)取測試用例if dialog(login).dialog(flight reservations).exist th
40、endialog(login).dialog(flight reservations).winbutton(確定).clickend ifdatatable.getsheet(action1).setnextrownextdialog(login).winedit(agent name:).set mercurydialog(login).winedit(password:).setsecure mercurydialog(login).winbutton(ok).check checkpoint(ok) 點(diǎn)擊ok按鈕添加檢查點(diǎn)dialog(login).winbutton(ok).click
41、 輸入正確的用戶名和密碼wait (5) 等待5秒window(flight reservation).winmenu(menu).select file;exit 退出 本測試腳本通過點(diǎn)擊help按鈕,查看密碼;通過for循環(huán)語句來獲取datatable里設(shè)計的用戶名和密碼,驗證正確的用戶名和密碼能夠進(jìn)入flight訂票系統(tǒng),實現(xiàn)用戶名及密碼的輸入自動化測試,并對其中的ok按鈕添加檢查點(diǎn)。4.1.4 執(zhí)行結(jié)果如圖4.3所示:圖4.3 測試執(zhí)行結(jié)果登陸測試的結(jié)果顯示:測試執(zhí)行了3次,并且全部未通過,說明在腳本里出現(xiàn)了錯誤。datatable中的status與outmsg兩列的參數(shù)值出現(xiàn)了誤差,
42、導(dǎo)致在測試中,賦值對比中找不到正確的對象。修改后選取一個用列再次測試。圖4.4 測試執(zhí)行結(jié)果登陸測試的結(jié)果顯示:本次測試運(yùn)行了一遍,并且通過,腳本錯誤得到修正。4.2 訂票功能測試4.2.1 錄制腳本過程為了體現(xiàn)自動化測試在測試中的高效率和便捷性,測試案例中對flight訂票系統(tǒng)中的出發(fā)地、目的地、航班及訂購的票數(shù)進(jìn)行了隨機(jī)選取,用randomnumber語句實現(xiàn),使qtp的自動化更具說服力。第一步:打開qtp選擇“record”,錄制腳本。第二步:在登錄界面中,agent name和password均以mercury作為測試變量,點(diǎn)擊“ok”按鈕。第三步:輸入飛行時間、出發(fā)地、目的地,然后點(diǎn)
43、擊“flights”選擇航班,如圖4.4所示:圖4.5 訂票界面第四步:選擇要乘坐飛機(jī)的航班,然后點(diǎn)擊確定。第五步:輸入顧客的姓名、票數(shù)、票的類型、點(diǎn)擊“insert”第六步:點(diǎn)擊“stop”結(jié)束錄制過程,腳本錄制成功第七步:在容易出錯的點(diǎn)上右擊鼠標(biāo),選擇“insert standard checkpoint”,如圖4.6所示:圖4.6 insert order檢查點(diǎn)4.2.2 調(diào)試測試腳本及注解dim a1,b1,c1window(flight reservation).activex(maskedbox).type 033112a1=window(flightreservation).wi
44、ncombobox(flyfrom:).getroproperty(items count)window(flightreservation).wincombobox(flyfrom:).select andomnumber(0,a1-1) 隨機(jī)獲取出發(fā)地b1=window(flightreservation).wincombobox(flyto:).getroproperty(items count)window(flight reservation).wincombobox(fly to:).select randomnumber(0,b1-1) 隨機(jī)獲取目的地window(flight
45、reservation).winbutton(flight).check checkpoint(flight) 為flight按鈕添加檢查點(diǎn)window(flight reservation).winbutton(flight).clickc1=window(flightreservation).dialog(flightstable).winlist(from).getitemscountwindow(flight reservation).dialog(flights table).winlist(from).select randomnumber(0,c1-1) 隨機(jī)選擇一航班windo
46、w(flight reservation).dialog(flights table).winbutton(ok).clickwindow(flight reservation).winedit(name:).set zywindow(flightreservation).winedit(tickets:).set randomnumber(1,10) 隨機(jī)1到10之間的票數(shù)dim rr=randomnumber (1,3)if r=1 then window(flight reservation).winradiobutton(first).setend ifif r=2 then wind
47、ow(flight reservation).winradiobutton(business).setend ifif r=3 then window(flight reservation).winradiobutton(economy).setend if 隨機(jī)選擇機(jī)艙類型window(flight reservation).winbutton(insert order).check checkpoint(insert order) 為insert order按鈕添加檢查點(diǎn)window(flight reservation).winbutton(insert order).clickwind
48、ow(flight reservation).close 退出注:測試腳本主要通過random number函數(shù)和if語句進(jìn)行隨機(jī)選擇出發(fā)地、目的地,航班、票數(shù)、機(jī)艙類型,以完成自動化來實現(xiàn)測試功能。4.2.3 執(zhí)行結(jié)果如圖4.7所示:圖4.7 測試執(zhí)行結(jié)果訂票功能測試的結(jié)果顯示:本次測試運(yùn)行了2遍,并且全部通過,腳本沒有錯誤以及警告。4.3 修改訂單功能測試4.3.1 測試用例表4-2 修改訂單測試用例表測試編號輸入操作預(yù)期結(jié)果實際結(jié)果update_01點(diǎn)擊open“按鈕”彈出open order對話框成功彈出open order對話框update_02選擇“customer name”彈出
49、“search results”對話框彈出“search results”update_03選擇第一個訂單,點(diǎn)擊“ok”按鈕對話框消失,訂單的內(nèi)容在飛機(jī)訂票系統(tǒng)中顯示,insert按鈕不可用,update和delete按鈕可用提示錯誤月份要小于13update_04日期修改為06/01/14可以修改可以修改update_05出發(fā)地改為london可以修改可以修改update_06目的地修改為paris可以修改可以修改update_07flight修改為12594號航班可以修改可以修改update_08customer name修改為queen可以修改可以修改update_09ticket 修改
50、為2可以修改可以修改update_10class 修改為first可以修改可以修改update_11點(diǎn)擊update按鈕訂票成功修改訂票成功修改4.3.2 錄制腳本過程第一步:打開qtp,選擇“record”,錄制腳本第二步:在agent name和password中都輸入mercury,點(diǎn)擊“ok”按鈕登錄第三步:點(diǎn)擊“”打開已有訂票單,如圖4.8所示:圖4.8 查找訂單界面第四步:選擇已有的訂票,可以根據(jù)“顧客名”、“航班日期”、“訂單的no”選擇訂單第五步:選擇具體的航班信息第六步:對所訂的票進(jìn)行編輯修改,點(diǎn)擊“update”按鈕第七步:點(diǎn)擊“stop”結(jié)束錄制過程,腳本錄制完成第八步:
51、為update 插入檢查點(diǎn),選擇“insert standard checkpoint”如圖4.8所示:圖4.9 更新按鈕檢查點(diǎn)設(shè)置第九步:點(diǎn)擊“ok”4.3.3 調(diào)試測試腳本及注解window(flight reservation).winbutton(button).clickwindow(flight reservation).dialog(open order).wincheckbox(customer name).set onwindow(flight reservation).dialog(open order).winedit(edit).set zywindow(flight
52、reservation).dialog(open order).winbutton(ok).clickwindow(flight reservation).dialog(open order).dialog(search results). winlist(flight no.).activate zy1031 58 aa 20253 2 7 112.200012/12/2012 wednesday den denver 08:12 am lon london 03:23 pm window(flight reservation).activex(maskedbox).type 12windo
53、w(flight reservation).activex(maskedbox).type 31window(flight reservation).wincombobox(fly from:).select londonwindow(flight reservation).wincombobox(fly to:).select pariswindow(flight reservation).winbutton(flight).clickwindow(flight reservation).dialog(flights table).winlist(from).activate 12594 lon 03:12 pm par 05:12 pm af $165.40window(flight reservation).winedit(tickets:).setselection 0,1window(flight reservati
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同范例和勞改合同
- 2024年度旅游線路開發(fā)代理委托合同范本3篇
- 給淘寶供貨合同范例
- 芯開發(fā)服務(wù)合同范例
- 樓宇門維修合同范例
- 收購水產(chǎn)合同范例
- 2024年港口地塊租賃合同
- 2024年版房地產(chǎn)建設(shè)監(jiān)理協(xié)議版
- 陜西服裝工程學(xué)院《油畫技法與創(chuàng)作寫意工筆材料試驗與實踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西財經(jīng)職業(yè)技術(shù)學(xué)院《人工智能技術(shù)及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 空調(diào)制冷行業(yè)銅管釬焊作業(yè)指導(dǎo)書
- 采購部供應(yīng)商儲備資源庫建立實施方案
- 青藍(lán)工程老教師指導(dǎo)幫扶青年教師活動記錄怎么寫范例12篇
- 閉合導(dǎo)線測量成果表(自動計算)
- 《機(jī)電控制系統(tǒng)分析與設(shè)計》課程大作業(yè)之一――基于MATLAB
- 《瓦楞紙箱基礎(chǔ)知識》PPT課件.ppt
- 模具(塑膠件)成本估算表
- 5S的開展進(jìn)程——現(xiàn)代企業(yè)現(xiàn)場的5S管理
- 分部分項工程劃分表模板
- XXXX年SGS供應(yīng)商質(zhì)量管理培訓(xùn)專用教材
- CAXA考試試題庫
評論
0/150
提交評論