自動化測試案例設計及讀後感

2021-03-03 22:53:30 字數 2444 閱讀 9154

散步的sun

自動化測試已經越來越深入人心,其重要性也是不言而喻的。效能測試中大規模併發的要求,壓力測試中的大規模壓力的模擬,回歸測試中的大規模測試用例的反覆執行都要求實現乙個高可用、高可擴充套件性的自動化測試框架體系。因此,如何在乙個開放的框架下,構建乙個完整的自動化測試體系是我們需要研究的方向。

乙個完整的自動化測試框架體系包含以下幾個部分:1、自動化測試框架;2、測試指令碼以及測試資料管理;3、測試指令碼的執行管理系統;4、測試結果的顯示與分析系統。其中最重要的是自動化測試框架部分。

第一部分,自動化測試框架。自動化測試框架要解決的問題,從本質上來說,是實現分布式資源透明化的過程。由於效能測試、壓力測試的要求,我們往往需要構建乙個分布式的測試環境,在這個分布式的測試環境中,我們需要多種測試平台(例如:

多台windows,多台linux等)。自動化測試框架的作用就在於將分布式環境中的各種資源變成相應的服務物件。例如一台windows機器,在自動化測試的框架中,我們看到的將不再是一台windows機器,而是繫結到某乙個ip位址上的乙個服務物件。

通過這個物件,我們可以通過乙個通用的呼叫方法(本地呼叫乙個遠端提供的方法,需要採用物件對映的技術),告訴這個物件,讓它做我們希望它去做的事情,例如啟動乙個指定的測試指令碼(這個測試指令碼可能是我們日常寫的某乙個測試用例,也可能是其他操作)。在自動化測試框架的實現上,其主要是建立了乙個以提供服務為主的底層的通訊網路。而在服務的應用上,我們可以採用外掛程式模式,以及物件對映的技術,可以動態的無限的擴充套件我們的服務。

根據我個人的實踐,staf + python的開發模式可以很好的實現這個框架。staf主要構建了乙個網路體系,使得各種機器資源之間可以自由的通訊。而python則可以在staf的基礎上進行二次開發,可以構建乙個動態插入的服務體系。

第二部分,測試指令碼及測試資料的管理。首先要選擇一種合適的自動化指令碼語言。一般來說,需要考慮以下幾個方面:

(1)高可讀性,(2)無需編譯,(3)可擴充套件性,(4)強大的第三方支援,尤其是對各種資料來源的支援。我們可以採用cvs或者svn的方式來實現對測試指令碼和測試資料的管理。在這裡,主要依靠高度組織化的目錄結構來實現,尤其是需要和實際測試過程中的測試套件,測試模組以及測試用例的組織結構進行匹配,分級管理。

形成乙個完整的測試指令碼和測試用例的資源庫。對於測試指令碼的編寫,有一些基本的要求:1、形成一套測試指令碼的編寫規範;2、測試指令碼採取分層設計思想,持久層(資料資源庫,物件資源庫,統一io),邏輯層(封裝基本業務邏輯,實現api級呼叫),指令碼層(實現測試用例過程,主要是描述測試步驟)。

通過這些,測試工程師編寫測試指令碼將會變得十分輕鬆,測試的效率也會有大幅度的提公升,大規模回歸,甚至是在第一輪測試就實現自動化測試也不再是夢想。

第三部分,測試指令碼的執行管理系統。大量的測試指令碼編制好了以後,乙個很重要的步驟就是大批量的執行這些測試指令碼。通過cvs或者svn的管理,我們生成了乙個測試資源庫,乙個測試用例將是乙個測試指令碼。

測試指令碼執行管理系統的目的,就是要在使用者定製的時間去執行使用者選定的測試用例。測試指令碼執行管理系統也應該能動態的追蹤到當前正在執行的任務的狀態,例如執行百分比等等;還可以實現多使用者管理,例如同時執行多個使用者提交的測試需求。同時,測試指令碼管理系統還應該實現測試環境自動部署的功能。

一般來說,我們在進行大規模的自動化測試之前,需要準確部署測試環境,這裡就要求用最新的**版本來進行測試。因此,測試環境的自動部署也是很重要的。

第四部分,測試結果的顯示與分析系統。通過統一的io呼叫,我們可以將測試過程中產生的錯誤資訊,日誌資訊,以及測試結果動態的放到我們想要存放的地方。測試結果的顯示與分析系統正是基於這些資料進行處理的系統。

每乙個測試用例在執行的過程中,需要輸出大量的日誌資訊,這些日誌資訊是非常重要的。通常,我們判斷乙個測試用例執行結束以後,是否有bug,常常需要深入分析這些日誌資訊。在測試用例執行的過程中,不光要列印相關的測試資料,實際獲取到的資料,還要列印相應的測試步驟,這樣才便於對測試結果進行分析。

至於顯示系統,主要是對測試結果的乙個分類檢索功能,可以生成各類報表,例如,乙個300個測試用例的模組中有多少通過的,有多少是失敗的等等。有乙個基本原則是很重要的,自動化測試不是為了自動化,而是為了發現bug。如果自動化測試不能發現bug,那麼花費大量的人力物力實現自動化,也是沒有什麼實際意義的。

因此,深入收集測試用例執行的過程中產生的各種資訊是非常重要的。個人的實踐經驗表明,這些資訊對於發現bug起著至關重要的作用(測試步驟的描述也不容忽視)。

自動化測試體系不是乙個工具,一種自動化測試指令碼語言就可以實現的。它需要乙個完整的解決方案才能實現。個人的實踐經驗表明,自動化測試框架的引入、強大的資源整合能力和有效的自動化測試體系的設計將是實現自動化測試的十分重要的因素。

特別喜歡這篇文章,從整體上把握了自動化測試,我們好多人做自動化測試,一開始就缺乏全域性觀念,但全域性觀念的修煉卻又是很難很難的,不僅需要懂得各種技術,最關鍵的是其快速的學習能力,以及從巨集觀上把握整個流程的能力,因此,如果真的想幫助公司把自動化測試做大做好的話,不是乙個自動化理念,也不是乙個自動化工具,而是一整套的自動化測試解決方案;如果真的從這上面出發的話,我相信,做好自動化測試不是乙個遙不可及的東西。

第5章軟體測試管理及自動化測試基礎

1 簡述軟體測試自動化的意義。解 軟體測試自動化的意義是 1 提高測試效率 2 降低對軟體新版本進行回歸測試的開銷 3 完成手工測試不能或難以完成的測試 4 具有一致性和可重複性 5 更好地利用資源 6 降低風險,增加軟體信任度。2 在運用軟體自動化測試時,應注意哪些缺點和事項?解 應注意 1 軟體...

機械設計製造及自動化個人簡歷

基本資訊 姓名 張xx 性別 男 婚姻狀況 未婚民族 漢 戶籍 江蘇年齡 26 現所在地 安徽身高 180 聯絡 135 27758 電子郵箱 emailprotected 求職意向 希望崗位 工業 產品設計 電氣工程師 工作年限 3年職稱 無職稱 求職型別 全職可到職日期 隨時 月薪要求 面議 工...

個別化教育計畫及實施讀後感

通過學習 個別化教育計畫及實施 我深有體會,知道了怎樣對特殊的學生進行教育。1 智障兒童都有各自不同的身心發展特徵,存在著較大的個別差異和個體內差異,因此他們的教育需要與普通教育顯然不同,個別化教育計畫非常尊重學生的個別差異和個體內差異。2 個別化教育計畫是從事智障兒童教育工作者的一項基本技能,具備...