當企業的資訊環境從單一集中式的系統走向分散而多樣化架構時,如何管理企業日漸複雜的資訊環境,使得企業各個應用系統能持續在最佳效能下運作,對IT人員而言是一大挑戰。

所謂「好的開始是成功的一半」,若能從系統規劃、開發及測試都能紮實做好,系統上線後就比較容易達到預期目標。如圖一所示,一旦系統需求確定,開發團隊即可依此進行系統開發而測試團隊則可著手擬定測試計劃及設計測試腳本;往後,透過測試結果的分享,開發及測試團隊即可各自依照計劃往前走。

實務上,無論實際預算有多吃緊,有個獨立於開發團隊的測試組織以避免「球員兼裁判」是需要堅持的。若軟體是委外開發,除了「相信」委外廠商提交的測試報告之外,業主若能建立測試中心/平台以保留抽測或覆測的權利,除了對廠商有多一層約束力,系統品質也可提昇。實作上,可能有驗證標準不一致的爭論,但雙方只要能有「測試除了驗證功能正確與否之外『提早找出問題』更是測試的目的」之共識及胸襟,爭議應能容易化解。

整合測試機制確保系統品質

各位也可考慮利用下班時間藉助「持續整合測試(continuous integration test)」機制來測試當天產生的新版本,以便隔天上班時開發/測試人員可依據昨晚測試結果進行修正。叡揚資訊代理的下列工具可協助各位落實此機制:


1.DevPartner:以自動化的方式協助下列各項工作,以提昇軟體開發之生產力。

  • 靜態code review:檢視程式撰寫是否符合公司在變數、函數、class、method等命名規則以提升程式碼維護度。
  • 分散式應用系統分析:透過收集多層次的執行資訊並以一個完整的點對點方式,檢視您的分散式應用系統元件以便了解使用者與伺服器端的整體運作情況。
  • 記憶體使用狀況分析:協助您檢查系統是否有效率地使用物件並解決物件的瓶頸,自動排列最耗用記憶體的method與程式行,您即可針對這個部份優先改善。
  • 程式執行效能分析:配合測試腳本明確的指出程式執行效能的瓶頸及相關的程式碼,並以呼叫圖表(call graph)方式(如圖二)追蹤method與物件的關聯。
  • 程式測試涵蓋度分析:在開發過程與單元測試中,透過程式碼的分析,在應用程式與元件中自動找尋未被執行過的程式碼以確保系統是經過充份的測試。
  • 執行緒死結(thread deadlock)的偵測:不僅可以發現死結,並透過監視執行路徑、比較所有可能的呼叫路徑組合亦可以找出死結發生的可能性。上述重要資訊。



2.TestPartner:在開發生命週期中,它可協助開發及測試人員利用重複的自動化測試腳本及定義好的程序以縮短上線的準備時間。它具有以下特色:

  • 快速的錄製測試腳本及自動產生並插入檢查點(check point)以縮短腳本開發時間。
  • 開發測試腳本時,針對輸入欄位,透過精靈產生有效或無效資料並驗證其結果。
  • 利用樹狀結構記錄、展示測試腳本以清晰地驗證WEB功能的執行路徑、點擊對象以及輸入的資料。上述重要資訊。

3.Fortify SCA::檢視程式撰寫方式(API層級)是否有資安上的漏洞並提供改善的建議。
針對重要或多人使用的系統,上線前的壓力測試是不可少的步驟,因為它可讓你了解: 當使用人數到設計目標時,其效能及回應時間如何? 以及到底使用人數達到多少時,系統會瓦解(或回應時間無法接受)*叡揚代理的QALoad可協助您輕鬆得到

平時掌握重要系統參數確保系統運作正常

除了上述上線前的效能測試能儘早做之外,上線後也必須持續掌握系統運作正常時重要參數的表現並建立基準點(Baseline);透過短、中、長期性效能資料蒐集和分析,您可以了解各應用系統資源運用的慣性與趨勢並逐步累積異常狀況辨識的能力;這就像人們需要定時做健康檢查以掌握自己健康狀態一樣。當問題發生時可透過比對基準點而能快速鎖定問題範圍以縮短問題判定與效能調校的時間。叡揚代理的Network Vantage, Application Vantage及Vantage Analyzer不但可協助您平時的資料蒐集和分析,解決問題時他們更是不可缺的幫手。其重要功能簡述如下:

  • Network Vantage : 當某個區域網路(LAN)網段塞車時,它可告知其組成份子以判斷是那一類型的封包(http, ftp等等)而造成塞車;這就類似高速公路塞車時,它可告知到底是小轎車還是遊覽車多。
  • Application Vantage:平時它負責收集相關封包所攜帶的資料(payload),在查找問題時,它從應用軟體(AP)的觀點來解析這些資料並整理歸納出AP層的相關指令,例如SQL指令、URL等。意即,它可透過解析client/server和server間傳送的封包來了解AP在他們之間的使用行為及其反應時間。實務上,從一個交易(transaction)往下探討它是否有「意外」的組成份子及比對相關反應時間常常可指引出問題方向。
  • Vantage Analyzer : 查找問題時,所謂「不入虎穴焉得虎子」有時還非得進入應用伺服器內部了解AP實際運作情形才行;對在.NET或Java應用伺服器內運行的AP,它可剖析到method這個層次並提供問題發生時間、反應時間、URL及所用時間的絕對值及百分比等珍貴資訊(如圖三所示)。在平時,此工具也可協助你對AP實際運作行為能有更深入的了解。

建置系統偵測及預警機制 系統維運與問題排除駕輕就熟

所謂「預防重於治療」最理想的偵測及預警機制,是能直接從使用者端偵測系統執行時的運作狀況和回應時間並在系統運作不如預期時,主動發出警訊,讓IT人員事先排除。叡揚代理的Client Vantage及Client Vantage Agentless Monitor 可以讓你即時掌握使用者實際使用您的系統的感受;前者是利用類似機器人的機制執行預錄腳本來量測系統反應時間,而後者則是藉助分析相關使用者進到系統的網路封包推算出其感受到的反應時間。在分析時,它對諸如帳號、密碼等客戶加密資料會尊重保留其隱密性。

實務上,使用者會利用上述Vantage系列工具來蒐集系統運行時重要指標資料;一旦基準點建立之後,透過警戒值的設定以「例外管理」精神來監控系統的效能則是建議的作法。相信各位對網路設備、伺服器及資料庫都是以此方式在監控維運,希望透過上述的說明,您可了解如何將應用系統納入類似的模式。有了此機制,無論是平時的維運及問題查找將能更駕輕就熟。

最後,謹以圖四總結上述提到的工具並說明其在整個測試平台扮演的角色,因篇幅關係,圖中有些部份並沒詳細說明,但從相關名稱相信您可了解其意思/功能。