自動化測試相關(guān)

淺談AST(自動化測試)流程,歡迎大家多多指點(diǎn),多提寶貴意見。

AST階段一:需求收集——分析自動化測試需求

  1. 舉行啟動會議,對SUT(被測試的系統(tǒng))進(jìn)行總體描述

2.SUT的要求是可測試和可自動化的

3.評估哪些測試可以自動化

4.分析當(dāng)前生命周期中SUT使用的工具和復(fù)用現(xiàn)有的AST工具

5.對AST和測試中需要的工具進(jìn)行評估,并提出建議

6.確定和討論測試環(huán)境,包括測試環(huán)境的采購和安排,列出測試環(huán)境的概要

7.與開發(fā)相關(guān)人員一起走查一遍AST測試需求,最后達(dá)成一致意見

8.給出可以自動化的測試的建議報告

9.數(shù)據(jù)需求的初始化測試

AST階段二:測試用例設(shè)計和開發(fā)

1.明確手頭上的任務(wù)以及自動化的相關(guān)的目標(biāo)

2.考慮風(fēng)險,確定緩解風(fēng)險的策略

3.如果存在手動測試用例和過程,對其進(jìn)行評估,考慮是否重用或轉(zhuǎn)換為自動化測試

4.定義AST的架構(gòu)和設(shè)計

5.定義并開發(fā)測試數(shù)據(jù)

6.走查一遍AST測試用例/過程,并在優(yōu)先級上達(dá)成一致意見

7.記錄要自動化的高層次測試用例,以及詳細(xì)的測試步驟

8.按照階段/優(yōu)先級、時間表來實(shí)現(xiàn)測試用例

9.過一遍AST的架構(gòu)和設(shè)計

10.更新時間表---確定進(jìn)度表

AST階段三:開發(fā)自動化軟件測試框架和測試腳本

1.搭建自動化測試框架,開發(fā)新的滿足測試用例需求的腳本

2.測試環(huán)境

1.)驗(yàn)證所使用的測試數(shù)據(jù)的有效性,即考慮測試數(shù)據(jù)的深度和廣度

2.)驗(yàn)證與各種業(yè)務(wù)規(guī)則或訪問權(quán)限接觸的數(shù)據(jù)集是正確的

3.)確定測試環(huán)境的具體配置,考慮留出時間訂購硬件

4.)進(jìn)行性能測試活動時,測試環(huán)境反應(yīng)了產(chǎn)品環(huán)境,或者確定使用用于構(gòu)建初始功能測試的虛擬環(huán)境是有效的

4與客戶一起大致走查一遍自動化測試用例

5.走查一遍測試環(huán)境配置

AST階段四------自動化測試的執(zhí)行和結(jié)果報告

1.理解并遵循準(zhǔn)入和準(zhǔn)出的標(biāo)準(zhǔn)

2.從開發(fā)環(huán)境中隔離出測試環(huán)境

3.執(zhí)行自動化框架和測試腳本

4.記錄每個測試運(yùn)行的通過或失敗狀態(tài)

5.遵循缺陷跟蹤生命周期,生成軟件問題報告,跟蹤缺陷直至關(guān)閉

6.跟蹤效率和進(jìn)度

7.按要求,進(jìn)行AST培訓(xùn),包括ASTF用戶指南

AST測試階段五----審查和評估程序

1.完成AUT自動化工作

2.記錄經(jīng)驗(yàn)和教訓(xùn)

3.進(jìn)行任何問題的根源分析和采取適當(dāng)?shù)拇胧?/p>

4.最終的AST項目報告,包括到目前為止討論的所有相關(guān)工作,如:狀態(tài)指標(biāo)、各種測試結(jié)果、根源分析等

注釋:

AST自動化軟件測試

SUT被測試的系統(tǒng)

ASTF自動化軟件測試框架

AUT被測試的應(yīng)用

流程

1、制定測試計劃

在展開自動化測試之前,最好做個測試計劃,明確測試對象、測試目的、測試的項目內(nèi)容、測試的方法、測試的進(jìn)度要求,并確保測試所需的人力、硬件、數(shù)據(jù)等資源都準(zhǔn)備充分。制定好測試計劃后,下發(fā)給用例設(shè)計者。

2、分析測試需求

