上位機軟件自動化測試經驗總結 自動化測試框架
一.摘要
本文檔主要描述QA在進行軟件自動化測試項目中獲取的經驗,以及提出一些有利于下一次類似測試應該汲取的教訓,以便為未來的軟件自動化測試提供必要的依據。
二.獲得的經驗
1. 完整的項目回顧
2. 具體的開發總結
略(公司的上位機軟件,為了保密,稱其為VS,軟件的功能主要是物體經過某個傳感器系統時,能夠通過各種外設收集數據并予以判斷,并且做出是否將交易記錄遞交數據庫的決定)
2.1 流程測試的風險
將VS的通過傳感器系統的流程納入項目,是基于測試工具本身能使用動態鏈接庫來擴展其自身語言(VBScript)無法完成的輸入輸出信號模擬功能。但這是有很大風險的,第一,數據通訊依賴串口,既要正確的通過串口發出信號,也要正確的通過串口捕獲信號,但是一個串口只能被一個軟件打開,使用什么技術來模擬這種輸入輸出信號呢?普通的商用機只有一個物理串口,如果沒有很好的串口模擬技術支撐,不僅隨時隨地的流程自動化測試將化為泡影,測試成本也將上升。第二,我們不知道測試工具對哪些編譯型語言編寫的dll支持,是否支持的好,程序員能否熟練編寫這種未知語言編寫的dll;
實際上,這兩種風險在開發過程中我們都真實的遇到了。對于第一種風險,我們最終使用串口對接技術來解決,并且放棄了物理串口,使用虛擬串口。編寫dll 時,我們一開始使用Delphi來寫dll,但是測試工具無法正常調用,最后我們用C#成功的編寫了測試工具可以正常調用的dll。
2.2自動化測試的架構
自動化測試的架構也是我們在項目開始初經常涉及的問題。好的測試架構能夠提高開發效率,保證開發質量,規避開發歧途,降低項目后期整合時的維護難度。因為項目組成員,來自各個不同的部門,對于測試自動化的理解深淺不同,使用自動化工具的水平參差不齊,團隊的合作開發使得我們亟需完美的測試架構。但是,這畢竟是我們第一次做自動化測試項目,沒有任何的經驗積累。公司目前采用的測試管理工具是QC,那么使用QC+QTP,就是我們架構的唯一選擇。QC和QTP 能夠無縫結合,使用QC可以方便的生成,運行,管理自動化測試案例。除了架構帶給我們開發過程中的這些便利外,我們還需要考慮測試編碼過程中編碼的方式,編碼的效率,測試對象的管理,函數的管理,代碼的配置管理。
我們將測試對象做成一個共享對象庫,每個團隊成員進行某個自己負責的案例開發時,只要關聯這個對象庫,就能自動識別被測軟件的對象。使用共享對象庫,不但保證被測軟件對象的唯一性,而且便于后期對象的維護。目前,在自動化測試中模擬操作的更好的代替方法是描述性編程,可以避免軟件升級時對象庫的維護。但是由于團隊成員是初次參與這種項目,所以采用更成熟的對象庫技術。
編碼方式有3種,一種是直錄,一種是手工編,還有一種是混編。直錄的優點是速度快而方便,缺點是它產生的新對象不會存到共享對象庫,腳本相對累贅。手工編的優點是代碼清晰簡潔,可讀性更好,缺點是相對麻煩,編碼速度稍慢;炀幨侵钢饕捎檬止ぞ幋a方式,在人機交互復雜時用直錄提高效率,完成腳本后再使用手工編碼簡化腳本。我們采用的就是混編方式。如果使用描述性編程,那就必須要完全使用手工編碼了。
文章來源于領測軟件測試網 http://www.kjueaiud.com/