導航:首頁 > 手機軟體 > 軟體自動化測試架構

軟體自動化測試架構

發布時間:2022-12-24 01:20:58

㈠ 昆明java培訓學校告訴你介面自動化測試文檔架構分析

自動化測試是互聯網軟體開發行業發展之後的新的產物,而今天我們就一起來了解一下,關於介面的自動化測試都需要包含哪些內容以及介面測試的文檔架構。



介面都有那些部分組成呢?


介面文檔應該包含以下內容:


1、介面說明


2、調用url


3、請求方法(getpost)


4、請求參數、參數類型、請求參數說明


5、返回參數說明


如果是測http介面,你需要至少需要調用一個發送http請求的庫,例如httpclient來發送不同類型的請求給到待測的介面,如GET,POST,PUT,DELETE,帶上你的請求頭header和請求體body,然後通過xml庫來解析感興趣的返回值的欄位,與期望值做比較,從而判斷用例成功還是失敗。


介面自動化整體思路


說簡單的介面自動化大致三個步驟:a-發送請求;b-解析結果;c-驗證結果


為了方便起見,你應該自定義三個和業務相關的測試類:


1.一個用來封裝httpclient,用來發送請求的類,雲南java課程http://www.kmbdqn.cn/建議用於發送各類測試請求。


2.一個解析結果xml的類,用來獲取感興趣的結果值。


3.一個用於比較測試結果和期望值的類,用於驗證。


當然這是簡單的一個http借口測試框架,如果你願意還可以做的更強大,比如自動生成測試數據,生成自定義格式的測試報告,自動發送測試報告,檢查服務端數據內容是否正確等等。


㈡ Python自動化測試框架有哪些

分享一些可用的Python自動化測試框架。
自動化測試常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。Pytest、Robot Framework和UnitTest主要用於功能與單元測試,Lettuce和Behave僅適用於行為驅動測試。
一、Robot Framework
Python測試框架之一,Robot Framework被用在測試驅動(test-driven)類型的開發與驗收中。雖然是由Python開發而來,但是它也可以在基於.Net的IronPython和基於Java的Jython上運行。作為一個Python框架,Robot還能夠兼容諸如Windows、MacOS、以及Linux等平台。
在使用Robot Framework(RF)之前,需要先安裝Python 2.7.14及以上的版本。推薦使用Python 3.6.4,以確保適當的注釋能夠被添加到代碼段中,並能夠跟蹤程序的更改。同時還需要安裝Python包管理器--pip。
二、Pytest
適用於多種軟體測試的Pytest,是另一個Python類型的自動化測試框架。憑借著其開源和易學的特點,該工具經常被QA(質量分析)團隊、開發團隊、個人團隊、以及各種開源項目所使用。鑒於Pytest具有「斷言重寫(assert rewriting)」之類的實用功能,許多大型互聯網應用,如Dropbox和Mozilla,都已經從下面將要提到的unittest(Pyunit)切換到了Pytest之上。
除了基本的Python知識,用戶並不需要更多的技術儲備。另外,用戶只需要有一台帶有命令行界面的測試設備,並且安裝好了Python包管理器、以及可用於開發的IDE工具。
三、UnitTest/PyUnit
UnitTest/PyUnit一種標准化的針對單元測試的Python類自動化測試框架。基類TestCase提供了各種斷言方法、以及所有清理和設置的常式。因此,TestCase子類中的每一種方法都是以「test」作為名詞前綴,以標識它們能夠被作為測試用例所運行。用戶可以使用load方法和TestSuite類來分組、並載入各種測試。
可以通過聯合使用,來構建自定義的測試運行器。正如我們使用Junit去測試Selenium那樣,UnitTest也會用到UnitTest-sml-reporting、並能生成各種XML類型的報告。由於UnitTest默認使用了Python,因此我們並不需要什麼先決條件。除了需要具備Python框架的基本知識,您也可以額外地安裝pip、以及用於開發的IDE工具。
四、Behave
行為驅動開發是一種基於敏捷軟體開發的方法。它能夠鼓勵開發人員、業務參與者和QA人員,三者之間的協作。Python測試框架Behave允許團隊避開各種復雜的情況,去執行BDD測試。從本質上說該框架與SpecFlow和Cucumber相似,常被用於執行自動化測試。用戶可以通過簡單易讀的語言來編寫測試用例,並能夠在其執行期間粘貼到代碼之中。而且,那些被設定的行為規范與步驟,也可以被重用到其他的測試方案中。
任何具備Python基礎知識的人都可以使用Behave。其他先決條件還包括:先安裝Python 2.7.14及以上的版本。通過Python包管理器或pip來與Behave協作。大多數開發人員會選擇Pycharm作為開發環境,當然您也可以選用其他的IDE工具。
五、Lettuce
Lettuce是另一種基於Cucumber和Python的行為驅動類自動化工具。Lettuce主要專注於那些具有行為驅動開發特徵的普通任務。它不但簡單易用,而且能夠使得整個測試過程更流暢、甚至更有趣。安裝帶有IDE的Python 2.7.14、及以上的版本。當然,您也可以使用Pycharm或任何其他IDE工具。同時,您還需要安裝Python包管理器。
自動化測試的Python框架,Pytest、Robot Framework和UnitTest可主要用於功能與單元測試,而Lettuce和Behave僅適用於行為驅動測試。對於功能測試而言,Pytest是的。如果您是基於Python自動化測試的新手,Robot Framework是的入門工具。雖然其功能有所受限,但是它非常容易上手。對於基於Python的BDD測試而言,Lettuce和Behave同樣優秀。不過,如果你已經有了一定的Pytest經驗,那麼請使用Pytest-bdd。