用例設(shè)計者根據(jù)測試計劃和需求說明書,分析測試需求,設(shè)計測試需求樹,以便用例設(shè)計時能夠覆蓋所有的需求點(diǎn)。一般來講,基于Web功能測試需要覆蓋一下幾個方面:

1)頁面鏈接測試,確保各個鏈接正常;

2)頁面控件測試,確保各個控件可靠;

3)頁面功能測試,確保各項操作正常;

4)數(shù)據(jù)處理測試,確保數(shù)據(jù)顯示準(zhǔn)確、處理精確可靠;

5)模塊業(yè)務(wù)邏輯測試,確保各個業(yè)務(wù)流程暢通。

3、設(shè)計測試用例

通過分析測試需求,設(shè)計出能夠覆蓋所有需求點(diǎn)的測試用例,形成專門的測試用例文檔。由于不是所有的測試用例都能用自動化來執(zhí)行,所以需要將能夠執(zhí)行自動化測試的用例匯總成自動化測試用例。必要時,要將登陸系統(tǒng)的用戶、密碼、產(chǎn)品、客戶等參數(shù)信息獨(dú)立出來形成測試數(shù)據(jù),便于腳本開發(fā)。

4、搭建測試環(huán)境

自動化測試人員在用例設(shè)計工作開展的同時即可著手搭建測試環(huán)境。因?yàn)樽詣踊瘻y試的腳本編寫需要錄制頁面控件,添加對象。測試環(huán)境的搭建,包括被測系統(tǒng)的部署、測試硬件的調(diào)用、測試工具的安裝盒設(shè)置、網(wǎng)絡(luò)環(huán)境的布置等。

5、編寫測試腳本

根據(jù)自動化測試用例和問題的難易程度,采取適當(dāng)?shù)哪_本開發(fā)方法編寫測試較薄。一般先通過錄制的方式獲取測試所需要的頁面控件,然后再用結(jié)構(gòu)化語句控制腳本的執(zhí)行,插入檢查點(diǎn)和異常判定反饋語句,將公共普遍的功能獨(dú)立成共享腳本,必要時對數(shù)據(jù)驚醒參數(shù)化。當(dāng)然還可以用其他高級功能編輯腳本。腳本編寫好了之后,需要反復(fù)執(zhí)行,不斷調(diào)試,知道運(yùn)行正常為止。腳本的編寫和命名要符合管理規(guī)范,以便統(tǒng)一管理和維護(hù)。

6、分析測試結(jié)果、記錄測試問題

應(yīng)該及時分析自動化測試結(jié)果,建議測試人員每天抽出一定時間,對自動化測試結(jié)果進(jìn)行分析,以便盡早地發(fā)現(xiàn)缺陷。如果采用開源自動化測試工具,建議對其進(jìn)行二次開發(fā),以便與測試部門選定的缺陷管理工具緊密結(jié)合。理想情況下,自動化測試案例運(yùn)行失敗后,自動化測試平臺就會自動上報一個缺陷。測試人員只需每天抽出一地你該時間,確認(rèn)這些自動上報的缺陷,是否是真實(shí)的系統(tǒng)缺陷。如果是系統(tǒng)缺陷就提交開發(fā)人員修復(fù),如果不是系統(tǒng)缺陷,就檢查自動化測試腳本或者測試環(huán)境。

7、跟蹤測試BUG

測試記錄的BUG要記錄到缺陷管理工具中去,以便定期跟蹤處理。開發(fā)人員修復(fù)后,需要對此問題執(zhí)行回歸測試,就是重復(fù)執(zhí)行一次該問題對應(yīng)的較薄,執(zhí)行通過則關(guān)閉,否則繼續(xù)修改。如果問題的修改方案與客戶達(dá)成一致,但與原來的需求有所偏離,那么在回歸測試前,還需要對腳本進(jìn)行必要的修改和調(diào)試。

自動化測試分類

在敏捷開發(fā)流程中,自動化測試涉及到下面重要四種類型的測試。

單元測試(Unit Test, UT)
關(guān)注某一個函數(shù),模塊的正確性,一般需要開發(fā)人員編寫相關(guān)的測試代碼來進(jìn)行自動化測試。

可以使用對應(yīng)的測試驅(qū)動開發(fā)(TDD)框架,如:Java的JUnit和TestNG等,相應(yīng)的python語言中有unittest和nose等測試工具。

