在測試工作中,為確保最終交付物質量,有時難免會遇到一些特殊的測試場景,比如160小時的測試總時長。在這樣超常規的測試場景中,如果繼續使用常規的測試方法,結果只會費時費力,導致測試效率下降。那麼,如何通過巧用高效測試工具,從160小時突圍,實現高效測試?筆者通過針對西電捷通產品的乙個測試例項,來闡述我們對於此類問題的思考和解決之道。也當作拋磚引玉,藉此與業內同行**、切磋。
還原「隨機數」採集測試場景
先來簡單介紹一下某款檢測平台產品的隨機數採集測試場景,如圖1所示: 該測試場景的測試目的是驗證檢測平台的隨機數採集能力。終端裝置a向檢測平台傳送隨機數,檢測平台則負責採集40個隨機數檔案,每個檔案為128kb。終端裝置產生的隨機數是封裝在實際報文中傳送給檢測平台的,通常情況下,採集乙個隨機數檔案需要2小時,這時候終端裝置a的隨機數採集時間則為80小時。
然而,一旦有兩款終端裝置a、b均需要分別進行隨機數採集,那麼測試總時長將達到160小時,這意味著在接近7天的時間裡,整個測試系統將全部用於隨機數採集測試,而其它任何測試專案將無法進行。這時候,如果仍然採用常規方法測試,那麼結果一定是令人崩潰的。
圖1 隨機數採集測試場景
測試速度慢的瓶頸在**
如何從160小時中突圍,縮短測試時間,提高測試效率,我們必須找到真正的測試瓶頸所在。在隨機數採集測試場景中,測試瓶頸主要有兩種可能:可能一是終端裝置傳送隨機數速率太慢,慢在資料源頭;可能二是檢測平台處理隨機數的速度太慢,慢在資料處理端。不過,我們還需要做進一步確認。
終端裝置傳送隨機數速率預設3600秒/包,但是可以進行速率配置。讓我們試著將終端裝置傳送隨機數速率配置為極限速率6秒/包。在這樣的傳送速率下,採集乙個128kb大小的隨機數檔案需要2小時,隨機數採集測試時間大大縮短。顯然,終端裝置傳送隨機數速率已經達到極限,那麼檢測平台處理隨機數的速度是否也已經到達了極限。
其實,關於這個問題,驗證的方法很簡單,那就是讓終端裝置a和b同時向檢測平台傳送隨機數,這就相當於終端裝置的傳送速率提高了2倍。這時檢測平台採集乙個128kb大小的隨機數檔案則由2小時縮短為1小時,由此證明檢測平台的處理能力目前並不存在瓶頸,真正的瓶頸是終端裝置傳送隨機數速率太慢。
如何從160小時中突圍
找到了測試速度慢的真正瓶頸之後,也就找到了提高測試效率的途徑。在本案例中,關鍵是要想辦法提高傳送隨機數的速率。前面已經說過,終端裝置的傳送速率已經達到極限了,不能再提高了,只能「另闢蹊徑」,想別的辦法。
筆者以前研發出身,開發過電信級的ip**閘道器,對網路程式設計比較熟悉,很自然的就想到開發一款發包測試工具來解決這個問題。考慮到通用性,這款發包測試工具最好可以傳送任意型別的資料報。常規的開發思路是對所有資料型別都做編譯碼,也就是要認識所有協議,開發工作量相當大,而且拓展性差,有了新的協議就需要新增相應的編譯碼。經過深入評估,決定不做編譯碼,核心設計思想是只做資料報型別管理。資料報型別的產生方法是通過第三方抓包軟體,將需要傳送的資料報(如本測試場景中的隨機數包)匯入到測試工具中。同時也可以對已有資料報型別進行編輯,產生新的資料報型別。選擇資料報型別,設定傳送速率,然後新增到傳送列表中,就可以向待測裝置傳送資料。
軟體設計思路考慮清楚了,正式開工。還有不到一周的時間就要開始測試了,必須爭分奪秒,趕在測試前利用業餘時間開發出這款發包測試工具。經過數個晝夜的開發除錯,終於勝利完工。測試配置見圖2,配置隨機數訊息的傳送速率為10ms/包,這時候檢測平台1分鐘就可以採集乙個128kb大小的隨機數檔案,測試總時間由160小時驟降到80分鐘,測試效率提高了120倍,高效完成測試任務。
圖2 發包測試工具測試配置圖
結語
面對費時費力的測試場景,要想提高測試效率,首先要分析清楚測試的真正瓶頸所在,然後有的放矢,針對性地找到解決方案。另外,對於乙個測試團隊來說,結合產品特點,精心打造輔助測試工具,也是實施高效測試的乙個必不可少的手段。
西電捷通TISec遠端訪問技術應用例項
提到ip網路中的隧道技術,業界人士首先想到的是internet 協議安全性,即ipsec internet protocol security,簡稱ipsec 協議。ipsec產生於1995年,是ietf internet engineering task force,internet工程任務組 的...
訊號與系統 西電
訊號與系統 西電 貫穿全程要解決的3個問題 1 基本訊號與相應 2 訊號的分解 3 1.1.3 能量與功率訊號,積分和求和是乙個概念,和的連續化就叫做積分 積分的離散化叫做和 第二章,主要研究 線性時不變系統 2.1.2 微分方程模擬框圖,積分和微分是一類運算,積分是微分的逆運算 積分器最簡單的就是...
西電的ubuntu更新源
首先要備份原來的源列表 sudo cp etc apt sources.list etc apt sources.list backup再用編輯器開啟 sudo gedit etc apt source.list 用下面的源替換掉檔案中所有的內容,儲存編輯好的檔案 deb raring main m...