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)用骨架