集成測試(Integration Test, IT)
集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。

這個階段,可以嘗試接口的自動化測試,同樣可以利用單元測試的框架編寫針對API調(diào)用的測試代碼。
另外也可以利用selenium和appium等測試工具來進(jìn)行UI相關(guān)的測試。

用戶驗(yàn)收測試(User Acceptance Test, UAT)
用戶驗(yàn)收測試,也叫用戶可接受測試,一般在項目流程的最后階段,這時相關(guān)的產(chǎn)品經(jīng)理、業(yè)務(wù)人員、用戶或測試人員根據(jù)測試計劃和結(jié)果對系統(tǒng)進(jìn)行 測試和驗(yàn)收,來決定是否接收系統(tǒng)。它是一項確定產(chǎn)品是否能夠滿足合同或用戶所規(guī)定需求的測試。

本階段主要是UI相關(guān)的測試,編寫自動化測試腳本的難度比較大。
同樣是利用selenium和appium等測試工具來編寫測試腳本

回歸測試(Regression Test)
回歸測試是軟件測試的一種,旨在檢驗(yàn)軟件原有功能在修改后是否保持完整。回歸測試主要是以檢查退化為目的的測試。
退化主要指由于系統(tǒng)的版本更新,在之前的版本中正常運(yùn)行的功能變得無法正常運(yùn)行,或者緊急修正了某個問題,但引發(fā)了其他的問題的現(xiàn)象。

從開發(fā)人員視角出發(fā)的單元測試是需要進(jìn)行回歸的,
還有從用戶視角出發(fā)的集成測試和用戶驗(yàn)收測試的測試用例集也是回歸測試的相關(guān)內(nèi)容。

自動化測試適用場景

自動化測試適用項目

不是所有項目有適合實(shí)施自動化測試的,以免對項目實(shí)施自動化過程中發(fā)現(xiàn)困難重重,浪費(fèi)了大量的人力和時間而沒有得到應(yīng)有的收益。
1、任務(wù)測試明確,不會頻繁變動
2、每日構(gòu)建后的測試驗(yàn)證
3、比較頻繁的回歸測試
4、軟件系統(tǒng)界面穩(wěn)定,變動少
5、需要在多平臺上運(yùn)行的相同測試案例、組合遍歷型的測試、大量的重復(fù)任務(wù)
6、軟件維護(hù)周期長
7、項目進(jìn)度壓力不太大
8、被測軟件系統(tǒng)開發(fā)比較規(guī)范,能夠保證系統(tǒng)的可測試性
9、具備大量的自動化測試平臺
10、測試人員具備較強(qiáng)的編程能力
當(dāng)然,并非以上10 條都具備有情況下才能開展測試工作。這里就需要讀者做綜合的權(quán)衡。在我們普遍的經(jīng)驗(yàn)中,只要滿足三個條件就可以對項目開展自動化測試:
軟件需求編程不頻繁
測試腳本的穩(wěn)定性決定了自動化測試的維護(hù)成本。如果軟件需求變動過于頻繁,測試人員需要根據(jù)變動的需求來更新測試用例以及相關(guān)的測試腳本,而腳本的維護(hù)本身就是一個代碼開發(fā)的過程,需要修改、調(diào)試,必要的時候還要修改自動化測試的框架,如果所花費(fèi)的成本不低于利用其節(jié)省的測試成本,那么自動化測試便是失敗的。
項目中的某些模塊相對穩(wěn)定,而某些模塊需求變動性很大。我們便可對相對穩(wěn)定的模塊進(jìn)行自動化測試,而變動較大的仍是用手工測試。
項目周期較長
由于自動化測試需求的確定、自動化測試框架的設(shè)計、測試腳本的編寫與調(diào)試均需要相當(dāng)長的時間來完成。這樣的過程本身就是一個測試軟件的開發(fā)過程,需要較長的時間來完成。如果項目的周期比較短,沒有足夠的時間去支持這樣一個過程,那么自動化測試便成為笑談。
自動化測試腳本可重復(fù)使用
自動化測試腳本的重復(fù)使用要從三個方面來考量,一方面所測試的項目之間是否很大的差異性(如C/S 系統(tǒng)和B/S 系統(tǒng)的差異);所選擇的測試工具是否適應(yīng)這種差異;最后,測試人員是否有能力開發(fā)出適應(yīng)這種差異的自動化測試框架。

