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