oldsidney 學習筆記

http://www.oldsidney.idv.tw
随笔 - 30, 评论 - 266, 引用 - 2

导航

关于




标签

每月存档

最新留言

广告

【第1页/共3页,37条】
首页
前页
1
2008年02月13日
常有人問我有沒有專門在講效能測試的書,就是這一本了!!

Performance Testing Guidance for Web Applications from MSDN.
Download the Performance Testing Guidance for Web Applications Guide
微軟全球技術支援中心 – 邱英瑞 – Jacky Chiou:有一些VS2008, VS2005 Team Test 的使用與功能介紹

posted on 2008-02-13 17:37:00 by oldsidney  评论(2) 阅读(4043)

 
2006年11月18日

看看 Mercury 自動化功能測試已經發展到什麼程度。

傳統自動化測試的限制

 

軟體的自動化測試在過去一段時間中有長足的進步。每個世代的產品都成功解決了某些重要的挑戰,但是同時也引進了不同的問題等待解決。

 

第一代的自動化測試大概在15年前開始,透過硬體的方式錄製鍵盤的輸入並播放,但缺少檢查點(checkpoint)的功能,而且測試腳本很難維護。

 

第二代的自動化測試則大約在10年前開始的,這時已經由硬體轉變成透過軟體錄製/播放(capture/playback)的方式產生測試腳本(script),並且也增加了檢查點的功能,可以對軟體做驗證,測試的範圍也比硬體方式的自動化方式大了許多。比較大的問題是測試腳本也是一種程式語言,所以測試人員也需要懂程式語言,換句話說就是要會寫程式。而且當軟體有變動時,測試腳本也需要同步更新,這對測試人員來說是一大挑戰,測試人員常常就是整個測試腳本再重新錄製一遍。

 

2001年開始了第三代的自動化測試稱為「測試框架(test framework)」,主要是把測試腳本給抽象化(abstraction)(註:如Keyword-Driven Test),讓非技術人員(如系統分析師、使用者等)即使不懂測試腳本,不會寫程式的情況下,也可以使用自動化測試工具建立自動化測試個案。

第四代
Mercury Business Process Testing:專注於業務需求的自動化測試

posted on 2006-11-18 15:33:00 by oldsidney  评论(9) 阅读(6115)

 

Mercury Quality Center 8.0 時就推出 Business Process Testing,到現在已經進步到 9.0 的版本了。會什麼 Mercury 發展出 Business Process Testing 呢?Business Process Testing 的好處在哪?要如何使用Business Process Testing?我將在以下的文章為大家做個介紹。

 

傳統UI自動化測試的限制

 

軟體的自動化測試在過去一段時間中有長足的進步。每個世代的產品都成功解決了某些重要的挑戰,但是同時也引進了不同的問題等待解決。

 

第一代的自動化測試大概在15年前開始,透過硬體的方式錄製鍵盤的輸入並播放,但缺少檢查點(checkpoint)的功能,而且測試腳本很難維護。

 

第二代的自動化測試則大約在10年前開始的,這時已經由硬體轉變成透過軟體錄製/播放(capture/playback)的方式產生測試腳本(script),並且也增加了檢查點的功能,可以對軟體做驗證,測試的範圍也比硬體方式的自動化方式大了許多。比較大的問題是測試腳本也是一種程式語言,所以測試人員也需要懂程式語言,換句話說就是要會寫程式。而且當軟體有變動時,測試腳本也需要同步更新,這對測試人員來說是一大挑戰,測試人員常常就是整個測試腳本再重新錄製一遍。

 

以下為Mercury WinRunner測試腳本的範例

 

 

2001年開始了第三代的自動化測試稱為「測試框架(test framework)」,主要是把測試腳本給抽象化(abstraction)(註:如Keyword-Driven Test),讓非技術人員(如系統分析師、使用者等)即使不懂測試腳本,不會寫程式的情況下,也可以使用自動化測試工具建立自動化測試個案。

 

舉個 Mercury QuickTest Professional Keyword-Driven Test的測試腳本為例子,測試人員不管是錄製、編輯或是看到的測試腳本都是以「click the “OK” button」這樣的關鍵字所呈現的。

 

「測試框架」確實是增加了測試團隊的生產力,但是還是有些缺點:

n           Keyword方式建立的測試腳本還是在測試步驟的層次,當設計一個複雜的商業流程測試個案可能還是需要大量的Keyword。對測試人員而言還是需要耗費大量的時間。

n           「測試框架」對於測試人員而言,只是測試腳本長得不再像是程式原始碼,而像是在Excel中填入Keyword罷了,其實還是在寫測試腳本。

