Web自動(dòng)化測(cè)試?yán)碚撝R(shí)
Web 自動(dòng)化理論知識(shí)
1、自動(dòng)化測(cè)試概述
概念:用工具代替/輔助人工完成完成軟件測(cè)試活動(dòng)的過程
特點(diǎn):
可以對(duì)程序的新版本自動(dòng)執(zhí)行回歸測(cè)試
可以執(zhí)行一些手工測(cè)試?yán)щy或不可能進(jìn)行的測(cè)試
可以更好地利用資源
測(cè)試具有一致性和可重復(fù)性
誤區(qū):
期望自動(dòng)化測(cè)試發(fā)現(xiàn)大量新故障
安全性錯(cuò)覺
自動(dòng)化測(cè)試的維護(hù)開銷
2、自動(dòng)化測(cè)試的優(yōu)勢(shì)
重復(fù)多次執(zhí)行測(cè)試時(shí)節(jié)省很多時(shí)間
提高測(cè)試覆蓋率和測(cè)試精度
實(shí)現(xiàn)自動(dòng)化回歸測(cè)試減少工作量
減少手工測(cè)試人為產(chǎn)生的錯(cuò)誤
提供規(guī)范化的過程和一致性
更好的文檔記錄
3、自動(dòng)化測(cè)試的局限性
手工測(cè)試比自動(dòng)化測(cè)試發(fā)現(xiàn)的故障更多,自動(dòng)化測(cè)試只能發(fā)現(xiàn)約15%的bug
自動(dòng)化測(cè)試不能提高測(cè)試的有效性,只能用于提高測(cè)試的效率
自動(dòng)化測(cè)試不具有想象力,沒人聰明
自動(dòng)化測(cè)試不能代替手工測(cè)試,下列情況不適合于自動(dòng)化測(cè)試:
測(cè)試頻度很低
軟件不穩(wěn)定
結(jié)果很容易通過人驗(yàn)證的測(cè)試(人式實(shí)施較為高效)
涉及物理硬件設(shè)備交互的測(cè)試
4、自動(dòng)化測(cè)試的內(nèi)容
測(cè)試數(shù)據(jù)自動(dòng)生成
自動(dòng)化輸入
測(cè)試結(jié)果自動(dòng)比較
測(cè)試自動(dòng)執(zhí)行
自動(dòng)化測(cè)試用例的管理
在線監(jiān)控
5、自動(dòng)化腳本技術(shù)
線性腳本: 錄制、回放
結(jié)構(gòu)化腳本: 含有控制腳本執(zhí)行的指令,支持順序、選擇和循環(huán)
共享腳本: 可以被多個(gè)測(cè)試用例使用,腳本之間可以互相調(diào)用
數(shù)據(jù)驅(qū)動(dòng)腳本: 數(shù)據(jù)驅(qū)動(dòng)腳本是將測(cè)試輸入存儲(chǔ)在獨(dú)立的文件中,腳本中只存放控制信息
關(guān)鍵字驅(qū)動(dòng)腳本: 關(guān)鍵字驅(qū)動(dòng)腳本實(shí)際上是較重復(fù)的數(shù)據(jù)驅(qū)動(dòng)技術(shù)的邏輯擴(kuò)展 ,即測(cè)試用例的執(zhí)行步驟(操作,操作對(duì)象,操作值)存放在文件中,直接執(zhí)行
6、Web自動(dòng)化測(cè)試的基本原理:
找到要操作的元素-->操作元素-->獲取操作后的結(jié)果-->實(shí)際結(jié)果和期望結(jié)果對(duì)比-->測(cè)試結(jié)果-->記錄測(cè)試結(jié)果-->發(fā)送測(cè)試報(bào)告給相關(guān)人-->修改Bug
7、需要的基本知識(shí):Html、Css、Js、熟悉(Java、Python、.net、ruby)其中的一種、MysqL的基本sql知識(shí)、unittest的基本使用方法
參考網(wǎng)站:www.w3school.com
8、需要用到的工具包和工具:
瀏覽器:IE、Firefox、Chrome、safari
Selenium browser drivers: geckodriver Chrome Driver InternetExplorer Driver
Selenium tools: Selenuim Webdriver client driver Selenium Standalone Server
集成開發(fā)環(huán)境:Pycharm
BDD框架工具:lettuce
其他工具:AutoIt、Win32api
9、自動(dòng)化測(cè)試的類型:
單元測(cè)試-執(zhí)行速度最快
接口測(cè)試-執(zhí)行速度較快
UI測(cè)試-執(zhí)行速度最慢
10、自動(dòng)化測(cè)試需要的條件:
軟件需求變動(dòng)不頻繁
項(xiàng)目周期足夠長(zhǎng)
自動(dòng)化腳本可重復(fù)使用
有編程和設(shè)計(jì)能力的測(cè)試開發(fā)人員
研發(fā)團(tuán)隊(duì)的支持
11、使用自動(dòng)化的一此典型場(chǎng)景:
驗(yàn)證原有功能是否依舊可以使用,適合進(jìn)行大量回歸測(cè)試的場(chǎng)景
使用自動(dòng)化沒測(cè)試技術(shù)注入測(cè)試數(shù)據(jù)
敏捷開發(fā)的TDD模式,行為驅(qū)動(dòng)開發(fā)模式
機(jī)械并頻繁的測(cè)試,每次需要輸入相同、大量的一些數(shù)據(jù),并且在一個(gè)項(xiàng)目中運(yùn)行的周期比較長(zhǎng)
做業(yè)務(wù)運(yùn)行狀態(tài)監(jiān)控
12、自動(dòng)化實(shí)踐的一些建議
從上到下的支持和協(xié)作
先找小項(xiàng)目進(jìn)行試點(diǎn)
測(cè)試人員需要有較強(qiáng)的編程能力和設(shè)計(jì)能力
開發(fā)需要不斷提高軟件的可測(cè)試性
多鼓勵(lì)單元測(cè)試、接口測(cè)試
UI測(cè)試使用并行測(cè)試方式提高執(zhí)行速度
13、關(guān)于UI自動(dòng)化的一些建議
需要根據(jù)自己的測(cè)試業(yè)務(wù)類型,量身定做適合自己的測(cè)試框架
讓不懂開的測(cè)試人員也能使用測(cè)試框架來(lái)進(jìn)行自動(dòng)化測(cè)試
使用分層的結(jié)構(gòu)來(lái)設(shè)計(jì)框架
使用截屏技術(shù)提高一些測(cè)試效率
不斷積累自動(dòng)化測(cè)試技術(shù),對(duì)開發(fā)提可測(cè)試性的要求
14、自動(dòng)化測(cè)試實(shí)施失敗的因素
期望值過高,就像管理人員要求完全測(cè)試一樣,期望100%的自動(dòng)化測(cè)試,也同樣是一個(gè)不現(xiàn)實(shí)的需求
對(duì)收益和成本認(rèn)識(shí)不清。拋開工具的購(gòu)買成本和培訓(xùn)成本,自動(dòng)化測(cè)試的成本應(yīng)該還包括兩部分(實(shí)現(xiàn)成本中還隱含了測(cè)試準(zhǔn)備成本):成本=實(shí)現(xiàn)成本+運(yùn)行維護(hù)成本
自動(dòng)化測(cè)試的收益是由測(cè)試的重復(fù)運(yùn)行次數(shù),或自動(dòng)化測(cè)試腳本的利用率決定的
15、什么時(shí)候開始實(shí)施自動(dòng)化
可預(yù)見的需求不影響自動(dòng)化測(cè)試用例的設(shè)計(jì)
16、如何實(shí)施自動(dòng)化測(cè)試
獲取信息和測(cè)試需求分析:總體把握系統(tǒng)架構(gòu)和設(shè)計(jì),分析出系統(tǒng)的測(cè)試需求
設(shè)計(jì):設(shè)計(jì)測(cè)試用例,并且挑選出需要自動(dòng)化實(shí)現(xiàn)的測(cè)試用例
實(shí)現(xiàn):編寫、調(diào)試和實(shí)現(xiàn)測(cè)試腳本
執(zhí)行:執(zhí)行腳本的過程,需要不斷分析執(zhí)行過程中的異常
測(cè)試結(jié)果分析:分析哪些是Bug,哪些是測(cè)試框架本身的問題
維護(hù):自動(dòng)化測(cè)試腳本的維護(hù)是一個(gè)難以解決又必須要解決的問題
總結(jié):在自動(dòng)化測(cè)試過程中總結(jié)自動(dòng)化實(shí)踐的投入產(chǎn)出比
17、什么是測(cè)試框架(framework)
整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件以及構(gòu)件實(shí)例間交互的方法;可被開發(fā)者定制的應(yīng)用骨架

