當前位置:範文城>行業範本>工業>

軟體自動化報告

工業 閱讀(9.24K)

軟體自動化報告

軟體自動化報告

地址:http://localhost:8081/hudson

軟體的自動化是一個持續改進的過程,體現著公司的能力成熟度CMM等級(附1)。

1. 目前免費成熟的自動化工具

1.1 應用在java 專案的自動化工具主要是maven.工具

1.2 應用在c++ 方面的主要工具是buildbot (開源)工具,代表公司是google,阿里巴巴等大公司,工具比較成熟和穩定。

1.3 Hudson 工具,web介面控制。

2. 軟體自動化

軟體自動化: 包括自動化檢出,自動化編譯,自動化生成,自動化測試,自動化部署等功能. 商業功能測試自動化工具:目前有QTP (主要幫助測試人員完成軟體的功能測試)。RationalRobot (業內最頂尖的功能測試工具).

WinRunner

QuickTest Professional (針對GUI應用程式,包括傳統的Windows應用程式,以及現在越來越流行的web應用)

SilkTest 等.

軟體自動化測試,適合以下條件:1.軟體需求變動不頻繁 2. 專案的週期足夠長 3.自動化測試指令碼可重複使用。

3. 工具的使用

3.1 buildbot工具(主要用python編寫)在阿里巴巴大型c++研發專案中已經被證明是高效的持續整合運轉的重要一環,正發揮check in build/daily build/daily test重要功效,比較成熟. (注: 主要使用在unix,aix等平臺).這個工具主要依賴依賴Twisted和Python,不依賴於hudson等介面配置工具,且國內外的大公司軟體開發多以unix平臺為主,windows平臺開發很少見,而國內的小公司多以window平臺開發為主,自動化水平低,依賴於VC工具. Buildbot 工具能夠做到以下幾點:

1. checkout from the souce repository

2. build

3. create binary package(s) / installer

4. create source package(and check completeness)

5. run regression tests

Buildbot能夠在以下平臺工作:

Window xp x86(WIN32 ,little endian ,vs 9)

Window xp x86-64(win64,little endian, vs 9)

Ubuntu x86-64(Linux,little endian ,gcc)

Solaris SPARC(Solaris ,big endian,gcc)

Mac OS-X PPC( BSD ,big endian ,gcc)

MAC OS-X x86(BSD ,little endian ,gcc)

3.2 Marven工具:依賴於JDK 執行,跨平臺,主要是應用在java,jsp,web方面,作為外掛整合

在eclipse方面,能夠在eclipse介面裡面以命令列的方式提供 構建,生成,自動測試,部署等功能,對c++的支援比較少(主要依賴檔案進行配置和極少的c++本地化外掛<即將c++>),對java工程支援的非常多而且比較成熟(外掛比較豐富),.

4. hudson 工具:

hudson 工具:目前非常流行的開源CI伺服器,持續整合(CI)是一種實踐,旨在緩和和穩固軟體的構建過程。

4.1 CI伺服器通常會通過某種控制檯來進行專案的配置和除錯,並且根據請求響應相應的操作,諸如即時構建、生成報告,或者檢索構件。

4.1 hudson工具是日本人用java,jsp所寫,能夠像eclipse一樣整合marven,對marven進行配置,部署,也可以單獨使用(部署在tomcat伺服器下以及單獨執行)

單獨執行命令: java ?DHUDSON_HOME=D:hudson -jar

4.2 hudson 整合marven 對java,web的自動化支援比較成熟,但對c++,特別是對vc(MFC)的支援非常少。

