性能測試基礎知識-性能的規劃與實(shí)現 軟件測試
性能的規劃與實(shí)現一個(gè)不能按意愿執行的程序是沒(méi)有用處的。每個(gè)程序都必須滿(mǎn)足某組用戶(hù)(有時(shí)會(huì )是一組很大且需求各不相同的用戶(hù))的需求。如果程序的性能確實(shí)不能滿(mǎn)足那些用戶(hù)中很大一部分用戶(hù)的需求,則不會(huì )使用這個(gè)程序。一個(gè)不被使用的程序是不能實(shí)現預期功能的。
這種情況對經(jīng)許可的軟件包和用戶(hù)編寫(xiě)的應用程序是確實(shí)存在的,盡管大多數軟件包開(kāi)發(fā)者意識到低性能的影響,并盡力提高程序的運行速度。不幸的是,他們不能預測程序要經(jīng)歷的所有環(huán)境和用途。讓程序具有可接受性能的最終職責就落在了那些選擇或編寫(xiě)、規劃以及安裝軟件包的人身上。
本章描述程序員或系統管理員可以確保新編寫(xiě)或購買(mǎi)的程序具有可接受性能的步驟。(當程序員這個(gè)詞單獨出現時(shí),它包含系統管理員和任何對程序的最終成功負責的人。)
為使程序達到可接受的性能,在工程開(kāi)始時(shí)就要確定和量化可接受性,并且決不能忽視達到目標所需的方法和資源。盡管聽(tīng)起來(lái)這是基本方法,但一些編程工程卻有意抵制它。他們采用一種清楚地描述為設計、編碼、調試、可能是編寫(xiě)文檔,有時(shí)間的話(huà)再確定其性能的策略。
為使程序運行時(shí)不僅在邏輯上,而且在時(shí)間上都是可預知的,唯一辦法就是在軟件規劃和開(kāi)發(fā)過(guò)程中對性能注意事項進(jìn)行整體考慮。由于安裝者較之開(kāi)發(fā)者有較少的自由,所以在現有軟件安裝時(shí)提前規劃也許就更關(guān)鍵了。
盡管對一個(gè)小程序來(lái)說(shuō),這個(gè)過(guò)程的細節可能看起來(lái)很繁重,但不要忘了我們還有第二個(gè)“記事本”。我們不僅必須保證新程序具有令人滿(mǎn)意的性能,還須確保該程序對現有系統的補充部分不會(huì )降低運行于該系統的其它程序的性能。
確定工作負載的組成部分無(wú)論程序是新編寫(xiě)的還是購買(mǎi)的、大程序還是小程序,開(kāi)發(fā)者、安裝者和預期用戶(hù)都對程序的使用有所假設,比如:
誰(shuí)使用該程序程序在何種環(huán)境下運行這些環(huán)境出現的頻度,以及在某年某月某日某時(shí)會(huì )出現多少次在這些環(huán)境下是否還需使用其它現有程序程序運行于何種系統有多少數據將要從何處進(jìn)行處理由程序或為程序創(chuàng )建的數據是否會(huì )在其它方面用到
除非這些想法是作為設計過(guò)程的一部分提出的,否則很可能模糊不清,并且程序員將幾乎無(wú)疑會(huì )有與預期用戶(hù)不同的假設。甚至在程序員同時(shí)也是用戶(hù)這樣明顯很普通的情況中,讓假設無(wú)關(guān)會(huì )使以任何嚴格方式進(jìn)行設計與假設的比較成為不可能。更糟的是,在對正進(jìn)行的工作沒(méi)有完全理解的情況下是不可能確定性能需求的。
編寫(xiě)性能需求文檔在確定和量化性能需求時(shí),確定某一特殊要求背后的推理是很重要的。這是規劃過(guò)程總能力的一部分。用戶(hù)可能會(huì )將其需求聲明基于與程序員的假設不匹配的程序邏輯的假設。性能需求集至少應記錄下面幾點(diǎn):
各種特定類(lèi)型的用戶(hù) — 計算機交互作用在大部分時(shí)間會(huì )經(jīng)歷的最佳響應時(shí)間,以及對大部分時(shí)間的定義。響應時(shí)間從用戶(hù)執行“運行”這個(gè)操作的時(shí)間直到用戶(hù)從計算機接收到足夠反饋以繼續執行任務(wù)來(lái)衡量。這是用戶(hù)的主觀(guān)等待時(shí)間。它不是從一個(gè)子例程的入口到第一個(gè)寫(xiě)語(yǔ)句的時(shí)間。
如果用戶(hù)對響應時(shí)間不感興趣,而僅僅對結果感興趣,您可以詢(xún)問(wèn)“當前獨立執行時(shí)間估計值的十倍”是否可以接受。如果回答“是”,您就可以繼續討論吞吐量。否則,您可以在用戶(hù)十分注意的情況下繼續討論響應時(shí)間。
最低程度可接受剩余時(shí)間的響應時(shí)間。較長(cháng)的響應時(shí)間會(huì )使用戶(hù)認為系統當機。您還需要指定剩余時(shí)間,例如,一天的高峰時(shí)刻,百分之一的交互作用。在一天的某特定時(shí)間減少響應時(shí)間很難辦到,或者代價(jià)更高。
需要的典型吞吐量和將發(fā)生的次數。這并不是臨時(shí)注意事項。例如,對一個(gè)程序的需求可能是每天運行兩次:上午 10:00 和下午 3:15.如果這是一個(gè)運行 15 分鐘,并且計劃運行于多用戶(hù)系統的有 CPU 限制的程序,則需要某種協(xié)商以便依次運行。
最大吞吐量周期的大小和計時(shí)。
綜合預期請求及其如何隨時(shí)間變化。
多用戶(hù)應用程序中每臺機器的用戶(hù)數及總用戶(hù)數。此描述應包括這些用戶(hù)登錄和注銷(xiāo)的次數,以及假設的擊鍵速率、完成的請求和思考次數。您可能想弄清楚思考次數是否隨前后請求而系統地變化。
用戶(hù)所做的關(guān)于工作負載要在其上運行的機器的任何假設。如果用戶(hù)頭腦中存在一臺具體的機器,那么確保您早就了解它。同樣,如果用戶(hù)所采用的是特殊類(lèi)型、大小、成本、位置、互聯(lián)或任何其它變量,而這些變量將限制您滿(mǎn)足前述需求的能力,那么假設也變?yōu)樾枨蟮囊徊糠。滿(mǎn)意程度可能不會(huì )在程序開(kāi)發(fā)、測試或首次安裝的系統上進(jìn)行評估。
估計工作負載的資源需求除非您正在購買(mǎi)配有詳細資源需求文檔的軟件包,否則資源估計可能是性能規劃過(guò)程中最困難的任務(wù)。造成困難有如下幾個(gè)原因:
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/