n           支援「測試框架」的自動化測試工具通常與之前的測試工具做法不同,例如不提供錄製的功能,而限制了其彈性。再者,測試人員在使用這類工具時也常常不知其所以然,在不瞭解內部的運作下,很難對Keyword做客製化。

n           「測試框架」即使已經被抽象化了,但是其層次還是停留在「步驟」的層次,尚未提升到「業務流程」的層次,迫使測試人員在建立測試腳本時,還是需要以「程式人員」的思考方式建立測試腳本,而不是以「業務人員」的角度來建立測試腳本。

n           「測試框架」的測試腳本沒有與測試文件建立關聯性,測試人員還是需要花費大量的工時在建立與維護測試文件的工作上。

 

從上面的問題,可以看出「測試框架」這樣的方式,對於具備技術背景的測試人員也許還 OK,但是對沒有技術背景的測試人員如(業務人員或是使用者),還是有其使用上的困難。

 

Mercury Business Process Testing – 是一種轉變而非一種新技術

 

Mercury很快地意識到這些挑戰,並非只有單單改進第三代自動化測試工具就能解決,需要的是一個全新的方式。所以從測試腳本的設計、自動化、維護以及文件化做一個全面且根本的進化,進而發展出第四代的自動化測試工具「Mercury Business Process Testing

 

相較於Keyword-Driven TestingBusiness Process Testing的抽象化層次更高,到達了「業務流程」的層次。

 

以下的例子可以看出一個有登入動作的測試個案,使用Keyword-Driven Testing的方式,至少需要4個步驟:開啟應用程式登入視窗、輸入帳號、輸入密碼、按下OK按鈕來完成登入的動作。但是以Business Process Testing的方式,登入的動作就成為一個可以接受以帳號、密碼為參數而且可以重複使用的業務流程元件。

 

 

 

Business Process Testing的優點

 

使用Business Process Testing的自動化測試主要有以下的優點:

n           透過非技術性、元件化、以業務流程層次的方式設計測試個案,讓業務人員以及一般使用者也可以參與自動化測試的工作。

n           業務元件可以被不同的測試個案所使用,加快建立自動化測試腳本的時間,並降低維護的成本。

n           建立或維護測試腳本時也會同時更新測試個案文件,大大縮短維護測試文件的時間。

 


 

如何Mercury Business Process Testing

 

Business Process Testing需要Mercury Quality CenterQuickTest Professional配合才能運作。同時測試團隊中也需要二種角色,一是熟悉QuickTest Professional測試工具的人員(Automation Engineer),負責建立並維護Application Area、物件庫(object repository)、library filesrecovery scenarios,另外也需要負責對Business Component進行除錯的工作;另一是非常熟悉業務流程的人員(Subject Matter Expert),透過Quality Center介面,設計Business Component以及Business Process Test並運用Application Area將其自動化。

 

使用Business Process Test的流程如下:

 

 

建立Business Component

 

首先建立一個名為LoginBusiness Component,並且填入相關資訊,如SummaryPre-ConditionPost-Condition,讓想要使用此Business Component的人員知道其目的、用途以及使用條件與限制。

 

 

輸入測試步驟

 

點選上方的Design Steps,開始輸入測試步驟,含Step NameDescriptionExpected Result

 

點選New Step將其餘的測試步驟也一併輸入,最後可以看到此Busniess Component的執行步驟如下。

 

 

建立Business Process Test

 

點選Mercury Quality CenterTest Plan,建立一個名為「預定機位」的Business Process Test

 

輸入此測試個案的描述。

 

Business Component加入Business Process Test

 

Test Script點選Select Component,將剛剛建立的Busniess Component依序以滑鼠拖拉到中間的區塊。此Business Process TestLoginCreate OrderUpdate OrderLogout 4Business Component所組成。

 

Business Component自動化

 

再回到Business Components將其轉成自動化測試腳本,在Design Steps點選QuickTest Keyword-Driven,將此Business Components轉成QuickTest Keyword-Driven類型的測試腳本。Business Components支援三種類型的腳本:QuickTest Keyword-DrivenQuickTest ScriptedWinRunner

 

轉成QuickTest Keyword-Driven腳本後,點選Automation就可以看到其Keyword-Driven的腳本,目前都還是ManualStep

 

選擇Application Area。這個Application Area內含測試物件(Test Object)、Keyword steps、函式庫等等。

 

Keyword-Driven步驟加入Business Component

 

直接在Keyword View上透過選取ItemOperation、輸入Value的方式建立Keyword-Driven腳本。

