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