㈢ 自動化測試框架有哪幾種

冒昧的說一句,您這個問題問的可能比較大。
因為從自動化測試角度講的測試框架有很多種;而且並沒有什麼固定的條條框框。全部是根據測試需要及公司產品開發現狀進行搭建的。從通俗的 整體的角度講只要滿足:測試輸入(腳本編寫)-》測試執行-》結果輸出 這種模式的都可稱之為自動化測試框架。
而從不同的角度分析框架又可根據不同篩選條件分為多類:
如:1.腳本語言方面分析,很多種語言提供了多種自動化測試的基礎框架:
1)ruby的Watir開源自動化測試框架、Test::Unit單元測試框架、開源測試框架Ruby on Rails 等等
2)java的junit回歸測試框架、Mockito、TestNG、easyb等等等等
3)Perl的perl Mechanize、Test::Base數據驅動測試等等等等
4)Python的PyUnit、PAMIE等等等等
5)基於Tcl/Tk的swift 自動化測試框架,ATF/VTP自動化測試框架
以上僅列舉自動化測試常用的幾種腳本語言的測試框架,當然不僅僅是這些
2.從測試體系角度分又分為:
1)單元測試框架.
2)系統測試框架
3)集成測試框架
。。。。。
3.基於測試目的的劃分
1)GUI自動化測試框架
2)網路協議自動化測試框架
3)基於web的自動化測試框架
。。。。。
4.從實現深度和角度分類:
1)簡單的錄制回放測試框架(或工具)
2)關鍵字驅動的測試框架
3)關鍵字驅動及結果輸出分析的自動化測試框架
4)智能匹配功能及具備快速腳本生成功能的自動化測試框架
。。。。。。
5.從測試工具角度分:
有些測試工具是許多大型公司結合了很多測試經驗及數據後進行開發的自動化測試軟體或者稱之為測試管理軟體的自動化管理部分及自動化測試部分;也有人稱之為自動化測試框架或自動化測試工具。比如QTP;LoadRunner;Quality Center、selenium等等。都具有一定的自動化測試及管理功能。

所以總的來看,測試框架分為很多種;不知提問者問的是哪個具體方面的。
筆者水平有限,僅能做個基本介紹,希望能有所幫助。也祝願所有從事自動化測試相關工作的同志事業順利。歡迎溝通交流

㈣ 什麼是軟體測試架構求解答

測試架構從何而來?其實它就是為了解決上述問題而產生的。從基本的觀點看,測試架構是由軟體系統技術架構和軟體測試框架(特別是自動化測試框架)構建的需求而定。這些需求,決定了以下從不同方面所形成的測試架構。
大家都能理解,越早進行測試,就能越早地發現缺陷,對提高產品質量、降低企業成本就越有利,更重要的是越能預防系統 設計時出現嚴重的缺陷。如果所設計的系統架構存在嚴重的缺陷,直到系統集成測試時才發現,所造成的返工將是可怕的。這就需要測試人員對設計進行復審、評 審。測試人員應參與系統架構及其組件介面等設計的審查,包括是否全面考慮非功能特性、各個特性的可測試性評估、設計的合理性等。
現在的系統越來越復雜,其設計往往不是一蹴而就的,需要不斷地重構和優化,而這些工作是基於以前版本的測試結果(包 括發現的問題)來實施的。測試人員在完成系統測試後,可以通過對測試結果的分析發現問題,如系統性能瓶頸、安全漏洞等,進而可以對系統的性能、可靠性、安 全性等改善提出有價值的建設性意見。
在系統功能測試時,需要對功能進行合理的劃分、歸類,建立用例模型,設計合理的測試結構。
從測試工作自身來看,需要建立合適的測試管理系統,包括測試用例庫的設計、缺陷跟蹤機制等。

㈤ 自動化測試需要學什麼

自動化測試與軟體開發過程從本質上來講是一樣的,無非是利用自動化測試工具(相當於軟體開發工具),經過對測試需求的分析(軟體過程中的需求分析),設計出自動化測試用例(軟體過程中的需求規格);

從而搭建自動化測試的框架(軟體過程中的概要設計),設計與編寫自動化腳本(詳細設計與編碼),測試腳本的正確性,從而完成該套測試腳本(即主要功能為測試的應用軟體)。

1、自動化測試需求分析。

當測試項目滿足了自動化的前提條件,並確定在該項目中需要使用自動化測試時,我們便開始進行自動化測試需求分析。此過程需要確定自動化測試的范圍以及相應的測試用例、測試數據,並形成詳細的文檔,以便於自動化測試框架的建立。

2、自動化測試框架的搭建。

所謂自動化測試框架便是像軟體架構一般,定義了在使用該套腳本時需要調用哪些文件、結構,調用的過程,以及文件結構如何劃分。

而根據自動化測試用例,我們很容易能夠定位出自動化測試框架的典型要素:

a、公用的對象。

不同的測試用例會有一些相同的對象被重復使用,比如窗口、按鈕、頁面等。這些公用的對象可被抽取出來,在編寫腳本時隨時調用。當這些對象的屬性因為需求的變更而改變時,只需要修改該對象屬性即可,而無需修改所有相關的測試腳本。

