新手如何開始學(xué)習自動化測試?

對于測試人員來說,不管進行功能測試還是自動化測試,還是性能測試,都是需要編寫測試用例,所以我們必須先要了解清楚手工測試用例與自動化測試用例的一些特點,才能更好的開展自動化測試工作。
1.1手工測試用例和自動化測試用例
手工測試用例是針對功能測試人員的,而自動化測試用例是針對自動化測試用例框架或工具的。
手工測試用例特點
?。?)較好的異常處理能力,能通過人為的邏輯判斷校驗當前步驟是否正確實現(xiàn);
?。?)人工執(zhí)行用例具有一定步驟跳躍性;
?。?)人工測試步步跟蹤,能夠細致定位問題;
?。?)主要用來發(fā)現(xiàn)功能缺陷;
自動化測試用例特點
?。?)執(zhí)行對象是腳本,任何一個盤算都需要編碼定義;
?。?)用例步驟之間關(guān)聯(lián)性強;
?。?)主要用來保證產(chǎn)品主體功能正確和完整,讓測試人員從繁瑣重復(fù)的工作中解脫出來;
?。?)目前自動化測試階段定位在冒煙測試和回歸測試。
?。ㄗ⒁猓和ㄟ^對比發(fā)現(xiàn),自動化測試不能完全替代手工測試,自動化測試的目的僅僅在于讓測試人員從繁瑣重復(fù)的測試流程中解脫出來,把更多的時間和精力放在更有價值的測試中,例如探索性測試。)
自動化測試用例注意事項
1、不是所有手工測試用例都要轉(zhuǎn)為自動化測試用例。
2、考慮到腳本開發(fā)成本,不要選擇流程太復(fù)雜的用例,如果有必要,可以考慮把流程拆分成多個用例來實現(xiàn)腳本。
3、選擇的用例最好可以構(gòu)建場景。例如,一個功能模塊,分成多個用例,多個用例使用同一個場景,這樣的好處在于方便構(gòu)建關(guān)鍵字測試模型。
4、選擇用例可以帶有目的性。例如,這部分用例作冒煙測試等,當然,會存在重疊關(guān)系,如果當前用例不滿足需求,那么唯有修改用例來適應(yīng)腳本和需求。
5、選取的用例可以是主體流程,這部分用于冒煙測試。
6、選取的測試用例可以是你認為重復(fù)執(zhí)行,很猥瑣的部分。例如字段驗證、提示信息驗證之類,這部分適用于回歸測試。
7、自動化測試也可以用來做配置檢查、數(shù)據(jù)庫檢查。這些可能超過了手工用例,但也算用例拓展的一部分,項目負責人可以有選擇的增加。
8、平時在手工測試時,如果需要構(gòu)造一些復(fù)雜的數(shù)據(jù)或重復(fù)一些簡單的機械式動作,則告訴腳本,讓它來幫你,或許你的效率會因此提高。
1.2自動化測試類型
?
測試靜態(tài)內(nèi)容
靜態(tài)內(nèi)容測試是最簡單的測試,用于驗證靜態(tài)的、不變的ui元素的存在性,例如:
(1)每個頁面都有預(yù)期的頁面標題,這可以用來驗證鏈接指向一個預(yù)期頁面;
(2)應(yīng)用程序的主頁包含一個應(yīng)該在頁面頂部的圖片;
(3)網(wǎng)站的每個頁面是否包含一個頁腳區(qū)域來顯示公司的聯(lián)系方式、隱私政策以及商標信息等;
?。?)每一頁的標題文本都使用
標簽嗎?每個頁面是否都有正確的頭部文本?你可能需要(也可能不需要)對頁面內(nèi)容進行自動化測試。如果你的網(wǎng)頁是不易受到影響的,則手工對內(nèi)容進行測試就足夠了。假設(shè)你的應(yīng)用文件的位置移動了,則內(nèi)容測是就非常有價值。
測試鏈接
web站點的一個常見錯誤為失效的鏈接或鏈接指向無效頁。鏈接測試涉及各個鏈接和驗證預(yù)期的頁面是否存在。如果靜態(tài)鏈接不經(jīng)常更改,則手動測試就足夠了。但是,如果你的網(wǎng)頁設(shè)計師經(jīng)常修改鏈接或者文件不時被重定向,則鏈接測試應(yīng)該實現(xiàn)自動化。
功能測試
在你的應(yīng)用程序中,需要測試應(yīng)用的特定功能,需要一些類型的用戶輸入,并返回某種類型的結(jié)果,通常一個功能測試涉及多個頁面,一個基于表單的輸入頁面,其中包含若干輸入字段,提交和取消操作,以及一個或多個響應(yīng)頁面。用戶輸入可以通過文本輸入域、復(fù)選框、下拉列表,或任何其他瀏覽器所支持輸入。
功能測試通常是需要自動化測試的最復(fù)雜的測試類型,但通常也是最重要的。典型的測試是登陸,注冊網(wǎng)站賬戶用戶賬戶操作、賬戶設(shè)置變化、復(fù)雜的數(shù)據(jù)檢索操作等等。功能測試通常對應(yīng)著你的應(yīng)用程序的描述應(yīng)用特性或設(shè)計的使用場景。
測試動態(tài)元素
通常網(wǎng)頁元素都有唯一的標識符,用于唯一的定位該網(wǎng)頁的元素。通常情況下,唯一標識符用html標記的id屬性或name屬性來實現(xiàn)。
Ajax的測試
Ajax是一種支持以及動態(tài)改變用戶界面元素的技術(shù)。頁面元素可以動態(tài)更改,但不需要瀏覽器重新載入頁面,如動畫,RSS源、其他實時數(shù)據(jù)更新等。
Ajax有無數(shù)更新網(wǎng)頁上元素的放大,最簡單的方式是在Ajax驅(qū)動的應(yīng)用程序中,數(shù)據(jù)可以從應(yīng)用服務(wù)器檢索,然后顯示在頁面上,而不需要重新加載整個頁面,只有一小部分的頁面,或者只有元素本身重新被加載。
1.3自動化測試用例編
1.3自動化測試用例編寫原則
最后跟大家分享一下自動化測試用例編寫原則:
1、一個用例為一個完整的場景,從用戶登錄系統(tǒng)到最終退出并關(guān)閉瀏覽器;
2、一個用例只驗證一個功能點,不要試圖在用戶登錄系統(tǒng)后把所有功能都驗證一遍;
3、盡可能少的編寫逆向邏輯用例。一方面因為逆向邏輯的用力很多(例如,手機號輸錯有幾十種情況),另一個方面自動化腳本本身比較脆弱,復(fù)雜的逆向邏輯用例實現(xiàn)起來比較麻煩且容易出錯;
4、用例與用例之間盡量避免產(chǎn)生依賴;
5、一條用例完成測試之后需要對測試場景進行還原,以免影響其他用例的執(zhí)行。
?

關(guān)注我一起成長!