一种更好的汇报性能测试结果的方法(译)
?
摘要:
匯報功能測試結果相對簡單,因為這些結果有一個清晰的通過或者失敗的輸出。匯報性能測試的結果更加細致入微些,而且有很多展示這些值的方法——但是邁克爾斯塔爾感到這些方法沒有特別有效。他建議一種使性能測試結果一眼易讀的匯報方法。
有效的匯報測試結果是我們專業的圣杯之一。如果正確操作,它能改進項目的質量并且幫助我們關注實際的事情。但是如果錯誤操作,它增加了誤解并減少測試帶來的價值。
匯報功能測試結果相對簡單,因為這些測試有一個個清晰的通過或失敗的輸出。匯報性能測試更有細微差別。
讓我們以一個定義開始:這篇文章的目的,我使用術語“性能測試”意味著任何測試會執行一個度量,它以一系列數值型的值都被考慮到可接受的結果。它可能是耗電量的測量,網站并行服務的用戶數量,可以從硬盤讀取的數據速度,等等。——任何一個非功能需求的測量。
第一個性能測試的挑戰是決定什么被認為是“通過”。這在需求定義階段經常地被忽略。我看到過很多需求解讀成這樣:“從數據庫提取數據時間必須少于10毫秒”,或者“處理一個視頻文件的速度必須是小于每秒100幀”。這些需求是不完整的,因為它們沒有包含我們想要達到的實際目標。我們只知道我們允許忍受的而且仍然通過產品的最壞的結果。這兒有兩個問題。
首先,讓我們假設我執行一次測試并且發現處理視頻文件在以101幀的速度完成(回想需求是“至少100幀每秒”)。看起來很好,對嗎?但是它是否意味著我們接近邊緣(那是產品難以滿足需求)或者一切都是好的?假如需求被定義很好,它將包含目標和最小值——例如,目標:120幀每秒;最少:100幀每秒。有這樣的需求,101幀每秒的結果很清晰地暗示了產品難以滿足需求。
第二,當測試最低限度地失敗(比如99幀每秒),產品經理會處于“靈活”且接受產品的壓力中。我們有多經常聽到 “事實上,我們都在最小值以下,但是我們經常通過,所以我們決定它是好的”?假如完整的需求可以被獲取到(目標:120幀每秒),將會更清晰地看到結果離目標有多遠,并且產品會有一個真正的發行。
為了完整性的好處,我將提起一個非功能性需求不僅需要特定目標和最小值,而且需要測試方法,因為測試方法影響測試結果。舉個例子,當測量CPU使用率,取決于我們如何執行測量,結果會變化很大。我們是否測量記錄的最大值?一次持續多久?我們算測量的平均值嗎?一秒有多少測量值?我們的測試中還有其它什么并行運行在CPU上嗎?
從理論上講,匯報性能測試結果根本不應該是一個問題。只呈現出結果并且指出一個通過或者失敗。但是再者,我們不僅想要知道結果;我們想要得到結果如何關聯目標的一個概念。制作一份報告不會過度復雜,但是仍然要發送一個完整的狀態圖片是一個平衡的做法。
我們可以使用一個表格:
| 需求 | 目標 | 最小值 | 結果 |
| 視頻處理速度(幀每秒) | 120 | 100 | 101 |
無論如何,因為多數產品有很多性能需求,我們將以一個充滿數字的大表格結束。它將難以快速看出哪里是一個問題。我們可以使用顏色去提高可讀性:
| 需求 | 目標 | 最小值 | 結果 |
| 幀處理速度(幀每秒) | 120 | 100 | 101 |
| CPU占用率(%) | 7 | 10 | 8.55 |
| 性能消耗 | 1.5 | 1.9 | 1.34 |
但是這帶來更多問題。它意味著幀處理速度和CPU使用率使用相同的顏色代碼嗎?一個幾乎失敗,當另一個很好地在可接受范圍內。所以可能幀處理速度標成紅色?但是然后我們使用什么顏色表示失敗呢?而且多久我們考慮一個結果在它應該變成黃色前而為綠色呢?更不要提到會發生的困難,因為一些人有色盲。
當我的醫生每三年把我的每年血液檢查(我一絲不茍地做這個事)發送給我時,我正在考慮這個事情。無論如何,從實驗室來的結果包括幾十個數的列表顯示了這個表格:
?
?
?
?
即使雖然我不是物理學家,我可以區分良好結果的合適的方法,哪個是邊界,并且哪個是我應該與醫生討論的一些事。
在我的腦海里一個電燈泡繼續前進:為什么不使用這個方法來報告性能測試呢?我指出一些數據點并且用幻燈片演示:
| 特性 | 分數 |
| 能量消耗 | ? ? ? |
| 傳輸/米每秒 | |
| CPU占用率 | |
| 內存使用 |
注意那些我仍然使用顏色,但是軸線解釋了顏色的選擇并且暗示哪里高亮會更好并且哪兒顏色上更暗會更好些——單獨的方法。讀者能清晰地看到在允許范圍內的每個測量的位置;顏色主要服務于關注在有問題的地方。制作這樣一份報告花費一些時間,但是它可以被自動化。
我還沒有在實際項目看見這個想法的實現——我仍然在研究這個想法——但是假如你確實使用這個想法,我將會高興地了解到你的經驗和你的組織的反應。
轉載于:https://www.cnblogs.com/fengye151/p/11519067.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的一种更好的汇报性能测试结果的方法(译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用测试工具解决产品问题(译)
- 下一篇: 掌握测试驱动开发的3个关键因素(译)