b、公用的環境。

各測試用例也會用到相同的測試環境,將該測試環境獨立封裝,在各個測試用例中靈活調用,也能增強腳本的可維護性。

c、公用的方法。

當測試工具沒有需要的方法時,而該方法又會被經常使用,我們便需要自己編寫該方法,以方便腳本的調用。

d、測試數據。

也許一個測試用例需要執行很多個測試數據,我們便可將測試數據放在一個獨立的文件中,由測試腳本執行到該用例時讀取數據文件,從而達到數據覆蓋的目的。

在該框架中需要將這些典型要素考慮進去,在測試用例中抽取出公用的元素放入已定義的文件,設定好調用的過程。

自動化測試框架的定義為

由一個或多個自動化測試基礎模塊、自動化測試管理模塊、自動化測試統計模塊等組成的工具集合。

按框架的定義來分,自動化測試框架可以分為:基礎功能測試框架、管理執行框架;按不同的測試類型來分,可以分為:功能自動化測試框架、性能自動化測試框架;按測試階段來分,可以分為:

單元自動化測試框架、介面自動化測試框架、系統自動化測試框架;按組成結構來分,可以分為:單一自動化測試框架、綜合自動化測試框架;按部署方式來分,可以分為:單機自動化測試框架、分布式自動化測試框架。

以上內容參考 網路-自動化測試框架;網路-自動化測試

㈥ 如何搭建自己的自動化測試框架

這段時間一直在為公司內部開發
自動化測試框架
,簡稱GTF,因為這個框架現在還屬於開發階段,很多事都是言之過早。我會持續將我在架構過程中的想法寫下來。供自己和大家一起分享。
這些想法,並不屬於我一個人,我工作中的同事們給了我很大的幫助。
今天這一篇主要說明架構方面的考慮。
在現有的提供自動化測試解決方案的產品很多,包括:Robot,TestComplete,WinRunner等等。我只接觸過這些,公司里也進行過很大的嘗試,但是結果往往總是不竟如人意。
這中間,排除那些人員方面的原因,也總結這些自動化工具
,在使用過程中的不方便的地方:
1. 定位控制項不方便。標准控制項還好,非標准控制項就只能靠很多非正常方法去獲取。而且,控制項的識別往往和界面布局相關。
3. 代碼維護不方便。由於在編寫過程中,大量的和界面相關的代碼,導致最後在需求變更的時候,代碼的維護,成為軟體測試人員的負擔。
針對這些情況,我們經過討論,何不自己做一個軟體測試框架。當然了,這是基於我們的豐富的知識積累的決策。大家不需要關心這個決策的情況。不過,可以多關注一些我們在做的過程中的分析結果。
通過分析流行的軟體測試框架,有多種方式:
第一、最典型的就是消息驅動,自動化工具通過腳本錄制和編寫,保存為測試腳本。在回放的過程中,將這些腳本轉換成為Windows消息,發送給我們應用程序的窗體和各種控制項。
這種方式的好處在於,自動化工具和應用程序之間能夠做到完全的隔離。但是,由於使用了Windows消息,它也擁有了一個非常致命的缺點。那就是消息隊列的非同步性與程序的順序性之間的矛盾。很多消息發送給了應用程序,但是應用程序的處理可能已經和消息隊列錯位了。有一些關於代碼的時間片等待,就是因為這個問題。
另外,就是由於完全的隔離,對於操縱控制項數據的能力大大降低。畢竟,擁有大量數據的控制項都不是標准控制項。
第二、嵌入式
。TestComplete就是這類工具。它有支持不同語言的版本。大概思路,就是在程序編譯的時候,注入自己的控制項代理。腳本的回放,直接可以通過代理,操縱到應用程序。
可惜的是,這類軟體開發的時候,更多的是考慮平台的兼容性。對於特有平台上的支持不是十分完美。特別是對自定義控制項(比如Delphi中,除了VCL的標准控制項)支持也沒有做到最好。不過,我這里必須承認,TC的內部實現機制可能十分強大,我不能窺探所有。如果有人清晰,可以指點一二。
針對上面的兩種,我們想到的第三種方式:一體式。這種方式中,通過給程序在打包的過程中,添加額外的框架代碼,使得程序自動提供控制項的訪問方式。自動化的模塊也會作為軟體測試程序的一部分運行。
應用程序在執行腳本的時候,自動通過腳本
,控制各控制項界面的顯示和關閉。它應該是第二種方式的變種。但是由於是自己實現的,所以在對各類自定義控制項支持的都非常好。
針對一開始提出的幾個自動化測試的難題,我們提出了,自動封裝窗體上所有控制項的概念(這些概念後面會詳細介紹),對於軟體測試人員,只要關心真正的業務操作流程。而業務流程中涉及到的控制項,已經為他們自動提供好。這樣,腳本也自然只成了業務流程的腳本。其復雜度也就大大降下來了。
如果要推薦2個工具的話,我就推薦澤眾軟體公司的
自動化測試工具AutoRunner和測試管理工具Testcenter
,用這2個軟體合作可以很好的進行自動化測試與對測試用例進行管理。

㈦ 軟體測試自動化框架、工具優缺點介紹

