Web 自動(dòng)化理論知識

  1、自動(dòng)化測試概述

  概念:用工具代替/輔助人工完成完成軟件測試活動(dòng)的過程

  特點(diǎn):

  可以對程序的新版本自動(dòng)執(zhí)行回歸測試

  可以執(zhí)行一些手工測試?yán)щy或不可能進(jìn)行的測試

  可以更好地利用資源

  測試具有一致性和可重復(fù)性

  誤區(qū):

  期望自動(dòng)化測試發(fā)現(xiàn)大量新故障

  安全性錯(cuò)覺

  自動(dòng)化測試的維護(hù)開銷

  2、自動(dòng)化測試的優(yōu)勢

  重復(fù)多次執(zhí)行測試時(shí)節(jié)省很多時(shí)間

  提高測試覆蓋率和測試精度

  實(shí)現(xiàn)自動(dòng)化回歸測試減少工作量

  減少手工測試人為產(chǎn)生的錯(cuò)誤

  提供規(guī)范化的過程和一致性

  更好的文檔記錄

  3、自動(dòng)化測試的局限性

  手工測試比自動(dòng)化測試發(fā)現(xiàn)的故障更多,自動(dòng)化測試只能發(fā)現(xiàn)約15%的bug

  自動(dòng)化測試不能提高測試的有效性,只能用于提高測試的效率

  自動(dòng)化測試不具有想象力,沒人聰明

  自動(dòng)化測試不能代替手工測試,下列情況不適合于自動(dòng)化測試:

  測試頻度很低

  軟件不穩(wěn)定

  結(jié)果很容易通過人驗(yàn)證的測試(人式實(shí)施較為高效)

  涉及物理硬件設(shè)備交互的測試

  4、自動(dòng)化測試的內(nèi)容

  測試數(shù)據(jù)自動(dòng)生成

  自動(dòng)化輸入

  測試結(jié)果自動(dòng)比較

  測試自動(dòng)執(zhí)行

  自動(dòng)化測試用例的管理

  在線監(jiān)控

  5、自動(dòng)化腳本技術(shù)

  線性腳本:  錄制、回放

  結(jié)構(gòu)化腳本:  含有控制腳本執(zhí)行的指令,支持順序、選擇和循環(huán)

  共享腳本:  可以被多個(gè)測試用例使用,腳本之間可以互相調(diào)用

  數(shù)據(jù)驅(qū)動(dòng)腳本:  數(shù)據(jù)驅(qū)動(dòng)腳本是將測試輸入存儲(chǔ)在獨(dú)立的文件中,腳本中只存放控制信息

  關(guān)鍵字驅(qū)動(dòng)腳本:  關(guān)鍵字驅(qū)動(dòng)腳本實(shí)際上是較重復(fù)的數(shù)據(jù)驅(qū)動(dòng)技術(shù)的邏輯擴(kuò)展 ,即測試用例的執(zhí)行步驟(操作,操作對象,操作值)存放在文件中,直接執(zhí)行

  6、Web自動(dòng)化測試的基本原理:

  找到要操作的元素-->操作元素-->獲取操作后的結(jié)果-->實(shí)際結(jié)果和期望結(jié)果對比-->測試結(jié)果-->記錄測試結(jié)果-->發(fā)送測試報(bào)告給相關(guān)人-->修改Bug

  7、需要的基本知識:Html、Css、Js、熟悉(Java、Python、.net、ruby)其中的一種、MysqL的基本sql知識、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)化測試的類型:

  單元測試-執(zhí)行速度最快

  接口測試-執(zhí)行速度較快

  UI測試-執(zhí)行速度最慢

  10、自動(dòng)化測試需要的條件:

  軟件需求變動(dòng)不頻繁

  項(xiàng)目周期足夠長

  自動(dòng)化腳本可重復(fù)使用

  有編程和設(shè)計(jì)能力的測試開發(fā)人員

  研發(fā)團(tuán)隊(duì)的支持

  11、使用自動(dòng)化的一此典型場景:

  驗(yàn)證原有功能是否依舊可以使用,適合進(jìn)行大量回歸測試的場景

  使用自動(dòng)化沒測試技術(shù)注入測試數(shù)據(jù)

  敏捷開發(fā)的TDD模式,行為驅(qū)動(dòng)開發(fā)模式

  機(jī)械并頻繁的測試,每次需要輸入相同、大量的一些數(shù)據(jù),并且在一個(gè)項(xiàng)目中運(yùn)行的周期比較長

  做業(yè)務(wù)運(yùn)行狀態(tài)監(jiān)控

  12、自動(dòng)化實(shí)踐的一些建議

  從上到下的支持和協(xié)作

  先找小項(xiàng)目進(jìn)行試點(diǎn)

  測試人員需要有較強(qiáng)的編程能力和設(shè)計(jì)能力

  開發(fā)需要不斷提高軟件的可測試性

  多鼓勵(lì)單元測試、接口測試

  UI測試使用并行測試方式提高執(zhí)行速度

  13、關(guān)于UI自動(dòng)化的一些建議

  需要根據(jù)自己的測試業(yè)務(wù)類型,量身定做適合自己的測試框架

  讓不懂開的測試人員也能使用測試框架來進(jìn)行自動(dòng)化測試

  使用分層的結(jié)構(gòu)來設(shè)計(jì)框架

  使用截屏技術(shù)提高一些測試效率

  不斷積累自動(dòng)化測試技術(shù),對開發(fā)提可測試性的要求

  14、自動(dòng)化測試實(shí)施失敗的因素

  期望值過高,就像管理人員要求完全測試一樣,期望100%的自動(dòng)化測試,也同樣是一個(gè)不現(xiàn)實(shí)的需求

  對收益和成本認(rèn)識不清。拋開工具的購買成本和培訓(xùn)成本,自動(dòng)化測試的成本應(yīng)該還包括兩部分(實(shí)現(xiàn)成本中還隱含了測試準(zhǔn)備成本):成本=實(shí)現(xiàn)成本+運(yùn)行維護(hù)成本

  自動(dòng)化測試的收益是由測試的重復(fù)運(yùn)行次數(shù),或自動(dòng)化測試腳本的利用率決定的

  15、什么時(shí)候開始實(shí)施自動(dòng)化

  可預(yù)見的需求不影響自動(dòng)化測試用例的設(shè)計(jì)

  16、如何實(shí)施自動(dòng)化測試

  獲取信息和測試需求分析:總體把握系統(tǒng)架構(gòu)和設(shè)計(jì),分析出系統(tǒng)的測試需求

  設(shè)計(jì):設(shè)計(jì)測試用例,并且挑選出需要自動(dòng)化實(shí)現(xiàn)的測試用例

  實(shí)現(xiàn):編寫、調(diào)試和實(shí)現(xiàn)測試腳本

  執(zhí)行:執(zhí)行腳本的過程,需要不斷分析執(zhí)行過程中的異常

  測試結(jié)果分析:分析哪些是Bug,哪些是測試框架本身的問題

  維護(hù):自動(dòng)化測試腳本的維護(hù)是一個(gè)難以解決又必須要解決的問題

  總結(jié):在自動(dòng)化測試過程中總結(jié)自動(dòng)化實(shí)踐的投入產(chǎn)出比

  17、什么是測試框架(framework)

  整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件以及構(gòu)件實(shí)例間交互的方法;可被開發(fā)者定制的應(yīng)用骨架