田新昔 王亞剛
摘 要 自動化測試的重要性不言而喻,近幾年,公司上下從領導到員工,對自動化測試都是日益重視,特別在敏捷流程中,更是不可或缺。但在實際應用中,有時還是會有一些疑問,到底自動化有哪些好處、自動化的作用是什么、自動化沒有發(fā)現(xiàn)問題是不是好事等。根據(jù)這幾年在自動化方面的工作經驗,得出下面的一些看法。
【關鍵詞】自動化 自動化測試
1 自動化的優(yōu)點
1.1 回歸測試更方便
特別是在程序修改比較頻繁時,效果是非常明顯的,舉兩個典型的例子,持續(xù)集成,正是由于有著自動化測試的能力,才能順利開展,將很多問題暴露在開發(fā)階段,而不是遺留在后端。軟交換產品規(guī)模龐大,繼承特性用例超過5萬個,正是由于有著強大的回歸測試能力,才能保證大量的繼承特性質量。
1.2 成本低效率高
以較低的成本,在較短的時間內執(zhí)行大量的自動化用例。
1.3 降低測試難度
如,控制在兩個消息之間增加異常消息,手工很難控制插入異常消息的時機,但是對于自動化工具來說輕而易舉。
1.4 更好地利用資源
將繁瑣的任務自動化,可以提高準確性和測試人員的積極性,將測試技術人員解脫出來投入更多精力設計更好的測試用例。
1.5 自動化腳本的復用性
由于自動測試通常采用腳本技術,這樣就有可能只需要做少量的甚至不做修改,實現(xiàn)在不同的測試過程中使用相同的用例。
1.6 可信度高
由于測試是自動執(zhí)行的,所以不存在執(zhí)行過程中的疏忽和錯誤,基本上完全取決于測試的設計質量。
2 自動化測試的缺點
工具本身并無想像力。這個是最致命的一點,這個就決定了自動化測試永遠無法完全替代手工測試,引申出下面幾個缺陷;
2.1 手工測試比自動測試發(fā)現(xiàn)的缺陷更多
手工測試中,人們總是能夠積極擴展測試思路,不僅僅拘泥于測試用例,自然就容易發(fā)現(xiàn)更多的問題。另外,一個新版本用例中,可能只有30%-40%的用例能夠自動化。
2.2 測試自動化不能提高有效性
自動化測試能發(fā)現(xiàn)的,手工測試肯定可以發(fā)現(xiàn),但反過來就不一定。
2.3 需要維護
自動化腳本隨著產品的變化,腳本內容可能也是需要進行修改的,如產品的命令行發(fā)生變化、產品使用的接口新增一個信元等,都可能導致原有的自動化腳本執(zhí)行失敗,這些都是需要有專門的流程、專人來進行維護。
2.4 自動化前期投入大、回報周期長
如,完成一個自動化腳本比手工執(zhí)行一個用例花費時間更多,并且后期還需要進行維護。所以,當產品界面、需求變化比較頻繁時、開發(fā)周期很短的軟件、或做一次性軟件開發(fā)項目(而不是做軟件產品)時,自動化測試就屬于吃力不討好,投入大而產出小,如表1所示。
3 自動化測試作用
對于自動化測試的作用,業(yè)界一直有兩種觀點:自動化是用來發(fā)現(xiàn)問題的(進攻),自動化是用來保障產品已有特性質量的(防守)。從自動化的優(yōu)缺點、適用情況和實際應用來看個人認為后者更加符合實際情況。
以圖1為例來說明自動化測試的組成。這三個環(huán)境中任一個環(huán)節(jié)出現(xiàn)問題都會導致自動化測試失敗。
對于新增特性:功能模塊、數(shù)據(jù)配置和腳本都屬于新開發(fā),出現(xiàn)問題的幾率大,其中數(shù)據(jù)配置和腳本易于定位修改,當環(huán)境和腳本穩(wěn)定后,如果腳本執(zhí)行失敗,功能模塊失效的概率最大;
對于繼承特性:這三這一般不會變化,自動化測試失敗的概率很小。
從上分析可以看出,無論手工測試還是自動化測試,只有在新增特性的測試中,才能發(fā)現(xiàn)更多的問題,在回歸測試中很難發(fā)現(xiàn)問題。
自動化測試更加適合保障成品已有特性的質量。目前自動化測試的現(xiàn)狀是,自動化腳本的質量可能存在問題,導致漏測。由于腳本中只有業(yè)務流程、沒有對消息內容進行檢查,雖然用例執(zhí)行通過了,但是該功能實際上是有問題的。所以首先要保證自動化腳本的質量。
總之,手工測試和自動化測試的目的,都是為了保障產品的特性可用。沒有發(fā)現(xiàn)問題并不說明用例或者自動化腳本沒用,而是說明測試過的特性沒有問題,是一件好事。
(指導老師:王亞剛)
參考文獻
[1]張卉.Web應用系統(tǒng)自動化軟件測試技術研究[D].曲阜師范大學,2016.
[2]邱彥卿.軟件測試自動化技術及其應用研究[D].華中科技大學,2007.
作者單位
西安郵電大學計算機學院 陜西省西安市 710077