QTP,支持場景錄制,支持VBS腳本錄制,缺點:不開源
SELENIUM IDE 支持叫場景錄制,生成的是HTML語言,可以導出腳本語言,支持語言豐富,但是只支持FIREFOX瀏覽器
SELENIUM2,不支持場景錄制,WEB自動化測試,需下載各類的DRIVER驅動,比如Chromedriver(谷歌瀏覽器驅動),腳本語言支持多種,如:JAVA,PYTHON
按鍵精靈(個人覺得也是自動化一種)基於界面位置坐標記錄,勉強算自動化吧。有自己的腳本,望採納!

㈧ 如何搭建python自動化測試框架

1
新建一台Jenkins伺服器,安裝並配置好Jenkins

2
配置一個自動化測試腳本的代碼庫,可以使用Git或者SVN等版本控制工具。然後在Jenkins伺服器上配置一個Job,負責自動的同步最新代碼到Jenkins伺服器上。
3
配置要跑自動化測試的虛擬機VM,推薦干凈環境下安裝需要跑自動化測試的依賴軟體工具或者配置以及自動化測試工具(不提前安裝配置也行,可以在跑自動化之前用另外的腳本自動安裝配置),配置好之後關機並打一個snapshot鏡像快照,並命名為prebuild或其它。

4
新建一個Jenkins Job,用來跑自動化。配置需要連接並使用的自動化測試虛擬機,配置要構建的自動化測試框架xml腳本文件(後面步驟有說明)和target,以及要歸檔的測試報告,郵件發送等等。

5
接下來的重點就是自動化測試框架的xml腳本文件了,首先裡面定義一個target,負責獲取自動化測試對象的安裝包。
6
接著定義一個target(可選),負責從版本庫上獲取自動化測試腳本同步到Jenkins伺服器上(也可以直接使用Jenkins Job本身的插件配置來獲取代碼)。
7
定義一個target,負責連接到虛擬機伺服器,並恢復到虛擬機的原始狀態例如prebuild,然後開機
8
定義一個target,負責拷貝項目產品安裝包和自動化測試源代碼到目標虛擬機上。
9
定義一個target,負責連接到目標測試虛擬機,並打開自動化測試工具,然後運行自動化測試腳本
10
定義一個target,負責處理自動化測試報告文件和日誌文件並把它們從自動化測試虛擬機拷貝到Jenkins伺服器對應的Job工作空間下。
11
最後定義一個主target,按照上面的target流程依次調用。這個主target就是Jenkins伺服器上的自動化測試Job中配置的需要構建的Target。

㈨ 北大青鳥java培訓:自動化測試開發框架分析

隨著軟體開發自動化測試技術的發展,越來越多的自動化測試工具被程序員發現和掌握,下面寧夏北大青鳥http://www.kmbdqn.cn/就一起來了解一下,關於自動化測試開發都有哪些優勢。
cucumber是BDD(Behavior-drivendevelopment,行為驅動開發)的一個自動化測試的副產品。
它使用自然語言來描述測試,使得非程序員可以理解他們。
Gherkin是這種自然語言測試的簡單語法,而Cucumber是可以執行它們的工具。
GherkinGherkin是自然語言測試的簡單語法。
一個完整的測試是由多個step組成的,step即小單元,如何復用step是非常關鍵的問題。
多個step組成一個Scenario,即一個完整的測試case。
多個Scenario組成一個Feature,即一組相關的測試case。
FeatureFeature是所有測試的開頭。
後面跟一段描述性的文字,表明這個測試文件是干什麼的。
descriptiondescription是一段擴展性的文字描述,可以跟在Feature、Example、Background、Scenario、ScenarioOutline下面。
Example和ScenarioExample和Scenario是一對同義詞,是一個具體的測試case,包含了多個step。
一般情況下,都是由Given(給定一個初始條件),When(發生了什麼),Then(結果是什麼)組成的。
Stepsstep是cucubmer的小單元,每個step是由Given,When,Then,And,或者But開頭的。
如果關鍵詞後面的內容是完全一樣的話,那麼cucumber會認為這兩句話是重復的,哪怕前面的關鍵詞不一樣。

㈩ 什麼是自動化測試

一般是指軟體測試的自動化,軟體測試就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。

基本信息

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率,便引入了自動化測試的概念。

折疊編輯本段工具介紹

折疊QTP

全名HP QuickTest Professional software ,2012年12月6日發布11.5版本,並更名為Unified Functional Testing

QTP是quicktest Professional的簡稱,是一種自動測試工具。使用QTP的目的是想用它來執行重復的手動測試,主要是用於回歸測試和測試同一軟體的新版本。因此你在測試前要考慮好如何對應用程序進行測試,例如要測試那些功能、操作步驟、輸入數據和期望的輸出數據等

QuickTest針對的是GUI應用程序,包括傳統的Windows應用程序,以越來越流行的Web應用。它可以覆蓋絕大多數的軟體開發技術,簡單高效,並具備測試用例可重用的特點。其中包括:創建測試、插入檢查點、檢驗數據、增強測試、運行測試、分析結果和維護測試等方面。

折疊WinRunner

Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。通過自動錄制、檢測和回放用戶的應用操作,WinRunner能夠有效地幫助測試人員對復雜的企業級應用的不同發布版進行測試,提高測試人員的工作效率和質量,確保跨平台的、復雜的企業級應用無故障發布及長期穩定運行。

