一、引言
跟著收集手藝的迅速成長,尤其是WEB及其應用軌范的普及,各類基于WEB的應用軌范以其便利、快速,易操作等特點不竭成聞敉件開發的重點。與此同時,跟著需求量與應用規模的不竭擴年夜,對WEB應用軟件的正確性、有用性和對WEB處事器等方面都提出了越來越高的機能要求,對WEB應用軌范進行有用的系統的測試也逐漸成為人們研究的主要課題。
今朝可以見到各類WEB處事器平臺,然而按照Mereury的研究陳述,98%的WEB處事器都沒能達到人們所期望的機能,平均只能闡揚人們所期望機能的1/6擺布。WEB機能測試能夠確定影響WEB處事器機能的關頭身分,年夜而可以有針對性地進行剖析和改良,避免WEB處事器研究和優化過程中的盲目行為;同時,它也是拔取分歧的WEB處事器的主要參考。
跟著WEB應用軌范使用越來越普遍,針對其機能測試的要求也越來越多,然而因為WEB軌范綜合了年夜量的新手藝,諸如HTML、JAVA、Javascript、VBScript等,同時它還依靠良多其它的身分,好比Link、Database、Network等,使得WEB應用軌范測試變得很是復雜。例如:WEB壓力測試是評價一個WEB應用軌范的首要手段,它的測試就是一個代表性的方面。
在整個web應用的測試中,機能測試占很是主要位置,因為機能直接紡暌鉤了Web應用所供給處事的質量水平。Web應用設計的復雜性和用戶使用的不成展望性給若何切確地展望它的機能帶來了很年夜的挑戰,而且跟著Web應用的規模越來越年夜、用戶越來越多,這個挑戰變得加倍嚴重。文中就若何切確地設計負載測試進行了深切研究,提出了對用戶導航、用戶延遲進行建模的體例來設計負載測試,以使負載測試能夠切確地模擬現實用戶情形和展望Web應用的機能。最后應用工具loadrunner進行負載測試拭魅戰。
WEB應用軌范的測試有別于傳統軟件的測試,它有其自身的特點。下面我們進行斗勁深切的談判。
二、WEB測試手藝
(一)WEB應用軌范系統結構
WEB應用軌范采用B/S結構,它是伴跟著Internet手藝的不竭前進,由C/S結構改良和成長起來的新型系統結構。在這種結構下,用戶界面完全經由過程WWW瀏覽器實現,一部門事務邏輯在前端實現,可是首要事務邏輯則在處事器端實現,形成所謂3tier結構。B/S結構操作不竭成熟和普及的瀏覽器手藝實現原本需要復雜專用軟件才能實現的強年夜功能,并節約了開發成本,是一種全新的軟件系統機關手藝。這種結構更成為當今應用軟件開發的首選系統結構,今朝最風行的mi?鄄crosoft.net也是在這樣一種布景下被提出來的架構。
傳統的軟件一般采用C/S結構,此結構把數據庫內容放在遠程的處事器上,而在客戶機上安裝響應軟件。C/S軟件一般采用兩層結構,C/S結構在手藝上很成熟,它的首要特點是交互性強、具有平安的存取模式、收集通信量低、響應速度快、利于措置年夜量數據。可是該結構的軌范是針對性開發,變換不夠矯捷,維護和打點的難度較年夜。
(二)WEB測試的內容與目的
在很多時候我們都把測試的目的定位為尋找軟件的BUG,而且是盡可能的找出BUG來,而測試人員所做的工作就是找軟件的短處,只要找出短處就可以了,這樣很輕易帶了一系列的問題。好比測試人員給某網站做測試,并遞交了一份簡單的測試陳述:“當100用戶配合按某提交按鈕時,發生年夜量的提交失蹤敗”。對于測試人員來說,他已經完成了他自己的使命,找出了BUG,可是,這樣的測試陳述對于開發人員和項目打點者卻毫無用處。陳述中并未說起造成提交失蹤敗的原因,是硬件資本不足、收集問題、支撐軟件參數設置錯誤仍是應用開發問題等等。
測試的目的是證偽,但不能片面的理解為簡單的找不BUG就可以了。軟件測試應該履歷以下四個軌范:
1、測試人員描述發現的問題(找到BUG);
2、測試人員具體說明是在何種情形下測試發現的問題,搜羅測試的情形、輸入的數據、發現問題的類型、問題的嚴重水平等情形;
3、測試人員協同開發人員一路去剖析BUG的原因,找出軟件的缺陷地址;
4、測試人員按照解決的情形進行分類匯總,以便日后進行軟件設計的時候供給參考,避免往后呈現近似軟件缺陷。
(三)擬定WEB測試打算
當我們明晰了測試的目的之后,真正起頭針對一個WEB應用軌范進行測試的時候,我們需要擬定一套具體的測試計劃,這樣才能順遂的完成所有的測試內容,打算的內容歸納為以下幾步:
1、首先對被測的WEB應用軌范進行需求剖析,即對你所做的測試做一個簡要的介紹,搜羅描述測試的方針和規模,所測試的方針要實現一個什么樣的功能,總結根基文檔,首要勾當。
2、寫出測試策略和體例,這里搜羅測試起頭的前提,測試的類型,測試起頭的尺度以及所測試的功能,測試經由過程或失蹤敗的尺度,竣事測試的前提,測試過程中碰著什么樣的情形終止和怎么措置后恢復等。
3、確定測試情形的要求(搜羅軟件和硬件方面),選擇合適的測試工具。
4、首要針對你測試的行為,描述你測試的細節,搜羅測試用例列表,進度表,錯誤品級剖析,對測試打算的總結,和在測試過程會呈現的風險剖析等。
(四)測試的類型
WEB測試的類型搜羅內容測試、界面測試、功能測試、機能測試、兼容性測試、平安性測試等情形。內容測試、界面測試和兼容性測試都斗勁簡單,在此不再細談。WEB的功能測試與傳統的軟件測試區別不年夜,主若是在毗連測試方面有點區別,數據的傳遞方面會稍微復雜點。因為WEB軟件都是采用B/S結構,客戶端所需的處事都是由處事器供給的,所以主若是測試處事器上軟件運行的機能。WEB應用軌范的測試搜羅客戶端毗連處事器速度方面的測試和壓力測試這兩方面,機能測試的軌范:
第一,剖析產物結構,明晰機能測試的需求,搜羅并發、極限、設置裝備擺設和指標等方面的機能要求,需要時基于LOAD測試的不異測略需同時考慮不變性測試的需求。
第一,剖析應用場景和用戶數據,細分用戶行為和相關的數據流,確定測試點或測試接口,列示系統接口的可能瓶頸,一般是先主干接口再支線接口,并完成初步的測試用例設計。
第三,依據機能測試需乞降確定的測試點進行測試組網設計,并明晰分魄鬃曾方案的主要水平或優先級作為取舍評估的依據,需要時在前期產物設計中提出撐持機能測試的可測試性設計方案和對測試工具的需求。
第四,完成機能測試用例設計、分類選擇和依據用戶行為剖析設計測試規程,并籌備好測試用例將用到的測試數據。
第五,確定采用的測試工具。
第六,進行初驗測試,以主干接口的可用性為主,按照測試結不美觀剖析機能瓶頸,經由過程迭代保證根基的指標等測試的情形。
第七,迭代進行周全的機能測試,完成打算中的機能測試用例的執行。
第八,完成機能測試評估陳述。
在進行機能測試的時候,我們需要知道一些有用的機能指標,下面我們來列出一些首要的機能指標:
一是,通用指標(指Web應用處事器、數據庫處事器必需測試項):
● ProcessorTime:指處事器CPU占用率,一般平均達到70%時,處事就接近飽和;
● Memory Available Mbyte:可用內存數,如不美觀測試時發現內存有轉變情形也要注重,如不美觀是內存泄露則斗勁嚴重;
● Physicsdisk Time :物理磁盤讀寫時刻情形。
二是,Web處事器指標:
● Avg Rps:平均每秒鐘響應次數=總請求時刻/秒數;
● Avg time to last byte per terstion(mstes):平均每秒營業劇本的迭代次數;*Successful Rounds:成功的請求;
● Failed Rounds:失蹤敗的請求;
● Successful Hits:成功的點擊次數;
● Failed Hits:失蹤敗的點擊次數;
● Hits Per Second:每秒點擊次數;
● Successful Hits Per Second:每秒成功的點擊次數;
● Failed Hits Per Second:每秒失蹤敗的點擊次數;
● Attempted Connections:考試考試鏈接數。
三是,數據庫處事器指標:
● User 0 Connections :用戶毗連數,也就是數據庫的毗連數目;
● Number of deadlocks:數據庫死鎖;
● Butter Cache hit:數據庫Cache的射中情形。
(五)測試工具介紹
1、ACT(或者MSACT)。ACT是微軟的Visual Studio 和Visual Studio.NET帶的一套進行軌范測試的工具,ACT不單可以記實軌范運行的具體數據參數,用圖表顯示軌范運行狀況,而且安裝和使用都斗勁簡單,結不美觀閱讀也很便利,是一套較理想的測試工具。
Microsoft Web Application Stress Tool (WAS):這個工具和ACT一樣是微軟的產物,可是這個工具沒有和Visual Studio集成,可以零丁使用。感受這個軌范此刻還在測試,可是一些根基的功能已經很完整,可以完成ACT幾乎所有功能,而且WAS使用加倍簡單,設置也加倍完整了然。這個工具的此吐矣閩特點是,它的報表是純文本文件,而不是風行的HTML文件名目,但內容方面一點也不減色。
2、Open System Testing Architecture (OpenSTA)。OpenSTA的特點是可以模擬良多用戶來訪謁需要測試的網站,它是一個功能強年夜、自界說設置功能完整的軟件,但這些設置年夜部門需要經由過程Script來完成,是以在真正的使用這個軟件之前,必需進修好它的Script編寫。如不美觀需要完成很復雜的功能,Script的要求還斗勁高,當然,這也是它的利益,一些軌范員不會在意這些Script的。這個軟件完全免費而且源代碼可以下載,可以自己改削達到特定的要求。
3、PureLoad。PureLoad是基于Java的測試工具,它的Script代碼完全使用XML,所以這些代碼的編寫很簡單,它的測試報表包含文字和圖形并可以輸出為HTML文件。因為是基于Java的軟件,所以可以經由過程Java Beans API來增強軟件功能。
4、QALoad。QALoad不單單測試WEB應用,還可以測試一些后臺的工具,好比SQL Server等,只若是它撐持的和談,都可以測試;此外一點,QALoad不單可以測試Windows,而且可以測試AIX, HP-UX 和 Solaris等系統。可是,這款軟件價錢很高。
5、LoadRunner。Mercury LoadRunner是一種展望系統行為和機能的負載測試工具。經由過程以模擬上萬萬用戶實施并發負載及實時機能監測的體例來確認和查找問題,LoadRunner能夠對折個企業架構進行測試。經由過程使用LoadRunner,企業能最年夜限度地縮短測試時刻,優化機能和加速應用系統的發布周期。
對于財年夜氣粗的年夜公司而言,這款軟件可能斗勁適合,它的功能和QALoad對比八兩半斤,市道上馳譽的公司如IBM、SUN、Oracle等都用這個軟件。可是它的價錢也高不成攀,和功能成正比。
三、進一步的工作與談判
跟著周全質量打點思惟在軟件開發規模的應用和不竭向前推進,軟件測試也由最初的僅僅針對軟件制品擴展到了針對軟件半制品甚至過程產物的全過程測試,這是對軟件測試的一種必然擴充。WEB測試也會跟著這一思惟,不竭地擴展到WEB軟件的各個生命周期中去,這將使WEB應用軌范取得更高的質量,這也是我們往后需要進一步研究的內容。出格是對WEB壓力測試自順應模子的試探才剛剛起頭,有良多不足之處,例如:今朝的測試人機交互較多,而自動完成的軌范較少等,這些都有待日后的改良。
除了前面介紹的WEB壓力測試外,今朝WEB測試的首要研究熱點還有:WEB應用測試的框架研究,WEB應用軌范測試的對象模子研究及其應用,WEB測試的高度自動化研究等等,都將是未來一段時代內的研究重點。