• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

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

    開展有效的性能測試

    發布: 2009-11-18 10:16 | 作者: webmaster | 來源: 本站原創 | 查看: 81次 | 進入軟件測試論壇討論

    領測軟件測試網

    開展有效的性能測試    軟件測試

     

        隨著信息系統應用越來越廣泛,系統穩定在怎樣的性能水平為好?面臨公司業務沖刺時,系統能否經受住“考驗”?……這些問題逐步成為人們關注的焦點。

       許多未經性能測試的系統,往往無法預知系統的承載壓力。在出現多用戶并發情況時,這樣的系統極可能造成響應緩慢甚至崩潰的問題。
        為避免發生這些問題,系統上線前需要進行一個有效的性能測試,找出系統的性能瓶頸,檢查系統是否能夠滿足實際性能需求,進而降低系統上線后的性能風險

     

    一、性能類型
      性能是一種廣義上的說法,包括了以下各種不同的性能測試類型,每種測試類型都帶著明確的測試目的。
      1.性能測試(Performance Testing)
      性能測試的方法是通過模擬生產運行的業務壓力量和使用場景組合,測試系統的性能是否滿足生產的性能要求。即在特定的運行條件下驗證系統的能力狀況。
      主要強調在特定的軟硬件環境、特定的測試業務場景下,獲得系統的各個性能指標。
      2.負載測試(Load Testing)
      在給定的測試環境下,通過在被測系統上不斷增加壓力,直到性能指標超過預定指標或某種資源使用已經達到飽和狀態,目的是了解系統性能容量和處理能力極限。負載測試的主要用途是發現系統性能的拐點,尋找系統能夠支持的最大用戶、業務等處理能力的約束。
      負載測試是在固定測試環境,在其它測試角度(負載方面)不變的情況下,變化一個測試角度并持續增加壓力,查看系統的性能曲線和處理極限,以及是否有性能瓶頸存在(拐點)。主要意義是從多個不同的測試角度去探測分析系統的性能變化情況,配合性能調優。測試角度可以是并發用戶數、業務量、數據量等不同方面的負載。
      3.壓力測試(Stress Testing)
      測試系統在一定飽和狀態下系統能夠處理的會話能力,以及是否出現錯誤,一般用于穩定性測試。
      可以理解為資源的極限測試。測試關注在資源處于飽和或超負荷的情況下,系統能否正常運行,是一種在極端壓力下的穩定性測試。其主要意義是通過測試、調優保證系統即使在用戶的極端壓力下也不會出錯甚至系統崩潰。
      壓力測試的目的是調查系統在其資源超負荷的情況下的表現,尤其是對系統的處理時間有什么影響。這類測試在一種需要在反常數量、頻率或資源的方式下執行系統。目標是通過極限測試方法,發現系統在極限或惡劣環境中自我保護能力。主要驗證系統的可靠性。
      4.配置測試(Configuration Testing)
      通過對被測系統的軟硬件環境的調整,了解各種不同環境對性能影響的程度,從而找到系統各項資源的最有分配原則。
      主要用于性能調優,在經過測試獲得了基準測試數據后,進行環境調整(包括硬件配置、網絡、操作系統、應用、數據庫等),再將測試結果與基準數據進行對比,判斷調整是否達到最佳狀態。
      5.并發測試(Concurrency Testing)
      模擬并發訪問,測試多用戶并發訪問同一個應用、模塊、數據時是否產生隱藏的并發問題,如內存泄漏、線程鎖、資源爭用問題。

        6.可靠性測試(Reliability Testing)
      通過給系統加載一定的業務壓力的情況下,讓應用持續運行一段時間,測試系統在這種條件下是否能夠穩定運行。
      需要和壓力測試區分開,兩者的測試環境和測試目的不一樣。壓力測試強調在資源極限情況下系統是否出錯,可靠性測試強調在   一定的業務壓力下長時間(如24×7)運行系統,關注系統的運行情況(如資源使用率是否逐漸增加、響應時間是否越來越慢),是否有不穩定征兆。


      二、如何有效開展性能測試
      1.引言
      作為評價產品性能的重要手段,性能測試在軟件測試工作中占的比重一直很大,要最終提供一份準確,權威的測試報告,測試人員的努力工作自然不可或缺,但更重要的是測試人員清晰的工作思路,簡潔的測試流程和良好的測試方法。
      2.目前性能測試存在的問題
      總結以往進行的性能測試,雖然測試人員自始至終對測試工作都做到了認真負責,但測試報告出爐后,大家總覺得美中不足,對測試結果都心存疑慮,尤其在那些時間跨度較長、針對不同的測試對象的性能對比測試中,或多或少都存在以下幾個方面的問題:

     、  測試準備不充分,測試目標不明確,測試計劃不詳細;
     、  缺乏測試以及針對測試對象的技術儲備;
     、  測試環境的穩定性及前后一致性不足;
     、  測試數據精確性和代表性不足;
     、  測試描述不精練;
    下面,我們就剖析以上問題的同時,探討一下如何解決這些問題。
      三. 性能測試準備
      這是一個經常被忽略的環節,在接到測壓任務后,基于種種其它因素的考慮,測試人員往往急于進度,立即投入到具體的測試工作去了,測試、記錄、分析,忙的不亦樂乎,工作進行了一半才發現,或是硬件配置不符合要求,或是網絡環境不理想,甚至軟件版本不對,一時弄得騎虎難下,這都是沒有做好測試準備惹的禍。
      那么我們應該如何做好性能測試的準備工作呢?
      做軟件項目有需求調查、需要分析,我們做測試也一樣。在拿到測試任務后,我們首要的任務就是分析測試任務,在開始測試前,我們至少要弄清以下幾個問題:
      1.  要測試什么或測試的對象是誰?
      2.  要測試什么問題或我們想要弄清楚或是論證的是什么問題?
      3.  哪些因素會影響測試結果?
      4.  需要怎樣的測試環境(軟件、硬件、網絡環境)?
      5.  應該怎樣測試?
      只有在認真調查測試需求和仔細分析測試任務后,才有可能弄清以上一系列的問題,只有對測試任務非常清楚,測試目標極其明確的前提下,我們才可能制定出切實可行的測試計劃。明確測試目標,詳盡測試計劃在對測試需求充分了解的基礎上,制定盡可能詳細的測試計劃,對測試的實施是大有裨益的。
      3.1 測試技術準備
      在目前的大環境下,要求測試人員在短時間撐握所有的軟、硬件知識是不太現實的,但平時測試人員應抓緊對測試工具和測試理論的研究,在測試計劃中,應給研究測試對象和測試工具分配充足的學習時間,只有在充分撐握測試工具,完全了解測試對象的前提下,我們才能夠實施測試。建立在錯誤的認識上的測試,既使你再努力,結果也是背道而馳,也很難證明問題,更不用說用這樣的測試報告去說服用戶。 "歲月聯盟"提供
      技術準備列表:
      1) 扎實的計算機專業基礎知識;
      2) 大量的實際性能測試及優化經驗;
      3) 性能測試相關工具的使用;
      4) 操作系統的原理:熟悉操作系統的體系架構、操作系統的重要基礎概念,以及內存管理、/文件系統、驅動/硬件的管理、網絡的實現及構成、性能的監控方法和原理,熟悉常用的性能計數器;
      5) 數據庫原理:能進行一般的數據庫管理操作,熟悉SQL腳本的使用,熟悉常用的數據調優工具和常用的性能計數器;
      6) web應用原理:了解一般的配置,熟悉常用的服務器性能監控方法和原理,熟悉常用的性能計數器;
      7) 計算機網絡原理:至少熟悉TCP/IP,熟悉HTTP,至少見過并了解三層、四層或者器的使用和配置。了解常用的與網絡性能相關的性能計數器;
      8) 行業知識:熟悉專屬行業的業務知識和用戶場景,例如銀行網站后臺管理系統所涉及的業務知識和用戶場景,證券交易系統所涉及的業務知識和用戶場景。

     

    3.2 配置測試環境

      配置測試環境是測試實施的一個重要環節,測試環境適合與否會嚴重影響測試結果的真實性和正確性。測試環境包括硬件環境和軟件環境,硬件環境指測試必需的服務器、客戶端、網絡連接設備,以及打印機/掃描儀等輔助硬件設備所構成的環境;軟件環境指被測軟件運行時的操作系統、數據庫及其他應用軟件構成的環境?紤]到其它因素,如網絡鎖、網速、顯示分辯率,數據庫權限、容量等對測試結果的影響。如條件允許,我們最好能配置幾組不同的測試環境。

      搭建測試環境步驟:

      1)  測試環境規劃

      測試環境的規劃包括硬件、軟件及所有構建測試環境所需的資源的規劃,可以利用Checklist或是測試環境部署矩陣的方式完成;

    MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">測試環境部checklist

    測試環境說

    對測試環境的簡介

    項目名稱

    測試項目名稱

    項目簡介

    對項目的簡介

    網絡拓撲圖

    測試環境的網絡拓撲圖

    硬件配置

    描述配置環境硬件配置信息

    例如:

    CPU:至強 3.0

    內存: 4GB

    硬盤: 200G

    網卡:千兆

    軟件配置

    測試環境中所使用的軟件環境配置(要有詳細版本)

    例如:

    操作系統: Windows

    系統服務: AD域、消息隊列、 MSDTC訪問

    應用平臺 Microsoft.Net Framework2.0 SP1

    應用軟件: MCMS 2002 SP1

    數據庫:SQL

    中間件 IIS6.0

    瀏覽器: IE7.0

    殺毒軟件:諾頓 SEP

    軟件防火墻 windows防火墻

    軟件要求

    描述軟件環境的詳細配置:

    例如:

    操作系統需要配置 /3G的支持

    需要打開 windows防火墻

    IIS應用連接池的詳細配置

    IE需要將應用網址添加到信任站點

    網卡型號

    描述測試環境的網卡型號信息詳細

    例如:

    Intel PRO/100 NIC

    Intel(R) 82567V-2 Gigabit Network Connection

    網絡信息

    描述網絡的具體配置項

    例如:

    域名或 工作組名

    IP地址

    子網掩碼

    默認網關

    DNS服務器

    測試工具

    描述環境中需要安裝的測試工具

    測試工具名稱

    測試工具版本

    測試工具簡介

    用戶權限

    描述測試環境中的用戶權限

    應用軟件列表

    被測試的軟件及版本描述如:

    門戶網站后臺管理服務端

    靜態抓取服務端

    外來數據導入應用

    應用軟件要求

    描述應用軟件的詳細配置

    Dao.config數據庫連接的配置

    Webconfig配置

    外來數據導入配置

     

    2)  測試環境創建

      按照checklist中的網絡拓撲、硬件配置、網卡型號的要求創建測試環境的硬件和網絡環境,搭建完畢后,每個設備(PC或服務器)要整理出《硬件配置表》,以便于維護

      3)  測試環境配置

      按照checklist中的軟件配置、軟件要求、網絡信息、用戶權限配置測試環境中PC和服務器的軟件環境,配置完畢后,每個設備(PC或服務器)要整理出《環境配置文檔》,以便于后期的環境維護。

      4)  應用程序部署

      按照checklist中的應用軟件列表和應用軟件要求,將應用程序部署到測試環境中,部署完畢后,每個應用程序的部署要整理出《應用軟件部署文檔》,以便于后期的升級維護。

      5)  測試環境的使用

      在使用過程中可能會對測試環境做一定的調整,每次調整后,都要對相應的文檔《測試環境部署checklist》、《硬件配置表》、《應用軟件部署文檔》和《應用軟件部署文檔》進行修改,以保持環境和文檔的一致。

      6)  測試環境回收

      項目結束后,需要對項目中使用的資源進行整理,并將不使用的資源進行釋放。

      硬件資源:PC機、服務器、磁盤空間、交換機等

      網絡資源:IP地址

      3.3 測試數據的獲取和處理

      功能測試的數據獲取主要有三個方式

      1)  “造”數據:針對正常業務,異常情況,邊界情況等構建測試數據,不僅僅包括最基本的基礎數據,比如:用戶、權限、配置、基礎編碼、原數據等,還包括系統的業務數據;

      2)  “導”數據:把已經在生產環境中運行的數據或老版本中的數據導出,在此基礎上進行數據的整理后加工為測試數據;

      3)  “積累”數據:使用現實的業務流程將現有的非電子化業務數據手工錄入系統,在驗證業務的同時也完成了測試數據的積累,即邊測試邊積累數據。但是這種情況積累的數據往往有一定局限性,因為已經發生的業務數據基本是正確的、一致的,而且可能缺少某些特定業務的數據(不常發生的分支業務)。這樣就需要根據對測試需求的分析,追加新的測試數據,以便能完整覆蓋業務類型。

      性能測試使用的數據和功能測試有一定的區別,準備測試數據的側重點不同,性能測試使用的數據不用考慮如何去校驗功能。性能測試數據要注意以下幾點:

      1)   測試數據的唯一問題

      性能測試往往使用自動化測試工具進行測試,會使用相同的腳步反復的運行來進行測試,所以在測試過程中一定要注意腳本中參數的重復問題,設計測試數據時要考慮并發用戶數以及每個用戶可能迭代的次數,避免因測試數據數量不夠而使用重復數據,最終導致測試失敗。

      2)   測試數據的清理問題

      性能測試往往會向系統中增加大量的數據,增加的數據量足以達到影響系統性能的程度(例如:數據庫表中有100條數據和表中有100W條數據的響應時間一定是不同的),所以必須及時的對增加的測試數據進行清理,以保證測試環境的公平性,進而保證測試結果的真實性。

      3)   測試數據數量和容量(大。﹩栴}

      性能測試往往要使用“大”數據量來進行測試,“大”數據量不僅僅指數量的多少,還要考慮到數據容量的大小。例如:發布文章的測試,不僅要滿足發布文章數量的要求,還要考慮到文章內容的大小,也就是說不僅要考慮發布10W個1K大小的文章的性能還要考慮發布10W個10M大小的文章的性能。

      4)   測試數據隨意性問題

      測試數據忌隨意性,隨意輸入指定長度的字符串,雖然滿足測試執行的要求,但是對后續工作會產生很多不良影響,例如:無法保證數據的唯一性,隨意的輸入數據有幾率產生重復數據;收集的測試結果開發人員不易分析,性能測試中的開發人員可能需要分析內存的Dump文件,隨意輸入的、沒有規則的字符串不利于開發人員對dump文件的分析。

      四. 如何開展性能測試

      測試前期的準備工作紛繁復雜,做好測試準備工作,已是完成了測試工作的一大半,但要產生一份具有說服力的測試報告,還應正確把握測試的強度,保持測試的一致性,提高測試的精度。

      判斷軟件的好壞,要看軟件解決實際應用的能力,只有在一定的測試強度下,才能測試出各種軟件資源的消耗率,軟件運行的速度,軟件的穩定性。通過對比在不同的測試強度下,不同軟件每一個功能模塊解決實際問題的能力和軟件運行的效率,我們才可能判斷出不同軟件的每一個模塊的強弱,甚至于整個軟件的優劣。

      性能測試開始后,所有參數的輸入都應遵循統一的標準,無論是哪一個環節,哪怕是一點點偏差,都應立即糾正,絕不能心存僥幸。要特別注意外部環境對測試結果的影響,如果在整個測試過程中,外部環境不一致,如網速、機器內存使用率不一樣,就有可能導致測試結果與實際情況有出入。

     

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 性能測試


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

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>