自動化測試:爲何須要框架

前兩天跟老闆出去作pre-sales. 主要是去賣咱們的自動化測試服務,工具用的是HP UFT。作過自動化的人應該知道,UFT在自動化測試領域已經算是最好的工具之一了。客戶是個有技術背景的人,因此不那麼好忽悠。咱們準備了一大堆自動化測試優勢的幻燈片,他倒好,上來直接問,大家的工具的缺陷有哪些。而後我就開始巴拉巴拉地跟他說有哪些缺點,一發不可收拾的是,每解釋完一個問題,他就會有更多問題。最後口乾舌燥也沒能所有解釋清楚,除了感嘆一聲錢不那麼好賺,只能怪本身不能用英語流利地吹牛逼吧。安全

其中有一個問題,我回來之後又想了好久。當時他指着我作的POC(Prove of Concept)腳本,問道:」既然record & playback能夠作一個腳本,那麼爲何還須要自動化測試框架呢?」 簡而言之就是,我憑什麼要多花錢買大家的框架?我當時第一反應是,什麼?你在逗我嗎?自動化測試沒框架怎麼作? 固然個人回答官方的很,主要是從維護,可重用性,易用性地角度去跟他解釋了一遍,他彷佛也不是很滿意。服務器

回頭我想了想,到底爲何咱們須要自動化測試框架呢?越想越以爲委屈,由於我想問問各位開發,大家作項目的時候爲何要用框架呢?那自動化的本質不就是寫程序去測程序嘛,既然開發須要框架,那麼自動化測試爲何不要呢。框架

牢騷歸牢騷。認真地查了些資料。工具

什麼是框架?測試

框架(Framework)是整個或部分系統的可重用設計,表現爲一組抽象構件及構件實例間交互的方法;另外一種定義認爲,框架是可被應用開發者定製的應用骨架。前者是從應用方面然後者是從目的方面給出的定義。能夠說,一個框架是一個可複用的設計構件,它規定了應用的體系結構,闡明瞭整個設計、協做構件之間的依賴關係、責任分配和控制流程,表現爲一組抽象類以及其實例之間協做的方法,它爲構件複用提供了上下文(Context)關係。所以構件庫的大規模重用也須要框架。其實目前爲止,框架尚未統必定義,我比較喜歡Ralph Johnson所給出的定義:插件

一個框架是一個可複用設計,它是由一組抽象類及其實例間協做關係來表達的 【Johnson 98】。這個定義是從框架內涵的角度來定義框架的,固然也能夠從框架用途的角度來給出框架的定義:一個框架是在一個給定的問題領域內,一個應用程序的一部分設計與實現【Bosch 97】。設計

爲何要用框架?htm

又是一個理所固然的問題。由於軟件系統發展到今天已經很複雜了,特別是服務器端軟件,涉及到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就至關於讓別人幫你完成一些基礎工做,你只須要集中精力完成系統的業務邏輯設計。並且框架通常是成熟,穩健的,他能夠處理系統不少細節問題,好比,事物處理,安全性,數據流控制等問題。還有框架通常都通過不少人使用,因此結構很好,因此擴展性也很好,並且它是不斷升級的,你能夠直接享受別人升級代碼帶來的好處。對象

爲何要搭建自動化測試框架?開發

從前我覺得,自動化測試最重要的事情是找對象(Find Test Object)。如今我明白了一個道理,沒有框架的自動化測試是找不到對象的,即便找到了也不會幸福的。就跟現實中,沒有車沒有房的人是很難找到對象的一個道理。

自動化測試的開發,一般是由自動化測試的需求決定的。這個需求主要包括:

  1. 自動化測試更便於實施。這個說的是,你寫測試腳本要方便。一個好的自動化測試框架是可讓不那麼懂技術的人也能夠寫自動化測試腳本的,哼。
  2. 解決自動化測試腳本自己存在的問題,如異常處理和場景恢復。
  3. 測試易於維護。自動化測試項目,基本都是沒有好的管理以及維護,必定是個大坑。我能夠很負責地說,自動化測試沒有一年半載,你是看不到產出的。因此管理及維護就成了最重要的事情。而好的框架,能夠減小你在管理維護中所投入的人力物力精力。
  4. 可重用性。框架的意義之一就在於可重用吧。因此在框架裏,你能夠實現一些通用功能,簡化腳本開發過程。
  5. 美觀易讀的測試報告。拿UFT來講,它產出的測試報告只是基於測試腳本的,並無那種基於測試集的報告,因此若是你要,測試框架裏能夠實現。

還有不少測試需求,我沒辦法一一列舉出來,多數需求咱們均可以在測試框架裏去定製。如今能夠回答上面那個問題了,record & playback是不會幸福的,你須要自動化測試框架。

請慎重考慮是否須要自動化測試(成本投入高,風險大)

自動化測試是個很傲嬌的東西,它很挑項目。首先項目週期要長,可是需求不會頻繁變動;其次系統中多數對象要能夠被識別,而且不存在大量第三方插件。並且你要清楚,你不能期望自動化測試去幫你發現新的bug,自動化測試自己是不具有想象力的(相對於手工測試)。它的優點在於反覆迭代,它的價值產出在於長期的迴歸測試,以保證被測產品長期穩定地版本更新。

關於自動化測試的切入點,一般要在完整的系統測試以後纔算具有引入自動化測試的基本條件。

目前我所作的自動化測試成功案例,無一不具有良好的管理和優良的測試框架。兩者缺一,自動化測試必然成爲大坑。

最後,填坑這種事兒,收費但是很貴的~

 

 

參考:百度百科 框架 http://baike.baidu.com/view/66971.htm?fr=aladdin 

相關文章
相關標籤/搜索