自動化測試:為什么需要框架


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

其中有一個問題,我回來以后又想了很久。當時他指着我做的POC(Prove of Concept)腳本,問道:”既然record & playback可以做一個腳本,那么為什么還需要自動化測試框架呢?” 簡而言之就是,我憑什么要多花錢買你們的框架?我當時第一反應是,什么?你在逗我嗎?自動化測試沒框架怎么做? 當然我的回答官方的很,主要是從維護,可重用性,易用性地角度去跟他解釋了一遍,他似乎也不是很滿意。

回頭我想了想,到底為什么我們需要自動化測試框架呢?越想越覺得委屈,因為我想問問各位開發,你們做項目的時候為什么要用框架呢?那自動化的本質不就是寫程序去測程序嘛,既然開發需要框架,那么自動化測試為什么不要呢。

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

什么是框架?

框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;另一種定義認為,框架是可被應用開發者定制的應用骨架。前者是從應用方面而后者是從目的方面給出的定義。可以說,一個框架是一個可復用的設計構件,它規定了應用的體系結構,闡明了整個設計、協作構件之間的依賴關系、責任分配和控制流程,表現為一組抽象類以及其實例之間協作的方法,它為構件復用提供了上下文(Context)關系。因此構件庫的大規模重用也需要框架。其實目前為止,框架還沒有統一定義,我比較喜歡Ralph Johnson所給出的定義:

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

為什么要用框架?

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

為什么要搭建自動化測試框架?

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

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

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

還有很多測試需求,我沒辦法一一列舉出來,多數需求我們都可以在測試框架里去定制。現在可以回答上面那個問題了,record & playback是不會幸福的,你需要自動化測試框架。

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

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

關於自動化測試的切入點,通常要在完整的系統測試之后才算具備引入自動化測試的基本條件。

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

最后,填坑這種事兒,收費可是很貴的~

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM