一、自動化單元測試 編輯
自動化單元測試在代碼級別上進行測試。bug是在開發(fā)人員編寫的函數、方法和例程中識別出來的。
一些公司要求開發(fā)人員自己進行單元測試,而有些公司則雇用專門的測試自動化資源。這些資源可以訪問源代碼,它們編寫單元測試來破壞生產代碼。由于單元測試的存在,每當代碼編譯時,所有單元測試都會運行,并告訴我們是否所有功能都正常工作。如果任何單元測試失敗,這意味著現在生產代碼中存在一個bug。
市場上最流行的一些工具是NUnit和聯合股。微軟還提供了自己的單元測試框架,稱為MSTest。通過這些工具的網站,他們將提供如何編寫單元測試的示例和教程。
二、自動化Web服務/API測試
應用程序編程接口(API)使軟件能夠與其他軟件應用程序進行對話。就像任何其他軟件一樣,API也需要進行測試。在這種測試中,桂通常不涉及。
我們在這里測試的通常是功能、遵從性和安全性問題。在Web應用程序中,我們可以測試應用程序的請求和響應是否安全和加密。
這是我們可以使用API測試的示例之一。最流行的api測試工具是SOAPUI它既有免費版本也有付費版本。還有其他工具,您可以根據需要使用這些工具。
三、自動GUI測試 編輯
這種類型的自動化測試是最嚴格的自動化形式,因為它涉及應用程序的用戶界面測試。
這很難,因為GUI很容易改變。但是,這種類型的測試也最接近于用戶對我們的應用程序所做的操作。由于用戶將使用鼠標和鍵盤,自動GUI測試也通過使用鼠標和鍵盤來單擊或寫入用戶界面上的對象來模仿相同的行為。因此,我們可以盡早發(fā)現bug,并且可以在許多場景中使用,比如回歸測試或填充表單,這需要花費太多的時間。
最流行的GUI測試工具是QTP(現稱UFT), 硒, 測試完成和Microsoft編碼UI(這是VisualStudio終極版和高級版的一部分)。
四、自動化測試的幾個誤區(qū)
多年來,我聽到了一些關于測試自動化的誤解。我想我也應該在這篇文章中澄清這些問題。
誤解#1. 自動化將取代手動測試人員。
測試自動化是為了幫助測試人員以更快、更可靠的方式進行測試。它永遠無法取代人類。
把測試自動化想象成一輛汽車。如果你走路,你大約要花20分鐘才能到達你的家。但是如果你用一輛車,兩分鐘內你就會到達。汽車的司機仍然是你,一個人,但是.汽車幫助人類更快地實現他/她的目標。而且,你的大部分精力都被節(jié)省了,因為你沒有走路。所以你可以利用這些能量來做更重要的事情。
自動化測試也是如此。您可以使用它快速測試大部分重復的、冗長的、乏味的測試,并節(jié)省您的時間和精力來集中精力和測試新的和重要的功能。
如詹姆斯·巴赫一句精彩的話說:
“工具是不會測試的。只有人來測試。工具只執(zhí)行“幫助”人們測試的操作。
工具可以單擊對象。但是點擊的位置總是由手動測試人員來告訴的。我想你現在明白我的意思了。
誤解2. 陽光下的一切都可以自動實現。
如果您嘗試100%地自動化您的測試用例,也許您將能夠這樣做,但是如果您可以這樣做,那么我們的第一點就會變成錯誤。因為如果一切都是自動化的,手動測試人員將做什么?
困惑?對嗎?
實際上,關鍵是,您不能100%地自動化您的測試用例。因為我們,作為測試人員,相信沒有一個應用程序可以100%測試??倳幸恍┪覀儠e過的情景。只有當客戶端使用您的應用程序時,才會出現bug。
因此,如果應用程序無法進行100%的測試,如何保證100%的自動化?
而且,您能夠自動化所有現有測試用例的可能性非常小。總是有一些場景很難自動化,而且更容易手工完成。
例如一個用戶輸入數據,第二個用戶批準數據,第三個用戶查看數據,第四個用戶禁止查看數據。這些場景可以自動化,但它們需要大量的時間和精力。所以如果你只需要手動的話就更容易了。
請記住,我們使用汽車的距離,但可能會有很長的信號在路上,會有燃料消耗,會有停車空間的問題,停車收費和更多的頭痛。在某些情況下,我們只需步行到達目的地:).
因此,您不應該嘗試自動化一切。只需要自動化那些重要的場景,并且需要花費大量的時間來手動完成。
誤解#3. 自動化只涉及錄制和播放。
請不要生活在幻想的世界里。這種幻想實際上是由來自不同自動化工具供應商的虛假廣告造成的。他們說,您只需記錄和播放您的步驟,您的測試用例將被自動化。這是個大謊言!
自動化就是一切,除了錄音和回放。純自動化工程師通常根本不使用錄音和回放功能。錄制和回放通常用于了解工具是如何為我們的步驟生成腳本的。
一旦我們了解了腳本,我們總是使用腳本來創(chuàng)建自動化的測試。記住,如果你想要進行測試自動化,你必須知道編程。. 另一方面,如果你不懂編程的話,就不要膽大妄為。因為和任何其他任務一樣,編程也可以通過實踐和奉獻來學習。
我認識一些人,他們甚至不是計算機科學背景的人,但他們學會編程,現在他們是了不起的自動化工程師。在微軟,他們雇傭會編程的測試人員。他們被稱為SDET(測試軟件開發(fā)工程師)。職務描述的第一行說:“sdet編寫了許多代碼….“
請學習編程,不要逃避它。它會讓你驚人的測試器
一個組織要實施自動化測試,首先就要對自動化測試有一個正確的理解。我們通常對自動化測試,都會有一些理解誤區(qū),比如:
誤解#4. 所有測試用例都可以自動化
首先講所有的測試用例都自動化本身就是不必要的,因為自動化測試要開發(fā)測試腳本,而且執(zhí)行自動化測試,也是需要時間的,把所有測試用例全部自動化,未必就是性價比最高的。
另一方面自動化測試,主要的是用來減少回歸測試的工作量,而回歸測試,最重要的是避免最基本的功能和最常用的功能受到影響,從這個理論上來說,我們會把最基本的功能和最常用的功能的測試用例進行自動化,這個就足夠了。
現在世界上自動化測試率,最高的也只是達到80%左右。
誤解#5. 自動化測試找不到bug
自動化測試,主要是避免由于代碼的修改導致原有的正確的功能出現bug,而不是去挖掘更多更深層次的bug。更多更深層次的bug,是把測試人員解放出來后,由測試人員通過探索性測試來發(fā)現的。
誤解#6. 自動化測試一定會馬上大量減少測試人員數量
自動化測試雖然會最終減少測試的工作量,但是他不會是立竿見影的,因為你要實現自動化測試,首先就要進行自動化測試腳本的開發(fā)和自動化測試環(huán)境的搭建,這需要投入大量的人員和精力。自動化測試能夠多長時間見到效果,要取決于這個過程的長短。
誤解#7. 自動化測試能代替手工測試
自動化測試,只適用于回歸測試,對于新功能測試,還是要依賴于測試人員人員設計測試用例,手動執(zhí)行。
誤解#8. 只有性能測試才需要自動化
自動化測試除了應用于性能測試外,還被大量應用于功能測試。
國外有超過半數的自動化測試腳本,都是用于功能驗證測試的。
誤解#9. 自動化測試太難上手
自動化測試,已經推行了很長時間,在網上可以找到很多自動化測試的框架、工具、教程。如果你真想實施自動化測試,只要安排專業(yè)的測試人員上手學習,自動化測試會很容易實現的。
心動不如行動。
最后,自動化測試既沒有那么神奇——能夠解決測試的所有問題,也不會非常高精尖——那么難以上手,正確認識自動化測試,腳踏實地地實施自動化測試,你就能享受到自動化測試給你帶來的收益。
這正是:
談虎變色不足取,當成銀彈不可行
正確認識自動化,腳踏實地去實施