第一個步驟為執行Flight Reservation程式,在Item欄位就不是選取Test Object,而是選取Operation,然後在Operation欄位選擇OpenApp表示此步驟是要執行一個程式,同時在Value欄位輸入這個程式的路徑,這樣第一個步驟就完成了。

Item選取Login DiaglogTest Object,然後在Operation選取Activate,表示此步驟為開啟登入視窗,Value欄位則不需要輸入任何值。

 

選取AgentNameEditBoxOperation則是Set,表示要在Agent Name這個EditBox輸入資料,至於要輸入什麼資料就直接輸入在Value欄位中。

 

 

Value欄位輸入mercury

 

以相同的方式加入其他的步驟,完成後整個Business Component的執行腳本如下。

 

也同步更新了Business ComponentDesign Steps(可惜不是中文)。

 

連登入視窗的畫面也加進去方便要使用Busniess Component的測試人員更容易瞭解此元件的操作畫面。

 

到此這個LoginBusiness Component已經完成,而且可以被其他的Business Process Test使用了。

 

Business Component除錯

 

當完成Business Component的自動畫腳本後,通常會試著執行看看此Business Component是否可以順利執行,假如執行有任何問題則可以進行除錯,看看是不是Test Object選錯了還是Value值給錯了。

 

參數化

 

由於Business Component可以被其他的Business Process Test重複使用,所以通常也會將輸入資料設定為參數的方式來輸入。例如Login可以設定其接受帳號與密碼二個參數,而且在使用時,可以輸入多組的帳號密碼,然後當執行不同的Iteration時就會使用不同的帳號密碼作登入的動作。以下畫面在設定Login Component在此Business Process Test所使用的帳號密碼參數值。

 

Test ScriptInput出現了剛剛輸入的參數值。

 

執行Business Process Test

 

最後就可以執行Business Process Test並且檢視測試結果了。

 

以上是Mercury Business Process Testing的使用方法。

 

 

參考文件

n           Mercury White PaperMercury Business Process TestingTest Automation Focused on Your Business

n           Mercury Business Process Testing Tutorial

n           Mercury Business Process Testing User's Guide

posted on 2006-11-18 15:23:00 by oldsidney  评论(2) 阅读(3451)

 
2006年07月28日

假如你同時使用微軟的 Visual Studio 2005 開發軟體以及 Mercury Quality Center 管理 defect,那就可以在 Mercury Quality Center Add-in page 下載這個 add-in。安裝之後就可以直接在 Visual Studio 2005 IDE 中直接處理 Quality Center 上的 Defect,不需要再另外開瀏覽器了!!


圖一 直接在 Visual Studio 2005 中就可以處理 Quality Center 系統中的 defects


圖二 也可以在 Visual Studio 2005 中直接創建一個 defect 到 Quality Center 系統中!

posted on 2006-07-28 00:09:00 by oldsidney  评论(9) 阅读(7565)

 
2005年05月19日
 ViewState 是 ASP.NET 用來存放網頁上伺服器端控制項 (server control) 狀態的一個隱藏欄位,所以當你檢視你的 ASP.NET 網頁原始檔,會發現一個 "__VIEWSTATE" 的隱藏欄位,其值是一堆看不懂的字元,就如同下列的例子。

<INPUT type="hidden" name="__VIEWSTATE"
value="dDwxNTgzOTU2ODA7dDw7bDxpPDE+Oz47bD
x0PDtsPGk8MT47PjtsPHQ8QDA8cDxwPGw8UGFnZU
NvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZ
Ul0ZW1Db3VudDtEYXRhS2V5czs+O2w8aTwxPjtpPD
g+O2k8OD47bDw+Oz4+Oz47Ozs7Ozs7OztAMDxAMD
xwPGw8SGVhZGVyVGV4dDtEYXRhRmllbGQ7U29yd
EV4cHJlc3Npb247UmVhZE9ubHk7PjtsPHB1Yl9pZDtwd=="/>

當使用 LoadRunner VuGen 錄製含有 ViewState 的 ASP.NET網站應用時,就會需要做關聯 (Correlation)。

其關聯的範例腳本如下:

web_reg_save_param("MyViewState","LB=\"__VIEWSTATE\" value=\"","RB=\"",LAST);

假如 ASP.NET 網頁上的控制項一多,ViewState 會變得很大,所以通常也會需要使用 web_set_max_html_param_len 函數將參數 (Parameter) 的長度給適度地放大:

web_set_max_html_param_len("2048");

其他關於 ViewState 的參考資料:ViewState: All You Wanted to Know

posted on 2005-05-19 00:25:00 by oldsidney  评论(3) 阅读(4935)

 
2005年01月06日

