本章主要講解自動化測試的含義、分類、項(xiàng)目使用,以及自動化測試工具的優(yōu)勢。 一、自動化測試概述 1、什么是自動化測試? 自動化測試是軟件測試活動中的一個(gè)重要分支和組成部分。隨著軟件...
本章主要講解自動化測試的含義、分類、項(xiàng)目使用,以及自動化測試工具的優(yōu)勢。
一、自動化測試概述
1、什么是自動化測試?
自動化測試是軟件測試活動中的一個(gè)重要分支和組成部分。隨著軟件產(chǎn)業(yè)的不斷發(fā)展,市場對軟件周期的要求越來越高,于是催生了各種開發(fā)模式,如大家熟知的敏捷開發(fā),從而對測試提出了更高的要求。此時(shí),產(chǎn)生了自動化測試,即利用工具或者腳本來達(dá)到軟件測試的目的,沒有人工或極少人工參與 的軟件測試活動稱為自動化測試。自動化測試的優(yōu)勢如下:
1) 更方便對系統(tǒng)進(jìn)行回歸測試。當(dāng)軟件的版本發(fā)布比較頻繁時(shí),自動化測試的效果更加明。
2) 可以自動處理原本煩瑣、重復(fù)的任務(wù),提高測試的準(zhǔn)確性和測試人員的積極性。
3) 自動化測試具有復(fù)用性和一致性,即測試腳本可以在不同的版本上重復(fù)運(yùn)行,且可以保障測試內(nèi)容的一致性。
2、自動化測試的分類
維度不同,自動化測試的分類方式也不同,以下是筆者認(rèn)為比較常見的方式。從軟件開發(fā)周期或者分層的角度來分類:
1) 單元自動化測試 單元自動化測試是指自動化地完成對代碼中的類或方法進(jìn)行測試,主要關(guān)注代碼實(shí)現(xiàn)細(xì)節(jié)及業(yè)務(wù)邏輯等方面。
2) 接口自動化測試 接口自動化測試用于測試系統(tǒng)組件間接口的請求與返回。接口測試穩(wěn)定性高,更適合開展自動化測試。
3) UI自動化測試 用自動化技術(shù)對圖形化界面進(jìn)行流程和功能等方面驗(yàn)證的過程。
從測試目的的角度來分類:
1) 功能自動化測試 功能自動化測試主要檢查實(shí)際功能是否符合用戶的需求,主要以回歸測試為主,涉及圖形界面、數(shù) 據(jù)庫連接,以及其他比較穩(wěn)定而不經(jīng)常發(fā)生變化的元素。
2) 性能自動化測試 性能自動化測試是依托自動化平臺自動地執(zhí)行性能測試、收集測試結(jié)果,并能分析測試結(jié)果的一種可以接近無人值守的性能測試。
性能自動化測試有以下特性:對腳本創(chuàng)建和優(yōu)化提供類庫和其他模塊支撐??梢栽O(shè)定自動化任務(wù)(比如每天根據(jù)特定場景執(zhí)行一輪性能測試)。自動收集測試結(jié)果并存儲。事中監(jiān)控(比如場景執(zhí)行過程中的異常錯(cuò)誤自動預(yù)警郵件功能)。成熟的平臺可以進(jìn)行自動分析功能(比如哪些事務(wù)有問題、哪些資源消耗異常等)。安全自動化測試,類似于性能自動化測試,可以將安全測試的活動自動化,比如可以定期自動掃描安全預(yù)警或威脅并上報(bào)。
3、自動化測試項(xiàng)目的適用條件
上線自動化測試項(xiàng)目是需要“天時(shí)、地利、人和”的,為什么這么說呢?因?yàn)樽詣踊瘻y試項(xiàng)目的評估需要各方面的考慮,但總體來說還是有一些規(guī)律可循的:
1) 任務(wù)測試明確,不會頻繁變動。2) 每日構(gòu)建后的測試驗(yàn)證。3) 比較頻繁的回歸測試。4) 軟件系統(tǒng)界面穩(wěn)定,變動少。5) 需要在多平臺上運(yùn)行的相同測試案例、組合遍歷型的測試,以及大量的重復(fù)任務(wù)。6) 軟件維護(hù)周期長。7) 項(xiàng)目進(jìn)度壓力不太大。8) 被測軟件系統(tǒng)開發(fā)較為規(guī)范,能夠保證系統(tǒng)的可測試性。9) 具備大量的自動化測試平臺。10) 測試人員具備較強(qiáng)的編程能力。
當(dāng)然,并非以上 10 條都具備的情況下才能開展自動化測試工作。根據(jù)我們的經(jīng)驗(yàn),一般來說,滿足以下 3 個(gè)條件就可以對項(xiàng)目開展自動化測試:
1) 軟件需求變動不頻繁。2) 項(xiàng)目周期較長。3) 自動化測試腳本可重復(fù)使用。
4、自動化測試的優(yōu)劣分析
任何無法服務(wù)好業(yè)務(wù)的技術(shù)都是沒有價(jià)值的,自動化測試也是,只有自動化測試能真正服務(wù)好業(yè)務(wù),并帶來較高性價(jià)比,才有價(jià)值,單純拿代碼堆疊起來的自動化測試不可取。
1) 談及自動化測試優(yōu)勢,包括但不局限于以下幾點(diǎn):2) 避免測試人員因重復(fù)勞動產(chǎn)生厭倦感。3) 提高測試效率。4) 保證每次測試的一致性和可重復(fù)性。5) 更好的利用無人值守時(shí)間,可重復(fù)利用時(shí)間和環(huán)境資源。6) 可運(yùn)行更多、更繁瑣的測試,且快速高效。7) 回歸測試更方便可靠。8) 可執(zhí)行一些手工測試執(zhí)行相當(dāng)困難或者做不到的測試,如大量的用戶并發(fā)測試、性能測試等。9) 自動化測試腳本完全可復(fù)用。10) 支持多環(huán)境下的測試。11) 可以將產(chǎn)品知識固化到腳本中,降低測試人員流動對項(xiàng)目造成的影響。
自動化測試雖然能帶來的好處很多,但也存在一些弊端或者不太友好的地方,常見的:
1) 從短期來看,系統(tǒng)開發(fā)時(shí)間不一定能縮短。2) 不能取代手工測試。3) 自動化測試不容易發(fā)現(xiàn)界面、布局問題。4) 手工測試比自動化測試發(fā)現(xiàn)的缺陷更多。5) 測試自動化可能會制約軟件開發(fā)。6) 自動化測試工具是死的,它不具備任何想象力。7) 自動化測試幾乎無法發(fā)現(xiàn)新缺陷,最大的用途是做回歸測試,確保曾經(jīng)的缺陷沒有在新的版本上 重新出現(xiàn)。8) 在開展前期,自動化測試成本投入高,風(fēng)險(xiǎn)大,且對測試人員的技術(shù)、測試工具契合度都有要求。
5、自動化測試的流程
和一般測試流程一樣,自動化測試流程也是開展自動化測試時(shí)非常重要的一個(gè)環(huán)節(jié)。可以說一個(gè)好的自動化測試流程會讓你在開展自動化測試的過程中更加順利,否則將疲于奔命。那么自動化測試流程是怎樣的呢?下面來詳細(xì)介紹。
1) 對被測系統(tǒng)進(jìn)行調(diào)研
2) 確定使用的開發(fā)語言
3) 選擇自動化測試項(xiàng)目
4) 申請自動化測試資源
5) 自動化測試用例篩選
6) 編寫自動化測試方案
7) 自動化測試框架和腳本開發(fā)
8) 框架演示
9) 進(jìn)入腳本開發(fā)階段
10) 腳本執(zhí)行階段
11) 成果驗(yàn)收
以上便是從無到有的一個(gè)自動化測試流程,如果公司已有成熟的自動化測試框架,那么按照已有的自動化測試流程執(zhí)行即可。以上流程進(jìn)攻參考,不是絕對的,具體還應(yīng)視公司情況調(diào)整。如下圖所示: