軟件測(cè)試自動(dòng)化



《軟件測(cè)試自動(dòng)化》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件測(cè)試自動(dòng)化(54頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、??? ?? ??? ??,,??? ??? ???? ?????,,?? ??,,?? ??,,?? ??,,??? ??,,,*,第七章 軟件測(cè)試自動(dòng)化,,[本章要點(diǎn)],,,1.自動(dòng)化測(cè)試應(yīng)考慮的各種因素;,,2. 自動(dòng)化測(cè)試和手工測(cè)試中涉及的問題以及二者的優(yōu)缺點(diǎn);,,3.應(yīng)用自動(dòng)化測(cè)試工具的目的;,,4.自動(dòng)化測(cè)試工具的分類和選擇方法;,,5.自動(dòng)化測(cè)試過程實(shí)例及自動(dòng)化測(cè)試經(jīng)驗(yàn)。,,[本章目標(biāo)],,1.,了解自動(dòng)化測(cè)試應(yīng)考慮的各種因素以及如何衡量自動(dòng)化測(cè)試成本。,,2.,掌握自動(dòng)化測(cè)試和手工測(cè)試的優(yōu)缺點(diǎn),知道如何正確選擇兩種軟件測(cè)試策略。,,3.,了解測(cè)試工具的分類、使用目的及其選擇,了
2、解幾種常用的測(cè)試工具。,,4.,了解自動(dòng)化測(cè)試的過程。,,,7.1進(jìn)行自動(dòng)化測(cè)試的適當(dāng)時(shí)機(jī),,并非一律用自動(dòng)化測(cè)試就好,要考慮經(jīng)濟(jì)性、有效性,適當(dāng)?shù)倪M(jìn)行自動(dòng)化測(cè)試。,,7.1.1概述,,當(dāng)對(duì)產(chǎn)品的一些特征來設(shè)計(jì)一系列測(cè)試時(shí),對(duì)每一個(gè)測(cè)試都需要決定是否對(duì)其進(jìn)行自動(dòng)化測(cè)試。,,如何做出一個(gè)合理的決定,假設(shè)如下:,,1.擁有穩(wěn)定的自動(dòng)化測(cè)試技術(shù)支持。,,,2.兩種極端的可能性:一種就是無需人工干預(yù)的完全自動(dòng)化測(cè)試,另一種就是只運(yùn)行一次就廢棄的人工測(cè)試。,,3.自動(dòng)化測(cè)試和手工測(cè)試都可行(但事實(shí)并非如此)。,,,4.測(cè)試是通過外部接口來完成的(黑盒測(cè)試)。,,5.不要求必須進(jìn)行自動(dòng)化測(cè)試。,,6.測(cè)試
3、已經(jīng)設(shè)計(jì)好之后,再?zèng)Q定是否進(jìn)行自動(dòng)化測(cè)試。,,7.有一定的時(shí)間用于完成測(cè)試,并且在這段時(shí)間里完全有可能把測(cè)試做好。,,在決定是否要進(jìn)行自動(dòng)化測(cè)試之前,通常需要考慮如下幾個(gè)主要問題:,,1.同手工測(cè)試相比,只運(yùn)行一次的自動(dòng)化測(cè)試要多付出多少代價(jià)?,,2.自動(dòng)化測(cè)試的生命周期是有限的。那么,這類測(cè)試是否遲早要終止?什么事件將會(huì)導(dǎo)致測(cè)試中止?,,3.在整個(gè)生命周期內(nèi),這次測(cè)試能捕獲到新bug的可能性會(huì)有多大?這些難以預(yù)計(jì)的收益能夠使自動(dòng)化測(cè)試的成本得到補(bǔ)償嗎?,,7.1.2自動(dòng)化測(cè)試的成本,,創(chuàng)建一次自動(dòng)化的測(cè)試所花費(fèi)的時(shí)間要比一次手工測(cè)試所花費(fèi)的時(shí)間多得多。測(cè)試成本因產(chǎn)品的架構(gòu)以及自動(dòng)化測(cè)試的方式
4、不同而異。介紹如下幾種(,費(fèi)用由高至低,):,,通過圖形用戶界面來測(cè)試產(chǎn)品;,,使用GUI捕捉/回放工具來跟蹤測(cè)試與產(chǎn)品之間的交互,同時(shí)建立腳本;,,測(cè)試的是一個(gè)編譯器;,,測(cè)試成本還要考慮測(cè)試時(shí)間、Bug的多少等問題。,,7.1.3自動(dòng)化測(cè)試的生命周期,,測(cè)試的生命周期如下圖7-1所示:,,,,在決定是否進(jìn)行自動(dòng)化測(cè)試之前,必須首先估計(jì)一下,產(chǎn)品的代碼變動(dòng)在什么范圍內(nèi),測(cè)試仍能存活。如果要求代碼不能有太多變動(dòng),要做的測(cè)試最好是非常善于捕獲bug的測(cè)試;而且要求估計(jì)生命周期。,,介于需要被測(cè)試的代碼和測(cè)試之間的代碼稱作中介代碼(intervening code)。,,一、中介代碼的變動(dòng)對(duì)測(cè)試周
5、期的影響,,,中介代碼是使測(cè)試中止的一個(gè)主要原因。,,例如,用戶界面以前要求輸入電話號(hào)碼,現(xiàn)在變?yōu)樘峁┮粋€(gè)可視的電話鍵盤,使用鼠標(biāo)點(diǎn)擊數(shù)字來模擬使用真實(shí)的電話。雖然通過兩種界面向被測(cè)試的代碼傳遞的都是相同的數(shù)據(jù),但是因?yàn)闆]有了提供輸入電話號(hào)碼的地方,自動(dòng)化測(cè)試可能就會(huì)中止。,,為了使測(cè)試免受中介代碼變化的影響,應(yīng)該從以下幾個(gè)方面考慮:,,1、評(píng)估一下中介代碼的改變會(huì)不會(huì)影響測(cè)試。如果絕不會(huì)影響到測(cè)試,使用自動(dòng)測(cè)試就能節(jié)省大量的時(shí)間。,,2、如果中介代碼的變化會(huì)影響到測(cè)試,就必須考慮一下使用測(cè)試庫函數(shù)能夠使測(cè)試不受影響的可能性會(huì)有多大。,,3、假如沒有測(cè)試函數(shù)庫——如果是在捕捉/回放的模式下使用
6、GUI測(cè)試自動(dòng)化工具——不要指望測(cè)試會(huì)不受影響。,,,二、被測(cè)試代碼的改變對(duì)測(cè)試周期的影響,,,,需要判斷一下被測(cè)試的代碼的穩(wěn)定性。,,首先,需要重點(diǎn)考慮代碼的行為。,,其次,考慮功能的增加會(huì)不會(huì)影響測(cè)試。,,,7.1.4自動(dòng)化測(cè)試的價(jià)值,,進(jìn)行自動(dòng)化測(cè)試要解決的問題就是:自動(dòng)化測(cè)試的價(jià)值必須要,超過,所有因此而放棄的手工測(cè)試的價(jià)值。,,考慮問題如下:,,1.測(cè)試代碼的結(jié)構(gòu)要清晰。,,2.測(cè)試通常是用來測(cè)試功能代碼。支撐代碼對(duì)于測(cè)試者來說通常是不可見的。,,3.但功能代碼的改變通常會(huì)改變代碼的行為。因此,極有可能會(huì)使測(cè)試中止,而不是報(bào)告bug。,,4.測(cè)試的價(jià)值主要在于支撐代碼改變以后仍能捕獲
7、bug的能力。,,5.如果我們一點(diǎn)也不了解支撐代碼,無法知道測(cè)試是否能捕獲bug?如何估計(jì)測(cè)試是否有助于我們捕獲bug?,,6.可以認(rèn)為與被測(cè)試的代碼進(jìn)行交互的其他代碼大多數(shù)是支撐代碼,支撐代碼的變化也會(huì)產(chǎn)生自動(dòng)測(cè)試所能捕獲的bug。,,注意,:高價(jià)值的測(cè)試不可能是特征驅(qū)動(dòng)測(cè)試而是任務(wù)驅(qū)動(dòng)測(cè)試。,,一、分析被測(cè)試代碼的結(jié)構(gòu)。,,例子:被測(cè)試的是一段處理從銀行賬戶里提款的代碼。 (,例子詳見教材,),,把被測(cè)試的代碼分成兩部分:,,①功能代碼(feature code),它直接實(shí)現(xiàn)被測(cè)試代碼所完成的功能。測(cè)試會(huì)專門對(duì)其進(jìn)行調(diào)用。功能代碼(support code)可以完成用戶所進(jìn)行的操作(通過使
8、用用戶界面的關(guān)聯(lián)代碼)。,,②支撐代碼(support code),它起到支持功能代碼,,(support code)的作用。測(cè)試代碼會(huì)對(duì)其進(jìn)行調(diào)用,但并沒有針對(duì)這些代碼的特殊測(cè)試。,,,圖7-2 功能代碼和支撐代碼示意圖,,在這里,支撐代碼位于水平線以下。功能代碼位于水平線以上,共有五種不同的功能,我們只針對(duì)其中的兩個(gè)功能進(jìn)行測(cè)試。,,二、被測(cè)試代碼的變化所帶來的影響。,,主要考慮這樣一些問題:,,1.就給定的結(jié)構(gòu)而言,代碼的變化將會(huì)產(chǎn)生什么樣的影響?,,2.什么樣的變化具有測(cè)試價(jià)值?,,假設(shè)一些功能代碼發(fā)生了變化,如圖7-3中灰色圖形所示:,,這種變化極有可能會(huì)導(dǎo)致調(diào)用功能代碼的測(cè)試中止。
9、因此,如果希望使用自動(dòng)化測(cè)試的方法在發(fā)生變化的功能代碼(feature code)中找到bug,就必須終止原有測(cè)試。如果測(cè)試的成本很高,這樣做是很不經(jīng)濟(jì)的。,,為了使原有的測(cè)試行為仍然能夠保留,通常采用的做法是更改支撐代碼(support code)以便能夠支持其他功能代碼的變動(dòng)。請(qǐng)看圖7-4:,圖7-3,圖7-4,,三、支撐代碼的變化對(duì)測(cè)試的影響,,主要從以下兩方面來考慮這個(gè)問題:,,代碼的變化有多少?這些變化會(huì)引入多少bug?,,7.1.5例子,,假設(shè)我正在測(cè)試一個(gè)產(chǎn)品,測(cè)試已經(jīng)完成一半。產(chǎn)品已經(jīng)實(shí)現(xiàn)了主要的功能,但是還需要增加一些輔助功能?,F(xiàn)在我要對(duì)這些主要的功能進(jìn)行測(cè)試。,,測(cè)試過程中
10、,在同如下人員進(jìn)行交流的過程中提出的問題如下:,,程序員,:這些輔助的功能是否有可能需要改變產(chǎn)品的支撐代碼?程序員有可能精心設(shè)計(jì)了支撐代碼,并且考慮堅(jiān)持使用可視化的用戶界面來完善各種功能。如果是這樣的話,那么自動(dòng)化測(cè)試的價(jià)值就不大。,,但是因?yàn)橐庇谕瓿蓽y(cè)試,程序員也可能知道程序的支撐代碼的結(jié)構(gòu)不會(huì)一成不變的。由于大部分工作將會(huì)重復(fù)進(jìn)行,所以可能會(huì)特別需要進(jìn)行自動(dòng)化測(cè)試?;蛘叱绦騿T也不知道支撐代碼是否要改變。,,項(xiàng)目經(jīng)理,:在新版本中,新增的功能是一個(gè)十分重要的部分嗎?如果是這樣的話,由于市場(chǎng)競(jìng)爭激烈,圖形用戶界面有可能改變嗎?以前,用戶界面改動(dòng)有多大?,,為什么會(huì)希望今后的改動(dòng)越少越好?這些
11、變化是為了增加功能,還是用來代替現(xiàn)有的功能?我們需要切實(shí)的估計(jì)一下變動(dòng)的可能性,因?yàn)槿魏巫兓伎赡軙?huì)提高自動(dòng)化測(cè)試的成本,縮短測(cè)試的生命周期。,,了解并熟悉測(cè)試工具的人員,:如何應(yīng)對(duì)產(chǎn)品的變化?什么樣的變化會(huì)使測(cè)試中止?對(duì)于新增加功能的測(cè)試,遇到這些情況的幾率會(huì)有多大?,,一次自動(dòng)化測(cè)試所花費(fèi)的成本相當(dāng)于幾次手工測(cè)試,并且要特別重視測(cè)試價(jià)值的大小和生命周期的長短,這樣做可能不對(duì)。但這都是為了避免犯下災(zāi)難性的錯(cuò)誤,如果自動(dòng)化測(cè)試的成本很高而生命周期很短,我們最好使用手工測(cè)試。,,但是這并不意味著不能使用自動(dòng)化測(cè)試,而是要判斷與衡量。,,在測(cè)試中,要不斷跟蹤bug報(bào)告并加以修改,保留所有和測(cè)試相關(guān)
12、的文檔。從這些資料當(dāng)中,我們常常能夠發(fā)現(xiàn)更為重要的信息。如:,,?什么樣的因素與產(chǎn)生的bug無關(guān)?,,?哪里存在bug?,,?代碼行為的穩(wěn)定性如何?,,經(jīng)過一段時(shí)間,要進(jìn)行自動(dòng)化測(cè)試還是手工測(cè)試的想法就會(huì)逐漸成熟,可能會(huì)形成一個(gè)更大的測(cè)試套。,,7.1.6另外一些需要考慮的問題,,,1.手工測(cè)試有時(shí)候會(huì)發(fā)現(xiàn)一些自動(dòng)化測(cè)試所不能發(fā)現(xiàn)的問題。,,2.盡管人善于發(fā)現(xiàn)問題,但很容易疲勞。并且不能對(duì)結(jié)果做出精確的分析。,,3.由于我們不能保證每次手工輸入的數(shù)據(jù)完全相同。因此,重復(fù)的手工測(cè)試多少會(huì)有些不同,那么就有可能捕獲支撐代碼中的bug。,,4.要求對(duì)配置測(cè)試進(jìn)行更多的自動(dòng)化測(cè)試。,,5.如果在進(jìn)行第
13、一次測(cè)試的時(shí)候就捕獲了bug。表明這部分程序代碼將來有可能發(fā)生變化,要進(jìn)行更多的自動(dòng)化測(cè)試 。,,,,6.如果自動(dòng)化測(cè)試的技術(shù)支持足夠強(qiáng)大,開發(fā)人員很容易就能做回歸測(cè)試,自動(dòng)化測(cè)試也需要比手工測(cè)試快得多,但是并不是所有的公司都具有這樣的自動(dòng)化測(cè)試技術(shù)支持水平。,,7.使用手工測(cè)試的時(shí)候捕獲了bug, 但又不能再現(xiàn)bug時(shí)會(huì)使人很沮喪。,,8.程序更改之后,測(cè)試人員應(yīng)該對(duì)其進(jìn)行檢查。,,9.因?yàn)檫M(jìn)行自動(dòng)化測(cè)試的創(chuàng)建要花費(fèi)一些時(shí)間,因此把第一個(gè)bug提交給程序員所花費(fèi)的時(shí)間要比手工測(cè)試花費(fèi)的時(shí)間長。,,10.把測(cè)試設(shè)計(jì)的有利于進(jìn)行自動(dòng)化測(cè)試,但不善于捕獲bug。,,11.如果產(chǎn)品的行為改變了,自動(dòng)
14、化測(cè)試就有可能會(huì)報(bào)告一些不真實(shí)的bug。,,12.如果自動(dòng)化測(cè)試創(chuàng)建的十分好,能夠有序的運(yùn)行,并且可以改變測(cè)試運(yùn)行的順序。,,13.我們可以在產(chǎn)品需要測(cè)試之前先設(shè)計(jì)測(cè)試。,,14.也許自動(dòng)化測(cè)試的價(jià)值直到下一個(gè)新版本發(fā)布之后才能體現(xiàn)出來。,,,7.2自動(dòng)化測(cè)試和手工測(cè)試比較,,,自動(dòng)化測(cè)試并不能完全取代手工測(cè)試,二者各有優(yōu)缺點(diǎn)。,,,,7.2.1自動(dòng)化測(cè)試與手工測(cè)試的比較,,,表7-1顯示了手工測(cè)試與自動(dòng)化測(cè)試的比較結(jié)果。,,這個(gè)測(cè)試案例中包括1750個(gè)測(cè)試用例和700多個(gè)錯(cuò)誤,。,測(cè)試步驟,手工,,測(cè)試,自動(dòng)化測(cè)試,通過使用工具改善測(cè)試的百分比,測(cè)試計(jì)劃的開發(fā),32,40,-25%,測(cè)試用例
15、的開發(fā),262,117,55%,測(cè)試執(zhí)行,466,23,95%,測(cè)試結(jié)果分析,117,58,50%,錯(cuò)誤狀態(tài)/更正檢測(cè),117,23,80%,產(chǎn)生報(bào)告,96,16,83%,時(shí)間總和,1090,277,75%,表7-1 自動(dòng)化測(cè)試和手工測(cè)試比較,,7.2.2短測(cè)試周期中手工測(cè)試面臨的挑戰(zhàn),,,迭代式的開發(fā)過程已逐漸取代傳統(tǒng)的瀑布式開發(fā),成為了目前最流行的軟件開發(fā)過程。在迭代開發(fā)中強(qiáng)調(diào)在較短的時(shí)間間隔中產(chǎn)生多個(gè)可執(zhí)行、可測(cè)試的軟件版本,這就意味著測(cè)試人員也必須為每次迭代產(chǎn)生的軟件系統(tǒng)進(jìn)行測(cè)試。,,隨著軟件開發(fā)過程的進(jìn)展,測(cè)試工作越來越繁重,如果使用手工測(cè)試的方法,將很難保證測(cè)試工作的進(jìn)度和質(zhì)量。,
16、,,7.2.3手工測(cè)試的問題,,手工測(cè)試的方法是根本不可能符合軟件快速開發(fā)的要求的。大公司用自動(dòng)化測(cè)試因?yàn)樗m合自動(dòng)化測(cè)試的特點(diǎn)和有較高的投資回報(bào)率。,,,,1、針對(duì)產(chǎn)品型項(xiàng)目的測(cè)試,,2、針對(duì)增量式開發(fā)、持續(xù)集成項(xiàng)目的測(cè)試,,3、針對(duì)能夠自動(dòng)編譯、自動(dòng)發(fā)布的系統(tǒng)的測(cè)試,,4、回歸測(cè)試,,5、需要多次重復(fù)、機(jī)械性動(dòng)作的測(cè)試,,6、需要頻繁運(yùn)行的測(cè)試,,7、將煩瑣的任務(wù)轉(zhuǎn)化為自動(dòng)化測(cè)試,,,7.2.4自動(dòng)化測(cè)試的問題,,自動(dòng)化測(cè)試并不能完全取代手工測(cè)試。例如:在下面幾種情況下就不適合使用自動(dòng)化測(cè)試。,,,定制型項(xiàng)目(一次性的),,項(xiàng)目周期很短的項(xiàng)目,,涉及業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象 關(guān)于美觀、聲音、易
17、用性的測(cè)試,,很少運(yùn)行的測(cè)試,如:一個(gè)月只運(yùn)行一次的測(cè)試。,,測(cè)試的軟件不穩(wěn)定,,涉及物理交互的測(cè)試,,,7.2.5自動(dòng)化測(cè)試的優(yōu)點(diǎn),,,,1、對(duì)程序的新版本運(yùn)行己有的測(cè)試,即回歸測(cè)試。,,2、可以運(yùn)行更多更頻繁的測(cè)試。,,3、可以進(jìn)行一些手工測(cè)試難以完成或不可能完成的測(cè)試。,,4、充分地利用資源。,,5、測(cè)試具有一致性和可重復(fù)性。,,6、測(cè)試具有復(fù)用性。,,7、縮短軟件發(fā)布的時(shí)間。,,8、增強(qiáng)軟件的可靠性。,,7.2.6自動(dòng)化測(cè)試的缺點(diǎn),,,1、自動(dòng)化測(cè)試不能取代手工測(cè)試, 測(cè)試主要還是要靠人工的。,,2、新缺陷越多,自動(dòng)化測(cè)試失敗的幾率就越大。,,3、工具本身不具有想象力,,4、技術(shù)問題、
18、組織問題、腳本維護(hù),,5、測(cè)試工具與其他軟件的互操作性,,,7.3自動(dòng)化測(cè)試工具的選擇和使用,,7.3.1 應(yīng)用自動(dòng)化測(cè)試工具的目的,,,一般而言,在測(cè)試過程中應(yīng)用自動(dòng)化測(cè)試工具主要為了以下幾,個(gè)目的:,,,1、 提高測(cè)試質(zhì)量; 2、 減少測(cè)試過程中重復(fù)的手工勞動(dòng),提高測(cè)試效率; 3、 實(shí)現(xiàn)測(cè)試自動(dòng)化,充分利用測(cè)試資源。,,,7.3.2自動(dòng)化測(cè)試工具的概要介紹,,根據(jù)軟件生命周期中的定義,可以把自動(dòng)化測(cè)試工具分為白盒測(cè)試工具、黑盒測(cè)試工具和測(cè)試管理工具三大類。這些工具和軟件開發(fā)過程中相關(guān)活動(dòng)的關(guān)系如圖7-6所示:,,圖7-6 測(cè)試工具與開發(fā)過程關(guān)系圖,,一、白盒測(cè)試工具,,白盒測(cè)試工具
19、一般是針對(duì)代碼進(jìn)行測(cè)試的工具,測(cè)試中發(fā)現(xiàn)的缺陷可以定位到代碼級(jí),根據(jù)測(cè)試原理的不同,又可以分為靜態(tài)測(cè)試工具和動(dòng)態(tài)測(cè)試工具。,,1、 靜態(tài)測(cè)試工具,,所謂靜態(tài)測(cè)試就是不運(yùn)行測(cè)試而直接對(duì)代碼進(jìn)行分析的測(cè)試。,,靜態(tài)測(cè)試工具的代表有,Telelogic公司的Logiscope軟件、PR公司的PRQA軟件。,,,,2、 動(dòng)態(tài)測(cè)試工具,,動(dòng)態(tài)測(cè)試主要采用“插樁”的方式,即向代碼生,,成的可執(zhí)行文件中插入一些監(jiān)測(cè)代碼,運(yùn)行框架程序,統(tǒng)計(jì)程序運(yùn)行時(shí)的數(shù)據(jù),可以針對(duì)所有類的成員函數(shù)進(jìn)行測(cè)試,也可以只針對(duì)類的公共接口函數(shù)進(jìn)行測(cè)試。,,(1)商業(yè)性的白盒測(cè)試工具,比較有代表性的如:compuware公司的Nume
20、ga系列工具和ParaSoft的JavaSolution以及C/C++ Solution系列。,,(2)非商業(yè)性的白盒測(cè)試工具,主要以Xunit系列為代表的測(cè)試框架工具。,,二、黑盒測(cè)試工具,,黑盒測(cè)試工具包括功能測(cè)試工具和性能測(cè)試工具。,,黑盒測(cè)試工具的代表有Rational公司的TeamTest、Robot,Compuware公司的QACenter,另外,專用于性能測(cè)試的工具包括有Radview公司的WebLoad、Microsoft公司的WebStress等工具。,,三、測(cè)試管理工具,,測(cè)試管理工具用于對(duì)測(cè)試進(jìn)行管理。一般而言,,,測(cè)試管理工具主要對(duì)軟件缺陷、測(cè)試計(jì)劃、測(cè)試用,,例、測(cè)試
21、實(shí)施進(jìn)行管理。,,,*,缺陷跟蹤工具是管理工具使用最多的,*,。,,測(cè)試管理工具的代表有Rational公司的Test Manager、,,Compureware公司的TrackRecord等軟件。,,如何選擇缺陷跟蹤工具?方法如下:,,1.使用word、excel等類型的平面文檔;,,2.自行設(shè)計(jì)開發(fā)一套管理軟件;,,3.購買商業(yè)性的軟件;,,4.下載一套適合自己的開源軟件,自行配置和維護(hù)。,,四、 其他自動(dòng)化測(cè)試工具,,還有一些專用的自動(dòng)化測(cè)試工具:針對(duì)數(shù)據(jù)庫測(cè)試的TestBytes,對(duì)應(yīng)用性能進(jìn)行優(yōu)化的EcoScope等工具。,,7.3.3自動(dòng)化測(cè)試工具的選擇,,,在考慮選用工具的時(shí)候,
22、建議從以下幾個(gè)方面來權(quán)衡和選擇:,,1、 功能,,**除了基本的功能之外,以下的功能需求也可以作為選擇自動(dòng)化測(cè)試工具的參考:,,1) 報(bào)表功能;,,2) 自動(dòng)化測(cè)試工具的集成能力;,,3) 操作系統(tǒng)和開發(fā)工具的兼容性;,,2、價(jià)格,,3、對(duì)自動(dòng)化測(cè)試工具進(jìn)行評(píng)估。主要從以下幾點(diǎn)來考慮:,,在使用了多種工具后對(duì)今后要采用的工具進(jìn)行期盼。,,自動(dòng)化測(cè)試工具的實(shí)際性能是否和自動(dòng)化測(cè)試工具文檔中聲明的一致。,,〈3〉總結(jié)試用自動(dòng)化測(cè)試工具的結(jié)果,得出評(píng)估報(bào)告,。,,,4、引入自動(dòng)化測(cè)試工具的目的是使測(cè)試自動(dòng)化,,7.3.4自動(dòng)化測(cè)試工具在測(cè)試過程中的應(yīng)用,,很多引入測(cè)試軟件的公司并沒有能夠讓測(cè)試軟件發(fā)
23、揮應(yīng)有的作用,其原因主要有三個(gè)方面,:,,1、沒有考慮公司的實(shí)際情況,盲目引入自動(dòng)化測(cè)試工具,,,,2、沒有形成一個(gè)良好的使用自動(dòng)化測(cè)試工具的環(huán)境,,,3、沒有進(jìn)行有效的自動(dòng)化測(cè)試工具的培訓(xùn),,,7.4性能測(cè)試實(shí)例,,本節(jié)列舉了一個(gè)使用LoadRunner進(jìn)行的性能測(cè)試實(shí)例。,,,7.4.1 LoadRunner 簡介,,LoadRunner? 是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。通過模擬成千上萬名用戶和實(shí)施實(shí)時(shí)性能監(jiān)測(cè)來確認(rèn)和查找問題,LoadRunner能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試。通過使用LoadRunner,企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。其主要功能如
24、下:,,1、輕松創(chuàng)建虛擬用戶,,2、創(chuàng)建真實(shí)的負(fù)載,,,,,3、定位性能問題,,4、分析結(jié)果精確定位問題所在,,,7.4.2案例分析,,,該案例仍然是針對(duì)電廠兩票管理系統(tǒng)的性能測(cè)試,電廠工作人員可以使用該管理系統(tǒng)開出工作票和操作票。假設(shè)開設(shè)100個(gè)賬號(hào)和密碼可供100個(gè)工作人員同時(shí)開出工作票或操作票。要求,每臺(tái)機(jī)器只能由一個(gè)用戶使用,每個(gè)用戶只能使用各自不同的賬號(hào)登錄該管理系統(tǒng),開票結(jié)束后,要求把工作票或操作票內(nèi)容存檔,若在規(guī)定的時(shí)間內(nèi)沒有存檔,則系統(tǒng)強(qiáng)制存檔。,,但是,一般測(cè)試部門不可能有100臺(tái)機(jī)器同時(shí)進(jìn)行測(cè)試的。所以,使用Loadrunner7.51模擬IP地址,修改腳本來協(xié)助測(cè)試。但是
25、,為了保證測(cè)試結(jié)果,建議使用所有可用的機(jī)器進(jìn)行復(fù)測(cè),因?yàn)橛袝r(shí)候測(cè)試工具是不可以完全信賴的。,,現(xiàn)場(chǎng)測(cè)試環(huán)境:,硬件:100臺(tái)PC機(jī),一個(gè)Web服務(wù)器,,操作系統(tǒng):Windows 2000 Server,,測(cè)試工具:Loadrunner 8.0 瀏覽器:IE5.0和IE6.0 測(cè)試人員:質(zhì)控小組4人,執(zhí)行現(xiàn)場(chǎng)測(cè)試 項(xiàng)目小組22人,提供現(xiàn)場(chǎng)環(huán)境 技術(shù)小組各1人,提供技術(shù)支持,,,測(cè)試要求:,100個(gè)用戶擁有獨(dú)立IP地址,不同的用戶及密碼登錄,開票操作完成后各自同時(shí)把工作票或操作票內(nèi)容存檔。,,測(cè)試內(nèi)容:,100個(gè)用戶以不同的用戶名和密
26、碼登錄該管理系統(tǒng)。開票完成后,把工作票或操作票內(nèi)容存檔。測(cè)試系統(tǒng)是否能正常開票以及正確存檔。,,,測(cè)試方案,: 1、 完全50臺(tái)實(shí)際的PC機(jī)進(jìn)行現(xiàn)場(chǎng)測(cè)試。,,(1) 準(zhǔn)備工作,并做計(jì)劃。第一輪測(cè)試執(zhí)行三遍,設(shè)定50個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,第一遍全部使用IE5.0,第二遍25臺(tái)使用IE5.0,25臺(tái)使用IE6.0,第三遍全部使用IE6.0,,(1) 準(zhǔn)備工作,并做計(jì)劃。第一輪測(cè)試執(zhí)行三遍,設(shè)定50個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,第一遍全部使用IE5.0,第二遍25臺(tái)使用IE5.0,25臺(tái)使用IE6.0,第三遍全部使用IE6.0(2) At 9:00 ,50個(gè)用戶同時(shí)登
27、錄系統(tǒng)(3) At 9:05 ,50個(gè)用戶同時(shí)提交(4) 分別記錄第一輪測(cè)試(三遍)的結(jié)果(5) 第二輪測(cè)試準(zhǔn)備工作,設(shè)定30個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,另外20個(gè)用戶延時(shí)5分鐘提交,全部使用IE5.0(6) At 9:15 ,50個(gè)用戶同時(shí)登錄系統(tǒng)(7) At 9:20 ,30個(gè)用戶同時(shí)提交(8) At 9:25 ,剩余20個(gè)用戶同時(shí)提交(9) 記錄第二輪測(cè)試結(jié)果(10) 第三輪測(cè)試準(zhǔn)備工作,設(shè)定30個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,另外20個(gè)用戶延時(shí)5分鐘提交,全部使用IE6.0,,(11) At 9:15 ,50個(gè)用戶同時(shí)登錄系統(tǒng) (12) At 9
28、:20 ,30個(gè)用戶同時(shí)提交 (13) At 9:25 ,剩余20個(gè)用戶同時(shí)提交 (14) 記錄第三輪測(cè)試結(jié)果 (15) 第四輪測(cè)試準(zhǔn)備工作,設(shè)定30個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,另外20個(gè)用戶延時(shí)5分鐘提交,正常提交用戶使用IE5.0,延時(shí)提交用戶使用IE6.0 (16) At 9:15 ,50個(gè)用戶同時(shí)登錄系統(tǒng) (17) At 9:20 ,30個(gè)用戶同時(shí)提交 (18) At 9:25 ,剩余20個(gè)用戶同時(shí)提交 (19) 記錄第四輪測(cè)試結(jié)果 (20) 第五輪測(cè)試準(zhǔn)備工作,設(shè)定30個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,另外20個(gè)用戶延時(shí)5分鐘提交,正
29、常提交用戶使用IE6.0,延時(shí)提交用戶使用IE5.0 (21) At 9:15 ,50個(gè)用戶同時(shí)登錄系統(tǒng) (22) At 9:20 ,30個(gè)用戶同時(shí)提交,,(23) At 9:25 ,剩余20個(gè)用戶同時(shí)提交 (24) 記錄第五輪測(cè)試結(jié)果 (25) 第六輪測(cè)試準(zhǔn)備工作,設(shè)定30個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,另外20個(gè)用戶延時(shí)5分鐘提交,正常提交用戶其中20個(gè)使用IE5.0,10個(gè)使用IE6.0,延時(shí)提交用戶使用IE5.0 (26) At 9:15 ,50個(gè)用戶同時(shí)登錄系統(tǒng) (27) At 9:20 ,30個(gè)用戶同時(shí)提交 (28) At 9:25 ,剩余20個(gè)
30、用戶同時(shí)提交 (29) 記錄第六輪測(cè)試結(jié)果 (30) 第七輪測(cè)試準(zhǔn)備工作,設(shè)定25個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,另外25個(gè)用戶分兩次分別延時(shí)5、15分鐘提交,,(31) At 9:35 ,50個(gè)用戶同時(shí)登錄系統(tǒng),,(32) At 9:40 ,25個(gè)用戶同時(shí)提交 (33) At 9:45 ,剩余的其中15個(gè)用戶同時(shí)提交 (34) At 9:55 ,其他10個(gè)用戶同時(shí)提交 (35) 記錄第七輪測(cè)試結(jié)果,參見第二輪測(cè)試-第六輪測(cè)試過程分別對(duì)IE5.0和IE6.0的情況進(jìn)行測(cè)試 (36) 第八輪測(cè)試準(zhǔn)備工作,設(shè)定其中25個(gè)用戶開出的工作票或操作票內(nèi)容不提交,由系統(tǒng)強(qiáng)行
31、提交 (37) At 10:10 ,50個(gè)用戶同時(shí)登錄系統(tǒng) (38) At 10:15 ,25個(gè)用戶同時(shí)提交 (39) 其余用戶的內(nèi)容由系統(tǒng)強(qiáng)行提交 (40) 記錄第八輪測(cè)試結(jié)果,參見第二輪測(cè)試-第六輪,測(cè)試過程分別對(duì)IE5.0和IE6.0的情況進(jìn)行測(cè)試,,,(41) 第九輪測(cè)試準(zhǔn)備工作,設(shè)定其中25個(gè)用戶開出的工作票或操作票內(nèi)容同時(shí)提交,15個(gè)用戶延時(shí)5分鐘提交,其余用戶由系統(tǒng)強(qiáng)行提交,,(42) At 10:25 ,50個(gè)用戶同時(shí)登錄系統(tǒng) (43) At 10:30 ,25個(gè)用戶同時(shí)提交 (44) At 10:35 ,剩余的其中15個(gè)用戶同時(shí)提交 (45) 剩余
32、10個(gè)用戶系統(tǒng)強(qiáng)制提交 (46) 記錄第九輪測(cè)試結(jié)果,參見第二輪測(cè)試-第六輪測(cè)試過程分別對(duì)IE5.0和IE6.0的情況進(jìn)行測(cè)試,,,2、模擬50個(gè)用戶進(jìn)行測(cè)試。其中,18臺(tái)是PC機(jī),另外32臺(tái)機(jī)器的IP地址是Loadrunner模擬出來的。,,(1) 在18臺(tái)實(shí)際的PC機(jī)中抽取其中一臺(tái)虛擬32個(gè)IP地址,包括自身的IP地址,這臺(tái)機(jī)器上共33個(gè)IP地址,這33個(gè)IP地址只能全部使用IE5.0或者全部使用IE6.0 (2) 其余17臺(tái)實(shí)際的PC機(jī)分別由17個(gè)人操作,另外一臺(tái)機(jī)器由一位質(zhì)控小組人員操作,,(3) 對(duì)于異常情況,延時(shí)提交和強(qiáng)制提交全部由實(shí)際的機(jī)器來模擬 (4) 其余過程參見
33、1,,,3、模擬50個(gè)用戶進(jìn)行測(cè)試。其中,10臺(tái)是PC機(jī),另外40臺(tái)機(jī)器的IP地址是用Loadrunner模擬出來的。,(1) 在10臺(tái)實(shí)際的PC機(jī)中抽取其中一臺(tái)虛擬40個(gè)IP地址,包括自身的IP地址,該機(jī)器上共41個(gè)IP地址,這41個(gè)IP地址只能全部使用IE5.0或者全部使用IE6.0 (2) 其余9臺(tái)實(shí)際的PC機(jī)分別由9個(gè)人操作,另外一臺(tái)機(jī)器由一位質(zhì)控小組人員操作 (3) 對(duì)于異常情況,延時(shí)提交和強(qiáng)制提交全部由實(shí)際的機(jī)器來模擬 (4) 其余過程參見1,,,4、模擬75個(gè)用戶進(jìn)行測(cè)試。其中,35臺(tái)是PC機(jī),另外40臺(tái)機(jī)器的IP地址是用Loadrunner模擬,出來的。,,(1)
34、在35臺(tái)實(shí)際的PC機(jī)中抽取其中三臺(tái)分別虛擬13、13、14個(gè)IP地址,這40個(gè)IP地址只能全部使用IE5.0或者全部使用IE6.0 (2) 其余32臺(tái)實(shí)際的PC機(jī)分別由32個(gè)人操作,另外三臺(tái)機(jī)器由兩位質(zhì)控小組人員操作 (3) 對(duì)于異常情況,延時(shí)提交和強(qiáng)制提交全部由實(shí)際的機(jī)器來模擬 (4) 其余過程參見1,,,5、模擬100臺(tái)用戶進(jìn)行測(cè)試。其中,40臺(tái)是PC機(jī),另外60臺(tái)機(jī)器的IP地址是用分別用四臺(tái)實(shí)際的PC機(jī)模擬出來的。記錄測(cè)試結(jié)果。,(1) 在40臺(tái)實(shí)際的PC機(jī)中抽取其中四臺(tái)分別虛擬15個(gè)IP地址,這64個(gè)IP地址只能全部使用IE5.0或者全部使用IE6.0 (2) 其余36
35、臺(tái)實(shí)際的PC機(jī)分別由36個(gè)人操作,另外四臺(tái)機(jī)器由四位質(zhì)控小組人員操作,,(3) 對(duì)于異常情況,延時(shí)提交和強(qiáng)制提交全部由實(shí)際的機(jī)器來模擬 (4) 其余過程參見1,,,6、 對(duì)5中所述情況重復(fù)測(cè)試兩次。,,7、 為了保證結(jié)果的正確性,完全100臺(tái)實(shí)際的PC機(jī)進(jìn)行現(xiàn)場(chǎng)測(cè)試。過程參見1,,測(cè)試過程:,,1、 一臺(tái)PC機(jī)上創(chuàng)建15個(gè)虛擬的IP地址。首先,啟動(dòng)IP Wizard,如下:開始程序->Loadrunner->Tools->IP Wizard點(diǎn)擊“Add”,添加你計(jì)劃虛擬的IP地址。但是注意不能添加已經(jīng)被占用的IP地址。 2、 啟動(dòng)Virtual User Generator,并錄
36、制腳本,由于100個(gè)用戶的賬號(hào)和密碼各不相同,所以,要修改腳本,設(shè)置參數(shù)。,,3、 啟動(dòng)Loadrunner Controller,先將剛才保存的腳本添加進(jìn)來。然后點(diǎn)擊“Scenario”菜單,激活其中的“Enable IP Spoofer”。 4、點(diǎn)擊屏幕右方的“Generators”,添加已經(jīng)建立的IP,然后connect建立連接。 5、對(duì)連接起來的不同用戶(IP地址)分配不同的腳本,在Controller中的“design”中,點(diǎn)擊“Load Generators”其中,每個(gè)腳本有一個(gè)用戶執(zhí)行。 6、 執(zhí)行Scenario。,,LoadRunner內(nèi)含集成的實(shí)時(shí)監(jiān)
37、測(cè)器,在負(fù)載測(cè)試過程的任何時(shí)候,都可以觀察到應(yīng)用系統(tǒng)的運(yùn)行性能。,,當(dāng)測(cè)試運(yùn)行結(jié)束后,LoadRunner 收集匯總所有的測(cè)試數(shù)據(jù),提供高級(jí)分析和匯報(bào)數(shù)據(jù),這樣便能迅速查找到性能問題并追溯原,由。,,,經(jīng)驗(yàn)總結(jié),,,1.測(cè)試個(gè)案,(test case ,或稱為測(cè)試用例),的生成,,2.科學(xué)合理的安排和控制測(cè)試的執(zhí)行,,3.測(cè)試結(jié)果與標(biāo)準(zhǔn)輸出的對(duì)比,,4.不吻合的測(cè)試結(jié)果的分析、分類、記錄和通報(bào),,5.總體測(cè)試狀況的統(tǒng)計(jì)、報(bào)表的產(chǎn)生,,6.自動(dòng)測(cè)試與開發(fā)中產(chǎn)品每日構(gòu)建的配合,,7.圖形界面的測(cè)試,,,,本章小結(jié),,,1.由于進(jìn)行自動(dòng)化測(cè)試,我們要放棄一些手工測(cè)試,所以在衡量自動(dòng)化測(cè)試的成本時(shí)要考
38、慮到我們因此放棄多少手工測(cè)試,少捕獲了多少bug。,,2.應(yīng)該針對(duì)特殊的目的來設(shè)計(jì)測(cè)試,然后針對(duì)一個(gè)或多個(gè)功能的重要方面進(jìn)行測(cè)試。,,3.要正確估量自動(dòng)化測(cè)試腳本開發(fā)和維護(hù)工作量,將關(guān)鍵而有許多次執(zhí)行的測(cè)試用例自動(dòng)化。,,4.一般來說,手工測(cè)試可以取代任何類型、功能的自動(dòng)測(cè)試,但在多用戶并發(fā)等情況下,手工測(cè)試是很難實(shí)現(xiàn)的,這時(shí)自動(dòng)測(cè)試就發(fā)揮作用了。另外,使用自動(dòng)測(cè)試工具可以減少很多重復(fù)的手工勞動(dòng),精確復(fù)制缺陷,提高測(cè)試覆蓋率,從而提高產(chǎn)品質(zhì)量。,,,5.應(yīng)該根據(jù)企業(yè)的特點(diǎn)來選擇測(cè)試工具。首先,對(duì)商業(yè)化的測(cè)試工具進(jìn)行評(píng)估;然后,在公司的實(shí)際項(xiàng)目中試用,通過這種方法來檢驗(yàn)工具在特定的環(huán)境下是否具有
39、供應(yīng)商所宣傳的特性,同時(shí)考察代理商的技術(shù)支持水準(zhǔn),這對(duì)將來工具的大規(guī)模應(yīng)用非常重要。,,6.雖然測(cè)試工具的應(yīng)用可以提高測(cè)試的質(zhì)量、測(cè)試的效率,但要成功實(shí)施自動(dòng)化測(cè)試,測(cè)試工作就必須遵從系統(tǒng)的、結(jié)構(gòu)化的和循序漸進(jìn)的觀念來進(jìn)行。,,,,習(xí) 題,,1、自動(dòng)化軟件測(cè)試應(yīng)該考慮哪些因素?,,2、簡述自動(dòng)化測(cè)試和手工測(cè)試的優(yōu)缺點(diǎn)。,,3、自動(dòng)化測(cè)試工具大致可以分為幾類,并舉例說明幾種與之相應(yīng)的測(cè)試工具?,,4、簡述應(yīng)用自動(dòng)化測(cè)試工具的目的?,,5、選擇測(cè)試工具時(shí)主要應(yīng)該從哪幾個(gè)方面進(jìn)行考慮?,,6、使用LoadRunner對(duì)本校網(wǎng)站進(jìn)行壓力測(cè)試,判斷此網(wǎng)站能否在同一時(shí)間相應(yīng)大量用戶,得出測(cè)試結(jié)果。,,
40、,F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQi
41、TlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-
42、A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdO
43、gSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v
44、(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(x+B2E6H9KcOf
45、RiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(
46、x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOkVnZq$t*x-A1D5G8KbNeQ
47、iTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSjVnYq$t*w
48、-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0B3F6IaLd
49、OgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z
50、0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOf
51、RiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0
52、B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQ
53、iTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!tA2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2
54、E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhS
55、kWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D,,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅(jiān)決打好反腐敗斗爭攻堅(jiān)戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會(huì)上和基層單位調(diào)研座談會(huì)上的發(fā)言材料
- 總工會(huì)關(guān)于2025年維護(hù)勞動(dòng)領(lǐng)域政治安全的工作匯報(bào)材料
- 基層黨建工作交流研討會(huì)上的講話發(fā)言材料
- 糧食和物資儲(chǔ)備學(xué)習(xí)教育工作部署會(huì)上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計(jì)劃
- 檢察院政治部關(guān)于2025年工作計(jì)劃
- 辦公室主任2025年現(xiàn)實(shí)表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項(xiàng)規(guī)定精神學(xué)習(xí)教育工作部署會(huì)議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動(dòng)員部署會(huì)上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會(huì)上的發(fā)言材料
- 國企黨委關(guān)于推動(dòng)基層黨建與生產(chǎn)經(jīng)營深度融合工作情況的報(bào)告材料
- 副書記在2025年工作務(wù)虛會(huì)上的發(fā)言材料2篇
相關(guān)資源
更多