有人提到不清楚什麼是 LoadRunner?LoadRunner 是一套做效能測試的工具,比較詳細的說明可以參考下面這篇白皮書:
自動化效能測試白皮書

類似的工具有:

假如你想更了解 LoadRunner 的話,可以從 LoadRunner Tutorial 開始:

  1. LoadRunner 8 Tutorial
  2. 安裝 LoadRunner 8
  3. 認識 LoadRunner 8 的元件
  4. LoadRunner 常用的術語
  5. LoadRunner 流程
  6. 熟悉 Mercury Tour 範例網站
  7. 先體驗一下 LoadRunner 的威力
  8. To be continue...

 

posted on 2005-01-06 16:45:00 by oldsidney  评论(5) 阅读(18926)

 
2004年12月28日
當錄製腳本時,VuGen會攔截client端(瀏覽器)與server端(網站伺服器)之間的對話,並且通通記錄下來,產生腳本。在VuGen的Recording Log中,您可以找到瀏覽器與伺服器之間所有的對話,包含通訊內容、日期、時間、瀏覽器的請求、伺服器的回應內容等等。腳本和Recording Log最大的差別在於,腳本只記錄了client端要對server端所說的話,而Recording Log則是完整紀錄二者的對話。

當執行腳本時,您可以把VuGen想像成是一個演員,它偽裝成瀏覽器,然後根據腳本,把當初真的瀏覽器所說過的話,再對網站伺服器重新說一遍,VuGen企圖騙過服務器,讓服務器以為它就是當初的瀏覽器,然後把網站內容傳送給VuGen。

所以紀錄在腳本中要跟伺服器所說的話,完全與當初錄製時所說的一樣,是寫死的(hard-coded)。這樣的作法在遇到有些比較聰明的伺服器時,還是會失效。這時就需要透過「關聯(correlation)」的做法來讓VuGen可以再次成功地騙過伺服器。

如何在 LoadRunner 腳本中做關聯 (Correlation): Part1
如何在 LoadRunner 腳本中做關聯 (Correlation): Part2
如何在 LoadRunner 腳本中做關聯 (Correlation): Part3
如何在 LoadRunner 腳本中做關聯 (Correlation): Part4

posted on 2004-12-28 18:06:00 by oldsidney  评论(4) 阅读(5202)

 
2004年11月09日

d20030110.gif d20030109.gif

註:原圖來自於 dilbert.com 於 2003/01/09 及 2003/01/10 刊載的漫畫,但原網站已經移除原圖的鏈結。 現在的圖則是 link 到 http://baby.homeip.net/patrick/ 的 blog 上的。

posted on 2004-11-09 15:47:00 by oldsidney  评论(4) 阅读(4015)

 
2004年11月02日

最近又發現 wiki 這個東西,可以讓一群人集體創作,例如wiki百科全書

突然有個想法,想用wiki來集體翻譯使用手冊,不過後來考慮到版權的問題,想想還是作罷。

從想要將「oldsidney 學習筆記」換成blog開始,已經試了WordPress(blog)、xoopsosCommerceCooCooWakka(wiki)這些東西,覺得open source的資源真是豐富。看來可以好好考慮學習PHP與MySQL(雖然open source不等於PHP+MySQL),除了資源豐富之外,容易建置也是另一個吸引我的主要因素。

假如我有一個軟體開發團隊,我想可以用blog讓整個團隊的成員一起來知識分享,並透過xoops建立整個團隊的入口網(portal),然後用wiki讓每個成員針對自己負責的部份,寫使用手冊。最後甚至還可以用 osCommerce 來將產品賣出去。

這樣的想法不知道行不行得通?

posted on 2004-11-02 10:03:00 by oldsidney  评论(10) 阅读(4452)

 
2004年10月28日

!喔的倒顛是都料資的來出查連,字鍵關入輸倒顛要只不,elgooG 的倒顛,站網的趣有個一

http://www.alltooflat.com/geeky/elgoog/

posted on 2004-10-28 13:57:00 by oldsidney  评论(40) 阅读(17036)

 
2004年10月25日

最近把「oldsidney 學習筆記」換到其它的 hosting,換過去後應該不會有被擋掉的問題了,所以大陸的讀者應該可以訪問到「oldsidney 學習筆記」了。

除了換 hosting 之外,也順便把整個網站換成了 WordPress Blog,以後發表文章就更方便囉!

另外還有 ezMoney 的網站也一併建起來了。

posted on 2004-10-25 16:00:00 by oldsidney  评论(3) 阅读(3615)

 
2004年10月01日