企業級應用可能包括Web應用系統,ERP系統,CRM系統等等。這些系統在發布之前,升級之後都要經過測試,確保所有功能都能正常運行,沒有任何錯誤。如何有效地測試不斷升級更新且不同環境的應用系統,是每個公司都會面臨的問題。

折疊RationalRobot

是業界最頂尖的功能測試工具,它甚至可以在測試人員學習高級腳本技術之前幫助其進行成功的測試。它集成在測試人員的桌面IBM Rational Test Manager上,在這里測試人員可以計劃、組織、執行、管理和報告所有測試活動,包括手動測試報告。這種測試和管理的雙重功能是自動化測試的理想開始。

折疊AdventNetQEngine

AdventNet QEngine是一個應用廣泛且獨立於平台的自動化軟體測試工具,可用於Web功能測試、web性能測試、Java應用功能測試、Java API測試、SOAP測試、回歸測試和Java應用性能測試。支持對於使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、傳統客戶端/伺服器等開發的應用程序進行測試。此工具以Java開發,因此便於移植和提供多平台支持。

折疊SilkTest

是業界領先的、用於對企業級應用進行功能測試的產品,可用於測試Web、Java或是傳統的C/S結構。SilkTest提供了許多功能,使用戶能夠高效率地進行軟體自動化測試。這些功能包括:測試的計劃和管理;直接的資料庫訪問及校驗;靈活、強大的4Test腳本語言,內置的恢復系統(Recovery System);以及具有使用同一套腳本進行跨平台、跨瀏覽器和技術進行測試的能力。

折疊QARun

QARun的測試實現方式是通過滑鼠移動、鍵盤點擊操作被測應用,即而得到相應的測試腳本,對該腳本可以進行編輯和調試。在記錄的過程中可針對被測應用中所包含的功能點進行基線值的建立,換句話說就是在插入檢查點的同時建立期望值。在這里檢查點是目標系統的一個特殊方面在一特定點的期望狀態。通常,檢查點在QARun提示目標系統執行一系列事件之後被執行。檢查點用於確定實際結果與期望結果是否相同

折疊TestPartner

是一個自動化的功能測試工具,它專為測試基於微軟、Java和Web技術的復雜應用而設計。它使測試人員和開發人員都可以使用可視的腳本編制和自動向導來生成可重復的測試,用戶可以調用VBA的所有功能,並進行任何水平層次和細節的測試。TestPartner的腳本開發採用通用的、分層的方式來進行。沒有編程知識的測試人員也可以通過TestPartner的可視化導航器來快速創建測試並執行。通過可視的導航器錄制並回放測試,每一個測試都將被展示為樹狀結構,以清楚地顯現測試通過應用的路徑。

折疊Holodeck

-強大的故障植入軟體測試工具

Holodeck is an advanced fault-injection tool that gives you the power to attack an application while it monitors and logs everything your application does - every function call, registry entry, piece of data read or written.

折疊TelelogicTAU

TAU第二代包含三個最新的、最強大的技術用來加速大規模軟體開發和測試:統一建模語言(UML)及它的許多最新修訂版本中的特性,UML2.0;功能強大的測試語言TTCN-3和新的構造系統的方法:Model Driven Architecture(模型驅動構架)。這三個新的業界標准結合成TAU的已經過認可的軟體開發平台,形成了一個系統,一個一流的穩定可靠的工具解決方案。TAU第二代是系統與軟體開發解決方案的一個突破,它把業界從使用了太長時間的手工、易出錯、以代碼為中心的方法中釋放出來,自然而然地邁向下一步,一個更加可視化、自動化及可靠的開發方法。Telelogic TAU/Tester是基於通用測試語言TTCN-3,用於自動化的系統和集成測試的強大工具。TAU/Tester以現代化的開發工具為基礎,提供高層測試功能,支持整個測試生命周期,加速自動化測試。TAU/Tester可使用戶特別關注於測試的開發,因為TTCN-3語言是獨立於開發語言或測試設備的,且是抽象和可移植的。

折疊AutoRunner

AutoRunner是黑盒測試工具,可以用來完成功能測試、回歸測試,可以提高測試效率,降低測試人工成本。

產品可以對以下類型對象進行GUI功能性測試:

1 Windows類型對象,一般為用C++/Delphi/VB/VFP/PB/.NetForm等技術開發的桌面程序。

2 IE網頁對象,一般性的網站,比如大的門戶類網站。

3 Java對象,一般為用AWT/Swing/SWT等技術開發的桌面程序。

4 Flex對象,網頁的內容是用Flex開發的。

5 Silverlight對象,網頁的內容是用Silverlight開發的。

6 WPF對象,一般為用WPF技術開發的桌面程序。

7 QT對象,一般為用QT技術開發的桌面程序。

折疊PhoenixFramework

Phoenix Framework是一款基於 Selenium,Webdriver,autoIt研發的一款集資源管理和測試於一體的Web自動化測試工具。最新版本是1.1.8,該工具支持無腳本執行模式,無人值守執行模式,自由定製模式。不僅執行模式可以定製,功能模塊也支持定製。使用該工具的界面創建用例,組裝腳本,啟動執行。使用該工具其他開放的介面,可手動創建腳本,組裝並執行。它支持兩種部署模式,第一種是Server-Client方式,Server與Client均為EXE程序,通信協議是Socket;另一種是WEB版部署,方便與現有系統集成,支持Linux,將Server與Client放到Tomcat或Weblogic伺服器下部署,通信協議為Http,通過WEB頁面控制並監控Client端的執行。