4.3 hudson 通過web方式執行,通過web方式訪問(http://localhost:8080/hudson)

4.4 有豐富的VS2010編譯,測試()工具外掛.

5. 可能的實現方案:

1. 使用批處理的方式進行自動化檢出,編譯,生成,部署,但是必須自己編寫makefile檔案和批處理檔案,比較複雜.

2. 選擇工具如hudson並且還需要部分實現其中的一些對vs2010的支援的外掛實現自動化。

3. 程式設計實現,也需要自己寫makefile檔案 <實現了一個MFC的makefile,能夠自動編譯,生

成和部署功能>考慮到未來會使用vs2010開發工具,故目前選擇的方案:Hudson + svn + vs2010 三個工具。

1. 目前使用hudson + svn + vs2010 ,實現了遠端的(定時以及update時)自動化檢出,構建,自動生成,自動郵件通知(當構建失敗時可以發郵件通知)功能。但hudson對vs2010的自動測試,部署功能還沒有實現。

後續建議:我們可以以hudson為基礎,認真學習和熟悉此平臺,(熟悉和靈活運用vs2010工具,我們使用的功能大概只有10%左右,開發vs外掛或寫批處理)持續的進行後續的自動化整合、改進來提高我們發展部門實時庫的自動化水平來適合未來的發展。

6. VS2010 的`本身的測試自動化(本身平臺包括開發平臺和測試平臺)

VS2010本身的測試自動化水平功能異常強大

1. VS2010提供了一個叫作"Test Impact Analysis"的功能,有人把它譯成“測試影響分析”,我覺叫它

“測試株連分析”似乎更貼切些。利用這一功能,開發人員在修改完程式碼、要進行單元迴歸測試時,可以很容易地把確實受到此次程式碼改動影響的測試挑出來,而把絕大多數不相干的測試全都過濾掉。假設某開發人員只修改了某個類中的一個方法,那麼他只須通過"Test Impact Analysis"把涉及到這個發法的可能也就是三、五個單元測試挑出來再執行一遍就行了(參考圖

1),而無須象以往那樣把所有相關或不相關的單元測試全都再跑一遍了。

2. VS2010功能測試中有Test Manager 功能,即bug資訊收集機制,能夠自動記錄測試時的操作步驟和螢幕截圖,以方便bug復現(包括每一步測試操作,螢幕截圖,操作日誌,系統配置資訊,事件記錄,系統執行時軌跡,帶時間索引的操作視訊,測試環境快照的操作視訊)。

3. 自動還原測試環境。

如果測試人員A在她的Bug報告中附一個其所測系統的環境快照的連結,那麼開發人員B就可以通過這個連結直接進入A的測試環境,而且是直接跳回A發現那個Bug的時刻,然後在一個完全復原的“歷史場景”中進行Debug。這種科幻式的效果就是通過VS 2010中"Lab Management"這一功能變成現實的。

4. 其他很多功能。

7.軟體自動化測試方面的作用和效果

目前,軟體測試自動化的研究領域主要集中在軟體測試流程的自動化管理以及動態測試的自動化(如單元測試、功能測試以及效能測試方面)。在這兩個領域,與手工測試相比,測試自動化的優勢是明顯的。首先自動化測試可以提高測試效率,使測試人員更加專注於新的測試模組的建立和開發,從而提高測試覆蓋率;其次,自動化測試更便於測試資產的數字化管理,使得測試資產在整個測試生命週期內可以得到複用,這個特點在功能測試和迴歸測試中尤其具有意義;此外,測試流程自動化管理可以使機構的測試活動開展更加過程化,這很符合過程改進的思想。根據OppenheimerFunds的調查,在2001年前後的3年中,全球範圍內由於採用了測試自動化手段所實現的投資回報率高達1500%。

8.自動化工具的使用有利於軟體的過程持續改進,提高工作效率,是一個長期積累的過程。

附1 HUDSON 資料:

1. 安裝

1.1 下載Hudson war 包

1.2 安裝 SVN

1.3 安裝Tomcat6.x(Tomcat5.x也可以)

1.4 部署到Tomcat6目錄.

1.5依賴JDK5,需安裝JAVA RUNTIME .

2. 功能:

2.1持續、自動的構建/測試軟體專案 ,如cruiseControl 與DamageControl.

2.2 監控一些定時執行的任務。

Hudson擁有的特性包括:

易於安裝-只要把部署到servlet容器,不需要資料庫支援。 易於配置-所有配置都是通過其提供的web介面實現。 整合RSS/E-mail/IM-通過RSS釋出構建結果或當構建失敗時通過e-mail實時通知。 生成JUnit/TestNG測試報告。 分散式構建支援-Hudson能夠讓多臺計算機一起構建/測試。 檔案識別- Hudson能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。 外掛支援-Hudson可以通過外掛擴充套件,你可以開發適合自己團隊使用的工具。 附3 .持續整合(CI)

持續整合(CI)是整個軟體開發生命週期內側重保證程式碼質量的做法。目標為軟體構建自動化,

持續的自動的構建檢查,持續自動的構建測試,構件生成後的後續過程的自動化(包括文件,打包,軟體部署構建到執行環境或者軟體倉庫).

附2 概述:能力成熟模型

1級:初始 軟體過程被認為是特別的,有時甚至是混亂的。很少有詳細定義的過程,而且成功取決於個人努力。

2級:可重複的 基本專案管理過程被建立起來,能夠跟蹤成本,時間進度和功能。必要的過程原則能夠在有著相似應用程式的專案上重複早期的成功。

3級:清楚定義的 管理和工程活動的軟體過程都被文件所記錄和標準化,並被整合入一個標準的軟體過程以備組織使用。所有專案都使用一個被認可的,專用版本的開發和維護軟體的組織標準軟體過程。

4級:良好管理的 詳細的對軟體過程的度量和產品質量資訊被收集起來。軟體過程和產品被量化地理解和控制。

5級:最優化 從過程和領先的創新思想及技術中獲得的量化的反饋激活了不斷的過程改進。