基本上這篇文章原本就是 Mercury 的白皮書,所以讀者一定覺得我有幫 Mercury 打廣告的嫌疑。不過撇開 Mercury 產品的內容,我覺得整個白皮書所講的效能測試部分,還是蠻有參考價值的,這也是我之所以會翻譯這篇文章的主要原因。
資料來源:
Mercury

自動化效能測試是一種手段,透過人、流程與技術,降低應用系統上線、升級以及更新 patch 的風險。在系統上線前,以預期上線後的負載進行測試,並量測其系統效能以及使用者經驗。一個好的效能測試可以回答以下的問題:

  • 當預期數量的使用者同時上線時,系統的回應是否夠快?
  • 系統是否能夠負荷的了預期的負載,甚至在超出預期的負載下也能正常運作?
  • 系統是否能夠處理的了所有的商業交易?
  • 在預期的負載或是超出預期的負載下,系統是否穩定?
  • 在決定上線時,您能確保使用者將會有良好的使用經驗(如回應時間)?

除此之外一個有效的效能測試,還能幫助您取得更多的資訊以便決定軟體是否可以交付部署,並且減少系統當機時間。透過自動化效能測試,可以將商業變化所造成的衝擊給量化,並藉此明瞭部署軟體的風險。

詳全文

posted on 2004-10-01 15:00:00 by oldsidney  评论(4) 阅读(4747)

 

譯註:基本上這篇文章原本就是 Mercury 的白皮書,所以讀者一定覺得我有幫 Mercury 打廣告的嫌疑。不過撇開 Mercury 產品的內容,我覺得整個白皮書所講的效能測試部分,還是蠻有參考價值的,這也是我之所以會翻譯這篇文章的主要原因。
資料來源:
Mercury
前言
在過去20年來,企業已經把過去軟體的使用轉變成為「數位化工作」。軟體被大量運用來增進工作效率與生產力。在全球化的經濟,軟體更成為提供協同運作以及資訊分享的新媒介。事實上,軟體已經變成是企業關鍵業務 (business-critical) 上資訊分享與交易處理的主要管道。在今天,企業已經脫離不了軟體,不管是電子郵件、 CRM (Customer Relationship Management) 到交易處理,軟體都可以視為是商業。

同時,軟體的開發技術也變得非常成熟,相對的複雜程度也與日俱增,所帶來的影響就是軟體可能存在更多潛在問題,而且更難找出問題所在。

再者,軟體不像是一部車子,壞了只要換個零件就可以了。軟體可能為了保持競爭優勢或是因為商業條件的改變,每週、每月、每年都在演化。所以企業必須對這一連串改變所造成的風險作有效的管理。

我們可以看到軟體正以非常快速的步調在改變,複雜程度有如爆炸般的與日俱增,為整個軟體開發流程帶來巨大的風險。

什麼是效能測試?
所謂的「效能測試」是在系統上線前用來測試 end-to-end 效能 (performance) 的一種測試方法,而 end-to-end 意味著效能測試是要從使用者的角度去驗證效能指標。所以效能測試解決方案 (solution) 應該提供:
  • 使用最少的硬體資源,模擬成千上百的使用者與系統互動
  • 從終端使用者 (end-user) 的角度量測系統回應時間 (response time)
  • 能夠以一致的方式重複產生負載
  • 監視待測系統的各個元件
  • 提供強大的分析工具與報表產生器
自動化效能測試解決方案,通常使用四個主要元件來建立並執行效能測試。這四種主要元件為:
  • 虛擬使用者產生器 (Virtual User Generator):錄製使用者操作的業務流程 (business process) 以產生自動測試腳本 (script)
  • 控制器 (Controller):組織、驅動、管理並監視整個效能測試的執行
  • 負載產生器 (Load Generator):在測試過程中用來執行虛擬使用者 (virtual user) 產生負載
  • 分析 (Analysis):用來檢視、剖析、比較測試的結果
為何要自動化效能測試?
自動化效能測試是一種手段,透過人、流程與技術,降低應用系統上線、升級以及更新 patch 的風險。在系統上線前,以預期上線後的負載進行測試,並量測其系統效能以及使用者經驗。一個好的效能測試可以回答以下的問題:
  • 當預期數量的使用者同時上線時,系統的回應是否夠快?
  • 系統是否能夠負荷的了預期的負載,甚至在超出預期的負載下也能正常運作?
  • 系統是否能夠處理的了所有的商業交易?
  • 在預期的負載或是超出預期的負載下,系統是否穩定?
  • 在決定上線時,您能確保使用者將會有良好的使用經驗(如回應時間)?
除此之外一個有效的效能測試,還能幫助您取得更多的資訊以便決定軟體是否可以交付部署,並且減少系統當機時間。透過自動化效能測試,可以將商業變化所造成的衝擊給量化,並藉此明瞭部署軟體的風險。

