自己之前為了學習自動化測試加了幾個自動化測試的群,在群里和不少大牛交流,也和不少新手交流。因為自己也是一個自動化測試的新手,就想着總結下自動化測試學習工作中遇到的問題,也希望如果有想學習自動化的童鞋,可以學習前看下這篇感想,可能對於你的學習有所幫助。下面我所說的東西都是群里好多自動化測試新手遇到的,有技術方面的,也有工作中遇到關於自動化的問題(很現實。。。)
NO1. 學習自動化難不難?自動化測試如果僅僅是使用錄制回放來進行自動化測試是一點都不難的,這種使用工具進行錄制回放的自動化測試(例如Selenium使用SeleniumIDE)不需要你懂代碼,不需要你像性能測試那樣錄制完成還要進行分析總結(性能測試我認為最叼的不是工具的使用,是對測試結果的分析,並且給出合理的性能優化方案)。這種錄制回放有的可以是為了BUG的更好的復現,有的就是做下回歸測試冒煙測試。那么有的新手就會疑問,錄制回放是自動化,寫腳本也是跑自動化,為什么非要寫代碼?
1.錄制回放的局限性太大。錄制回放的僅僅是一個用戶的一個操作過程或者說一個業務實現過程。以我的實際工作例子,一個客戶的賬號會有多種狀態(正常,掛失,部分凍結,全部凍結,只收不付,只付不收...),如果要測試不同狀態的賬號的業務,難道要錄制多遍?它們僅僅是賬號有區別,如果自己寫腳本,弄個數據驅動就搞定了。
2.從原因1中我們可以看到,錄制回放僅僅是一個個零散的case,作為一個自動化測試項目來說,沒有一個好的自動化測試框架,僅僅是一堆錄制回放的case,那這樣的自動化測試還有存在的意義嗎?有了問題就重新錄制?自動化的本意就是解放重復的手工測試,一次次的錄制也是重復無用的工作。
3.有一個好的測試框架編寫腳本,可以增強測試的業務邏輯性,與業務的各種需求連接更加緊密,更好的提高業務需求人員與測試人員的協同工作。
從上面可以看出,僅僅使用錄制回放來進行自動化測試是很簡單的,但是效果是沒有那么好的,像我們公司也使用testwriter進行自動化測試,實際的效果沒有很明顯。那也會引出另外一個問題:自動化是為什么而做,它高大上?部門老大讓做就做?先把第一個問題解決完。。
那么寫自動化腳本難在哪?作為一個開發轉測試表示沒有難度......勿噴勿噴,但是作為一個沒有開發經驗沒有代碼經驗的新手來說寫自動化測試腳本難嗎?不難!!!從我自身來說,我是學的Objective-c,但是我是用java寫腳本的,java我也是自己現學的。我們來看寫自動化腳本需要用到開發語言的哪些東西。
這是我學習自動化測試Selenium時參考的書籍資料,當然從開發角度來看這點東西塞牙縫都不夠,對於沒有語言基礎的人來說,這些東西的學習(以上班族每天晚上2-3個小時的學習時間來說,別跟我說擠不出學習的時間)最多一個月。注意注意!!!經常在群里看到有新手這樣問,這行代碼怎么會出錯誤啊,這個怎么會報錯啊,我按網上搜到的代碼寫的怎么報錯啊諸如此類的,這都是一個原因,語言基礎不好或者是沒有語言基礎強行寫腳本。連最基本的語法都搞不懂,怎么去寫出高質量的代碼,寫代碼不像是學習一個工具的使用,工具的使用你可以直接拿一個案例來運行,邊使用邊學習,熟能生巧,但是代碼是不同的,不懂最基礎的語法,模糊的知道這行代碼是干嘛的有用嗎?隨便換個場景,換個邏輯就又蒙蔽了。所以不要急於求成,必須要掌握最基本的語言基礎,最好每學習完一個東西輔助性的做些練習題,代碼是敲出來的,不是看會的。
NO2.自動化是為什么而做,它高大上?部門老大讓做就做?經常有群里的小伙伴說,哎呀自動化搞了半天也沒測出幾個問題,老大叼我了;哎呀,我們老大說自動化挺厲害的讓我學習搞一下;哎呀,這個自動化能代替手工測試嗎,各種測試案例都能寫出腳本來執行嗎?有的小伙伴在學習自動化的時候可能看到過一些大牛說過什么樣的項目可以進行自動化,但是都有一個模糊的概念,那通過這幾個問題就很直接反應出我們能必須認知的東西:做自動化一定要知道為啥做。
1.考慮項目是否適合做。
2.認識到自動化與手工測試不是矛盾的,不是誰可以代替誰的。
3.自動化測試一般用於回歸測試和冒煙測試。
以上三點可以解決群里小伙伴們的問題,就算是部門老大問你,你也可以這樣說。
NO3.新手如何進行自動化測試。只說一句,學習是循序漸進的,不論你上面領導要求你多久上手自動化,都應該一步一個腳印去學習,不要拿沒時間壓力大當借口。我對於那些在群里問那些最最基本問題的新手感覺很不爽,熊瞎子掰棒子,沒有會爬就想跑,這樣學的很不扎實,做起來也會很不順利。以學習Selenium為例
1.學代碼
2.學習SeleniumAPI(就是封裝了許多方法的一個測試框架)
3.學習自動化測試項目的構建......
沒有學習的心,做什么都很難,以上是我的一些吐槽和感想,不吐不快。。。。。。人若沒有夢想,那跟咸魚有什么區別!!!