版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件測試測試的基本理論及方法自動化性能和壓力測試測試的基本理論及方法對軟件測試的誤解如何理解軟件測試軟件測試的定義軟件測試的對象軟件測試分類和比較軟件測試的目的軟件測試組織軟件測試規(guī)范軟件測試的內(nèi)容和技術(shù)WEB應(yīng)用測試對軟件測試的誤解如果發(fā)布出去的軟件有質(zhì)量問題,那是軟件測試人員的錯.軟件測試技術(shù)要求不高,至少比編程容易多了.軟件測試隨便找一個能力差的人就能做.有時間就多測試一些,來不及就少測試一些.軟件測試是測試人員的事,與開發(fā)人員無關(guān).設(shè)計-實現(xiàn)-測試,軟件測試是開發(fā)后期的一個階段如何理解軟件測試軟件測試是一種有效的提高軟件質(zhì)量的手段,但即使在投入上有所保證,測試也不能百分為百發(fā)現(xiàn)所有質(zhì)量隱患.況且軟件質(zhì)量并不僅僅是測試出來的.很多人認(rèn)為軟件測試就是運(yùn)行一下軟件,看看結(jié)果對不對.但實際上,如何在有限的投入下,提高軟件測試的效率和產(chǎn)出是一件很見功底的事.好的測試人員不僅要掌握各種測試技術(shù),還要具備豐富的編程經(jīng)驗和對BUG的敏感.測試的復(fù)雜之處,除了測試技術(shù)問題之外,還有測試管理問題.測試不是可有可無,隨心所欲的.規(guī)范化的軟件開發(fā)需要對軟件測試早做計劃,分配必要的時間,人力和財力等資源,并將其作為項目管理的一個部分加以控制和協(xié)調(diào).開發(fā)和測試是軟件項目相輔相成的兩個過程,人員間的交流,協(xié)作和配合是提高整體效率的重要因素.軟件產(chǎn)品開發(fā)完畢,再進(jìn)行測試的觀念是有悖于生命周期理論的.軟件產(chǎn)品質(zhì)量問題越晚發(fā)現(xiàn),修復(fù)的代價越大.需求設(shè)計編程內(nèi)部測試外部測試發(fā)布修正BUG的代價一些常識和經(jīng)驗之談測試能提高軟件的質(zhì)量,但是提高質(zhì)量不能依賴測試。
測試只能證明缺陷存在,不能證明缺陷不存在?!皬氐椎販y試”難以成為現(xiàn)實,要考慮時間、費(fèi)用等限制,不允許無休止地測試。我們應(yīng)當(dāng)祈禱:軟件的缺陷在產(chǎn)品被淘汰之前一直沒有機(jī)會發(fā)作。測試的主要困難是不知道如何進(jìn)行有效地測試,也不知道什么時候可以放心地結(jié)束測試。每個開發(fā)人員應(yīng)當(dāng)測試自己的程序(份內(nèi)之事),但是不能作為該程序已經(jīng)通過測試的依據(jù)(所以項目需要獨(dú)立測試人員)。80-20原則:80%的缺陷聚集在20%的模塊中,經(jīng)常出錯的模塊改錯后還會經(jīng)常出錯測試應(yīng)當(dāng)循序漸進(jìn),不要企圖一次性干完,注意“欲速則不達(dá)”。軟件測試的定義軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯誤的過程.軟件測試不等于程序測試.軟件測試貫穿于軟件定義和開發(fā)的整個期間.需求分析,概要設(shè)計,詳細(xì)設(shè)計,以及程序編碼等各個階段所得到的文檔,包括需求規(guī)格說明,概要設(shè)計規(guī)格說明,詳細(xì)設(shè)計規(guī)格說明以及源程序,都是軟件測試的對象.軟件測試的對象軟件生存各個階段間的確認(rèn)和驗證
軟件配置:包括軟件需求規(guī)格說明、軟件設(shè)計規(guī)格說明、源代碼等;
測試配置:包括測試計劃、測試用例、測試驅(qū)動程序等。實際上,在整個軟件工程過程中,測試配置只是軟件配置的一個子集。
測試工具:為提高軟件測試效率,可使用測試工具支持測試工具。例如:測試數(shù)據(jù)自動生成程序、測試結(jié)果分析程序等。測試的目的測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今的錯誤的測試.測試的種類名稱說明黑盒測試基于軟件需求,而不是基于軟件內(nèi)部設(shè)計和程序?qū)崿F(xiàn)的測試方式。白盒測試基于軟件內(nèi)部設(shè)計和程序?qū)崿F(xiàn)的測試方式。單元測試主要測試軟件模塊的源代碼。一般由開發(fā)人員而非獨(dú)立測試人員來執(zhí)行,因為測試者需要懂得該單元的設(shè)計與程序?qū)崿F(xiàn),測試者可能需要編寫額外的測試驅(qū)動程序。集成測試將一些“構(gòu)件”集成一起時,測試它們能否正常運(yùn)行。這里“構(gòu)件”可以是程序模塊、客戶機(jī)-服務(wù)器程序等等。功能測試測試軟件的功能是否符合功能性需求,通常采用黑盒測試方式。一般由獨(dú)立測試人員執(zhí)行。系統(tǒng)測試測試軟件系統(tǒng)是否符合所有需求,包括功能性需求與非功能性需求。一般由獨(dú)立測試人員執(zhí)行,通常采用黑盒測試方式。回歸測試指錯誤被修正后或軟件功能、環(huán)境發(fā)生變化后進(jìn)行的重新測試?;貧w測試的困難在于不好確定哪些內(nèi)容應(yīng)當(dāng)被重新測試。驗收測試由客戶或最終用戶執(zhí)行,測試軟件系統(tǒng)是否符合需求規(guī)格說明書。名稱說明負(fù)載測試測試軟件系統(tǒng)的最大負(fù)載,超出此負(fù)載軟件可能會失常。壓力測試概念上與負(fù)載測試相似,叫法不同。性能測試測試軟件在各種狀況下的性能,如在正?;蜃畲筘?fù)載下的狀況。易用性測試測試軟件是否易用,主觀性比較強(qiáng)。一般要根據(jù)很多用戶的測試反饋信息,才能評價易用性。安裝與反安裝測試測試軟件在“全部、部分、升級”等狀況下的安裝/反安裝過程。恢復(fù)測試測試該系統(tǒng)從故障中恢復(fù)過來的能力。安全性測試測試該系統(tǒng)防止非法侵入的能力。兼容性測試測試該系統(tǒng)與其它軟件硬件兼容的能力。比較測試通過與同類產(chǎn)品比較,考察該系統(tǒng)的優(yōu)點、缺點。Alpha測試一種先期的用戶測試,此時系統(tǒng)剛剛開發(fā)完成。Beta測試一種后期的用戶測試,此時系統(tǒng)已經(jīng)通過內(nèi)部測試,大部分錯誤已經(jīng)改正,即將正式發(fā)行。測試的分類與比較測試方式白盒測試:關(guān)心軟件內(nèi)部設(shè)計和程序?qū)崿F(xiàn),主要測試依據(jù)是設(shè)計文檔黑盒測試:不關(guān)心軟件內(nèi)部,只關(guān)心輸入輸出,主要測試依據(jù)是需求文檔測試階段單元測試、集成測試、系統(tǒng)測試、驗收測試。是“從小到大”、“由內(nèi)至外”、“循序漸進(jìn)”的測試過程,體現(xiàn)了“分而治之”的思想。
單元測試的粒度最小,一般由開發(fā)小組采用白盒方式來測試,主要測試單元是否符合“設(shè)計”。
集成測試界于單元測試和系統(tǒng)測試之間,起到“橋梁作用”,一般由開發(fā)小組采用白盒加黑盒的方式來測試,既要驗證“設(shè)計”又要驗證“需求”。
系統(tǒng)測試的粒度最大,一般由獨(dú)立測試小組采用黑盒方式來測試,主要測試系統(tǒng)是否符合“需求規(guī)格說明書”。
驗收測試與系統(tǒng)測試非常相似,主要區(qū)別是測試人員不同,驗收測試由用戶執(zhí)行。
開發(fā)與測試的V型關(guān)系如果軟件開發(fā)過程采用嚴(yán)格的瀑布模型,那么開發(fā)與測試有“V”型的對應(yīng)關(guān)系。需求開發(fā)
高層設(shè)計詳細(xì)設(shè)計編程單元測試集成測試系統(tǒng)測試驗收測試測試內(nèi)容接口與路徑測試。
功能測試、健壯性測試、性能測試、用戶界面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試…測試階段
主要依據(jù)
測試人員、測試方式
主要測試內(nèi)容
單元測試系統(tǒng)設(shè)計文檔由開發(fā)小組執(zhí)行白盒測試
接口測試、路徑測試
集成測試系統(tǒng)設(shè)計文檔需求文檔由開發(fā)小組執(zhí)行白盒測試和黑盒測試
接口測試、路徑測試功能測試、性能測試
系統(tǒng)測試需求文檔由獨(dú)立測試小組執(zhí)行黑盒測試
功能測試、健壯性測試、性能測試、用戶界面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試
驗收測試需求文檔由用戶執(zhí)行黑盒測試
黑盒測試與白盒測試的比較測試方式特征依據(jù)測試人員測試驅(qū)動程序黑盒測試只關(guān)心軟件的外部表現(xiàn),不關(guān)心內(nèi)部設(shè)計與實現(xiàn)。軟件需求任何人(包括開發(fā)人員、獨(dú)立測試人員和用戶)一般無需編寫額外的測試驅(qū)動程序白盒測試關(guān)注軟件的內(nèi)部設(shè)計與實現(xiàn),要跟蹤源代碼的運(yùn)行。設(shè)計文檔由開發(fā)人員兼任測試人員的角色需要編寫額外的測試驅(qū)動程序問題1:有了“黑盒”測試為什么還要“白盒”測試?黑盒測試只能觀察軟件的外部表現(xiàn),即使軟件的輸入輸出都是正確的,卻并不能說明軟件就是正確的。因為程序有可能用錯誤的運(yùn)算方式得出正確的結(jié)果,例如“負(fù)負(fù)得正,錯錯得對”,只有白盒測試才能發(fā)現(xiàn)真正的原因。白盒測試能發(fā)現(xiàn)程序里的隱患,象內(nèi)存泄漏、誤差累計問題。在這方面,黑盒測試存在嚴(yán)重的不足。
問題2:由于單元測試要寫測試驅(qū)動程序,非常麻煩,能否等到整個系統(tǒng)全部開發(fā)完后,再集中精力進(jìn)行一次性地單元測試呢?如果這樣做,在開發(fā)過程中,缺陷會越積越多并且分布得更廣、隱藏得更深,反而導(dǎo)致測試與改錯的代價大大增加。最糟糕的是無法估計測試與改錯的工作量,使進(jìn)度失去控制。因此為圖眼前省事而省略單元測試或者“偷工減料”,是“得不償失”的做法。問題3:如果每個單元都通過了測試,把它們集成一起難道會有什么不妥嗎?集成測試是否多此一舉?要把N個單元集成一起肯定靠接口耦合,這時可能會產(chǎn)生在單元測試中無法發(fā)現(xiàn)的問題。例如:數(shù)據(jù)通過不同的接口時可能出錯;幾個函數(shù)關(guān)聯(lián)在一起時可能達(dá)不到預(yù)期的功能;在某個單元里可以接受的誤差可能在集成后被擴(kuò)大到無法接受的程度。所以集成測試是必要的,不是多此一舉。問題4:在集成測試的時候,已經(jīng)對一些子系統(tǒng)進(jìn)行了功能測試、性能測試等等,那么在系統(tǒng)測試時能否跳過相同內(nèi)容的測試?不能!因為集成測試是在仿真環(huán)境中開展的,那不是真正的目標(biāo)系統(tǒng)。再者,單元測試和集成測試通常由開發(fā)小組執(zhí)行。根據(jù)測試心理學(xué)的分析,開發(fā)人員測試自己的工作成果雖然是必要的,但不能作為成果已經(jīng)通過測試的依據(jù)。
問題5:既然系統(tǒng)測試與驗收測試的內(nèi)容幾乎是相同的,為什么還要驗收測試?首先是“信任”問題。對于合同項目而言,如果測試小組是開發(fā)方的人員,客戶怎么能夠輕易相信“別人”呢?所以當(dāng)項目進(jìn)行系統(tǒng)測試之后,客戶再進(jìn)行驗收測試是情理之中的事。否則,那是客戶失職。不論是合同項目還是非合同項目,軟件的最終用戶各色各樣(如受教育程度不同、使用習(xí)慣不同等等)。測試小組至多能夠模仿小部分用戶的行為,但并不具有普遍的代表性。
問題6:能否將系統(tǒng)測試和驗收測試“合二為一”?系統(tǒng)測試不是一會兒就能做完的,比較長時間的用戶測試很難組織。用戶還有自己的事情要做,他們?yōu)槭裁匆獮閯e人測試呢?即使用戶愿意做系統(tǒng)測試,他們消耗的時間、花費(fèi)的金錢大多比測試小組的高。系統(tǒng)測試時會找出相當(dāng)多的軟件缺陷,軟件需要反反復(fù)復(fù)地改錯。如果讓用戶發(fā)現(xiàn)“內(nèi)幕”,一是丟臉,二是會嚇跑買主。所以還是關(guān)起門來,先讓測試小組做完系統(tǒng)測試的好。
回歸測試回歸測試是指對某些已經(jīng)被測試過的內(nèi)容進(jìn)行重新測試。每當(dāng)軟件增加了新的功能,或者軟件中的缺陷被修正,這些變更都有可能影響軟件原有的功能和結(jié)構(gòu)。為了防止軟件的變更產(chǎn)生無法預(yù)料的副作用,不僅要對新內(nèi)容進(jìn)行測試,還要對某些老內(nèi)容進(jìn)行回歸測試。測試人員的組織了解開發(fā)人員的測試心理測試的目的是找出盡可能多的缺陷。所以測試是“破壞性”的,而開發(fā)卻是“建設(shè)性”的。開發(fā)人員總是喜歡欣賞程序的成功之處,而不愿看到失敗之處。讓開發(fā)者去做“蓄意破壞”的測試,就象殺自己的孩子一樣難以接受。開發(fā)者對自己的程序印象深刻,并總以為是正確的(自信是應(yīng)該的)。倘若在設(shè)計時就存在理解錯誤,或因不良的編程習(xí)慣而流下了隱患,他本人很難發(fā)現(xiàn)這類錯誤.開發(fā)者對自己的程序的功能、接口十分熟悉,他自己幾乎不可能因為使用不當(dāng)而引發(fā)錯誤,這與大眾用戶的情況不太相似,所以測試自己的程序不具備典型性。
結(jié)論:開發(fā)人員應(yīng)當(dāng)測試自己的程序,這是他分內(nèi)的工作。但是開發(fā)人員在測試自己的程序時,很難做到客觀、公正,所以自我測試不具有說服力。如何組織測試人員:應(yīng)當(dāng)視企業(yè)的人力資源而定條件特別好的公司,可以為每一個開發(fā)人員分配一名獨(dú)立的測試人員。這樣的測試人員職業(yè)化程度很高,可以完成單元測試、集成測試和系統(tǒng)測試工作,能夠?qū)崿F(xiàn)開發(fā)與測試同步進(jìn)行。條件比較好的公司,可以設(shè)置一個獨(dú)立的測試小組,該測試小組輪流參加各個項目的系統(tǒng)測試。而單元測試、集成測試工作由項目的開發(fā)小組承擔(dān)。條件一般的公司,養(yǎng)不起獨(dú)立的測試小組。單元測試、集成測試工作由項目開發(fā)小組承擔(dān)。當(dāng)項目進(jìn)展到系統(tǒng)測試階段,可以從項目外抽調(diào)一些人員,加上開發(fā)人員,臨時組織系統(tǒng)測試小組。條件比較差的公司,也許只有一個項目和為數(shù)不多的一些開發(fā)人員。那么就讓開發(fā)人員一直兼任測試人員的角色,相互測試對方的程序。如果人員實在太少了,只好讓開發(fā)者測試自己的程序,有測試總比沒有測試好吧!避免開發(fā)人員與測試人員產(chǎn)生矛盾開發(fā)人員不能很好地測試自己的程序是因為做不到“無情”。但如果測試人員真的做到了“無情”卻會引起開發(fā)人員的憤怒,遭人白眼。由于開發(fā)與測試存在“對立”關(guān)系,開發(fā)人員與測試人員很容易產(chǎn)生矛盾,這對項目而言是一種傷害。開發(fā)人員的注意事項:(1)不要敵視測試人員。要理解測試的目的就是發(fā)現(xiàn)缺陷,是測試人員的工作職責(zé)。不要以為測試人員吃飽了沒事干,存心找茬。(2)不要輕視測試人員,別說人家技術(shù)水平差,不配搞開發(fā)只好搞測試。測試人員的注意事項:(1)發(fā)現(xiàn)缺陷時不要嘲笑開發(fā)人員,別說他的程序真臭、到處是Bug。(2)在開發(fā)人員壓力太大時或心情不好時不要火上澆油,發(fā)現(xiàn)缺陷時別大聲嚷嚷。盡量不要相互諷刺對方,例如:A對B說:你唯一的特點就是無能。B對A說:你唯一的特點就是粗魯。還要注意的是,如果測試人員與開發(fā)人員的關(guān)系非常好,可能會導(dǎo)致在測試的時候“手下留情”,這對項目也是一種傷害。
企業(yè)的測試策略理念:企業(yè)的主要目的是獲取利潤,降低測試成本也是盈利的一種方式。用較低的代價實現(xiàn)有效的測試,不應(yīng)為了追求完美的測試而不失一切代價。如何合理地減少測試工作量減少冗余的測試白盒測試與黑盒測試的方式雖然不同,但往往有“異曲同工”之妙。在很多地方,白盒測試與黑盒測試會產(chǎn)生一模一樣的效果(或者能推理出來),這樣的測試是冗余的。在集成測試、系統(tǒng)測試階段,可能要執(zhí)行多次“回歸測試”。每一次“回歸測試”都會存在不少的冗余,應(yīng)當(dāng)設(shè)法剔除不必要的重復(fù)測試工作。減少無價值的測試無價值的測試通常是由于不懂得測試技術(shù)引起的。例如功能測試,在等價區(qū)間之中,本來只要測試一個典型的輸入就行了,如果有人在此區(qū)間測試了100次,那么其中99次就是無價值的。如何“偷工減料”有一些“短、平、快”的項目,經(jīng)費(fèi)本來就少,用戶對質(zhì)量要求也馬馬虎虎。為了能多掙一點錢,開發(fā)方不得不采用“偷工減料”的方式來降低測試代價。偷工減料的途徑無非就是減少測試的內(nèi)容和頻度。但不能砍得太狠,否則軟件拿不出手。基本方法是找出軟件中需要優(yōu)先測試的部分,其它次要部分可以忽略或?qū)碓贉y試。
“偷工減料”方法的測試優(yōu)先級:哪些功能是軟件的特色?
哪些功能是用戶最常用的?
如果系統(tǒng)可以分塊賣的話,哪些功能塊在銷售時最昂貴?
哪些功能出錯將導(dǎo)致用戶不滿或索賠?哪些程序是最復(fù)雜、最容易出錯的?哪些程序是相對獨(dú)立,應(yīng)當(dāng)提前測試的?哪些程序最容易擴(kuò)散錯誤?哪些程序是全系統(tǒng)的性能瓶頸所在?哪些程序是開發(fā)者最沒有信心的?
測試何時結(jié)束?一、基于測試用例的規(guī)則(1)先構(gòu)造測試用例(并請有關(guān)人員進(jìn)行評審)。(2)在測試過程中,當(dāng)測試用例的不通過率達(dá)到20%時,則拒絕繼續(xù)測試,待開發(fā)人員修正軟件后再進(jìn)行測試。(3)當(dāng)功能性測試用例通過率達(dá)到100%,非功能性測試用例通過率達(dá)到90%時,允許正常結(jié)束測試。 該規(guī)則的優(yōu)點是適用于所有的測試階段,缺點是太依賴于測試用例。如果測試用例非常糟糕,那么該規(guī)則就失效了。二、基于“測試期缺陷密度”的規(guī)則把測試一個CPU小時發(fā)現(xiàn)的缺陷數(shù)稱為“測試期缺陷密度”。繪制“測試時間-缺陷數(shù)”的關(guān)系圖,如果在相鄰n個CPU小時內(nèi)“測試期缺陷密度”全部低于某個值m時,則允許正常結(jié)束測試。例如n大于10,m小于等于1。該規(guī)則比較適用于系統(tǒng)測試階段。三、基于“運(yùn)行期缺陷密度”的規(guī)則把軟件運(yùn)行一個CPU小時發(fā)現(xiàn)的缺陷數(shù)稱為“運(yùn)行期缺陷密度”。繪制“運(yùn)行時間-缺陷數(shù)”的關(guān)系圖,如果在相鄰n個CPU小時內(nèi)“運(yùn)行期缺陷密度”全部低于某個值m時,則允許正常結(jié)束測試。例如n大于100,m小于等于1。該規(guī)則比較適用于驗收測試階段,即客戶試運(yùn)行軟件期間。需求經(jīng)常變更怎么辦 需求變更可能會讓項目所有成員遭殃,如何“預(yù)防變更”以及“降低變更的代價”是軟件工程的經(jīng)典問題。本節(jié)僅論述需求變更對測試的影響。需求變更將導(dǎo)致軟件設(shè)計和實現(xiàn)的變更,也導(dǎo)致了測試變更。最讓人難過的是上一次測試有可能白做了,如果軟件變更比較大的話。 測試人員不要只是自認(rèn)倒霉,應(yīng)當(dāng)主動作些應(yīng)變:(1)及時了解需求變更的詳細(xì)情況,盡早調(diào)整測試計劃,不要悶頭按原計劃測試。(2)將軟件中穩(wěn)定的部分與易變的部分區(qū)別對待,前者先測試,后者后測試。(3)向領(lǐng)導(dǎo)反映需求變更對測試造成的影響,為自己爭取余地。(4)設(shè)計一些比較靈活的測試用例,能適應(yīng)某些變更(不過技術(shù)難度比較高)。引申問題:如果在系統(tǒng)測試時,對照需求文檔,發(fā)現(xiàn)軟件多了功能或少了功能,該怎么辦?如果發(fā)現(xiàn)軟件少了功能,測試人員不可為了少干些活而隱瞞事實。如果發(fā)現(xiàn)軟件多了功能,測試人員不可認(rèn)為這些功能反正是“錦上添花”,便自作主張地測試了事。兩種情況都要報告給項目經(jīng)理,有可能導(dǎo)致一系列的變更。測試規(guī)范測試流程第一步:制定測試計劃。該計劃被批準(zhǔn)后轉(zhuǎn)向第二步。第二步:設(shè)計測試用例。該用例被批準(zhǔn)后轉(zhuǎn)向第三步。第三步:如果滿足“啟動準(zhǔn)則”,那么執(zhí)行測試。
第四步:撰寫測試報告。
第五步:消除軟件缺陷。如果滿足“完成準(zhǔn)則”,那么正常結(jié)束測試。制定測試計劃設(shè)計測試用例執(zhí)行測試寫測試報告消除軟件缺陷審批審批回歸測試完成測試完成準(zhǔn)則啟動準(zhǔn)則測試的信息流測試信息流如下圖所示:
軟件測試的策略
在軟件工程中,測試過程應(yīng)該按4個步驟進(jìn)行,即單元測試、組裝(集成)測試、確認(rèn)測試和系統(tǒng)測試。下圖給出了軟件測試經(jīng)歷的4個步驟。
測試規(guī)范測試啟動準(zhǔn)則同時滿足以下條件,允許開始測試:(1)測試計劃已經(jīng)制定并且通過了審批;(2)測試用例已經(jīng)設(shè)計并且通過了審批;(3)被測試對象已經(jīng)開發(fā)完畢并等待測試。
測試完成準(zhǔn)則對于非嚴(yán)格系統(tǒng)可以采用“基于測試用例”的準(zhǔn)則。同時滿足以下條件允許結(jié)束測試:(1)功能性測試用例通過率達(dá)到100%;(2)非功能性測試用例通過率達(dá)到90%時。對于嚴(yán)格系統(tǒng),應(yīng)當(dāng)補(bǔ)充“基于測試期缺陷密度”的規(guī)則:(3)相鄰n個CPU小時內(nèi)“測試期缺陷密度”全部低于某個值m。例如n大于10,m小于等于1。測試的文檔《測試計劃》:指明范圍、方法、資源,以及相應(yīng)測試活動的時間進(jìn)度安排表的文檔?!稖y試方案》:指明為完成軟件或軟件集成特性的測試而進(jìn)行的設(shè)計測試方法的細(xì)節(jié)文檔?!稖y試用例》:指明為完成一個測試項的測試輸入、預(yù)期結(jié)果、預(yù)期執(zhí)行條件等因素的文檔?!稖y試規(guī)程》:指明執(zhí)行測試時測試活動序列的文檔。《測試報告》:指明執(zhí)行測試結(jié)果的文檔。測試計劃的參考模板建立測試計劃定義測試目標(biāo)開發(fā)測試矩陣軟件模型結(jié)構(gòu)特性批量測試的階段和用例為在線系統(tǒng)作概念上的測試腳本軟件測試矩陣定義測試管理測試計劃的一般性信息定義測試?yán)锍瘫x管理上的檢查點書寫測試計劃評審測試計劃涉及評審的問題評審測試的開始時間是否會延期有沒有抵觸評審的角色一段時間內(nèi)是否很難得到工作的檢查信息。更換工具有可能導(dǎo)致他們反感評審工作評審結(jié)果可能會影響對個人的工作評價對于最終成品的檢查項目的需求規(guī)格說明書軟件返工/維護(hù)的文檔升級后的技術(shù)文檔被更改的源程序測試計劃用戶手冊(包括在線幫助)測試用例測試用例的基本要素有:目的、前提條件、輸入數(shù)據(jù)或動作、期望的響應(yīng)。建議測試方法測試方法測試用例的概念是簡單的建立有效的測試用例是復(fù)雜的設(shè)計測試文件測試用例應(yīng)當(dāng)包含合法的和非法的輸入每一個動作只進(jìn)行一次關(guān)鍵操作輸入測試數(shù)據(jù)分析結(jié)果嘗試將測試文件違反程序的規(guī)則進(jìn)行輸入壓力測試的測試工具以大信息量的數(shù)據(jù)進(jìn)行輸入這是一個昂貴的測試,應(yīng)根據(jù)需要來選擇在線系統(tǒng)需要做壓力測試測試報告目標(biāo)表示出目前項目的實際狀況明確什么是測試做的工作,什么是不作的工作。給出系統(tǒng)的操作性能的評價明確什么時候系統(tǒng)可以進(jìn)行產(chǎn)品化的工作關(guān)注點測試報告只有真正需要的時候才有用,需要配合市場和管理測試的信息是不充分的(對于評價一個項目來說)測試狀況并不能真實的反應(yīng)個人的狀況測試期間數(shù)據(jù)的收集有關(guān)測試結(jié)果的積累數(shù)據(jù)測試任務(wù),測試集合和測試事件的描述缺陷分析由于計劃的問題,導(dǎo)致沒有發(fā)現(xiàn)的缺陷的數(shù)據(jù)嚴(yán)重的缺陷缺陷類型為什么缺陷沒有發(fā)現(xiàn)效果測試報告報告目前的軟件狀態(tài)功能/測試矩陣功能測試的狀態(tài)報告,側(cè)重點分析關(guān)于功能的工作時間軸期望發(fā)現(xiàn)VS實際發(fā)現(xiàn)的缺陷比沒有發(fā)現(xiàn)的缺陷和改正的缺陷的差距按照類型分類,沒有改正的缺陷的平均值缺陷分類報告測試活動報告軟件系統(tǒng)的主要測試內(nèi)容及技術(shù)接口與路徑測試功能測試健壯性測試性能測試用戶界面測試信息安全測試壓力測試可靠性測試安裝/反安裝測試接口與路徑測試數(shù)據(jù)一般通過接口輸入和輸出,所以接口測試是白盒測試的第一步。每個接口可能有多個輸入?yún)?shù),每個參數(shù)有“典型值”、“邊界值”、“異常值”之分,所以輸入的組合數(shù)可能并不少。根據(jù)接口的定義,可以推斷某種輸入應(yīng)當(dāng)產(chǎn)生什么樣的輸出。輸出包括函數(shù)的返回值和輸出參數(shù)。如果實際輸出與期望的輸出不一致,那么說明程序有錯誤。白盒方式的接口測試和黑盒方式的功能測試,其方法十分相似。一個函數(shù)體內(nèi)的語句可能只有十幾條,但邏輯路徑可能有成千上萬條。想遍歷測試幾乎是不可能的,不測試或者胡亂找?guī)讞l路徑測試卻又不行。對于非嚴(yán)格系統(tǒng)而言,在分析路徑方面化費(fèi)很多精力是不值得的。我認(rèn)為在構(gòu)造接口測試的同時已經(jīng)建立了測試路徑。因為每一種輸入將產(chǎn)生唯一的輸出,輸入與輸出之間的路徑也是唯一的。由于接口測試中的輸入是有代表性的,因此相應(yīng)的路徑也具有代表性,不用得著費(fèi)煞苦心地去找測試路徑。路徑測試的檢查表數(shù)據(jù)類型、變量值、邏輯判斷、循環(huán)、內(nèi)存管理、文件I/O、錯誤處理由于接口測試是枚舉的,有可能漏掉某些狀況,導(dǎo)致一些重要的路徑?jīng)]有被測試。預(yù)防措施有:觀察是否有程序語句從來沒有被執(zhí)行過。如果發(fā)生在這種情況,要么是程序有錯誤,存在無用的代碼;要么是接口測試不充分,漏掉了一些路徑。要特別留意函數(shù)體內(nèi)的錯誤處理程序塊(如果存在的話),這是最易被人疏忽的路徑,隱患最多。
軟件系統(tǒng)的主要測試內(nèi)容及技術(shù)接口與路徑測試用例的參考模板軟件系統(tǒng)的主要測試內(nèi)容及技術(shù)功能測試功能測試的基本方法是構(gòu)造一些合理輸入(在需求范圍之內(nèi)),檢查輸出是否與期望的相同。如果兩者不一致,即表明功能有誤。也有例外的情況,如《需求規(guī)格說明書》中的某個功能寫錯了,而實際上軟件的功能卻是正確的,這時要更改的是《需求規(guī)格說明書》。功能測試看起來比較簡單,只要看得懂《需求規(guī)格說明書》,誰都會做。難點在于如何構(gòu)造有效的輸入。由于輸入空間通常是無限的,窮舉測試顯然行不通。那么隨便輸入一些東西,碰運(yùn)氣行不行?功能測試有兩種比較好的測試方法:等價劃分法和邊界值分析法。等價劃分是指把輸入空間劃分為幾個“等價區(qū)間”,在每個“等價區(qū)間”中只需要測試一個典型值就可以了。等價劃分法來源于人們的直覺與經(jīng)驗,可令測試事半功倍。“缺陷遺漏在角落里,聚集在邊界上”。邊界值測試法是對等價劃分法的補(bǔ)充。如果A和B是輸入空間的邊界值,那么除了典型值外還要用A和B作為測試用例。例如測試函數(shù)。憑直覺,等價區(qū)間應(yīng)是(0,1)和(1,+∞)。可取典型值x=0.5以及x=2.0進(jìn)行“等價劃分”測試。再取x=0以及x=1進(jìn)行“邊界值”測試。功能測試用例的參考模板健壯性測試健壯性是指在異常情況下,軟件還能正常運(yùn)行的能力。健壯性有兩層含義:一是容錯能力,二是恢復(fù)能力。容錯性測試通常構(gòu)造一些不合理的輸入來引誘軟件出錯,例如:(1)輸入錯誤的數(shù)據(jù)類型。如“猴”年“馬”月。(2)輸入定義域之外的數(shù)值。如上海人常說的“十三點”粗暴一些方式俗稱“大猩猩”測試法。除了不能拳打腳踢嘴咬外,什么招術(shù)都可以使出來。例如在測試客戶機(jī)-服務(wù)器模式的軟件時,把網(wǎng)絡(luò)線拔掉,造成通信異常中斷?;謴?fù)測試重點考察一下幾項:(1)系統(tǒng)能否重新運(yùn)行;(2)有無重要的數(shù)據(jù)丟失;(3)是否毀壞了其它相關(guān)的軟件硬件。健壯性測試目標(biāo)當(dāng)在進(jìn)行安裝或組裝操作過程中,文件丟失時或發(fā)生意外后系統(tǒng)有能力重新進(jìn)行操作如何使用程序的安裝,運(yùn)行方式,工具的使用和關(guān)鍵技術(shù)經(jīng)過足夠的評估系統(tǒng)開發(fā)完畢后,介紹一下發(fā)生失敗后的處理過程例子人為的使一個系統(tǒng)在安裝或者組裝過程中產(chǎn)生錯誤什么時間去使用當(dāng)操作的連續(xù)性是個重點的時候健壯性測試用例的參考模板性能測試性能測試即測試軟件處理事務(wù)的速度,一是為了檢驗性能是否符合需求,二是為了得到某些性能數(shù)據(jù)供人們參考(例如用于宣傳)。有時人們關(guān)心測試的“絕對值”,如數(shù)據(jù)送輸速率是每秒多少比特。有時人們關(guān)心測試的“相對值”,如某個軟件比另一個軟件快多少倍。在獲取測試的“絕對值”時,我們要充分考慮并記錄運(yùn)行環(huán)境對測試的影響。例如網(wǎng)絡(luò)環(huán)境、計算機(jī)主頻,總線結(jié)構(gòu)和外部設(shè)備都可能影響軟件的運(yùn)行速度。
性能測試的一些注意事項:不要試圖讓人拿著鐘表去測時間,應(yīng)當(dāng)編寫一段程序用于計算時間以及相關(guān)數(shù)據(jù)。應(yīng)當(dāng)測試軟件在標(biāo)準(zhǔn)配置和最低配置下的性能。為了排除干擾,應(yīng)當(dāng)關(guān)閉那些消耗內(nèi)存、占用CPU的其它應(yīng)用軟件(如殺毒軟件)。不同的輸入情況會得到不同的性能數(shù)據(jù),應(yīng)當(dāng)分檔記錄。例如傳輸文件的容量從100K到1M可以分成若干等級。由于環(huán)境的波動,同一種輸入情況在不同的時間可能得到不同的性能數(shù)據(jù),可以取其平均值。性能測試技巧目標(biāo)確定系統(tǒng)達(dá)到了希望達(dá)到的性能水平如何使用使用軟件和硬件的監(jiān)視器使用模擬的監(jiān)控模型,對關(guān)心的性能指標(biāo)進(jìn)行監(jiān)控創(chuàng)建一個小程序例子計算通信的時間單位時間處理的信息量性能測試用例的參考模板用戶界面測試絕大多數(shù)軟件擁有圖形用戶界面。圖形用戶界面的測試重點是正確性、易用性和視覺效果。在評價易用性和視覺效果時,主觀性非常強(qiáng),應(yīng)當(dāng)考慮多個人的觀點。用戶界面測試用例的參考模板:信息安全測試信息安全性(security)是指防止系統(tǒng)被非法入侵的能力,既屬于技術(shù)問題又屬于管理問題。信息安全性測試有如下步驟:(1)為非法入侵設(shè)立目標(biāo),例如“盜竊某個文件”或“更改數(shù)據(jù)庫記錄”等。(2)邀請(或懸賞)一些人扮演黑客,讓他們想盡辦法入侵系統(tǒng),實現(xiàn)“目標(biāo)”。(3)如果有人成功了,請他詳述入侵的過程。別忘了給予獎勵。信息安全性測試用例的參考模板安全性測試目標(biāo)安全性的缺陷很難被發(fā)現(xiàn)。大多數(shù)的情況下組織能夠防止一般性的破壞者。如何使用對安全性的需求進(jìn)行評審分析與安全性有關(guān)的處理流程轉(zhuǎn)包給專業(yè)的人員例子定義了被保護(hù)的資源,權(quán)限進(jìn)行了控制,日志文件和審查追蹤是可用的。什么時間使用當(dāng)被保護(hù)的資源對于組織具有重要的價值的時候壓力測試壓力測試也叫負(fù)荷測試,即獲取系統(tǒng)能正常運(yùn)行的極限狀態(tài)。了解“極限”是很有價值的,例如潛艇下潛極限深度…。壓力測試的主要任務(wù)是:構(gòu)造正確的輸入,使勁折騰系統(tǒng)卻讓它剛好不癱瘓。
壓力測試的一個變種是敏感測試。在某種情況下,微小的輸入變動會導(dǎo)致系統(tǒng)的表現(xiàn)(如性能)發(fā)生急劇的變化。敏感測試目的是發(fā)現(xiàn)什么樣的輸入可能會引發(fā)不穩(wěn)定現(xiàn)象。
壓力測試用例的參考模板壓力測試目標(biāo)模擬出實際用戶環(huán)境怎么用 產(chǎn)生測試數(shù)據(jù)測試組模擬用戶處理被創(chuàng)建的數(shù)據(jù)例子確定是否分配了足夠的磁盤空間通訊的容量是否足夠測試系統(tǒng)過載的情況什么時間使用當(dāng)關(guān)于容量的信息不確定的時候可靠性測試可靠性是指在一定的環(huán)境下、在給定的時間內(nèi)、系統(tǒng)不發(fā)生故障的概率。由于軟件不像硬件那樣可以“加速老化”,按此定義,軟件可靠性測試可能會花費(fèi)很長時間。比較實用的辦法是,讓用戶使用該系統(tǒng),記錄每一次發(fā)生故障的時刻。計算出相鄰故障的時間間隔,注意要去掉非工作時間。這樣我們可以方便地統(tǒng)計出不發(fā)生故障的“最小時間間隔”、“最大時間間隔”和“平均時間間隔”。其中“平均時間間隔”會讓人們大體了解到系統(tǒng)“可靠”的程度。
安裝/反安裝測試安裝/反安裝測試的目的:避免“大風(fēng)浪都挺過來了,卻在陰溝里翻了船”目前市面上有非常流行的、專門制作安裝/反安裝程序的一些工具,如InstallShelled。制作安裝/反安裝程序不再是件難事,關(guān)鍵是不要麻痹大意。主要測試工作:(1)至少在標(biāo)準(zhǔn)配置和最低配置兩種環(huán)境下測試;(2)如果有安裝界面,應(yīng)當(dāng)嘗試各種選項,如選擇“全部”、“部分”、“升級”等。WEB應(yīng)用的測試一、功能測試1、鏈接測試鏈接是Web應(yīng)用系統(tǒng)的一個主要特征,它是在頁面之間切換和指導(dǎo)用戶去一些不知道地址的頁面的主要手段。鏈接測試可分為三個方面。首先,測試所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面;其次,測試所鏈接的頁面是否存在;最后,保證Web應(yīng)用系統(tǒng)上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。鏈接測試可以自動進(jìn)行,現(xiàn)在已經(jīng)有許多工具可以采用。鏈接測試必須在集成測試階段完成,也就是說,在整個Web應(yīng)用系統(tǒng)的所有頁面開發(fā)完成之后進(jìn)行鏈接測試。2、表單測試當(dāng)用戶給Web應(yīng)用系統(tǒng)管理員提交信息時,就需要使用表單操作,例如用戶注冊、登陸、信息提交等。在這種情況下,我們必須測試提交操作的完整性,以校驗提交給服務(wù)器的信息的正確性。例如:用戶填寫的出生日期與職業(yè)是否恰當(dāng),填寫的所屬省份與所在城市是否匹配等。如果使用了默認(rèn)值,還要檢驗?zāi)J(rèn)值的正確性。如果表單只能接受指定的某些值,則也要進(jìn)行測試。例如:只能接受某些字符,測試時可以跳過這些字符,看系統(tǒng)是否會報錯。3、Cookies測試Cookies通常用來存儲用戶信息和用戶在某應(yīng)用系統(tǒng)的操作,當(dāng)一個用戶使用Cookies訪問了某一個應(yīng)用系統(tǒng)時,Web服務(wù)器將發(fā)送關(guān)于用戶的信息,把該信息以Cookies的形式存儲在客戶端計算機(jī)上,這可用來創(chuàng)建動態(tài)和自定義頁面或者存儲登陸等信息。如果Web應(yīng)用系統(tǒng)使用了Cookies,就必須檢查Cookies是否能正常工作。測試的內(nèi)容可包括Cookies是否起作用,是否按預(yù)定的時間進(jìn)行保存,刷新對Cookies有什么影響等。4、設(shè)計語言測試Web設(shè)計語言版本的差異可以引起客戶端或服務(wù)器端嚴(yán)重的問題,例如使用哪種版本的HTML等。當(dāng)在分布式環(huán)境中開發(fā)時,開發(fā)人員都不在一起,這個問題就顯得尤為重要。除了HTML的版本問題外,不同的腳本語言,例如Java、javascript、ActiveX、VBScript或Perl等也要進(jìn)行驗證。5、數(shù)據(jù)庫測試在Web應(yīng)用技術(shù)中,數(shù)據(jù)庫起著重要的作用,數(shù)據(jù)庫為Web應(yīng)用系統(tǒng)的管理、運(yùn)行、查詢和實現(xiàn)用戶對數(shù)據(jù)存儲的請求等提供空間。在Web應(yīng)用中,最常用的數(shù)據(jù)庫類型是關(guān)系型數(shù)據(jù)庫,可以使用SQL對信息進(jìn)行處理。在使用了數(shù)據(jù)庫的Web應(yīng)用系統(tǒng)中,一般情況下,可能發(fā)生兩種錯誤,分別是數(shù)據(jù)一致性錯誤和輸出錯誤。數(shù)據(jù)一致性錯誤主要是由于用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由于網(wǎng)絡(luò)速度或程序設(shè)計問題等引起的,針對這兩種情況,可分別進(jìn)行測試。二、性能測試1、連接速度測試用戶連接到Web應(yīng)用系統(tǒng)的速度根據(jù)上網(wǎng)方式的變化而變化,他們或許是電話撥號,或是寬帶上網(wǎng)。當(dāng)下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果Web系統(tǒng)響應(yīng)時間太長(例如超過5秒鐘),用戶就會因沒有耐心等待而離開。另外,有些頁面有超時的限制,如果響應(yīng)速度太慢,用戶可能還沒來得及瀏覽內(nèi)容,就需要重新登陸了。而且,連接速度太慢,還可能引起數(shù)據(jù)丟失,使用戶得不到真實的頁面。2、負(fù)載測試負(fù)載測試是為了測量Web系統(tǒng)在某一負(fù)載級別上的性能,以保證Web系統(tǒng)在需求范圍內(nèi)能正常工作。負(fù)載級別可以是某個時刻同時訪問Web系統(tǒng)的用戶數(shù)量,也可以是在線數(shù)據(jù)處理的數(shù)量。例如:Web應(yīng)用系統(tǒng)能允許多少個用戶同時在線?如果超過了這個數(shù)量,會出現(xiàn)什么現(xiàn)象?Web應(yīng)用系統(tǒng)能否處理大量用戶對同一個頁面的請求?
3、壓力測試負(fù)載測試應(yīng)該安排在Web系統(tǒng)發(fā)布以后,在實際的網(wǎng)絡(luò)環(huán)境中進(jìn)行測試。因為一個企業(yè)內(nèi)部員工,特別是項目組人員總是有限的,而一個Web系統(tǒng)能同時處理的請求數(shù)量將遠(yuǎn)遠(yuǎn)超出這個限度,所以,只有放在Internet上,接受負(fù)載測試,其結(jié)果才是正確可信的。進(jìn)行壓力測試是指實際破壞一個Web應(yīng)用系統(tǒng),測試系統(tǒng)的反映。壓力測試是測試系統(tǒng)的限制和故障恢復(fù)能力,也就是測試Web應(yīng)用系統(tǒng)會不會崩潰,在什么情況下會崩潰。黑客常常提供錯誤的數(shù)據(jù)負(fù)載,直到Web應(yīng)用系統(tǒng)崩潰,接著當(dāng)系統(tǒng)重新啟動時獲得存取權(quán)。壓力測試的區(qū)域包括表單、登陸和其他信息傳輸頁面等。
三、可用性測試1、導(dǎo)航測試導(dǎo)航描述了用戶在一個頁面內(nèi)操作的方式,在不同的用戶接口控制之間,例如按鈕、對話框、列表和窗口等;或在不同的連接頁面之間。通過考慮下列問題,可以決定一個Web應(yīng)用系統(tǒng)是否易于導(dǎo)航:導(dǎo)航是否直觀?Web系統(tǒng)的主要部分是否可通過主頁存???Web系統(tǒng)是否需要站點地圖、搜索引擎或其他的導(dǎo)航幫助?在一個頁面上放太多的信息往往起到與預(yù)期相反的效果。Web應(yīng)用系統(tǒng)的用戶趨向于目的驅(qū)動,很快地掃描一個Web應(yīng)用系統(tǒng),看是否有滿足自己需要的信息,如果沒有,就會很快地離開。很少有用戶愿意花時間去熟悉Web應(yīng)用系統(tǒng)的結(jié)構(gòu),因此,Web應(yīng)用系統(tǒng)導(dǎo)航幫助要盡可能地準(zhǔn)確。導(dǎo)航的另一個重要方面是Web應(yīng)用系統(tǒng)的頁面結(jié)構(gòu)、導(dǎo)航、菜單、連接的風(fēng)格是否一致。確保用戶憑直覺就知道Web應(yīng)用系統(tǒng)里面是否還有內(nèi)容,內(nèi)容在什么地方。Web應(yīng)用系統(tǒng)的層次一旦決定,就要著手測試用戶導(dǎo)航功能,讓最終用戶參與這種測試,效果將更加明顯。2、圖形測試在Web應(yīng)用系統(tǒng)中,適當(dāng)?shù)膱D片和動畫既能起到廣告宣傳的作用,又能起到美化頁面的功能。一個Web應(yīng)用系統(tǒng)的圖形可以包括圖片、動畫、邊框、顏色、字體、背景、按鈕等。圖形測試的內(nèi)容有:(1)要確保圖形有明確的用途,圖片或動畫不要胡亂地堆在一起,以免浪費(fèi)傳輸時間。Web應(yīng)用系統(tǒng)的圖片尺寸要盡量地小,并且要能清楚地說明某件事情,一般都鏈接到某個具體的頁面。(2)驗證所有頁面字體的風(fēng)格是否一致。(3)背景顏色應(yīng)該與字體顏色和前景顏色相搭配。(4)圖片的大小和質(zhì)量也是一個很重要的因素,一般采用JPG或GIF壓縮。3、內(nèi)容測試內(nèi)容測試用來檢驗Web應(yīng)用系統(tǒng)提供信息的正確性、準(zhǔn)確性和相關(guān)性。信息的正確性是指信息是可靠的還是誤傳的。例如,在商品價格列表中,錯誤的價格可能引起財政問題甚至導(dǎo)致法律糾紛;信息的準(zhǔn)確性是指是否有語法或拼寫錯誤。這種測試通常使用一些文字處理軟件來進(jìn)行,例如使用MicrosoftWord的"拼音與語法檢查"功能;信息的相關(guān)性是指是否在當(dāng)前頁面可以找到與當(dāng)前瀏覽信息相關(guān)的信息列表或入口,也就是一般Web站點中的所謂"相關(guān)文章列表"。4、整體界面測試整體界面是指整個Web應(yīng)用系統(tǒng)的頁面結(jié)構(gòu)設(shè)計,是給用戶的一個整體感。例如:當(dāng)用戶瀏覽Web應(yīng)用系統(tǒng)時是否感到舒適,是否憑直覺就知道要找的信息在什么地方?整個Web應(yīng)用系統(tǒng)的設(shè)計風(fēng)格是否一致?對整體界面的測試過程,其實是一個對最終用戶進(jìn)行調(diào)查的過程。一般Web應(yīng)用系統(tǒng)采取在主頁上做一個調(diào)查問卷的形式,來得到最終用戶的反饋信息。對所有的可用性測試來說,都需要有外部人員(與Web應(yīng)用系統(tǒng)開發(fā)沒有聯(lián)系或聯(lián)系很少的人員)的參與,最好是最終用戶的參與。四、客戶端兼容性測試1、平臺測試市場上有很多不同的操作系統(tǒng)類型,最常見的有Windows、Unix、Macintosh、Linux等。Web應(yīng)用系統(tǒng)的最終用戶究竟使用哪一種操作系統(tǒng),取決于用戶系統(tǒng)的配置。這樣,就可能會發(fā)生兼容性問題,同一個應(yīng)用可能在某些操作系統(tǒng)下能正常運(yùn)行,但在另外的操作系統(tǒng)下可能會運(yùn)行失敗。因此,在Web系統(tǒng)發(fā)布之前,需要在各種操作系統(tǒng)下對Web系統(tǒng)進(jìn)行兼容性測試2、瀏覽器測試瀏覽器是Web客戶端最核心的構(gòu)件,來自不同廠商的瀏覽器對Java,、javascript、ActiveX、plug-ins或不同的HTML規(guī)格有不同的支持。例如,ActiveX是Microsoft的產(chǎn)品,是為InternetExplorer而設(shè)計的,javascript是Netscape的產(chǎn)品,Java是Sun的產(chǎn)品等等。另外,框架和層次結(jié)構(gòu)風(fēng)格在不同的瀏覽器中也有不同的顯示,甚至根本不顯示。不同的瀏覽器對安全性和Java的設(shè)置也不一樣。測試瀏覽器兼容性的一個方法是創(chuàng)建一個兼容性矩陣。在這個矩陣中,測試不同廠商、不同版本的瀏覽器對某些構(gòu)件和設(shè)置的適應(yīng)性。五、安全性測試Web應(yīng)用系統(tǒng)的安全性測試區(qū)域主要有:(1)現(xiàn)在的Web應(yīng)用系統(tǒng)基本采用先注冊,后登陸的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登陸而直接瀏覽某個頁面等。(2)Web應(yīng)用系統(tǒng)是否有超時的限制,也就是說,用戶登陸后在一定時間內(nèi)(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。(3)為了保證Web應(yīng)用系統(tǒng)的安全性,日志文件是至關(guān)重要的。需要測試相關(guān)信息是否寫進(jìn)了日志文件、是否可追蹤。(4)當(dāng)使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。(5)服務(wù)器端的腳本常常構(gòu)成安全漏洞,這些漏洞又常常被黑客利用。所以,還要測試沒有經(jīng)過授權(quán),就不能在服務(wù)器端放置和編輯腳本的問題。軟件自動化測試1.什么是“軟件自動化測試”?2.軟件自動化測試的優(yōu)點?3.自動化測試工具概述;4.性能測試工具“LoadRunner”的介紹;什么是軟件測試的自動化?[定義]通過自動化測試工具或其他手段,按照我們預(yù)定的計劃進(jìn)行自動測試的活動。[目的]減輕手工測試的勞動量,從而達(dá)到節(jié)約資源(包括人工、物品)提高軟件質(zhì)量的目的。自動化測試的基本原理在測試者運(yùn)行應(yīng)用程序的同時,把他所有動作,包括鍵盤操作、鼠標(biāo)點擊等捕獲下來,生成一個腳本文件,這個腳本可以被“回放”,也就是按照上一次的所有動作重復(fù)執(zhí)行一遍,實現(xiàn)自動運(yùn)行和測試。軟件測試的自動化優(yōu)點自動錄制的測試腳本,可輕松實現(xiàn)回歸測試;減少測試時間,縮短整個軟件開發(fā)生命周期;替代手工測試不易達(dá)到的測試點(比如:300并發(fā)用戶的壓力測試)更好的利用空閑時間(比如晚上或周末機(jī)器時);增加軟件信任度自動化測試工具M(jìn)I公司W(wǎng)inrunner(功能測試)Loadrunner(性能負(fù)載測試)Testdirector(測試流程管理)IBM公司RationalCompuware公司QACenter,包括QARun,QAload,QADirector等模塊其他測試工具微軟WAS(WEB服務(wù)器負(fù)載測試),ACT(微軟的VisualStudio和VisualStudio.NET帶的一套進(jìn)行程序測試的工具)RationalTest工具用途列表軟件(執(zhí)行文件名稱)用途RationalAdministrator主要用于創(chuàng)建新的PROJECT,包括需求(RequestPro)、測試(TestManager)、及缺陷跟蹤(ClearQuest)的數(shù)據(jù)庫創(chuàng)建并建立關(guān)聯(lián)ClearQuest變更管理及缺陷跟蹤C(jī)learQuestMaintenanceToolClearQuest維護(hù)工具,主要用于創(chuàng)建、修改、刪除ClearQuest的ConnectionClearQuestDesignerClearQuest維護(hù)工具,主要用于維護(hù)某一指定的Connect/Schema的用戶、訪問權(quán)限及其他屬性定義(如缺陷等級)等維護(hù)TestManager測試計劃制定及執(zhí)行工具LicenseKeyAdministratorRational注冊管理器軟件(執(zhí)行文件名稱)用途PureCoverage白盒測試工具,記錄代碼覆蓋率。不支持C++Builder/DelphiPurify白盒測試工具,用于內(nèi)存泄漏檢查Quantify白盒測試工具,用于性能瓶頸分析PurifyPlusForUnix包括以上三個工具,不過是ForUnixRequisitePro需求分析工具Robot自動測試工具,類似WINRUNNDER,加上VT可以做并發(fā)測試SoDAforWord報表生成工具,需要VBA測試。一般不直接運(yùn)行,運(yùn)行后SoDA在word中增加了菜單,可以進(jìn)行模板設(shè)計。TestFactory可靠性測試,非常耗時。自動化測試工具的分類白盒測試工具:對代碼的測試黑盒測試工具:功能和性能上的測試測試管理工具:對測試計劃、測試用例、測試實施進(jìn)行管理其他測試工具:專門針對于數(shù)據(jù)庫的測試等工具什么是性能測試?模擬實際用戶負(fù)載來測試系統(tǒng),包括:反應(yīng)速度、最大用戶數(shù)、系統(tǒng)最優(yōu)配置、軟硬件性能等虛擬用戶:發(fā)起各種各樣的負(fù)載組合GUI代理:衡量端到端的性能主機(jī):負(fù)責(zé)錄制、回放、監(jiān)視和分析運(yùn)行結(jié)果WebAppDB介紹性能測試工具
--LoadRunner7.5定義是一種預(yù)測系統(tǒng)行為和負(fù)載的性能測試工具。通過以模擬上千萬用戶實施并發(fā)負(fù)載及實時性能監(jiān)測的方式來確認(rèn)和查找問題。LoadRunner系列工具CreateVirtualUsers
LoadRunder的VirtualUserGenerator引擎可自動產(chǎn)生虛擬用戶,模擬業(yè)務(wù)(如下訂單或預(yù)定機(jī)位)和使用者的操作行為,僅需少數(shù)的Window、UNIX、或Linux的機(jī)器即可執(zhí)行成千上萬個使用者,大大減少測試必需的硬件和人力成本。
LoadRunnerController
建立VirtualUsers后,執(zhí)行者需設(shè)定加壓模式,確定執(zhí)行哪些業(yè)務(wù)流程即測試多少數(shù)量的VirtualUsers。使用LoadrunnerController,執(zhí)行者可很快的組成多個用戶的測試方案,LoadRunnerController提供一互動的設(shè)定環(huán)境,建立可重復(fù)運(yùn)作的加壓模式,又能管理和驅(qū)動整個加壓模式。此外,還可利用安排日程來定議虛擬使用者在系統(tǒng)上以何種方式產(chǎn)生壓力負(fù)載。這樣,就可將測試過程自動化。
MonitoringaScenario
LoadRunner內(nèi)含即時監(jiān)測器,可在壓力測試期間隨時查看應(yīng)用系統(tǒng)的運(yùn)作效能。這些監(jiān)測器可即時顯示Transaction資料,如反應(yīng)時間和其他后端系統(tǒng)組件性能包括APserver、Webserver、網(wǎng)絡(luò)設(shè)備、database等。如此,便可在測試過程中同時從client端和server端雙方面評估這些系統(tǒng)組件的運(yùn)作效能,從而更快發(fā)現(xiàn)問題。
Anilisy
完成測試后,Loadrunner收集所有測試數(shù)據(jù),并提供精確的分析和報表功能,以便迅速找到效能問題并追溯其錯誤原因。
IP
Wizard
可是虛擬生成多個IP,在Controller中可以將生成的虛擬IP分配給虛擬用戶使用。LoadRunner7.5特點創(chuàng)建真實的負(fù)載定位性能問題可重復(fù)測試,保證系統(tǒng)發(fā)布的高性能支持無線應(yīng)用協(xié)議支持MediaStream應(yīng)用等LoadRunner的單用戶與并發(fā)在“虛擬用戶發(fā)生器”中:執(zhí)行單用戶操作ServerClientApp在“控制臺”中運(yùn)行已錄制的腳本,多個用戶并發(fā)訪問服務(wù)器VirtualUsersServer自動負(fù)載測試的流程
1、系統(tǒng)分析
2、建立虛擬用戶腳本
3、定義用戶行為
4、創(chuàng)立負(fù)載測試場景
5、運(yùn)行測試,同步監(jiān)測應(yīng)用性能系統(tǒng)分析
在執(zhí)行任何測試計劃前,測試人員必須明確所有關(guān)鍵的性能目標(biāo)和目的。這包括確定哪些環(huán)節(jié)/交易需要測試,系統(tǒng)結(jié)構(gòu)中的哪些部件做測試用,網(wǎng)站期望達(dá)到的每秒連接數(shù)或點擊數(shù),澄清哪些步驟需要被測試。
其次,測試員需要定義那些備用測試的輸入數(shù)據(jù)。這些數(shù)據(jù)的生成是個動態(tài)的過程。例如,拍賣競標(biāo)的標(biāo)的,每次客戶送出一個競價都會發(fā)生變化。有時數(shù)據(jù)也會從隨機(jī)的瀏覽中獲取。還有些非交易性質(zhì)的操作,包括瀏覽頁面或上網(wǎng)看新聞。不斷跟蹤輸入的數(shù)據(jù)能避免可能產(chǎn)生不精確的負(fù)載測試結(jié)果。
再者,測試員必須為測試應(yīng)用程序制定合適的計劃。他們可從三種策略模式中選擇:負(fù)載測試,壓力測試和容量測試。
第四,測試人員需要培養(yǎng)對系統(tǒng)結(jié)構(gòu)的全面掌握,包括
了解網(wǎng)路建立的路線類型
判斷是否使用了多個服務(wù)器
確定負(fù)載平衡器是否用于IT網(wǎng)路的一部分來管理服務(wù)器
熟悉系統(tǒng)是由哪些服務(wù)器構(gòu)成的(Web,應(yīng)用程序,數(shù)據(jù)庫)
最后,開發(fā)人員必須確定有哪些可獲得資源用作運(yùn)行虛擬用戶。這要求決定是否有足夠數(shù)量的負(fù)載發(fā)生器或測試主機(jī)來運(yùn)行相應(yīng)數(shù)量的虛擬用戶。還需要了解測試工具是否具備多線程能力,可最大限度地增加運(yùn)行虛擬用戶。歸根結(jié)底,其目標(biāo)是耗費(fèi)最少的系統(tǒng)資源,運(yùn)行最多的虛擬用戶。建立測試腳本用戶類型建立測試腳本運(yùn)行腳本虛擬用戶的類型Client/Server:ForDB2CLI,DNS,Informix,MSSQLServer,ODBC,Oracle(2-tier),SybaseCtlib,SybaseDblib,andWindowsSockets協(xié)議.
Custom:ForCtemplates,VisualBasictemplates,Javatemplates,JavascriptandVBScripttypescripts.DistributedComponents:ForCOM/DCOM,Corba-Java,andRmi-Java協(xié)議.E-business:ForFTP,LDAP,Palm,SOAP,Web(HTTP/HTML),andWeb/WinSocketDual協(xié)議.
EnterpriseJavaBeans:ForEJBTestingandRmi-Java協(xié)議.
ERP:ForBaan,OracleNCA,Peoplesoft-Tuxedo,SAP,Siebel-DB2CLI,SiebelMSSQL,andSiebelOracle協(xié)議.
Legacy:ForTerminalEmulation(RTE).MailingServices:InternetMessaging(IMAP),MSExchange(MAPI),POP3,andSMTP.Middleware:JacadaandtheTuxedo(6,7)協(xié)議.
StreamingData:MediaPlayer(MMS)andReal協(xié)議.
Wireless:Fori-Mode,VoiceXML,andWAP協(xié)議.
如果想看所有的可支持的協(xié)議,那么可以點擊File>New然后在協(xié)議列表框里選擇AllProtocols即可.
VirtualUserGeneratorvugen通過記錄你執(zhí)行的客戶端應(yīng)用程序的活動來創(chuàng)建虛擬用戶腳本,當(dāng)你運(yùn)行記錄的腳本時,一個合成的虛擬用戶就仿效真實的用戶在客戶端和服務(wù)器之間的活動創(chuàng)建至少三部分:vuser_init,一個或者更多的Actions和vuser_end.在記錄期間,可以選擇其中的一部分來插入你想要記錄的函數(shù),通常你記錄一個登陸到服務(wù)器的操作在vuser_init,客戶的活動都在Actions部分,退出系統(tǒng)記錄在vuser_end部分。在創(chuàng)建測試后,你能保存它,在記錄的同時你能插入transactions、rendezvouspoints和注釋.一、虛擬用戶腳本部分VuserScriptSections
每一個腳本都包括三部分:vuser_init,一個或者更多的Actions和vuser_end.,在記錄開
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 1402-2025軌道交通牽引供電系統(tǒng)電壓
- 煮呢機(jī)擋車工崗前基礎(chǔ)在崗考核試卷含答案
- 氧化鎢制備工班組管理能力考核試卷含答案
- 橋梁工程員工培訓(xùn)
- 老年人入住老人家屬聯(lián)系制度
- 酒店客房價格調(diào)整制度
- 酒店財務(wù)報銷審批制度
- 超市庫存管理及盤點制度
- 2025-2026學(xué)年北京市通州區(qū)高三(上)期末語文試卷
- 農(nóng)村舊房改造合同協(xié)議書
- 裝修工程施工質(zhì)量檢查標(biāo)準(zhǔn)
- 供銷大集:中國供銷商貿(mào)流通集團(tuán)有限公司擬對威海集采集配商貿(mào)物流有限責(zé)任公司增資擴(kuò)股所涉及的威海集采集配商貿(mào)物流有限責(zé)任公司股東全部權(quán)益價值資產(chǎn)評估報告
- GB/T 44828-2024葡萄糖氧化酶活性檢測方法
- 青海省西寧市2023-2024學(xué)年高一上學(xué)期物理期末試卷(含答案)
- Profinet(S523-FANUC)發(fā)那科通訊設(shè)置
- 醫(yī)療護(hù)具租賃合同模板
- 高中名校自主招生考試數(shù)學(xué)重點考點及習(xí)題精講講義下(含答案詳解)
- 新人教版九年級數(shù)學(xué)上冊全冊教案
- GB/T 19665-2024紅外成像人體表面測溫篩查儀通用規(guī)范
- 2024常壓儲罐檢驗人員能力評價導(dǎo)則
- 物流管理概論王勇1
評論
0/150
提交評論