㈠ 未來web開發的趨勢是什麼
現在,Web開發世界在不斷變化,趨勢也在不斷變化。有時,這些趨勢的變化速度遠遠快於它們的使用速度。要保持領先,就必須關注最新的流行趨勢、更新、技術和方法。此外,了解趨勢並隨時了解周圍發生的事情對於web開發是非常必要的。
㈡ 怎麼學習自動化測試
首先,想從事自動化測試,必須先了解What/Why/How,也就是常說的去了解什麼是自動化測試、為什麼要進行自動化測試、該如何進行自動化測試,這類的資料在網上有很多,這里就不做重復了; 其次,需要根據項目的特點,選擇合適的自動化測試工具,並了解工具的特性。以QTP為例,該如何去掌握它呢?對於初學者,大多數都是通過錄制的方式來生成腳本,這個階段應該掌握的基礎知識有:1) QTP是如何去識別對象的,對於新手經常會出現錄制的腳本回放的時候報錯的現象,這個時候就應該考慮為什麼呢?如果很了解QTP識別對象的原理啊,我想就能很快定位到原因了2) 去掌握一些QTP對象的方法,如GetROPreperty、GetTOPreperty、ChildObjects等等,對於相似的方法應該去搞清楚到底區別在哪?像GetROPreperty、GetTOPreperty有什麼區別等3) 什麼是Action參數、什麼又是Test參數?兩者有什麼區別,又有什麼聯系,在同一Test和不同Test間這些參數如何工作4) 什麼是環境變數?環境變數是如何建立和使用的,環境變數在參數傳遞中和action參數、test參數有什麼不同5) 了解檢查點的知識,明白什麼是內置檢查點,什麼又是自定義檢查點。並搞清楚在什麼時候該如何使用檢查點6) 掌握對象庫的操作,了解對象庫對於測試的意義,象是否啟用智能識別對測試腳本有何影響、為什麼同一對象識別起來會有_1、_2之類的後綴等都是需要去研究清楚的問題這幾個問題都搞清楚的話,那基本就能夠利用QTP生成正確的腳本了,當然以上只是部分必須掌握的內容,其實還是很多細節的設置,就需要在實際運用中去掌握了。接下來,就可以進一步提升自己的QTP運用水平了,這個階段就需要去學習vbs知識和如何運用描述性編程實現腳本了,同時在這個過程中還需要去學習html知識、DOM、XML、以及像excel、word等的API知識了,總的來說,這個階段應該掌握的內容大體上包括:1) VBscrīpt的基礎知識,熟悉常用的方法和函數,掌握文件對象的操作等2) 熟練掌握XML技術;excel、word等API對象,可以根據需要創建日誌等3) 熟練掌握DOM和HTML知識,能夠結合這些技術對Web頁面進行解析4) 掌握資料庫的基本操作語句,能夠利用ADO對象進行數據操縱5) 熟練掌握正則表達式,很多時候處理對象問題相當方便6) 掌握如何調用dll進行工作7) 能夠利用QTP的自動化對象模型創建出需要的運行模式8) 掌握WMI知識以上只是我考慮到的部分,並不全面,呵呵,供大家參考,當然這些技術主要是針對Web系統運行,因為我們的系統就是B/S的,呵呵。如果這些知識都能夠扎實的掌握的話,個人認為,基本上能夠處理自動化過程中的絕大多數問題了,這個時候你對自動化測試的技術應該是有一定積累了。接下來就需要考慮自動化測試框架問題了。當腳本規模到了一定的程度,就會面臨一些問題,如:1) 如何有效的管理並調度腳本2) 如何實現腳本運行的無人值守,測試過程中能夠自動進行錯誤處理並進行日誌記錄3) 如何生成簡介明確的測試報告4) 如何能夠更加高效的維護測試腳本5) 實現框架代碼和業務代碼的分層、業務腳本和業務數據的分離這個階段主要體現的是測試人員的測試思想,是可以脫離工具獨立存在的過程。當然各個公司項目的實際情況不同,導致設計出來的思想不同,但總體上來說一般包括數據驅動和關鍵字驅動兩種模式。後者實現的技術難度大於前者,大多數公司目前都採用的數據驅動模式。這個階段不應局限於技術運用上,而需要從測試全局考慮,進行分層設計、模塊化實現,減少代碼之間的耦合。如果以上三個方面都能夠做的很好的話,那麼恭喜你,你已經可以獨立負責項目的自動化測試建立工作了,呵呵!總之,學習自動化測試需要在實際項目中進行,這樣提高的會比較快,項目中運用了很多種技術,自動化實施過程會碰見各種各樣的問題,是很好的學習機會,關鍵要善於總結、積累經驗,只要能夠把各個細節做好,那麼你一定能夠成為一名優秀的自動化測試工程師。
㈢ 什麼是自動化測試
一般是指軟體測試的自動化,軟體測試就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。
基本信息
中文名稱
自動化測試
外文名稱
Test
定 義
人為驅動測試為轉為機器執行過程
應 用
軟體測試的自動化
工 具
QTP
自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率,便引入了自動化測試的概念。
折疊編輯本段工具介紹
折疊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或其他廠家的產品。這樣雖然需要支付一部分費用,但省去了工具維護所需要的大量工作。至於具體選擇哪個廠家的產品為好,筆者尚無結論性意見。相信讀者朋友都有一些見仁見智的看法,不妨來信交流。
㈣ 自動化測試的工具有哪些
商業工具:
1、RFTRational Functional Tester 的基礎是針對於Java、.NET的對象技術和基於 Web 應用程序的錄制、回放功能。工具為測試者的活動提供的自動化的幫助,如數據驅動測試。IBM RFT是一個用於功能和回歸測試的數據驅動的測試平台。它支持大范圍的應用,例如.Net、Java、SAP、Flex和Ajax。RFT使用Visual Basic。Net和Java作為腳本語言。RFT有一個獨特的功能,稱為 Storyboard 測試,用戶的動作被記錄下來,並通過應用截圖在 Storyboard 格式中可視化。RFT的另一個有趣特性是它與IBM Jazz應用生命周期管理系統(如IBM Rational Team Concert和Rational Quality Manager)的集成。
2、kylinTOP:這是一款國產的自動化測試工具,支持WEB和APP的自動化測試,其中元素智能定位是這款自動化軟體主要特點,是設計理念比較超前的測試工具,算是國內眾多自動化測試工具中,做的比較突出的一款。與傳統的RFT和UFT相比,的確有過人之處,算是後起之秀,使用起來,簡單高效、穩定。這樣描述估計也沒幾個人能體會到的。說白一點就是一個人可以干三個人的活,使用者只需關注業務即可。
3、UFT:UFT(別名:QuickTest Professional簡稱QTP)是一種自動化測試工具,以VBScirpt為內嵌語言,其前身是QTP。UFT支持功能測試和回歸測試自動化,可用於軟體應用程序和環境的測試。UFT自動化測試的基本功能包括:創建測試、檢驗數據、增強測試、運行測試腳本、分析測試結果、維護測試;UFT支持兩種視圖,一種是Keyword View(關鍵字視圖),另一種是Expert View(專家視圖)。是一款老牌的自動化測試工具。
4、SilkTest:這個也是比較相對著名的工具,不過同樣還是沒有了解過,對於商業的工具,因為其佔地面積大,還要破解等麻煩事,最關鍵的是使用的公司少,所以只使用過QTP,其它的一概未了解過
開源工具:1、Selenium:這個應該大多數人都知道的,現在也是大多數互聯網公司在使用的測試框架;selenium僅支持web的UI級別測試,但是其優點在於:a、支持多種語言編寫測試腳本,比如:java、python、ruby、perl等;同時也就意味著其後的支持類庫也是很多的b、支持多瀏覽器,如:ie,ff,safari、chrome等c、支持多平台,如:windows、linux、MAC、android、iphone等d、支持分布式執行,一套測試用例可以同時分布到不同的測試機上執行,而且還可以進行任務細化,比如:針對liunx執行系統只分配linux下需要執行的用例此外還有錄制工具支持,簡單也說,web類測試基本上是首選,不過對flash的支持好像不是太好其主要分2個版本,1.X版本是以js驅動來進行自動化實現的;2.X重新開發了webdriver來代替js驅動,直接調用瀏覽器底層介面來完成自動化實現的前提:如果使用remote或者RC功能,需安裝jre下載地址:http://seleniumhq.org/download/
2、EFT【easy function testing】:這個是在.net3.0 的UIAutomatuon的基礎上封裝的一個dll文件,同樣還封裝了部分windows api以實現滑鼠和鍵盤事件。所以這個只能叫測試類庫,且僅支持windows程序,而且同樣支持uiautomain所支持的WPF程序的測試。前提:安裝了.net3.0使用:引入該文件,uiautomation 相關dll,VS環境下編寫測試用例
3、UIAutomation:這個是微軟提供的UI自動化框架,當然它的初衷並不僅僅是為自動化測試而產生的,它的任務是給更多的開發或者應用去調用windows的UI控制項,不過還是可以用於自動化測試的;因為之前微軟就有類似的工具,而這個是重新設計的ui操作類框架,其目的是為了兼容支持windows系列操作系統的UI自動化操作【xp,vista,server2003】,還有就是天然支持WPF。當然其設計與通常的自動化工具就不一樣了,比如:沒有把控制項支持的方法綁定在控制項對象本身,沒有提供專門的滑鼠/鍵盤事件,但是卻提供了特定控制項對象的事件響應監聽及處理方法的定製。其工作流程大概是這樣的:a、先獲取特定的元素對象,有多種方法。如:句柄,屬性值b、獲取這個元素對象的模式。模式是這個框架的設計的獨具之處,成就了它的靈活性,統一性c、通過這個模式在進行具體的方法調用,屬性值獲取等d、監聽指定對象的特定事件,一旦發生則執行指定的事件處理函數
4、Robot FrameworkRobot Framework是一個完全基於關鍵字測試驅動的框架,它即能夠基於它的一定規則,導入你需要的測試庫(例如:其集成了selenium的測試庫,即可以理解為操作web控制項的測試底層庫),然後基於這些測試庫,你能應用HTML、TXT等文檔形式編寫自己的關鍵字(這些關鍵字即你的庫組成),之後,再編寫測試用例(測試用例由測試關鍵字組成)進行測試。例如:一個簡單的登陸測試由:登陸+輸入密碼+登出三個關鍵字組成,也可以由一個關鍵字登陸組成,關鍵字顆粒的大小可以自行定製。
㈤ 自動化測試都包含哪些內容
一般而言,測試工作中的自動化測試包含:Web自動化測試、介面自動化測試、性能自動化測試、移動端自動化以及單元測試自動化等內容。現在你是否工作了呢?還是想學習呢?想學習,去傳智,口碑很不錯。
㈥ 軟體測試該如何學習
一、學習路線圖(點擊圖片即可放大,可清晰觀看)
二、軟體測試視頻第一階段-前置基礎知識
1、學習目標:
可掌握的核心能力:
1. 熟悉計算機相關概念;
2. 掌握基礎的測試理論;
3. 熟練掌握HTML常用標簽和語法規范;
4. 掌握使用CSS定義網頁樣式;
5. 掌握js的基本用法;
2、知識點:
1)計算機基礎
計算機組成部分、操作系統分類、B/S和C/S架構、常用DOS命令、伺服器域名
2)測試理論
軟體測試的目的、軟體測試定義、軟體測試原則、產品質量模型、測試基本流程
3)HTML基礎
HTML基礎語法、標簽屬性、圖片標簽、超鏈接、錨點、表單
4)CSS基礎
CSS基礎語法、CSS四類選擇器、常用文字屬性、行高屬性、邊框、盒子模型、內外邊距
5)JS基礎
JS基礎語法、JS引入方式
三、軟體測試視頻篇第二階段-linux和資料庫
1、學習目標:
可掌握的核心能力:
1. 掌握Linux操作系統按照和配置;
2. 熟練掌握Linux常用命令;
3. 掌握資料庫增刪改查操作;
4. 熟悉資料庫索引、視圖、事務、常見函數等高級功能;
5. 掌握Redis的string類型、hash類型、set類型、list類型等基本類型和操作;
2、知識點:
1)LINUX(熟悉)
操作系統介紹、操作系統發展歷史、CentOS圖形界面、文件和目錄、常用LINUX命令使用、vim文本編輯器的使用
2)資料庫介紹(熟悉)
資料庫基本概念、關系型資料庫介紹、MySQL安裝與使用、Navicat使用
3)SQL語言(重點)
數據表操作、數據操作-增刪改查、條件查詢、排序、聚合函數、分組、分頁、連接查詢、自關聯、子查詢、子查詢演練
4)資料庫高級功能(了解)
資料庫設計、命令行操作資料庫、函數、存儲過程、視圖、事務、索引、外鍵、用戶密碼
5)redis資料庫功能(掌握)
掌握Redis的string類型、hash類型、set類型、list類型等基本類型和操作;
四、軟體測試視頻篇第三階段-測試基礎
1、學習目標:
可掌握的核心能力:
1. 掌握測試的基本概念和測試常見分類;
2. 熟練掌握黑盒測試用例設計方法,進行功能測試用例設計;
3. 熟練掌握缺陷報告的編寫;
4. 熟悉測試管理工具禪道和JIRA的使用
5. 掌握項目測試流程;
6. 掌握Web項目功能測試分析和用例編寫;
7. 熟悉測試計劃,測試方案,測試報告的核心內容
8. 掌握功能測試與資料庫的關系
9. 掌握Fiddler工具的使用
2、知識點:
1)軟體測試理論
軟體測試的分類,軟體開發模型和測試模型,軟體的質量模型,測試用例的定義和要素
2)測試用例設計
等價類方法、邊界值方法、因果圖、判定表、狀態遷移法、正交、場景
3)缺陷管理
缺陷定義、缺陷的判定標准、缺陷報告、缺陷跟蹤流程
4)Web項目實戰
搭建項目的測試環境,如何快速熟悉項目,項目的測試流程,測試計劃和方案,功能測試分析,狀態遷移法的使用,流程測試分析,非功能測試分析,測試報告編寫,Fiddler抓包
5)App項目實戰
6)測試管理工具
禪道的使用,JIRA的使用
五、軟體測試視頻篇第四階段-編程+數據結構
1、學習目標:
可掌握的核心能力:
1. 掌握Python基礎語法, 具備基礎的編程能力;
2. 建立編程思維以及面向對象程序設計思想。
2、知識點:
1)Python開發環境
Python開發環境的搭建、Pycharm使用
2)Python基礎
變數以及變數的類型、標識符和關鍵字、變數名命名方式、算數運算符、變數數據類型轉換、輸入和輸出、注釋、if語句基本格式、if…else…語句、if…elif..else語句、邏輯運算符、比較關系運算符、運算符優先順序、while循環語法格式、while嵌套應用、break的用法、continue的用法、列表概念及操作、元組概念及操作、字典概念及操作、字元串概念及操作、集合概念及操作、for循環及for…else用法、函數的基本語法、函數執行流程、文檔注釋、帶參數的函數、帶返回值的函數、函數的嵌套調用、匿名函數、遞歸函數、局部變數和全局變數、引用、文件的概念、文件的打開與關閉、文件讀寫, 以及文件定位讀寫、文件、目錄相關操作
3)面向對象
面向對象介紹、類和對象的概念、魔術方法的意義及作用、對象成員的訪問控制許可權、繼承的概念及意義、繼承、多層繼承和多繼承、多態的概念以及應用、類屬性和實例屬性、實例方法、類方法、靜態方法、設計模式: 單例模式
4)異常處理
理解異常的作用、捕獲異常、異常的傳遞規則、自定義異常
5)模塊和包
模塊和包的概念、__all__的用法、import語句用法、from...import...用法、from...import * 用法
六、軟體測試視頻篇第五階段——WEB自動化
1、學習目標:
可掌握的核心能力:
1.能夠熟練搭建Web自動化測試環境;
2.熟練掌握元素的定位方法和元素操作;
3.掌握滑鼠鍵盤操作及HTML特殊元素的處理;
4.掌握使用UnitTest管理自動化測試的腳本;
5.熟練掌握PO模式的設計思想,並能夠對頁面進行封裝;
6.掌握數據驅動的實現方式;
7.掌握日誌的相關概念,以及日誌的收集處理;
8.掌握在實際的項目中如何靈活運用自動化的相關技術。
2、知識點:
1)WEB自動化入門
自動化測試的理論知識、主流的Web自動化測試框架介紹、Selenium的發展歷史及工作原理、元素查看工具使用、環境搭建
2)WEB自動化基礎
元素基礎定位方法、Xpath和CSS元素定位方法、元素常見操作、瀏覽器操作方法、滑鼠鍵盤操作、顯示等待和隱式等待、HTML特殊元素處理、窗口截圖、驗證碼處理
3)WEB自動化中級
UnitTest框架、Fixture、UnitTest斷言、參數化、測試報告
4)WEB自動化高級
PO模式、數據驅動、日誌處理
5)項目實戰
自動化測試流程、項目自動化框架設計、自動化代碼實現
七、軟體測試視頻篇第六階段——移動自動化
1、學習目標:
可掌握的核心能力:
1.掌握移動端APP測試特性;
2.能夠熟練搭建移動自動化測試環境;
3.熟悉appium的工作原理;
4.熟練掌握ADB工具的使用;
5.熟練掌握元素的定位方法、元素操作和手勢操作;
6.掌握單元測試框架pytest的使用;
7.掌握YAML數據讀寫;
8.掌握使用allure生成測試報告;
9.熟練掌握PO模式的設計思想;
10.掌握數據驅動的實現方式;
11.掌握Git的使用方式;
12.掌握Jenkins持續集成的環境配置;
13.掌握在實際的項目中如何靈活運用移動自動化的相關技術。
2、知識點:
1)移動自動化特性
APP應用系統架構、測試環境及發布平台、APP敏捷開發模式、APP應用測試要點、業務功能測試、兼容性測試、安裝卸載升級測試、交叉事件測試、Push消息測試、性能測試、用戶體驗測試、穩定性測試
2)移動自動化基礎
移動端測試分類及特點、ADB命令及Monkey使用、appium環境搭建、appium工作原理
3)移動自動化中級
APP和手機系統操作、元素定位、元素操作、高級手勢操作、混合APP測試、PyTest測試框架、定製測試報告、YAML數據讀寫
4)移動自動化高級
PO模式、數據驅動、Git、Jenkins持續集成
5)項目實戰
APP項目實戰
八、軟體測試視頻篇第七階段——介面測試
1、學習目標:
可掌握的核心能力:
1.掌握介面及介面測試相關概念;
2.掌握使用Postman進行介面測試;
3.熟練掌握資料庫的基本操作和事務操作;
4.掌握requests庫使用及腳本封裝;
5.掌握介面測試框架的設計和封裝;
6.掌握使用持續集成工具管理介面測試腳本;
7.掌握在實際的項目中如何靈活運用介面測試的相關技術。
2、知識點:
1)介面測試基礎
介面及介面測試概念、HTTP協議、介面規范、項目環境說明、介面測試流程
2)Postman實現介面測試
Postman介紹和安裝、Postman基本用法、Postman高級用法、Postman測試報告、項目實戰
3)資料庫操作
資料庫介紹、資料庫基本操作、資料庫事務操作
4)代碼實現介面測試
Requests庫、集成UnitTest、介面測試框架開發、項目實戰
5)持續集成
持續集成介紹、Git、Jenkins、持續集成之Postman、持續集成之代碼
6)介面測試擴展
Mock測試、介面測試總結
九、軟體測試視頻篇第八階段——性能測試
1、學習目標:
可掌握的核心能力:
1.能夠熟練搭建性能測試環境;
2.掌握性能測試基礎理論;
3.掌握Jmeter常用組件使用;
4.掌握Jmeter編寫和錄制性能測試腳本;
5.掌握基於jmeter實現單一和混合場景搭建;
6.掌握思考時間、事務、邏輯控制器在性能測試場景的應用;
7.掌握Jmeter常用性能插件進行圖表分析;
8.掌握Linux服務型性能監控方法和指標;
9.掌握資料庫監控和調優的常見方法。
2、知識點:
1)性能測試基礎
性能測試理論、性能測試分類、性能測試常用指標、性能測試流程
2)性能測試工具
常用性能測試工具、Jmeter環境搭建、Jmeter功能概要、元件作用及執行順序、線程組、參數化、斷言、關聯、連接資料庫、邏輯控制器、定時器、分布式、測試報告
3)項目-介面性能測試
項目API文檔分析、介面清單梳理、介面腳本設計、並發數據計算、邏輯控制器項目應用、單一場景搭建、常用響應圖表插件及應用
4)項目-web性能測試
腳本錄制、正則過濾、cookie管理器、事務控制器、思考時間、混合場景搭建、web性能腳本執行與分析
5)性能測試調優
windows伺服器性能監控、linux伺服器性能監控、性能測試報告
十、軟體測試視頻篇第九階段——綜合項目實戰
1、學習目標:
可掌握的核心能力:
1.掌握功能測試在真實的項目中如何實施;
2.掌握基於Selenium的Web自動化測試框架搭建和使用;
3.掌握基於Appium的APP自動化測試框架搭建和使用;
4.掌握使用工具實現介面測試;
5.掌握基於Python+Requests庫的介面自動化測試框架的搭建和使用;
6.掌握Locust性能測試框架的使用;
7.掌握如何對APP進行性能測試;
8.掌握在實際的項目中如何靈活運用相關測試技術。
2、知識點:
1)項目介紹
項目簡介、項目架構
2)功能測試
功能測試設計思路、自媒體端測試、後台管理端測試、用戶APP端測試
3)UI自動化測試
Selenium Grid、搭建自動化測試框架、編寫自動化測試腳本
4)介面測試
介面測試流程、基於工具的介面測試、基於代碼的介面測試
5)性能測試
Locust框架、APP性能測試
㈦ 自動化測試架構和自動化測試開發的區別
跟開發普通的軟體沒有任何的區別。計劃-分析-設計-實現-測試-使用
㈧ 有適合測試web app的自動化測試工具么
1、Monkey是AndroidSDK自帶的測試工具,在測試過程中會向系統發送偽隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試,也有日誌輸出。實際上該工具只能做程序做一些壓力測試,由於測試事件和數據都是隨機的,不能自定義,所以有很大的局限性。2、MonkeyRunner也是AndroidSDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試腳本來自定義數據、事件。缺點是腳本用Python來寫,對測試人員來說要求較高,有比較大的學習成本。3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程序做更為復雜的測試,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下、抬起、屏幕點擊、滾動等事件。Instrumentation是通過將主程序和測試程序運行在同一個進程來實現這些功能,你可以把Instrumentation看成一個類似Activity或者Service並且不帶界面的組件,在程序運行期間監控你的主程序。缺點是對測試人員來說編寫代碼能力要求較高,需要對Android相關知識有一定了解,還需要配置AndroidManifest.xml文件,不能跨多個App。4、UiAutomator也是Android提供的自動化測試框架,基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實現細節(可以用UiAutomatorviewer抓去App頁面上的控制項屬性而不看源碼)。基於Java,測試代碼結構簡單、編寫容易、學習成本,一次編譯,所有設備或模擬器都能運行測試,能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測試)。缺點是只支持SDK16(Android4.1)及以上,不支持HybirdApp、WebApp。5、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,編寫測試代碼簡單,容易快速上手。因為是基於Instrumentation的,所以不能跨App。配合AndroidStudio來編寫測試的簡單例子6、Selendroid:也是基於Instrumentation的測試框架,可以測試NativeApp、HybirdApp、WebApp,但是網上資料較少,社區活躍度也不大。7、Robotium也是基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社區也比較活躍。缺點是對測試人員來說要有一定的Java基礎,了解Android基本組件,不能跨App。8、Athrun是淘寶出的一個移動測試框架/平台,同時支持iOS和Android。Android部分也是基於Instrumentation,在Android原有的類基礎上進行了擴展,提供一整套面向對象的API。這里有詳細介紹。9、Appium是最近比較熱門的框架,社區也很活躍。這個框架應該是是功能最強大的,它的優點:它的哲理是:它的設計理念:相關限制:總結:在iOS部分是封裝了UIAutomation;Android4.2以上是用UiAutomator,Android2.3~4.1用的是Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優點:跨App,支持NativeApp、HybirdApp、WebApp,還支持N種語言來編寫你的測試腳本。如果你在Windows使用Appium,你沒法使用預編譯專用於OSX的.app文件,因為Appium依賴OSX專用的庫來支持iOS測試,所以在Windows平台你不能測試iOSApps。這意味著你只能通過在Mac上來運行iOS測試。Client/Server架構,運行的時候Server端會監聽Client端發過來的命令,翻譯這些命令發送給移動設備或模擬器,然後移動設備或模擬器做出響應的反應。正是因為這種架構,所以Client可以使用Appiumclientlibraries多種語言的測試腳本,而且Server端完全可以部署在伺服器上,甚至雲伺服器。Session,每個Client連接到Server以後都會有一個SessionID,而且Client發送命令到Server端都需要這個SessionID,因為這個seesionid代表了你所打開的瀏覽器或者是移動設備的模擬器。所以你甚至可以打開N個Session,同時測試不同的設備或模擬器。DesiredCapabilities,其實就是一個鍵值對,設置一些測試的相關信息來告訴Server端,我們需要測試iOS、還是Android,或者換是WebApp等信息。AppiumServer是Node.js寫的,所以可以直接用NPM來進行安裝。AppiumClients,MacOS和Win下提供GUI,不需要裝Node.js,方便測試人員操作。用Appium自動化測試不需要重新編譯App;支持很多語言來編寫測試腳本,Java、Javascript、PHP、Python、C#、Ruby等主流語言;不需要為了自動化測試來重造輪子,因為擴展了WebDriver。(WebDriver是測試WebApps的一種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);移動端自動化測試應該是開源的;開源;支持NativeApp、HybirdApp、WebApp;支持Android、iOS、FirefoxOS;Server也是跨平台的,你可以使用MacOSX、Windows或者Linux;
㈨ 我是剛入手測試這行的,我有編程基礎,現在想學習自動化測試,但不知哪裡有好的網站可以推薦下
以前有人問過類似問題,
一、我先把我以前回答的給你貼一下
1、自動化測試,其理念就是應用各種手段模擬人工操作,節省人力測試成本,保證產品測試質量。
2、你想學好自動化軟體測試,不是單單靠學習幾個自動化工具就能掌握的,但是你可以從工具入手,
首先,告訴你自動化測試的基礎是
1)編程技巧,包括高級語言和腳本語言,腳本語言是初期的掌握,可以有,tcl、phython、ruby等而高級語言,要好好學好一門,例如,我是對java為重點。還有,如果你是對web自動化測試的話,那麼jsp、php、HTML、CSS等web語言是必須掌握的。
2)操作系統技巧;因為軟體自動化測試是構建在操作系統上的,其技巧需要能善於利用到操作系統的各種技巧,例如:注冊表、環境變數、句柄等。
3)資料庫知識,要善於利用資料庫知識去存儲管理。
4)業務知識,這也是重點。你所在軟體行業的軟體業務,要知道你的軟體的工作方式。
5)質量與流程管理理念。
然後,你的學習步驟
1)可以從工具入手,根據具體的項目去學習;例如:java軟體界面測試(RFT、QTP的java插件等)、web界面測試(QTP、selenium等)、性能測試(RPT、loadrunner等)。但記住,學習其工具,重點不是簡單的使用,而是如何利用工具去擴展。
2)然後,重點學習以上的基礎,以編程為重點,其餘的結合學習,順便說一句,其實自動化測試的理念與軟體設計模式理念很像,你可以從中有所領悟。
3)之後,再學習去拓建自己的自動化測試框架,何謂框架,一下說不清楚,自己慢慢領悟
注意:如果沒有自動化測試方面的實踐項目的話,最好先從基礎學起,因為基礎學好了,自動化測試入門會很快的。
4至於性能測試,也是一樣,可以先從工具入手,但不要局限於工具,性能測試最重要的是環境的構建方法以及對測試結果的分析方法,所以性能測試重點在於分析和實現過程,而不是工具使用過程。
二、根據根據你的情況,我的個人的一些想法
1、你有編程基礎,不知道是哪種語言,還是基礎的東西懂,例如:數據結構?操作系統?資料庫等。其實,做自動化會簡簡單單編編腳本可以,但是個人發現很多自動化測試人員的編程不能稱得上編程,僅僅是一個實現,沒有考慮到軟體工程中的可重用性,可維護性,即模塊和封裝性不好。
2、可以的話,51測試上有一些關於自動化測試的知識,但是很分散,容易讓你迷失,我在51測試上的博客(散步的SUN)是記錄我的自動化測試是記錄我自動化測試的想法和一些東西,有興趣的話可以看看,還有一個專業自動化測試資訊網可以,但別受其誤導,自己有想法,個人理解,做自動化如果不能限於編程,而是思考,重在流程與需求。
3、做自動化測試一段時間之後,其實你會發現會有兩個過程,一是回歸到技術,二是回歸到測試,真的想做好自動化測試,強大的技術是支撐,也就是說你的開發能力不是說簡單的達到匹配一般開發的角度,而也是一個較基礎的架構開發,這樣才能從重用性和維護性去更好的理解自動化測試。而其上層則是測試,即對測試和測試流程的理解,簡單的說,就是怎麼把自動化測試插到測試流程中去,幫助節約成本。
4、所以,我個人建議可以以編程為重點,好好學好技術,畢竟從技術入手自動化測試還是很快捷的,其中,可以伴隨著提高一下自動化測試的眼界。
5、有什麼要一起探討的,請給我發郵件吧(test_sunny#hotmail.com),#修改為@,共勉吧
㈩ 自動化測試框架如何搭建
- 測試結果的分析也是很重要的,一般也要求在自動化測試框架中得到解決。最重要的是易用,將各個工具集成起來,並能很好地使用這些工具。
例如,openqa.org社區提供了一個工具Bromine,它集成了SeleniumCore/RC,非常容易跟蹤和管理測試項目、需求、測試計劃、測試用例和缺陷,可以監控缺陷的提交和將缺陷分派給相應的開發人員,瀏覽和分析測試結果。又如澤眾軟體(spasvo.com)自主研發的
測試管理工具TestCenter
,實現測試用例的過程管理,對測試需求過程、測試用例設計過程、業務組件設計實現過程等整個測試過程進行管理。實現測試用例的標准化即每個測試人員都能夠理解並使用標准化後的測試用例,降低了測試用例對個人的依賴;提供測試用例復用,用例和腳本能夠被復用,以保護測試人員的資產;提供可伸縮的測試執行框架,提供自動測試支持;提供測試數據管理,幫助用戶同意管理測試數據,降低測試數據和測試腳本之間的耦合度。
一個理想的自動化測試框架能解決上述問題,提供一個分布式的通訊平台、友好的人機交互界面和開放式架構,將自動化測試中所需要的各個關鍵部分有機地集成起來,形成一個為自動化測試服務的、完整的、層次清楚的開發平台和運行環境,包括:
1)綜合管理平台,可以將自動化測試中所有的工作內容管理起來,相當於一個統一的入口(Portal),可以瀏覽每部分的內容;
2)基於業務驅動的腳本集成開發環境,這樣比較容易構造關鍵字驅動的腳本,為此要建立軟體系統的對象庫,並將這些對象映射為腳本中的邏輯對象,以減少軟體需求變化對腳本的影響。這個集成開發環境還包括腳本錄制、編輯等功能,並能和CVS、Ant等工具集成。其中庫函數可以看作是關鍵字列表和關鍵字實現,而對象映射可以看作對象庫和映射關系構成的。
3)安排(schele)測試任務,使任務可以定時啟動,自帶執行測試任務;
4)在測試過程中,能夠監控測試資源,並及時發現問題,發出警告,並保留(記錄)相關數據;
5)控制中心(控制器),驅動測試工具
,可以調用測試任務,並能將測試任務、測試腳本等分發給遠程機器;
6)遠程機器執行測試任務,通過代理實現,而代理由控制中心來控制。