文/侯玉龍
隨著互聯(lián)網(wǎng)時(shí)代的到來業(yè)務(wù)變得多元化,用戶量也隨之激增,系統(tǒng)的性能和穩(wěn)定性表現(xiàn)變得尤為重要。在軟件生命周期過程中性能測試是軟件質(zhì)量保障的重要活動(dòng),也是評(píng)估系統(tǒng)質(zhì)量的重要組成部分,通過軟件性能指標(biāo)分析、制定、應(yīng)用的探討與研究,統(tǒng)一了軟件性能衡量指標(biāo),明確了軟件設(shè)計(jì)、開發(fā)、測試等生命周期過程各項(xiàng)性能標(biāo)準(zhǔn)。為軟件系統(tǒng)降低性能風(fēng)險(xiǎn),消除性能隱患,保障軟件高效、穩(wěn)定運(yùn)行,提高產(chǎn)品質(zhì)量,提升客戶的滿意度發(fā)揮著關(guān)鍵作用。
軟件性能標(biāo)準(zhǔn)是研發(fā)過程中評(píng)估軟件性能的基礎(chǔ),然而在軟件需求、設(shè)計(jì)、開發(fā)、測試等整個(gè)軟件生命周期存在著性能指標(biāo)含糊不清、性能要求無法量化、評(píng)估困難等性能指標(biāo)缺失現(xiàn)象,導(dǎo)致軟件性能缺少標(biāo)準(zhǔn)和依據(jù)。
針對(duì)軟件性能標(biāo)準(zhǔn)遇到的問題分析,結(jié)合當(dāng)前軟件性能的實(shí)際情況,開展了“軟件性能標(biāo)準(zhǔn)”研究工作。通過與同行業(yè)調(diào)研以及多年來測試資產(chǎn)的經(jīng)驗(yàn)積累,并結(jié)合公司實(shí)際情況,分別制定了制定基礎(chǔ)類指標(biāo)70項(xiàng),擴(kuò)展性指標(biāo)26項(xiàng)的公共性能指標(biāo)集,涵蓋了各個(gè)角色關(guān)注的性能指標(biāo)范圍,為后續(xù)標(biāo)準(zhǔn)應(yīng)用奠定了堅(jiān)實(shí)基礎(chǔ)。
隨著業(yè)務(wù)和技術(shù)的發(fā)展,軟件性能在不同角色的關(guān)注與理解也不同,用戶更關(guān)注系統(tǒng)響應(yīng)時(shí)效、運(yùn)維人員更關(guān)注資源使用效率、開發(fā)人員更關(guān)注架構(gòu)與代碼設(shè)計(jì)。公共性能指標(biāo)集結(jié)合各系統(tǒng)、角色的特性,通過公司各系統(tǒng)生產(chǎn)和測試原始指標(biāo)梳理、分析、提取等過程,在遵循軟件性能指標(biāo)制定規(guī)則的條件下,分別建立了能力指標(biāo)、時(shí)間指標(biāo)、資源指標(biāo)、擴(kuò)展性指標(biāo)、穩(wěn)定性指標(biāo)、可用性指標(biāo)。
軟件性能指標(biāo)分析:
(1)開展原始數(shù)據(jù)梳理,針對(duì)性能指標(biāo)需求,收集大量原始指標(biāo)數(shù)據(jù),同時(shí)進(jìn)行數(shù)據(jù)的分類、匯總,形成原始指標(biāo)數(shù)據(jù)初稿。
(2)進(jìn)行指標(biāo)特性分析,根據(jù)原始指標(biāo)數(shù)據(jù),開展數(shù)據(jù)特性分析、總結(jié)發(fā)展規(guī)律,并且加以研究與總結(jié)。
(3)完成指標(biāo)提取定制,針對(duì)指標(biāo)特性,根據(jù)不同類型、維度提取并制定相應(yīng)的性能指標(biāo)。
軟件性能指標(biāo)主要分類如下:
(1)能力指標(biāo),通過公司各系統(tǒng)處理能力原始指標(biāo)梳理與匯總,分別從并發(fā)用戶、響應(yīng)時(shí)間、時(shí)間窗口、成功率等維度進(jìn)行了分析與提取形成能力指標(biāo)集。如,交易處理能力、數(shù)據(jù)處理能力等指標(biāo)。
(2)時(shí)間指標(biāo),通過公司各系統(tǒng)業(yè)務(wù)響應(yīng)時(shí)間原始指標(biāo)梳理與匯總,分別從頁面交易、接口調(diào)用、數(shù)據(jù)處理、批處理等維度進(jìn)行了分析與提取形成時(shí)間指標(biāo)集。如,登錄類響應(yīng)時(shí)間、查詢類響應(yīng)時(shí)間等。
(3)資源指標(biāo),根據(jù)業(yè)界對(duì)資源類指標(biāo)約束,同時(shí)結(jié)合公司相關(guān)指標(biāo)要求,分別從主機(jī)、中間件、數(shù)據(jù)庫等方面進(jìn)行了資源指標(biāo)的分析與制定。如,CPU使用率、Weblogic隊(duì)列、數(shù)據(jù)庫死鎖等。
(4)擴(kuò)展性指標(biāo),通過業(yè)界可擴(kuò)展性標(biāo)準(zhǔn)分析,同時(shí)結(jié)合公司各系統(tǒng)橫向、縱向擴(kuò)展性要求,分別從服務(wù)級(jí)、應(yīng)用級(jí)、數(shù)據(jù)庫等方面進(jìn)行了擴(kuò)展性指標(biāo)的分析與制定。如,服務(wù)橫向擴(kuò)展有效性、應(yīng)用縱向擴(kuò)展有效性等。
(5)穩(wěn)定性指標(biāo),通過公司各系統(tǒng)穩(wěn)定運(yùn)行時(shí)間窗口與要求,從系統(tǒng)長時(shí)間持續(xù)穩(wěn)定運(yùn)行方面進(jìn)行分析與定義。如,穩(wěn)定運(yùn)行時(shí)長、內(nèi)存泄漏現(xiàn)象等。
(6)可用性指標(biāo),通過業(yè)界可用性開展情況調(diào)研,同時(shí)結(jié)合公司可用性保障機(jī)制要求,分別從集群機(jī)制、控制機(jī)制、負(fù)載策略、主備切換、HA切換、RAC切換等可用性內(nèi)容進(jìn)行指標(biāo)的分析與制定。如,流控機(jī)制有效性、負(fù)載策略有效性、主備切換有效性等。
在實(shí)際環(huán)境中各個(gè)系統(tǒng)有著不同的屬性與特點(diǎn),軟件性能指標(biāo)也有所不同。針對(duì)各異的系統(tǒng)通過性能指標(biāo)集提供的性能指標(biāo)項(xiàng),各系統(tǒng)根據(jù)自身特性進(jìn)行分析和提取,構(gòu)建出屬于自身的性能指標(biāo),并納入到系統(tǒng)架構(gòu)評(píng)審范疇,正式發(fā)布后作為需求分析、架構(gòu)設(shè)計(jì)、代碼開發(fā)、性能測試等工作的重要依據(jù)。
各系統(tǒng)性能指標(biāo)需要依據(jù)性能指標(biāo)集進(jìn)行構(gòu)建,主要分為系統(tǒng)性能指標(biāo)抽取、系統(tǒng)性能指標(biāo)構(gòu)建等步驟。第一步進(jìn)行系統(tǒng)性能指標(biāo)抽取,在獲取了系統(tǒng)需求、設(shè)計(jì)方面的性能需求、特性、屬性(如,發(fā)生頻率非常高、關(guān)鍵程度非常高、資源占用非常嚴(yán)重等)后,依據(jù)性能指標(biāo)集進(jìn)行系統(tǒng)相關(guān)特性選擇與提取,提取出符合當(dāng)前系統(tǒng)特性的性能指標(biāo)集。第二步開展系統(tǒng)性能指標(biāo)構(gòu)建,抽取完性能指標(biāo)后,針對(duì)各項(xiàng)指標(biāo)屬性進(jìn)行指標(biāo)值定義與設(shè)計(jì),最終構(gòu)建完成系統(tǒng)性能指標(biāo)。
系統(tǒng)性能指標(biāo)構(gòu)建過程中需要遵循準(zhǔn)則,系統(tǒng)性能指標(biāo)需要依據(jù)軟件性能指標(biāo)集,根據(jù)不同指標(biāo)類型進(jìn)行系統(tǒng)指標(biāo)構(gòu)建。系統(tǒng)性能指標(biāo)納入到系統(tǒng)架構(gòu)評(píng)審范疇,正式應(yīng)用需要經(jīng)過評(píng)審。系統(tǒng)性能指標(biāo)作為開發(fā)團(tuán)隊(duì)在系統(tǒng)代碼開發(fā)過程中性能方面的標(biāo)準(zhǔn)與依據(jù)。系統(tǒng)性能指標(biāo)作為性能測試開展的準(zhǔn)入/準(zhǔn)出條件。
構(gòu)建了軟件性能指標(biāo)后,需要結(jié)合公司實(shí)際情況,將性能指標(biāo)應(yīng)用到整個(gè)軟件生命周期,為軟件需求分析、架構(gòu)設(shè)計(jì)、代碼開發(fā)、性能測試等重要活動(dòng),提供軟件性能標(biāo)準(zhǔn)。
軟件性能指標(biāo)實(shí)際使用情況下,在軟件需求分析過程中,需求人員參照性能指標(biāo)要求,充分考慮軟件性能需求,量化性能指標(biāo),以保證性能需求的有效性、準(zhǔn)確性。在軟件架構(gòu)設(shè)計(jì)過程中,架構(gòu)設(shè)計(jì)人員需要系統(tǒng)性能需求開展架構(gòu)設(shè)計(jì)充分考慮性能因素對(duì)架構(gòu)的影響,構(gòu)建并評(píng)審系統(tǒng)性能指標(biāo),為后續(xù)工作提供標(biāo)準(zhǔn)。在軟件代碼開發(fā)過程中,開發(fā)人員需要按照當(dāng)前軟件性能標(biāo)準(zhǔn)要求,充分考慮代碼性能優(yōu)化及對(duì)軟件整體性能表現(xiàn)的影響,進(jìn)行軟件代碼開發(fā)工作。在軟件性能測試過程中,測試人員需要依據(jù)當(dāng)前軟件性能標(biāo)準(zhǔn)要求,開展系統(tǒng)性能測試工作,最終作為評(píng)價(jià)系統(tǒng)性能的主要依據(jù)。
軟件性能指標(biāo)是衡量軟件質(zhì)量的重要方法,通過性能指標(biāo)大范圍推廣與應(yīng)用,明確了各軟件研發(fā)過程中性能預(yù)期指數(shù)、規(guī)格及標(biāo)準(zhǔn),為軟件性能分析與評(píng)估提供了標(biāo)準(zhǔn)和依據(jù),消除了性能隱患與風(fēng)險(xiǎn),進(jìn)一步提升了軟件產(chǎn)品質(zhì)量與客戶滿意度。