1. 程式人生 > >教你如何學習自動化測試(QTP)轉 自席飛劍

教你如何學習自動化測試(QTP)轉 自席飛劍

    軟體測試行業經過這麼多年的發展,如今測試行業對從業者的要求是越來越高,不再僅僅侷限於要求會寫測試用例、會細緻的執行測試、能有效的發現系統缺陷等;越來越多的企業對應聘者本身的技能要求也越來越高,招聘資訊中諸如“精通VBscript、Perl/Rbuy等至少一門指令碼語言”、“至少熟悉一門開發語言”、“精通QTP、LR等自動化測試工具”、“有大型專案自動化實施成功經驗”此類的字眼也逐漸增多。

        目前看來,除白盒測試內容和測試管理外,主流的方向有兩個:功能自動化測試和效能測試。這就要求從業人員能夠在短時間內快速的掌握這些知識,才能獲取到更好的工作機會。


  一、想從事自動化測試,必須先了解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知識

  以上只是考慮到的一部分,並不全面,但技術基本是通用的,供大家參考。如果這些知識都能夠紮實的掌握的話,基本上能夠處理自動化過程中的絕大多數問題了,這個時候你對自動化測試的技術應該是有一定積累了。

  四、接下來就需要考慮自動化測試框架問題了。當指令碼規模到了一定的程度,就會面臨一些問題,如:

  1)    如何有效的管理並排程指令碼

  2)    如何實現指令碼執行的無人值守,測試過程中能夠自動進行錯誤處理並進行日誌記錄

  3)    如何生成簡介明確的測試報告

  4)    如何能夠更加高效的維護測試指令碼

  5)    實現框架程式碼和業務程式碼的分層、業務指令碼和業務資料的分離

  這個階段主要體現的是測試人員的測試思想,是可以脫離工具獨立存在的過程。當然各個公司專案的實際情況不同,導致設計出來的思想不同,但總體上來說一般包括資料驅動和關鍵字驅動兩種模式。後者實現的技術難度大於前者,大多數公司目前都採用的資料驅動模式。這個階段不應侷限於技術運用上,而需要從測試全域性考慮,進行分層設計、模組化實現,減少程式碼之間的耦合,你要懂得自動化測試框架的設計和測試框架的基本編寫。


      五、自動化測試的實施,這點非常重要,如何讓自動化測試有條不紊地執行起來,這是需要自動化測試工程師關注的。
   以下幾點你需要明白
    1)沒有自動化測試框架,那麼很難把自動化測試做得很好很規範的
    2)當有了自動化測試框架,這並不代表什麼,更不能代表自動化測試就成功了,同一套框架,不同的經驗級別的自動化測試人員來實施,效果肯定是不同的
    3)自動化測試的實施,應該是在基於一套符合公司業務特點的測試框架+良好的實施計劃+良好的實施方案
    4)自動化測試的實施,千萬不能落入“只埋頭做事,不擡頭看路”的形態,不要落入技術的深淵,需要明白,不是所有的東西都能用技術解決,要充分發揮人的作用因素。


  如果以上五個方面都能夠做的很好的話,那麼你已經可以獨立負責專案的自動化測試建立工作了,甚至可以開始考慮如何組織自動化測試團隊!

  總之,學習自動化測試需要在實際專案中進行,這樣提高的會比較快,專案中運用了很多種技術,自動化實施過程會碰見各種各樣的問題,是很好的學習機會,關鍵要善於總結、積累經驗,只要能夠把各個細節做好,那麼你一定能夠成為一名優秀的自動化測試工程師(主管