自動化效能測試流程
自動化效能測試流程


譯註:這張圖說明了整個效能測試的流程,非常具有參考價值喔!

一般而言,自動化效能測試的流程分成四大階段:設計 (design)、建立 (build)、執行 (execute)、診斷與調優 (diagnose and tune)。每個階段都需要有不同的角色參與,以完成不同的工作。

  • 設計階段需要定義要執行效能測試的商業流程 (business process)、在一般以及尖峰時間需執行哪些商業流程、同一時間有多少的使用者上線、以及系統的效能指標如回應時間 (response time)。

  • 建立階段首先要建立整個測試環境,包含待測系統以及基礎建設 (infrastructure),如網路。並透過自動化效能測試工具,建立測試腳本 (script) 與測試場景 (scenario)。

  • 執行階段則是執行測試場景,並監視系統效能。

  • 診斷與調優主要透過執行測試場景所蒐集到的效能數據,快速地找到問題與瓶頸,以便優化整個系統的效能。這個階段是需要配合執行階段一起反覆進行的。

接下來將針對每一階段的工作做更詳細的說明,以確保效能測試的成功:

設計 (Design)
在這個階段,效能測試團隊主要的工作是取得系統的效能需求,效能需求一般可分成四大類 - 商業 (business)、技術 (technical)、系統 (system)、團隊 (team)。

商業需求的角度,您可以透過與專家 (subject matter experts, SMEs) 開會的方式蒐集商業需求。這些專家可能是商業分析師 (business analusts) 或者是您的使用者。商業需求可能會以下列的方式呈現:
  • Application overview:透過使用者示範的方式,讓效能測試團隊從高階的角度,清楚的知道系統是如何被使用。
  • Business Process List:一份列出在系統上會被使用者執行的關鍵商業流程清單。
  • Business Process Flows:針對清單上的每一個關鍵商業流程,將其操作步驟、螢幕畫面,寫成文件。
  • Transaction List:列出關鍵商業流程中,需要被量測效能的關鍵步驟,例如登入、新增訂單。
  • Business Process Diagrams:透過流程圖畫出商業流程,以便測試人員了解流程中的分支與條件。

譯註:這些資料會跟你要測試哪些交易流程有關係。

技術需求的角度,您需要和系統管理員 (syetem administrator) 和 資料庫管理員 (database administrator, DBA) 開個會議,以便了解系統的技術需求有哪些。這些人可能來自開發部門以及營運部門。要取得技術需求,可以透過下列的方式進行:
  • An Environment Walkthrough:了解被測系統的環境與架構。
  • System Scope Meeting:對整個效能測試涵蓋的系統範圍取得一個共識。
  • Production Diagram:Production 環境的系統架構圖,並且要標示出從測試環境轉移到正式環境時,可能影響系統效能的點。

譯註:了解系統環境後,才能建立測試環境,而且當效能出現瓶頸時,也才能夠決定該蒐集哪些資料,以便找出問題所在。

再來是從系統需求的角度,你必須了解高階的系統需求,才能訂出測試的目標,如此一來當測試結果出爐,才能判定系統是否符合需求。系統需求可以從回答以下的問題來取得:
  • 系統在一般以及尖峰時間,分別要能夠負荷的了多少個同時上線的用戶?
  • 系統每秒必須處理多少交易?
  • 針對系統的業務關鍵交易 (business-critical transaction),可接受的最小與最大回應時間是多久?
  • 使用者是透過什麼方式連上系統的?
  • 系統在正式環境的負載可能會多大?分別是哪些交易組成的?

譯註:有了這些資料你才能知道該如何設計測市場景。最重要是有目標,你才知道什麼時候測試做完了。

在真正進入下一個「建立」的階段之前,還有一個「團隊需求」要注意。所謂團隊需求最主要就是要決定哪些成員要參予效能測試。一開始可能只是一人團隊,假如希望達到 CoE ( Center of Excellence) 的境界,就必須確定要有後勤支援的資源。


譯註:您可以考慮將這些人抓來參予效能測試:專案經理、測試經理、網管人員、系統管理人員、資料庫管理員、開發人員、系統分析師、有經驗的使用者、技術顧問。

建立 (Build)
在「建立」階段,就可以將「設計階段」的業務流程 (business process) 與工作負載 (workload) 轉換成自動化的元件,以驅動可重複的、符合實際情況的負載。此階段的工作可以分成二大類:自動化設定與環境設定。

自動化設定主要由效能工程師 (performance engineer) 依序執行下列的工作:

  1. 建立腳本 (scripting):將設計階段的業務流程轉成自動化測試腳本。
  2. 插入交易 (transactions):插入用來量測回應時間的點。
  3. 參數化 (parameteriaztion):將測試資料如帳號、密碼,轉成參數,讓每個虛擬使用者都可以使用不同的測試資料以進行測試。
  4. 建立情境 (sceenatios):建立效能測試的情境,指定使用的測試腳本、虛擬使用者的量、排定執行的時程等。
  5. 監視器 (monitors):決定要對哪些伺服器進行監控。
至於環境設定主要是建置一個符合實際情況的測試環境,如軟硬體、測試所使用的資料庫 (譯註:指資料庫內容、資料筆數) 等。主要參予人員有系統管理人員、資料庫管理員、營運人員、業務團隊等。

當可以在一個受控制的測試環境上,執行整個效能測試情境,表示已經完成「建立」階段,可以真正執行測試了。

執行 (Execute)
對於剛開始接觸效能測試的新手,通常會有「效能測試只測一次」的誤解。事實上,一個完整的效能測試是由多種不同類型的測試所組成的。每一種類型的測試,都會提供不同的資訊,幫助您了解系統的商業風險。

這些類型的測試包含:

  1. 基準測試 (baseline test):透過執行少量的負載,如 5~10 個的虛擬使用者,建立一個效能基準,同時驗證整個效能測試是可以正常執行的。通常在整個效能測試過程的開始與結束,都需要執行基準測試,如此才能了解系統的效能真的有改善了。
  2. 效能測試 (performance test):效能測試主要目的在於模擬實際的環境,以了解系統可以處理的「最佳」以及「最大」的使用者數量。所以會以一般的平均負載以及尖峰的負載來進行測試。測試時也要儘可能模擬真實環境,如考量思考時間 (think time)、連線頻寬、不同的瀏覽器設定等。同時也會開啟監視器,以便找出瓶頸點。
  3. 性能標竿測試 (benchmark test):當系統有變動,如增加硬體資源、資料庫版本升級、系統架構改變等,都透過性能標竿測試,藉此評估應該使用哪種軟硬體架構,也可以了解變動對系統效能所造成的衝擊,同時及早對未來可能成長的負載進行容量規劃 (capacity planning)。
  4. 滲透測試 (soak test) (譯註:翻譯的不好):在模擬實際的負載下,透過長時間的測試,驗證系統的穩定性。
  5. 尖峰測試 (peak test):在模擬尖峰的負載下,透過長時間的測試,藉此了解系統的極限。
分析、診斷、調優 (Analyze, Diagnose, and Tune)
效能測試的投資報酬率 (ROI) 到底在哪?
  • 降低風險:效能測試最主要的就是要降低系統上線後的風險,透過自動化效能測試,可以提供開發人員或專案成員許多清晰、可量化的 (quantifiable) 資訊,以便了解系統上線後的擴展性 (scalability) 與效能。
  • 效能最佳化:由於資訊都是可量化的,所以可以確保系統是以最少的硬體資源,獲取最佳的終端使用者 (end-user) 回應時間。
如何達到效能最佳化
  1. 監視 (Monitoring):透過監視可以清楚了解效能測試過程中,整個基礎建設的每一個層次的狀況,如 Web server、application server、database server。舉例來說,您可以透過監視 CPU 的使用率,發現在 200 個使用者上線時, CPU 使用率已經維持在 100% 了,而你的目標是系統要能承受 300 個使用者上線。這時您可能就需要增加硬體資源,或是對應用程式的程式碼作最佳化。

  2. 分析 (Analysis):您可以分析比對各種資料以了解系統的行為,例如比對使用者的回應時間與 CPU 使用率,可以了解之間的關係。

  3. 調優 (Tuning):許多公司使用 LoadRunner 在系統上線前、上線時以及上線後執行自動化效能測試。現在,Mercury 將以前的 ProTune 產品合併成為 LoadRunner 的一部分。透過調優的方法 (methodology),可以自動調整系統的參數設定,以便達成系統效能目標。

  4. 診斷 (Diagnostics):LoadRunner 提供的 Diagnostics 可以讓效能工程師,從整個交易流程向下分析,檢視到每一個元件、方法 (method)、SQL 指令的回應時間。讓開發人員更可以專注最佳化那些最花費時間的瓶頸點上。

