作者序
前言
從前我們很少看到“軟體亞健康”或“亞健康軟體”這樣的概念,之所以提出這個概念,是因為現在亞健康不但威脅著IT人的生活品質,也威脅很多應用系統的效能。
伴隨著IT企業的高速發展,軟體開發方法也越來越先進,實現的功能也越來越強大,應用軟體幾乎有關了國計民生的各個領域。而與之相反的是,這些應用系統的整體效能卻越來越低,尤其是一些有關多使用者平行處理的大型應用系統。因此,近幾年軟體效能測試工作顯得越來越重要,各種效能測試工具也應需而生。“軟體亞健康”和“亞健康軟體”概念就是在這種背景下提出的。
“軟體亞健康”絕非危言聳聽。作者曾親身經歷了多個由於效能不合格而終止上線的專案,其中一個專案曾是某國外公司為國內某大型銀行開發的一套“銀行信用卡申請審核系統”,此系統歷經使用者三次測試,每次均以資料庫伺服器當機而告終,最後銀行只好忍痛讓此公司出局。
本書以大型IT系統作為背景來研究效能測試的規劃與設計、管理與實施方法,探討如何透過標準的效能測試來解決IT系統的亞健康問題。
下面先從“亞健康軟體”開始本書的討論。
亞健康IT人與亞健康軟體
亞健康IT人定義:記得2005年8月的某一天,作者和幾位測試同行一起爬山,結果第二天幾個人累得幾乎下不了床,一個星期之後,才覺得走路時的腿是自己的。無疑我們這幾個人的身體都已進入“亞健康”狀態。當時躺在床上忽然想到亞健康IT人就是“爬一次香山需要休息一個星期才能恢復正常的人”。
類似也可以做以下的定義:
超級健康IT人:爬一次香山之後沒什麼感覺的IT人,這種人屬於具有運動員素質的IT人。
健康IT人:爬一次香山之後休息一兩天就恢復正常的IT人。
不健康IT人:爬一次香山之後需要休息一個月甚至更長時間的人。
在軟體領域中,判斷軟體效能高低的依據是其滿足使用者效能需求的程度以及是否存在一定的擴充空間,所以評價軟體效能不要脫離實際使用者背景,使用者的效能需求與軟體是否健康具有很大的關係,這一點與人的健康分類是有很大的區別的。例如對於電子政務系統,可以認為速度達到“自行車的效能”就是健康的,而銀行或電信的應用系統,速度至少要達到“飛機的效能”才是健康的。
與四種IT人的健康分類相對應,軟體也可按其效能高低劃分為四種。
超級健康軟體:UNIX是“超級健康軟體”的典型,“體魄”像運動員一樣,非常“抗折騰”。
健康軟體:效能穩定,可以滿足使用者現在以及將來一定時期內的擴充需求。例如我們日常用到的資料庫管理系統。
亞健康軟體:軟體效能很一般,就像亞健康IT人正常上下班一樣,能滿足使用要求,但是擴充性、穩定性都很一般,只要環境發生變化,極有可能成為“不健康軟體”。
不健康軟體:效能很差,甚至存在嚴重性能問題的軟體。
毫無疑問,開發人員應以做出超級健康或健康的軟體為目標。但是現實恰恰相反,就像很多IT人都處於亞健康狀態一樣,超級健康和健康軟體的比例很低,多數軟體都存在效能問題。
本書第一次針對性能測試提出“全面性能測試方案”,和讀者共同探討如何更加有效地
診斷與治療應用系統性能不佳的“亞健康”問題。
亞健康軟體良藥:全面性能測試方案
不言而喻,軟體亞健康問題將越來越突出,因此我們應該儘早尋找診斷和治療這一問題的方法。為了達到上述目的,本書提出“全面性能測試方案”,期望能夠成為解決軟體亞健康問題的一劑“良藥”。
“全面性能測試方案”包含效能測試策略制定原則、測試場景設計通用模型、五一測試場景設計模型、全面性能測試方案使用方法四部分內容,基本覆蓋了效能測試規劃和設計的相關內容,為開展系統性能測試提供了一套完整可行的方案。“全面性能測試方案”主要特點如下。
來自實作領域,適用範圍廣:“全面性能測試方案”是綜合了大量專案的效能測試經驗而提出的效能測試模型,可以滿足銀行、電信、OA、網際網路等諸多領域應用系統的效能測試需要。
測試工具獨立性:目前效能測試工具的使用已經不再是難題,比較困難的是有了工具去測試什麼場景、如何管理與實施效能測試以及如何分析測試結果。“全面性能測試方案”不是依賴於某一特定效能測試工具而提出的,而是一種通用的效能測試方法,它的目標是為使用效能測試工具的人員解決上面的難題。測試人員掌握“全面性能測試方案”後,設計和執行測試時可以選擇JMeter、LoadRunner等任何一種效能測試工具。
根據策略來修改測試內容:五一測試場景設計模型按照由淺入深的順序設計,因此可以根據測試策略進行靈活的修改。可以修改的特點使模型更加靈活,測試設計人員可以根據實際情況選擇對應的測試場景部分進行設計,簡介節省了測試成本。
對於很多專案,效能測試是一項需要大量時間和成本投入的工作,因此有了“全面性能測試方案”,並不表示可以杜絕亞健康軟體的產生。但是建議有能力的公司,應該進行合理的投入開發出健康的軟體,否則只能經常祈禱“不要發生效能問題”!如果一旦發生嚴重性能問題,將表示更高的修復成本,防患於未然才是上策!
最後祝所有IT人都擺脫亞健康狀態,開發出超健康的軟體!
關於本書
本書分為三部分,包含了效能測試設計理論、實施和分析方法、效能測試實施案例等內容。
第一部分:兵法篇,即第1、2章。第1章主要介紹效能測試基礎理論,是做好效能測試工作的必備知識,主要內容有效能測試簡介、效能測試種類、效能測試錯誤、系統調整等;第2章介紹全面性能測試方案,是全書的核心部分,主要說明效能測試策略制定、測試場景設計模型、測試方案使用方法等。
第二部分:戰術篇,即第3、4章。第3章主要探討如何在效能測試工作中設計與實施效能測試,包含效能測試的啟動、計畫、實施、控制、收尾等內容;第4章介紹效能測試分析的基礎方法。
第三部分:技術篇,即第5、6章。第5章主要探討效能測試基本的最佳化技術與方法;第6章主要說明效能測試工具JMeter的用法。
第四部分:案例篇,即第7、8、9章,詳細討論了一些有關銀行、電子政務等不同領域的效能測試案例,介紹了如何在實際中應用前面的理論。
致謝
感謝夫人金成姬和寶貝女兒米菲,夫人通篇審校本書並潤色了那些難於了解的句子,還一起和米菲提供大量本來可以陪她們的時間來讓我寫作。
聯繫方式
相信本書在出版後會有很多讀者想與我們交流,讀者可以透過下面的聯繫方式與我們進行溝通。
電子郵件:peaksoftchen@163.com。
前言
從前我們很少看到“軟體亞健康”或“亞健康軟體”這樣的概念,之所以提出這個概念,是因為現在亞健康不但威脅著IT人的生活品質,也威脅很多應用系統的效能。
伴隨著IT企業的高速發展,軟體開發方法也越來越先進,實現的功能也越來越強大,應用軟體幾乎有關了國計民生的各個領域。而與之相反的是,這些應用系統的整體效能卻越來越低,尤其是一些有關多使用者平行處理的大型應用系統。因此,近幾年軟體效能測試工作顯得越來越重要,各種效能測試工具也應需而生。“軟體亞健康”和“亞健康軟體”概念就是在這種背景下提出的。
“軟體...
目錄
前言
兵法篇
第1章 系統性能測試基礎
1.1 效能測試簡介
1.2 效能測試種類
1.3 效能測試錯誤
1.4 效能調整基礎
1.5 小結
第2章 全面性能測試方案
2.1 全面性能測試方案簡介
2.2 效能測試策略制訂原則
2.3 測試場景設計通用模型
2.4 五一測試場景設計模型
2.5 全面性能測試方案應用
2.6 小結
戰術篇
第3章 效能測試管理與實施
3.1 效能測試管理概述
3.2 效能測試規劃與設計
3.3 效能測試實施和控制
3.4 測試分析與經驗歸納
3.5 小結
技術篇
第4章 效能測試結果分析
4.1 如何分析效能測試結果
4.2 如何從分析圖中發現問題
4.3 本章小結
第5章 系統性能最佳化技術
5.1 概述
5.2 VisualVM效能分析
5.3 Nmon效能分析
5.4 小結
第6章 JMeter效能測試技術
6.1 JMeter介紹
6.2 架設JMeter測試環境
6.3 開發JMeter測試指令稿
6.4 使用JMeter進行效能測試
6.5 小結
案例篇
第7章 架構設計階段性能測試
7.1 專案背景
7.2 效能測試策略/目標/範圍/環境
7.3 效能測試分析與設計
7.4 效能測試實施
7.5 測試結果分析
7.6 案例點評
第8章 電子政務系統測試案例
8.1 背景與測試策略
8.2 效能測試場景設計
8.3 效能測試實施
8.4 測試結果分析
8.5 案例點評
第9章 信用卡申請審核系統測試
9.1 專案背景介紹
9.2 效能測試策略
9.3 測試需求分析與規劃
9.4 效能測試計畫及評審
9.5 效能測試場景
9.6 效能測試實施
9.7 效能測試結果分析
9.8 案例點評
9.9 小結
附錄A 效能測試計畫範本
附錄B 效能測試場景範本
附錄C 效能測試報告範本
前言
兵法篇
第1章 系統性能測試基礎
1.1 效能測試簡介
1.2 效能測試種類
1.3 效能測試錯誤
1.4 效能調整基礎
1.5 小結
第2章 全面性能測試方案
2.1 全面性能測試方案簡介
2.2 效能測試策略制訂原則
2.3 測試場景設計通用模型
2.4 五一測試場景設計模型
2.5 全面性能測試方案應用
2.6 小結
戰術篇
第3章 效能測試管理與實施
3.1 效能測試管理概述
3.2 效能測試規劃與設計
3.3 效能測試實施和控制
3.4 測試分析與經驗歸納
3.5 小結
技術篇
第4章 效能測試結果分析
4.1 如何分析效能測...