自動化軟體測試概述_軟體測試

來源:互聯網
上載者:User

  自動化軟體測試的實際情況

  自動化軟體測試(Automated Software Testing,AST)這個術語從軟體開發與測試社區成員那兒汲取了許多不同的含義。對於有些人來說,這個術語也許是測試驅動開發或單元測試的意思,但是對於其他人也許意味著使用捕獲/記錄/回放工具進行自動化軟體測試。這個術語的意思也有可能是使用諸如Perl、Python、Ruby等指令碼語言來定製開發測試指令碼。對於另一些人,自動化軟體測試也許只涉及效能測試和壓力測試,或全部關注於功能測試或安全性測試。在本書中,AST指代所有這些含義。

  在進一步深入細節之前,明確地定義AST,以及就這個術語與讀者達成一致的含義和理解很重要。我們將根據過去的工作和經驗來定義AST,這同樣是它的真實含義。另外,本章將討論成功的AST工作需要什麼,以及一些AST方法。在這裡我們將討論如何精簡一些自動化測試工作的建議,還會討論在整個軟體測試生命週期中應用AST。

  1.1 自動化測試定義

  自動化軟體測試的定義包括了所有測試階段,它是跨平台相容的,並且是進程無關的。一般來講,當前作為手動測試程式部分的各種測試(如功能、效能、並發、壓力等測試)都可以自動化。大家經常問這個問題:“手動測試和自動化測試有什麼不同呢。”答案如下:

  自動化測試可以完成手動測試難以完成的工作,可以提高手動測試的工作效率。

  自動化測試也是軟體開發。

  自動化測試不是要取代手動測試人員所需要的分析技能、測試策略知識和對測試技術的理解。手動測試人員的經驗會作為AST的藍圖。

  自動化測試不可能完全和手動測試分開。相反,自動化測試和手動測試是相輔相成的。

  儘管開發軟體將今天已有的手動軟體測試全部轉換成自動化測試是有可能的,然而我們的經驗表明,為了適應自動化,大多數手動測試都必須經過修改。手動測試技術、實踐和知識與AST是相互交織的,所以也會在本書中對其進行討論,以對AST技術提供支援。而自動化是否可以產生合理的ROI(Return On Investment,投資報酬率)是另外一個問題,這需要通過評估。經驗表明,即使可以將所有測試自動化,但並不是所有測試都值得自動化。當決定是否要自動化時,我們需要考慮各種準則。如何確定哪些測試應該自動化會在第6章進一步探討。要將ROI銘記在心,我們對AST的高層次定義是:

  以改進軟體測試生命週期(Software testing lifecycle,STL)的效率和有效性為目標,貫穿整個STL的應用程式和軟體技術的實施。

  AST是指跨越整個STL中的自動化工作,以及關注自動化整合測試和系統測試的工作。AST的總體目標是設計、開發和交付自動化測試,並通過重複測試來提高測試效率。若成功實施,那麼它可以大幅度減少針對軟體密集型系統的傳統測試和評估方法、過程相關的成本、時間和資源。

  1.2 自動化測試的方法

  當有效地實施了AST時,它不完全是對圖形化使用者介面(GUI)的捕捉和回放(但是許多人是這樣理解的),也不局限於某一特定階段的測試,同時也不是專門針對任何特定廠商的產品,它適應AUT(Application Under Test,被測試的應用)使用的特定架構或語言。

  本書描述的AST是過程無關的、技術無關的,並且環境無關的。遵循本書描述的實施建議,就可以實施AST,而不管是使用瀑布模型、測試驅動開發模型、Scrum或任何其他類型的軟體開發模型,而且不管是測試Web應用或面向服務架構的方案,也不論你的應用運行在Linux上、Mac上或Windows上,它與環境、OS和平台都無關。

  如果有效地實施了AST,則可以支援下面環境的應用:

  在多台電腦上運行。

  使用不同的程式設計語言。

  在不同類型的作業系統或平台上運行。

  無論是否有GUI(例如,訊息介面的測試,沒有GUI)。

  運行任何網路通訊協定,如TCP / IP、DDS協議等。

  在開發自動化測試架構時,以下幾點應該銘記在心。它應該:

  對多個商業測試載入器的整合提供支援,無論是開源的、自主開發的,還是來自不同的供應商(即使是市場上出現的最新的和更好的可以使用的產品)。

  支援無須在與SUT相同電腦上安裝架構就可以進行測試。

  同時支援正在開發的新應用和遺留應用。

  支援整個測試生命週期(但並不是為了使用AST,就需要在整個測試生命週期中應用)。

  支援在跨多台電腦上和各種系統工程環境中進行分布式測試。

  如果適用,則支援在多個程式之間複用AST架構和組件。

  AST的實現需要一個小型的開發生命週期,包括測試需求、自動化架構的設計和構建、自動化測試的實施/驗證以及執行。如果做得正確,AST將產生可重用且可擴充的架構和組件。應該應用並遵守軟體開發中的最佳實務。

  儘管某些程式和AUT有相似的測試自動化需要和許多共同點,然而其他一些程式需要獨特的、個人化的AST實現。有效實現的自動化測試架構可以適應這些獨特的需求。

  圖1-1顯示的是已經用我們所描述的自動化架構方法實現的例子。在這裡,我們通過在Linux和Windows平台上運行測試示範跨平台相容性。此外,我們還展示了將各種工具作為自動化架構的一部分整合起來。在這個例子中,我們使用了Testplant的Eggplant和VNCRobot作為測試載入器。我們還使用了軟體測試自動化架構/軟體測試自動化引擎(STAF/ STAX),並將該AST架構成功地整合進我們的自動化測試架構中。STAF/STAX是開源、跨平台、支援多語言、圍繞可複用組件(稱為服務,如進程調用、資源管理、記錄和監測)的思想設計的。STAF消除了從零開始構建自動化基礎設施的冗長和乏味。STAF架構為構建高層次方案提供了基礎,並提供一種外掛程式的方式對廣泛的平台和語言提供支援。STAF/STAX已經被證明非常有用,而且我們已經成功地將其整合進我們自己的自動化架構裡了。

  ......

本文轉載自51Testing軟體測試網,查看全文:http://www.51testing.com/html/06/n-235806.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.