折疊編輯本段前提條件

實施自動化測試之前需要對軟體開發過程進行分析,以觀察其是否適合使用自動化測試。通常需要同時滿足以下條件:

1) 需求變動不頻繁

測試腳本的穩定性決定了自動化測試的維護成本。如果軟體需求變動過於頻繁,測試人員需要根據變動的需求來更新測試用例以及相關的測試腳本,而腳本的維護本身就是一個代碼開發的過程,需要修改、調試,必要的時候還要修改自動化測試的框架,如果所花費的成本不低於利用其節省的測試成本,那麼自動化測試便是失敗的。

項目中的某些模塊相對穩定,而某些模塊需求變動性很大。我們便可對相對穩定的模塊進行自動化測試,而變動較大的仍是用手工測試。

2) 項目周期足夠長

自動化測試需求的確定、自動化測試框架的設計、測試腳本的編寫與調試均需要相當長的時間來完成,這樣的過程本身就是一個測試軟體的開發過程,需要較長的時間來完成。如果項目的周期比較短,沒有足夠的時間去支持這樣一個過程,那麼自動化測試便成為笑談。

3) 自動化測試腳本可重復使用

如果費盡心思開發了一套近乎完美的自動化測試腳本,但是腳本的重復使用率很低,致使其間所耗費的成本大於所創造的經濟價值,自動化測試便成為了測試人員的練手之作,而並非是真正可產生效益的測試手段了。

另外,在手工測試無法完成,需要投入大量時間與人力時也需要考慮引入自動化測試。比如性能測試、配置測試、大數據量輸入測試等。

折疊編輯本段適用場合

通常適合於軟體測試自動化的場合:

(1)回歸測試,重復單一的數據錄入或是擊鍵等測試操作造成了不必要的時間浪費和人力浪費;

(2)此外測試人員對程序的理解和對設計文檔的驗證通常也要藉助於測試自動化工具;

(3)採用自動化測試工具有利於測試報告文檔的生成和版本的連貫性;

(4)自動化工具能夠確定測試用例的覆蓋路徑,確定測試用例集對程序邏輯流程和控制流程的覆蓋。

隨著測試流程的不斷規范以及軟體測試技術的進一步細化,軟體測試自動化已經日益成為一支不可忽視的力量。能否藉助於這支外在力量以及如何藉助於這支力量來規范企業測試流程、提高特定測試活動的效率,正是本期所要討論的話題。

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

折疊編輯本段選型原則

然而存在優勢是否就一定意味著選擇自動化測試方案都能為企業帶來效益回報呢?也不盡然,任何一種產品化的測試自動化工具,都可能存在與某具體項目不甚貼切的地方。再加上,在企業內部通常存在許多不同種類的應用平台,應用開發技術也不盡相同,甚至在一個應用中可能就跨越了多種平台;或同一應用的不同版本之間存在技術差異。所以選擇軟體測試自動化方案必須深刻理解這一選擇可能帶來的變動、來自諸多方面的風險和成本開銷。

以下筆者給出企業用戶進行軟體測試自動化方案選型的參考性原則,這些原則是從筆者實際工作中凝練而成的,它包括以下六個方面的建議:

●選擇盡可能少的自動化產品覆蓋盡可能多的平台,以降低產品投資和團隊的學習成本;

●測試流程管理自動化通常應該優先考慮,以滿足為企業測試團隊提供流程管理支持的需求;

●在投資有限的情況下,性能測試自動化產品將優先於功能測試自動化被考慮;

●在考慮產品性價比的同時,應充分關注產品的支持服務和售後服務的完善性;

●盡量選擇趨於主流的產品,以便通過行業間交流甚至網路等方式獲得更為廣泛的經驗和支持;

●應對測試自動化方案的可擴展性提出要求,以滿足企業不斷發展的技術和業務需求。

折疊編輯本段過程

自動化測試與軟體開發過程從本質上來講是一樣的,無非是利用自動化測試工具(相當於軟體開發工具),經過對測試需求的分析(軟體過程中的需求分析),設計出自動化測試用例(軟體過程中的需求規格),從而搭建自動化測試的框架(軟體過程中的概要設計),設計與編寫自動化腳本(詳細設計與編碼),測試腳本的正確性,從而完成該套測試腳本(即主要功能為測試的應用軟體)。

1) 自動化測試需求分析。

當測試項目滿足了自動化的前提條件,並確定在該項目中需要使用自動化測試時,我們便開始進行自動化測試需求分析。此過程需要確定自動化測試的范圍以及相應的測試用例、測試數據,並形成詳細的文檔,以便於自動化測試框架的建立。

2)自動化測試框架的搭建。

所謂自動化測試框架便是像軟體架構一般,定義了在使用該套腳本時需要調用哪些文件、結構,調用的過程,以及文件結構如何劃分。

而根據自動化測試用例,我們很容易能夠定位出自動化測試框架的典型要素:

a. 公用的對象。

不同的測試用例會有一些相同的對象被重復使用,比如窗口、按鈕、頁面等。這些公用的對象可被抽取出來,在編寫腳本時隨時調用。當這些對象的屬性因為需求的變更而改變時,只需要修改該對象屬性即可,而無需修改所有相關的測試腳本。