效能測試需要哪些人的加入?
  • 專案經理 (Project Manager):協調多個效能測試、管控測試的時程、取得需要的軟硬體、處理資源分配、發現問題。
  • 商業分析師 (Business Analyst):負責從商業角度查核效能測試,並協助開發業務流程,以及量測回應時間的點。
  • 效能經理 (Performance Manager):整個效能測試團隊的聯絡窗口,負責協調效能測試的支援團隊,以及管理日常活動。
  • 效能測試人員 (Performance Testers):負責建立並執行效能測試,蒐集測試的結果。
  • 系統架構師 (Application Architect):對測試結果進行分析診斷,將系統效能做最佳化。
  • 基礎設施專家 (Infrastructure Specialists: DBAs, Network Administrators, System Architects):對測試結果進行分析診斷,將系統效能做最佳化。

譯註:效能測試是個團隊合作才能完成的工作喔!

Why Mercury?
Mercury 在全球的效能測試自動化工具市佔率高達 70% (Newport Group, 2003),以下列出 Mercury LoadRunner 的主要優勢:

  • 有需求就可以模擬負載 (On-Demand Production Workload):LoadRunner 可以驅動成千上萬的虛擬使用者,以及不同的商業流程,藉以模擬系統上線後所實際遭遇的負載,讓您可以在系統上線前,找出潛在的系統瓶頸。
  • 支援廣泛的環境 (Enterprise Environment Support):LoadRunner 支援將近 40 種的通訊協定 (protocol),如 Web、J2EE、.NET、XML、SAP、Siebel、Oracle、PeopleSoft、wireless、Citrix、主從式架構 (client-server) 等。
  • 支援眾多的監視器 (Enterprise Monitoring Support):LoadRunner 使用非插入式 (non-intrusive) 的即時線上效能監視器,如 web server、application server、database server、ERP、CRM、防火牆、負載平衡等,協助您找出硬體資源極限以及軟體設定所造成的效能問題。
  • 診斷 (Diagnostics):LoadRunner 是唯一針對 J2EE、Oracle、Siebel 提供詳細診斷資訊的效能測試工具,您可以從商業流程的回應時間,一路下向探鑽 (drill down) 到 web、application、database 不同區段的回應時間,進而到每個 method 以及 SQL 指令所花費的時間。
  • 基礎建設調優 (Infrastructure Tuning):根據經驗有 70% 的效能瓶頸是因為基礎建設的設定問題所造成的。LoadRunner 內建 Tuning 模組,協助您找出基礎建設的設定問題。
  • 自動化分析 (Automatic Analysis):LoadRunner 的 AutoCorrelation 精靈,可以依據效能測試結果,自動找出可能是造成效能開始降低的前五大嫌疑犯,節省您找問題的時間。
  • 容易使用 (Ease of Use):LoadRunner 是為 QA 人員所打造的,提供視覺化腳本、資料與自動關聯精靈、ActiveScreen,大大降低學習曲線,讓您的效能工程師可以盡快上手使用 LoadRunner。
  • TurboLoad:LoadRunner 的 TurboLoad 技術,可以使用最小的硬體資源產生最大的負載量。
  • 廣域網路模擬 (WAN Emulation):LoadRunner 可以模擬廣域網路的時間延遲 (network latency)與封包遺失 (packet loss),讓您可以模擬最真實的使用情境。
  • 統一的腳本引擎 (Unified Scripting Engine):LoadRunner 使用與 Mercury Application Management 解決方案相同的腳本引擎,大大降低使用 Mercury 解決方案的教育訓練與建立腳本的成本。

posted on 2004-10-01 14:56:00 by oldsidney  评论(1) 阅读(6197)

 

GMail Icon Maker

另外 liu 提醒:怕这个网站供给不纯,用这个功能来收集大家的邮件地址。所以用的时候自己小心了

只要在上面這個網頁輸入你的 GMail 的 username,就會幫你產生出屬於你個人的 GMail email address 小圖示。

例如我的 GMail 信箱:

posted on 2004-10-01 10:35:00 by oldsidney  评论(13) 阅读(6421)

 
2004年09月24日

如果你的團隊沒有專門的測試人員(至少每兩到三個程式人員要配一名), 你要不是推出問題很多的產品, 就是浪費錢叫時薪100美元的程式人員去做測試員(時薪30美元)做的事. 省測試員絕對不是真省, 這實在是再明顯不過了. 我實在很驚訝很多人卻還認不清這一點!

以下是由約耳談軟體列出不需要測試人員的五大藉口:
1. Bug 是由懶散的程式設計人員造成的
2. 我的軟體就放在網路上,所以要修正很容易
3. 我的客戶會替我做測試
4. 好的測試人員都不想當測試人員
5. 我請不起測試人員

原文

posted on 2004-09-24 10:49:00 by oldsidney  评论(21) 阅读(6757)

 
【第1页/共3页,37条】
首页
前页
1

Powered by: Joycode.MVC引擎 0.5.1.8