前言
從前我們很少看到「軟體亞健康」或「亞健康軟體」這樣的概念,之所以提出這個概念,是因為現在亞健康不但威脅著IT人的生活品質,也威脅很多應用系統的效能。
伴隨著IT企業的高速發展,軟體開發方法也越來越先進,實現的功能也越來越強大,應用軟體幾乎有關了國計民生的各個領域。而與之相反的是,這些應用系統的整體效能卻越來越低,尤其是一些有關多使用者平行處理的大型應用系統。因此,近幾年軟體效能測試工作顯得越來越重要,各種效能測試工具也應需而生。「軟體亞健康」和「亞健康軟體」概念就是在這種背景下提出的。
「軟體亞健康」絕非危言聳聽。作者曾親身經歷了多個由於效能不合格而終止上線的專案,其中一個專案曾是某國外公司為國內某大型銀行開發的一套「銀行信用卡申請審核系統」,此系統歷經使用者三次測試,每次均以資料庫伺服器當機而告終,最後銀行只好忍痛讓此公司出局。
本書以大型IT系統作為背景來研究效能測試的規劃與設計、管理與實施方法,探討如何透過標準的效能測試來解決IT系統的亞健康問題。
亞健康IT人與亞健康軟體
亞健康IT人定義:記得2005年8月的某一天,作者和幾位測試同行一起爬山,結果第二天幾個人累得幾乎下不了床,一個星期之後,才覺得走路時的腿是自己的。無疑我們這幾個人的身體都已進入「亞健康」狀態。當時躺在床上忽然想到亞健康IT人就是「爬了一次香山需要休息一個星期才能恢復正常的從事IT企業的人」。類似也可以做以下的定義:
■ 超級健康IT人:爬了一次香山之後沒有什麼感覺的IT人,這種人應該屬於具有運動員素質的IT人。
■ 健康IT人:爬了一次香山之後休息一兩天就恢復正常的IT人。
■ 不健康IT人:爬了一次香山之後需要休息一個月甚至更長時間的人。
在軟體領域中,判斷軟體效能高低的依據是其滿足使用者效能需求的程度以及是否存在一定的擴充空間,所以評價軟體效能不要脫離實際使用者背景,使用者的效能需求與軟體是否健康具有很大的關係,這一點與人的健康分類是有很大的區別的。例如對於電子政務系統,可以認為速度達到「自行車的效能」就是健康的,而銀行或電信的應用系統,速度至少要達到「飛機的效能」才是健康的。
與四種IT人的健康分類相對應,軟體也可按其效能高低劃分為四種。
■ 超級健康軟體:UNIX是「超級健康軟體」的典型,「體魄」像運動員一樣,非常「抗折騰」。
■ 健康軟體:效能穩定,可以滿足使用者現在以及將來一定時期內的擴充需求。例如我們日常用到的資料庫管理系統。
■ 亞健康軟體:軟體效能很一般,就像亞健康IT人正常上下班一樣,能滿足使用要求,但是擴充性、穩定性都很一般,只要環境發生變化,極有可能成為「不健康軟體」。
■ 不健康軟體:效能很差,甚至存在嚴重性能問題的軟體。
毫無疑問,開發人員應以做出超級健康或健康的軟體為目標。但是現實恰恰相反,就像很多IT人都處於亞健康狀態一樣,超級健康和健康軟體的比例很低,多數軟體都存在效能問題。
本書第一次針對性能測試提出了「全面性能測試方案」,和讀者共同探討如何更加有效地診斷與治療應用系統性能不佳的「亞健康」問題。
亞健康軟體良藥——全面性能測試方案
不言而喻,軟體亞健康問題將越來越突出,因此我們應該儘早尋找診斷和治療這一問題的方法。為了達到上述目的,本書提出了「全面性能測試方案」,期望能夠成為解決軟體亞健康問題的一劑「良藥」。
「全面性能測試方案」包含效能測試策略制定原則、測試場景設計通用模型、五一測試場景設計模型、全面性能測試方案使用方法四部分內容,基本覆蓋了效能測試規劃和設計的相關內容,為開展系統性能測試提供了一套完整可行的方案。「全面性能測試方案」主要特點如下。
■ 來自實作領域,適用範圍廣:「全面性能測試方案」是綜合了大量專案的效能測試經驗而提出的效能測試模型,可以滿足銀行、電信、OA、網際網路等諸多領域應用系統的效能測試需要。
■ 測試工具獨立性:目前效能測試工具的使用已經不再是難題,比較困難的是有了工具去測試什麼場景、如何管理與實施效能測試以及如何分析測試結果。「全面性能測試方案」不是依賴於某一特定效能測試工具而提出的,而是一種通用的效能測試方法,它的目標是為使用效能測試工具的人員解決上面的難題。測試人員掌握「全面性能測試方案」後,設計和執行測試時可以選擇JMeter、LoadRunner等任何一種效能測試工具。
■ 根據策略來修改測試內容:五一測試場景設計模型按照由淺入深的順序設計,因此可以根據測試策略進行靈活的修改。可以修改的特點使模型更加靈活,測試設計人員可以根據實際情況選擇對應的測試場景部分進行設計,簡介節省了測試成本。
對於很多專案,效能測試是一項需要大量時間和成本投入的工作,因此有了「全面性能測試方案」,並不表示可以杜絕亞健康軟體的產生。但是建議有能力的公司,應該進行合理的投入開發出健康的軟體,否則只能經常祈禱「不要發生效能問題」!如果一旦發生嚴重性能問題,將表示更高的修復成本,防患於未然才是上策!
最後祝所有IT人都擺脫亞健康狀態,開發出超健康的軟體!