b. 公用的環境。

各測試用例也會用到相同的測試環境,將該測試環境獨立封裝,在各個測試用例中靈活調用,也能增強腳本的可維護性。

c. 公用的方法。

當測試工具沒有需要的方法時,而該方法又會被經常使用,我們便需要自己編寫該方法,以方便腳本的調用。

d. 測試數據。

也許一個測試用例需要執行很多個測試數據,我們便可將測試數據放在一個獨立的文件中,由測試腳本執行到該用例時讀取數據文件,從而達到數據覆蓋的目的。

在該框架中需要將這些典型要素考慮進去,在測試用例中抽取出公用的元素放入已定義的文件,設定好調用的過程。

折疊編輯本段腳本編寫

該編寫過程便是具體的測試用例的腳本轉化。初學的自動化測試人員均會使用錄制腳本到修改腳本的過程。但專業化的建議是以錄制為參考,以編寫腳本為主要行為,以避免錄制腳本帶來的冗餘、公用元素的不可調用、腳本的調試復雜等問題。

折疊編輯本段測試運行

事實上,當每一個測試用例所形成的腳本通過測試後,並不意味著執行多個甚至所有的測試用例就不會出錯。輸入數據以及測試環境的改變,都會導致測試結果受到影響甚至失敗。而如果只是一個個執行測試用例,也僅能被稱作是半自動化測試,這會極大的影響自動化測試的效率,甚至不能滿足夜間自動執行的特殊要求。

因此,腳本的測試與試運行極為重要,它需要詳查多個腳本不能依計劃執行的原因,並保證其得到修復。同時他也需要經過多輪的腳本試運行,以保證測試結果得一致性與精確性。

自動化測試引入的原因是就把軟體測試人員從枯燥乏味的機械性手工測試勞動中解放出來,以自動化測試工具取而代之,使測試人員的精力真正花在提高軟體產品質量本身。

折疊編輯本段注意事項

首先,一個企業實施測試自動化,絕對不是拍腦袋說干就能幹好的,它不僅涉及測試工作本身流程上、組織結構上的調整與改進,甚至也包括需求、設計、開發、維護及配置管理等其他方面的配合。如果對這些必要的因素沒有考慮周全的話,必然在實施過程中處處碰壁,既定的實施方案也無法開展。其次,盡管自動化測試可以降低人工測試的工作量,但並不能完全取代手工測試。100%的自動化測試只是一個理想目標,根據筆者的經驗,即便一些如SAP、OracleERP等測試庫規劃十分完善的套件,其測試自動化率也不會超過70%。所以一味追求測試自動化只會給企業帶來運作成本的急劇上升。再次,實施測試自動化需要企業有相對規模的投入,對企業運作來說,投入回報率將是決定是否實施軟體測試自動化的最終指揮棒,筆者建議企業在決定實施軟體測試自動化之前,必須要做量化的投資回報分析。此外,實施軟體測試自動化並不意味著必須采購強大的自動化軟體測試工具或自動化管理平台,畢竟軟體質量的保證不是依靠產品或技術,更多的因素在於高素質的人員和合理有效的流程。

折疊編輯本段實戰模擬

折疊背景介紹

A公司是一家大型保險公司,擁有近20個城市的分公司,並在其中5個城市建立了IT支持中心。平均每年的上線應用數量在20個左右(新業務系統和原有業務系統的主要版本發布)。A公司的專職測試團隊人數不足30人而且測試團隊的測試人員技能參差不齊測試只是作為項目上線前的一道工序而已。在測試團隊內部也幾乎沒有自動化的手段,主要依靠手工測試。由於已上線應用系統的問題,開發團隊必須分出一部分資源去維護和修復上線應用,而同時測試團隊的測試成果和效率卻無法和這些應用質量掛鉤,也更無從談起對軟體質量的控制。所以,A公司決定在軟體質量和測試方面進行投入,他們考慮以下幾方面:

●引進軟體測試流程管理的自動化,提高軟體測試過程的管理水平,使軟體測試和軟體開發一樣可被評估、被衡量。

●實現性能測試自動化,所有應用上線之前必須有應用性能風險評估報告和相關部門的確認

●逐步實現功能測試的自動化,在目前人員配置的情況下,把部分手工測試變成自動化測試,提高測試可信度,降低人為錯誤。

●通過軟體測試自動化,管理軟體測試中的案例、缺陷、報告等資產,進一步提升軟體測試的效率並建立測試基礎庫。

●在規劃中,將來的2~3年內使所有的應用系統上線都必須有數字化的測試數據作為依據。

折疊系統的情況

由於保險公司的業務種類繁多,同時在經過了幾十年的經營後,公司內的應用系統從早期的終端方式到現代的J2EE和.NET等應有盡有,魚龍混雜。IT部門已經建立的3年規劃,即在未來的3年時間內將所有終端和C/S方式的應用轉換成B/S架構,但當前仍然需要對這些舊應用系統進行維護,以保證業務的順利進行。對於開發部門來說,新應用開發基本上已經以B/S架構為主,主要是基於J2EE架構的WebHTTP應用和部分Window.NETForm的應用。

折疊公司現狀

企業機構在做測試自動化選型時一定要考慮清楚企業內部哪些部分可以實施自動化、哪些部分暫不實施自動化、哪些部分僅在某幾個項目做自動化試點。切忌匆忙上馬或盲目否定,缺乏實事求是的理性思考。

