qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          漫談軟件性能測試技術

            1、引言

            隨著我國加入WTO,各行各業都面臨更多的機遇和挑戰。如何提高產品的質量,增 強市場競爭力,日益成為企業發展必須解決的迫切問題,對軟件企業來說尤為重要。軟件企業要直接參與國際軟件市場的競爭,首要問題就是要保證軟件的質量,同 時要加快軟件產品的發布與交付使用。因此,如何提高軟件質量,越來越成為當前軟件產業發展中一個迫在眉睫的問題。本文只針對軟件質量的性能方面,做一些探 討。

            2、軟件質量

            質量保證能力的強弱直接影響著軟件業的發展和生存。那么,到底 什么是軟件的質量呢?《GB/T 16260 信息技術 軟件產品評價 質量特性及其使用指南》明確定義:軟件質量是軟件產品具有滿足明確的或隱含需求能力的特征和特性總和。具體包括以下六個方面的質量特性:

            1)功能性

            與一組功能及其指定的性質有關的一組屬性。這里的功能是指滿足明確或隱含的需求的那些功能。

            2)易用性

            與一組規定或潛在的用戶為使用軟件所需作的努力和對這樣的使用所作的評價有關的一組屬性。

            3)可靠性

            與在規定的一段時間和條件下,軟件維持其性能水平的能力有關的一組屬性。

            4)效率

            與在規定的條件下,軟件的性能水平與所使用資源量之間關系有關的一組屬性。

            5)可維護性

            與進行指定的修改所需的努力有關的一組屬性。

            6)可移植性

            與軟件可從某一環境轉移到另一環境的能力有關的一組屬性。

            因此,為了評價軟件產品的質量,需要對軟件質量的每個特性實施和執行測試. 隨著現代軟件構架技術的發展,特別是WEB技術的發展,與軟件可靠性、效率質量特性相關的軟件性能問題越來越受到包括軟件從業人員、專家學者以及軟件使用者的重視,軟件的性能指標的好壞已直接影響到軟件的質量。

            3、軟件性能測試技術

            軟件性能的測試一般包括三個方面,即性能評測、負載測試和強度測試。每一方面的測試都有其不同的測試目標、測試技術、完成標準,具體如下:

            3.1 性能評測

            針對響應時間、事務處理速率和其他與時間相關的需求進行評測和評估。目標是驗證性能需求是否都已滿足。

            測試目標:

            驗證所指定的事務或業務功能在以下情況下的性能行為:

            (1)正常的預期工作

            (2)預期的最繁重工作量

            測試技術:

            使用為功能或業務周期測試制定的測試過程。

            (1)通過修改數據文件來增加事務數量,或通過修改腳本來增加每項事務的迭代數量。

            (2)腳本應該在一臺計算機上運行(最好是以單個用戶、單個事務為基準),并在多個客戶機(虛擬的或實際的客戶機)上重復。

            完成標準:

            (1)單個事務或單個用戶:在每個事務所預期或要求的時間范圍內成功地完成測試腳本,沒有發生任何故障。

            (2)多個事務或多個用戶:在可接受的時間范圍內成功地完成測試腳本,沒有發生任何故障。

            注意事項:

            綜合的性能測試還包括在服務器上添加后臺工作量。 可采用多種方法來執行此操作,其中包括:

            (1)直接將“事務強行分配到”服務器上,這通常以“結構化查詢語言”(SQL) 調用的形式來實現。

            (2)通過創建“虛擬的”用戶負載來模擬許多個(通常為數百個)客戶機。此負載可通過“遠程終端仿真”(Remote Terminal Emulation) 工具來實現。此技術還可用于在網絡中加載“流量”。

            (3)使用多臺實際客戶機在系統上添加負載。

            (4)性能測試應該在專用的計算機上或在專用的機時內執行,以便實現完全的控制和精確的評測。

            (5)性能測試所用的數據庫應該是實際大小或相同縮放比例的數據庫。

           3.2 負載測試

            負載測試通過使測試對象承擔不同的工作量,以評測和評估測試對象在不同工作量條件下的性能行為,以及持續正常運行的能力。目標是確定并確保系統在超出最大預期工作量的情況下仍能正常運行,以及軟件的性能特征,例如,響應時間、事務處理速率和其他與時間相關的方面。

            測試目標:

            驗證所指定的事務在不同的工作量條件下的性能行為時間。

            測試技術:

            使用為功能或業務周期測試制定的測試。通過修改數據文件來增加事務數量,或通過修改測試來增加每項事務發生的次數。

            完成標準:

            多個事務或多個用戶:在可接受的時間范圍內成功地完成測試,沒有發生任何故障。

            注意事項:

            (1)負載測試應該在專用的計算機上或在專用的機時內執行,以便實現完全的控制和精確的評測。

            (2)負載測試所用的數據庫應該是實際大小或相同縮放比例的數據庫。

            3.3 強度測試

            強度測試目的是找出因資源不足或資源爭用而導致的錯誤。如果內存或磁盤空間不足,測試對象就可能會表現出一些在正常條件下并不明顯的缺陷。而其他缺陷則可能由于爭用共享資源(如數據庫鎖或網絡帶寬)而造成的。強度測試還可用于確定測試對象能夠處理的最大工作量。

            測試目標:

            驗證測試對象能夠在以下強度條件下正常運行,不會出現任何錯誤:

            (1)服務器上幾乎沒有或根本沒有可用的內存(內存和磁盤空間)

            (2)連接或模擬了最大實際(實際允許)數量的客戶機

            (3)多個用戶對相同的數據或賬戶執行相同的事務

            (4)最繁重的事務量或最差的事務組合

            注:強度測試的目標可表述為確定和記錄那些使系統無法繼續正常運行的的情況或條件。

            測試技術:

            (1)使用為性能評測或負載測試制定的測試。要對有限的資源進行測試,就應該在一臺計算機上運行測試,而且應該減少或限制服務器上的內存和磁盤空間。

            (2)對于其他強度測試,應該使用多臺客戶機來運行相同的測試或互補的測試,以產生最繁重的事務量或最差的事務組合。

            完成標準:

            所計劃的測試已全部執行,并且在達到或超出指定的系統限制時沒有出現任何軟件故障,或者導致系統出現故障的條件并不在指定的條件范圍之內。

            注意事項:

            (1)如果要增加網絡工作強度,可能會需要使用網絡工具來給網絡加載消息或信息包。

            (2)應該暫時減少用于系統的磁盤空間,以限制數據庫可用空間的增長。

            (3)使多個客戶機對相同的記錄或數據賬戶同時進行的訪問達到同步。

            4、結束語

            軟件質量的保證,不僅需要科學的測試策略,更要處理好整個軟件生命周期中其他如需求、分析、設計、實現各階段中出現的問題。只有對軟件質量進行全面、全過程的質量控制,才能最終保證軟件產品的質量,提高企業的競爭力。


          posted on 2012-04-10 09:38 順其自然EVO 閱讀(259) 評論(0)  編輯  收藏 所屬分類: 性能測試

          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昆山市| 青龙| 平安县| 馆陶县| 宿松县| 霍邱县| 从化市| 昌乐县| 偃师市| 大兴区| 望城县| 抚顺县| 赞皇县| 望都县| 徐汇区| 西吉县| 铜陵市| 孝义市| 天气| 永宁县| 子长县| 万盛区| 丰原市| 黄山市| 婺源县| 莱阳市| 烟台市| 南康市| 许昌县| 永清县| 光泽县| 墨江| 宜春市| 连山| 维西| 平南县| 任丘市| 奈曼旗| 衡东县| 沁水县| 永修县|