PS 參考:https://blog.csdn.net/thomashtq/article/details/45217499

常見測試:

適合自動化:

  • 單元測試
    單元測試一般都有開發(fā)人員實(shí)現(xiàn)和維護(hù),主要是針對各功能模塊的函數(shù)調(diào)用進(jìn)行測試,粒度較小,實(shí)現(xiàn)簡單,甚至可以通過工具自動生成單元測試用例。
  • 回歸測試
    進(jìn)行大量回歸驗(yàn)收的測試用例時,或者手工執(zhí)行用例發(fā)現(xiàn)了Bug,需要增加對應(yīng)的自動化測試用例跟蹤缺陷是否解決等場景,也適合引入自動化測試。
  • 性能測試
    性能測試涵蓋比較廣泛,包括壓力測試、穩(wěn)定性測試、吞吐量測試等,這些都是手工測試無法勝任的任務(wù),必須引入自動化測試。
    -接口測試
    對于接口(API)測試,由于接口相對比較固定,類似于單元測試,比較規(guī)整的API接口,甚至能夠通過工具來自動生成測試用例,非常適合自動化測試,投入小,回報大。
  • 協(xié)議測試
    由于協(xié)議(如HTTP,F(xiàn)TP,RTSP,HLS等)定義規(guī)范,接口說明比較嚴(yán)謹(jǐn)且很少改變,對協(xié)議兼容性進(jìn)行測試時,也非常適合引入自動化測試。

常見的自動化測試工具簡介

  • UFT(Unified Functional Testing)

即原來的QTP(Quick Test Professional Software)與ST(Service Test)合并而來,由HP公司開發(fā),是一個企業(yè)級的商業(yè)自動化測試工具,提供了強(qiáng)大易用的錄制回放功能,

同時兼容對象識別模式與圖像識別模式,支持B/S和C/S兩種架構(gòu)的軟件測試;

  • Robot Framework

一款基于python語言編寫的自動化測試框架工具,具備良好的擴(kuò)展性,支持關(guān)鍵字驅(qū)動,支持多種類型的客戶端和接口,可進(jìn)行分布式測試;

  • Selenium

應(yīng)用于web的自動化測試工具,支持多平臺、多瀏覽器、多語言來實(shí)現(xiàn)自動化,優(yōu)點(diǎn)如下:

①開源、免費(fèi);

②多瀏覽器支持:chrome、Firefox、IE、Edge等;

③多平臺支持:Linux、Windows、MAC;

④多語言支持:java、python、Ruby、C#、JavaScript、C++;

⑤對web界面有良好的支持;

⑥簡單(API簡單)、靈活(開發(fā)語言驅(qū)動);

⑦支持分布式測試用例執(zhí)行;

做UI自動化測試,需要什么技能

①前端相關(guān)技術(shù)
HTML、XML、JavaScript、TCP/IP協(xié)議等

②一門編程語言

就像前面說的,selenium支持多種語言,根據(jù)個人情況以及項目的開發(fā)語言酌情選擇;

③合適的工具選型

比如selenium,比如UTF等;

④需求分析

項目類型,特質(zhì),生命周期,是否適合開展自動化測試等;

參考鏈接:

自動化測試分析(流程)

https://www.cnblogs.com/tobecrazy/p/4606057.html
https://www.cnblogs.com/znicy/p/7478371.html
https://www.cnblogs.com/morwind/p/5063805.html
https://www.cnblogs.com/star12111/p/8046419.html

優(yōu)缺點(diǎn)

https://www.cnblogs.com/qy1234/archive/2018/01/03/8178337.html

自動化測試分類

https://testerhome.com/topics/7358

https://www.cnblogs.com/tobecrazy/p/4606057.html

自動化測試工具

https://blog.csdn.net/a578133380/article/details/79031189
https://blog.csdn.net/yoyocat915/article/details/80642317

selenim 介紹

https://blog.csdn.net/yoyocat915/article/details/80216946
http://www.cnblogs.com/TankXiao/p/5252754.html
https://blog.csdn.net/wanglian2017/article/details/72843984

selenium webdriver 原理

http://www.51testing.com/html/60/n-3726060.html

selenium 使用

http://www.51testing.com/zhuanti/selenium.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容