<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            軟件測試中Web應用程序的整體測試

            發(fā)布: 2010-12-31 09:08 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 領(lǐng)測軟件測試網(wǎng)采編 | 查看: 100次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            軟件測試中Web應用程序的整體測試

            一、超文本(hypertext)  
                一種全局性的信息結構,它將文檔中的不同部分通過(guò)關(guān)鍵字建立鏈接,使信息得以用交互方式搜索。它是超級文本的簡(jiǎn)稱(chēng)!
              二、超媒體(hypermedia)  
             超媒體是超文本(hypertext)和多媒體在信息瀏覽環(huán)境下的結合。它是超級媒體的簡(jiǎn)稱(chēng)。用戶(hù)不僅能從一個(gè)文本跳到另一個(gè)文本,而且可以激活一段聲音,顯示一個(gè)圖形,甚至可以播放一段動(dòng)畫(huà)。
              Internet采用超文本和超媒體的信息組織方式,將信息的鏈接擴展到整個(gè)Internet上。Web就是一種超文本信息系統,Web的一個(gè)主要的概念就是超文本連接,它使得文本不再象一本書(shū)一樣是固定的線(xiàn)性的。而是可以從一個(gè)位置跳到另外的位置?梢詮闹蝎@取更多的信息?梢赞D到別的主題上。想要了解某一個(gè)主題的內容只要在這個(gè)主題上點(diǎn)一下,就可以跳轉到包含這一主題的文檔上。正是這種多連接性把它稱(chēng)為Web。
              三、超文本傳輸協(xié)議(HTTP)Hypertext Transfer Protocol超文本在互聯(lián)網(wǎng)上的傳輸協(xié)議。
            隨著(zhù)Internet的日益普及,現在基于B/S結構的大型應用越來(lái)越多,可如何對這些應用進(jìn)行測試成為日益迫切的問(wèn)題。有許多測試人員來(lái)信問(wèn)我B/S的測試如何做,由于工作較繁忙,對大家提出的問(wèn)題也是頭痛醫頭腳痛醫腳,沒(méi)有對WEB的測試過(guò)程做一個(gè)整體的概述。希望通過(guò)本篇能夠讓大家了解大型Web應用是如何來(lái)進(jìn)行測試的。

              B/S下的功能測試比較簡(jiǎn)單,關(guān)鍵是如何做好性能測試。目前大多數的測試人員認為只要跑一些測試工具證明我的產(chǎn)品是可以達到性能的就ok了,為了證明而去測試是沒(méi)有任何價(jià)值的,關(guān)鍵是要發(fā)現產(chǎn)品性能上的缺陷,定位問(wèn)題,解決問(wèn)題,這才是測試要做的。

              首先我們從兩個(gè)方面分析如何進(jìn)行WEB測試,從技術(shù)實(shí)現上來(lái)講一般的B/S結構,無(wú)論是.NET還是J2EE,都是多層構架,有界面層,業(yè)務(wù)邏輯層,數據層。而從測試的流程上來(lái)說(shuō),首先是發(fā)現問(wèn)題,分析問(wèn)題,定位問(wèn)題,再由開(kāi)發(fā)人員解決問(wèn)題。那么B/S的結構的測試如何來(lái)做?

              如何發(fā)現問(wèn)題是我首先要介紹的,在做WEB測試之前你需要一些資料,比如產(chǎn)品功能說(shuō)明書(shū),性能需求說(shuō)明書(shū),不一定很完善,但一定要有,明確測試目標,這是基本的常識,可是我往往看到的是已經(jīng)開(kāi)始動(dòng)手測了,但還不知自己的系統要達到的性能指標是什么。這里我簡(jiǎn)單講一下測試的性能指標:

              1、通用指標(指Web應用服務(wù)器、數據庫服務(wù)器必需測試項):

              * ProcessorTime: 指服務(wù)器CPU占用率,一般 平均達到70%時(shí),服務(wù)就接近飽和;

              * Memory Available Mbyte : 可用內存數,如果測試時(shí)發(fā)現內存有變化情況也要注意,如果是內存泄露則比較嚴重;

              * Physicsdisk Time : 物理磁盤(pán)讀寫(xiě)時(shí)間情況;

              2、Web服務(wù)器指標:
              
              * Avg Rps: 平均每秒鐘響應次數=總請求時(shí)間 / 秒數;

              * Avg time to last byte per terstion (mstes):平均每秒業(yè)務(wù)角本的迭代次數 ,有人會(huì )把這兩者混淆;

              * Successful Rounds:成功的請求;

              * Failed Rounds :失敗的請求;

              * Successful Hits :成功的點(diǎn)擊次數;

              * Failed Hits :失敗的點(diǎn)擊次數;

              * Hits Per Second :每秒點(diǎn)擊次數;

              * Successful Hits Per Second :每秒成功的點(diǎn)擊次數;

              * Failed Hits Per Second :每秒失敗的點(diǎn)擊次數;

              * Attempted Connections :嘗試鏈接數;

              3、數據庫服務(wù)器指標:

              * User 0 Connections :用戶(hù)連接數,也就是數據庫的連接數量;

              * Number of deadlocks:數據庫死鎖;

              * Butter Cache hit :數據庫Cache的命中情況;

              上面的指標只是一些通用的指標,起到拋磚引玉的作用,對于不同的應用你還必需作相應的調整,比如程序使用的是.NET技術(shù)的,則必需加入一些針對性的測試指標。對于這些指標的詳細了解,你可以參考Windows 下面的 SystemMonitor的幫助與LoadRunner、ACT的幫助。對于發(fā)現問(wèn)題,指標的設置非常重要,它會(huì )幫你定性的發(fā)現一些錯誤。對于定性的壓力測試我就不做過(guò)多的分析,工具很多,流行的主要有LoadRunner,ACT,WAS,WebLoad,各個(gè)工具有它的使用范圍,其中我各個(gè)認為L(cháng)oadRunner 最全面,它提供了多種協(xié)議的支持,對復雜的壓力測試都可以勝任,WAS與ACT則對微軟的技術(shù)支持的比較好,其中WAS支持分布式機群測試,ACT則是與.NET集成比較好,支持ViewState (.NET 下控件緩存的支持) 的測試,當時(shí)我用時(shí),其它測試工具還不支持,現在應該支持了吧。

              在這一階段測試你要不斷的跟據系數的測試目標進(jìn)行變化,一開(kāi)始由于系統過(guò)于龐大,所以我們要分成若干個(gè)子系統,各個(gè)子系統的性能目標必需明確,主要是并發(fā)指標定一個(gè)閥值,同時(shí)設定一些與系統相關(guān)的測試參數,應用服務(wù)器,數據庫服務(wù)器都要有,對達不到閥值的與一些通用參數有問(wèn)題的子系統進(jìn)行深入分析。比如它的并發(fā)達不到你的要求,證明子系統性能有問(wèn)題,或是數據庫用戶(hù)連接過(guò)高,程序沒(méi)有釋放用戶(hù)連接等等。

              這個(gè)我們要對子系統進(jìn)行詳細測試,由于B/S 結構下,圖片的請求對性能的影響較大,所以我們對子系統測試時(shí)要分兩個(gè)部分進(jìn)行,一、非程序部分,即圖片等等;二、應用程序本身。通過(guò)事務(wù)或函數的分離,可以把這兩塊實(shí)現單獨的測試,具體做法參考各個(gè)工具的手冊,我這里就不做說(shuō)明。

              對子系統的測試參數的設置要求則更高,它有助你后面精確的定位問(wèn)題,比如對異常,死鎖,網(wǎng)絡(luò )流量等等前面沒(méi)有注意到的情況的增加,同時(shí)你要注意增加測試參數的收集對系統的性能影響比較大,所以一般不要超過(guò)10個(gè),剛剛介紹的整體的性能測試指標也不要增加很多,這樣影響會(huì )小一點(diǎn)。最后在這一階段要說(shuō)明的是數據庫的數據量會(huì )很大程度的影響性能,所以要根據前面的性能需求說(shuō)明書(shū)向數據庫中模擬相應的數據量,來(lái)進(jìn)行測試,這樣才有更高的可信度。

              上面所說(shuō)的是對問(wèn)題的發(fā)現,下面就是分析問(wèn)題原因,這一步的要求比較高,一般由測試人員與程序員配合完成,當然如果你有相當的開(kāi)發(fā)經(jīng)驗,再做這方面的測試,就更為難得。下面我們說(shuō)說(shuō)如何精確定位問(wèn)題,出現問(wèn)題的可能性可能有很多種,大致分以下幾種:

              一、性能達不到目標;

              二、性能達到目標,但有一些其它的問(wèn)題,比如異常,死鎖,緩存命中過(guò)低,網(wǎng)絡(luò )流量較大;

              三、服務(wù)器穩定性的問(wèn)題,比如內存泄漏……。

              要發(fā)現這些問(wèn)題起馬的要求要有一款使用的比較稱(chēng)心的性能分析與優(yōu)化工具,比如微軟的.NET下就有自己開(kāi)發(fā)的工具,對Borland的Java開(kāi)發(fā)工具中也有類(lèi)似的工具,但我個(gè)人認為更好的工具是Rose下的Purify與Quantify,主要是他對.net 與java ,C++都有支持,而且分析效果特別專(zhuān)業(yè),我們先了解一下Rational Purify, Rational Purify 能自動(dòng)找出Visual C/C++ 和Java 代碼中與內存有關(guān)的錯誤,確保整個(gè)應用程序的質(zhì)量可靠性。在查找典型的Visual C/C++ 程序中的傳統內存訪(fǎng)問(wèn)錯誤,以及Java,C# 代碼中與垃圾內存收集相關(guān)的錯誤方面;Rational Quantity 則是一款針對函數級的性能分析利器,使用它你可以從圖形化的界面中得到函數調用的時(shí)間,百分比與次數,以及子函數所占時(shí)間,使你可以更快的定位性能瓶頸。

              我們先說(shuō)性能優(yōu)化與異常的處理,性能優(yōu)化有一個(gè)原則,即用時(shí)間比例最大的進(jìn)行優(yōu)化,效果才最明顯,比如有個(gè)函數它的執行時(shí)間為30秒,如果你優(yōu)化了一百倍則執行時(shí)間為0.3秒,提升了29.7秒,而如果它的執行時(shí)間為0.3秒,優(yōu)化后為0.003秒,實(shí)際提升了0.297秒,提升的效果并不明顯,而且寫(xiě)過(guò)程序的人都知道,后者性能優(yōu)化的代價(jià)更大。在性能優(yōu)化的過(guò)程中,一般是先數據庫,后程序,因為數據庫的優(yōu)化不需要修改程序,修改的風(fēng)險很小。但如何才能確定是數據庫的問(wèn)題,這就需要技巧,在使用Quantity時(shí),你一路分析下去,大多數最終會(huì )發(fā)現,是數據庫查詢(xún)函數占用時(shí)間比較大,比如什么,SqlCmd.ExecuteNoQuery等等數據庫執行函數,這時(shí)你就需要分析數據庫。

              數據庫的分析原則是先索引,后存儲過(guò)程,最后表結構視圖的優(yōu)化,索引的優(yōu)化是最簡(jiǎn)單也是通常最有效的方法,如果合理的使用會(huì )帶來(lái)意想不到不到的效果。在這里我要給大家簡(jiǎn)單的介紹一下我的最?lèi)?ài),SQLProfile,SQL查詢(xún)分析器,Precise,SQLProfile是一個(gè)SQL語(yǔ)句跟蹤器,可以跟蹤程序流程使用的SQL語(yǔ)句與存儲過(guò)程,結合查詢(xún)分析器對SQL的分析,可以對索引的優(yōu)化做出很好的判斷,但索引也不是萬(wàn)能的,在增刪改較多的表,索引過(guò)多會(huì )引起這些操作的性能下降,所以判斷還是需要一定的經(jīng)驗。

              同時(shí)針對用戶(hù)使用頻度最高的SQL進(jìn)行優(yōu)化也是最行之有效的,這時(shí)我則需要Precise,它可以觀(guān)測某一個(gè)較長(cháng)時(shí)間內的SQL語(yǔ)句的執行情況。數據庫優(yōu)化的潛能挖光后,如果還是達不到性能要求或是還有問(wèn)題,則要從程序來(lái)進(jìn)行優(yōu)化,這是程序員做的事,測試人員要做的,就是告訴他們,哪個(gè)函數執行過(guò)多引起了性能下降,比如異常過(guò)多,某個(gè)循環(huán)過(guò)多,或是DCOM調用過(guò)多等等,但說(shuō)服程序員也是一件不容易的事,你要在這一階段做的出色一定要有幾年的編程經(jīng)驗,并且要讓程序員感到聽(tīng)你的性能會(huì )有提升,這是一件很不容易的事情。

              內存的分析,一般是一個(gè)長(cháng)期分析的過(guò)程,要做好不容易,首先要有長(cháng)期奮戰的準備,其次內存泄漏的分析最好是放在單元測試之中同步進(jìn)行,而不是要等到最后再去發(fā)現問(wèn)題,當然出了問(wèn)題也只好面對,一般這類(lèi)問(wèn)題都是在服務(wù)器運行了很久才暴露出來(lái),一旦發(fā)現問(wèn)題后,則需要定位問(wèn)題,分析的原則采用子系統相互獨立運行,找到最小問(wèn)題的系統集,或是借助內存分析工具觀(guān)察內存對象情況,初步定位問(wèn)題,再用Purify進(jìn)行運行時(shí)分析,通常C++ 內存問(wèn)題比較多,Java與.NET比較少,一般由GC不合理引起。C++的內存錯誤就比較多了,主要常見(jiàn)的有:

              1、 Array Bounds Read (ABR) :數組越界讀

              2、 Array Bounds Write (ABW):數組越界寫(xiě)

              3、 Beyond stack Read (BSR):堆棧越界讀

              4、 Free Memory Read(FMR):空閑內存讀

              5、 Invalid pointer Read(IPR):非法指針閱讀

              6、 Null Pointer Read(NPR): 空指針閱讀

              7、 Uninitialized Memory Read(UMR):未初始化內存讀寫(xiě)

              8、 Memory Leak:內存泄漏

              注:如果需要更多的信息,可以參見(jiàn)Purify的幫助信息。

              順便提一句,為什么我要說(shuō)單元測試時(shí)做這個(gè)比較好,由于單元測試針對的是單一功能,這時(shí)結合單元測試案例做內存分析會(huì )更快的定位問(wèn)題,同時(shí)由于問(wèn)題較早的發(fā)現,則后期的風(fēng)險則會(huì )減少,當然如果結合代碼覆蓋工具PureCoverage 來(lái)做就更完美了。

              注:本篇只是對B/S應用的測試過(guò)程作一個(gè)整體的描述,對某一個(gè)階段使用的工具只是作大概的介紹,你也可使用你比較熟悉的工具達到相同的目標。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: Internet 多媒體 互聯(lián)網(wǎng) 軟件測試 超媒體


            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>