測試部門僅負責系統測試和對用戶驗證測試進行管理,對於之前的單元測試和集成測試主要由開發團隊中劃分出的一部分臨時測試人員完成。由於缺乏監測手段,測試部門也無法收集和確定集成測試和單元測試的完成情況,在整個軟體測試過程中,業務需求是由開發部門通過RationalRequisitePro進行管理,但測試需求尚沒有提出要求,測試案例主要通過在公司公用的文件伺服器中的目錄管理方式管理,對測試中缺陷流程等管理主要依靠郵件的流轉進行處理90%以上的測試是通過Excel和Word等測試案例文檔來完成,測試人員對軟體測試自動化的認識僅停留在"記錄+回放"的認識上。

折疊方案

方案A:A公司可以採用美科利(Mercury)公司產品為主的軟體測試自動化方案。

●依照原先的郵件流轉過程配置TestDirector缺陷管理流程,為每個保險業務的開發小組和測試團隊分配相應的用戶許可證,取消原有郵件方式。

●部署MercuryQuickTestProfessional,以便完成應用程序相關功能測試。

●部署MercuryLoad-Runner。從測試團隊中分化出專職的性能測試自動化工程師和小組,和業務部門協調,建立A公司應用系統上線性能指標,通過LoadRunner給出測試指標。

●建議A公司成立專門的質量控制部門,對TestDirector中的數據定期進行分析,建立相關質量模型,以便於企業量化管理和過程改進。

方案B:A公司也可以採用IBMRational產品為主的軟體測試自動化方案。

●採用RationalTestmanager來進行整個測試流程的管理,為相關開發和測試小組成員分配相應許可權,改變以前通過郵件以及Word、Excel文檔管理測試的工作方式。

●部署RationalRobot,用它來完成功能相關的測試工作以及新版本發布時的冒煙測試。此外,RationalRobot也能較好地完成性能相關測試。統一的操作方式降低了工具的學習周期和培訓帶來的大筆開銷。

●部署RationalPurifyplus,使測試工作前移到開發階段。由於Purifyplus能較好地支持白盒測試,編程人員在編碼階段引入的錯誤能盡早被檢測到,這大幅降低了後期測試的開銷。

●建議A公司成立專門的質量控制部門,對Testmanager中的數據定期進行分析,建立相關質量模型,以便於企業量化管理和過程改進。

方案C:A公司也可以採用開源軟體為主的軟體測試自動化方案。

●採用Bugzilla來進行Bug跟蹤管理,採用BugzillaTestRunner進行測試用例管理,採用CVS進行測試資源的配置管理。

●採用MaxQ和WebInject對B/S結構的應用系統進行功能測試。

●採用DBMonster、Open-STA、LoadSim進行性能相關測試。

●可採用Xunit架構的開源工具對不同語言的程序單元進行單元測試。

●建議A公司成立專門的開源軟體維護小組,以解決可能會碰到的工具維護工作。

●建議A公司成立專門的質量控制部門,對Bugzilla、TestRunner、CVS中的數據定期進行分析,建立相關質量模型,以便於企業量化管理和過程改進。

折疊方案評價

由於不同客戶在組織架構、員工素質以及流程管理水平等方面的不同,我們很難用一個實例、一兩句話來說明不同解決方案的適用性。在上面的例子中,筆者給出了3種可行的方案,具體選擇哪一個,需要仔細權衡。這里筆者給出一般性的意見,對於不想受制於某個測試自動化廠家的企業,開源絕對是一個理想的選擇。此外,它不需要支付成本,工具的源代碼可以隨意修改,因而具有較好的靈活性。但開源工具的弊端也是明顯的:缺乏使用培訓和技術支持,工具的用戶界面一般也較為粗糙。而對於那些比較看重培訓和售後支持的企業,筆者建議選擇IBMRational或Mercury或其他廠家的產品。這樣雖然需要支付一部分費用,但省去了工具維護所需要的大量工作。至於具體選擇哪個廠家的產品為好,筆者尚無結論性意見。相信讀者朋友都有一些見仁見智的看法,不妨來信交流。

閱讀全文

與軟體自動化測試架構相關的資料

熱點內容
電腦上怎麼下載班智達的軟體 瀏覽:1115
無痕跡消除圖片軟體 瀏覽:683
免費小票軟體 瀏覽:918
華為在哪裡設置軟體停止運行 瀏覽:929
用電腦鍵盤調節聲音大小 瀏覽:1228
自動刷軟體賺錢 瀏覽:1229
古裝連續劇免費版 瀏覽:1381
工免費漫畫 瀏覽:1121
手機軟體專門儲存文件 瀏覽:1477
uos如何用命令安裝軟體 瀏覽:1273
有線耳機插電腦麥克風 瀏覽:625
侏羅紀世界3在線觀看完整免費 瀏覽:965
單個軟體怎麼設置名稱 瀏覽:688
鳳凰網電腦版下載視頻怎麼下載視頻怎麼下載 瀏覽:1351
明白之後如何免費獲得無人機 瀏覽:800
如何解禁軟體菜單 瀏覽:808
副路由器連接電腦視頻 瀏覽:1323
內置wifi電視如何裝軟體 瀏覽:1062
手機換零免費雪碧 瀏覽:1557
國行蘋果如何下載美版軟體 瀏覽:1174