軟件測試:
1、軟件測試分類 v模型軟件開發(fā)流程
單元測試:模塊測試,對程序中單個(gè)程序或獨(dú)立功能的代碼段進(jìn)行測試 (白盒測試) 集成測試:通過單元模塊進(jìn)行組合測試,接口,功能是否完備 系統(tǒng)測試:驗(yàn)證整個(gè)系統(tǒng)是否滿足需求、系統(tǒng)的正確性,是否滿足規(guī)格需求 回歸測試:如果某個(gè)問題在有限的時(shí)間解決不了,只能到下一次版本更新 驗(yàn)收測試:確保軟件準(zhǔn)備就緒,向購買者展示軟件滿足用戶的需求
關(guān)心軟件輸出數(shù)據(jù)及結(jié)果,檢查程序呈現(xiàn)給用戶是否正常使用,根據(jù)數(shù)據(jù),能否輸出正確結(jié)果,主要針對軟件界面和軟件功能進(jìn)行測試。
把盒子打開,去研究源代碼和程序執(zhí)行結(jié)果,按程序內(nèi)部結(jié)構(gòu),通過測試來檢測產(chǎn)品內(nèi)容功能是否按照我們需求說明書正常進(jìn)行
介于黑盒測試與白盒測試之間。關(guān)注輸出對輸入的正確性,同時(shí)關(guān)注內(nèi)部表現(xiàn)(沒有白盒那樣完整)
功能測試:檢查實(shí)際功能是否符合用戶需求。測試主要圍繞軟件功能進(jìn)行。 功能測試可細(xì)分為:邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試(比較重要,不同的瀏覽器,不移動端、不同系統(tǒng)) 性能測試:通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試 性能測試可細(xì)分為:時(shí)間性能與空間性能 時(shí)間性能:軟件的響應(yīng)時(shí)間 空間性能:軟件運(yùn)行時(shí)間,消耗的資源(如:CPU的消耗、帶寬的消耗等)
手工測試:由測試人員一個(gè)一個(gè)去執(zhí)行測試用例,通過鍵盤鼠標(biāo)等輸入一些參數(shù),并查看返回結(jié)果是否符合預(yù)期結(jié)果。是系統(tǒng)階段進(jìn)行的一個(gè)功能測試 自動化測試:把以人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。這里的機(jī)器是一種工具,通過測試工具或者框架,錄制編寫測試腳本,對軟件功能進(jìn)行測試,并驗(yàn)證測試結(jié)果是否正確,從而代替部分的手工測試,達(dá)到節(jié)約人力、時(shí)間成本目的 自動化測試可細(xì)分為:功能自動化和性能自動化測試 。 自動化功能自動化測試:進(jìn)行參數(shù)化,一次請求,多次運(yùn)行。目前主要是功能自動化測試 自動化性能自動化測試測試性能工具模擬成千上萬的用戶向系統(tǒng)發(fā)送請求,從而驗(yàn)證系統(tǒng)處理能力
冒煙測試:對一個(gè)新版本進(jìn)行大規(guī)模的系統(tǒng)測試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測性。 回歸測試:修改舊代碼后,重新進(jìn)行測試以確認(rèn)修改后沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤。系統(tǒng)測試之前進(jìn)行回歸測試,沒有問題后,進(jìn)行驗(yàn)收測試。 隨機(jī)測試:測試中的所有輸入數(shù)據(jù)都是隨機(jī)生成的,主要是模擬用戶的真實(shí)操作,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。一般放在最后進(jìn)行測試。 探索性測試:可以說是一種測試思維技術(shù),它沒有很多實(shí)際的測試方法、技術(shù)和工具,但卻是所有測試人員都應(yīng)該掌握的一種測試思維方式。強(qiáng)調(diào)測試人員的主觀能動性,即碰到問題,及時(shí)改變策略,根據(jù)實(shí)際情況,摸索測試方法。 安全測試:是IT軟件產(chǎn)品的生命周期中,特別是產(chǎn)品開發(fā)基本完成至發(fā)布階段,對產(chǎn)品進(jìn)行檢驗(yàn)以驗(yàn)證產(chǎn)品符合安全需求定義和產(chǎn)品質(zhì)量標(biāo)準(zhǔn)的過程。
Unit :單元自動化測試,是對軟件中最小的可測試單元進(jìn)行檢查與驗(yàn)證,如:C語言的最小的單元是一個(gè)元素,Java中最小的單元是一個(gè)類,圖形化軟件中的最小單元是一個(gè)窗口、按鈕、菜單等。規(guī)范單元測試需要借助于單元測試框架(工具) 單元測試(Code Review :中譯 代碼評審、代碼審查):查找系統(tǒng)缺陷、保證軟件真題質(zhì)量,提高開發(fā)者自身水平。 Service:接口自動化測試 分為:模塊接口測試、web接口測試 模塊接口測試:測試模塊間的調(diào)用與返回。如:類方法、函數(shù)調(diào)用并對返回結(jié)果進(jìn)行驗(yàn)證 Web接口測試:分為服務(wù)器接口測試、外部接口測試 服務(wù)器接口測試:瀏覽器與服務(wù)器之間的接口,通過HTTP協(xié)議進(jìn)行調(diào)用 外部接口測試:調(diào)用接口,由第三方調(diào)用,如:調(diào)用微信、QQ、微博登陸接口 UI層:是用戶使用該產(chǎn)品的入口,所有功能都通過這一層提供并展示給用戶,所以測試工作大多集中在這一層進(jìn)行。為了減輕這一層的測試人力和時(shí)間成本,早期的自動化測試工具主要針對該層設(shè)計(jì)。 除了UI層所展示的功能外,前端代碼同樣需要進(jìn)行測試。在前端開發(fā)中最主要的是javascript腳本語言,而QUnit就是針對Javascript的一個(gè)強(qiáng)大的單元測試框架。 分層自動化測試投入比例 UI層自動化測試:投入比例小,原因:很難保證產(chǎn)品的質(zhì)量,浪費(fèi)人力、物力,因?yàn)樵浇咏脩粼饺菀鬃兓?nbsp;什么樣的項(xiàng)目適合自動化測試 -任務(wù)測試明確,不會頻繁變動。 -每日構(gòu)建后的測試驗(yàn)證。 -比較頻繁的回歸測試。 -軟件系統(tǒng)界面穩(wěn)定,變動少。 -需要在多平臺上運(yùn)行的相同測試案例、組合遍歷型的測試,大量的重復(fù)任務(wù)。 -軟件維護(hù)周期長。 -項(xiàng)目進(jìn)度壓力不太大。 -被測軟件系統(tǒng)開發(fā)較為規(guī)范,能夠保證系統(tǒng)的可測試性。 -具備大量的自動化測試平臺。 -測試人員具備較強(qiáng)的編程能力。 正常情況下滿足三個(gè):
1、軟件需求變動不頻繁: 自動化腳本變化的大小、頻率決定自動化維護(hù)成本,變化大,測試人員要進(jìn)行擴(kuò)展、修改、調(diào)試
2、項(xiàng)目周期較長:需求確定,框架有好的設(shè)計(jì),腳本開發(fā)調(diào)試時(shí)間較長
3、自動化測試腳本可重復(fù)使用:測試項(xiàng)目之間是否存在很強(qiáng)的差異性,如:c/s、b/s之間的架構(gòu)所展示的功能差不多,對腳本可重復(fù)使用,選用的技術(shù)、工具是否適應(yīng)這種差異,測試人員是否有能力設(shè)計(jì)出滿足條件的差異 自動化測試及工具簡述 自動化測試的概念有廣義和狹義之分:廣義上講:所有借助工具來輔助進(jìn)行軟件測試的方式都可以稱為自動化測試;狹義上講:主要是指基于UI層的功能自動化測試。
1)UFT:(QTP:企業(yè)級自動化測試工具,提供強(qiáng)大、易用的錄制回放功能,同時(shí)兼容對象和圖像兩種識別模式,支持B/S和C/S兩種架構(gòu)的軟件測試 )
2)Robot Framework:基于Python語言編寫的自動化測試框架,具備良好的可擴(kuò)展性,支持關(guān)鍵字驅(qū)動,同時(shí)可測試多種類型的客戶端或接口,可進(jìn)行移動端測試
3)Watir:基于WEB測試,使用Roby語言開發(fā)
4)Selenium:用于web應(yīng)用程序測試工具,支持多平臺,多瀏覽器,多語言去實(shí)現(xiàn)自動化測試 什么是Selenium Selenium主要用于Web應(yīng)用程序的自動化測試。 selenium特點(diǎn): -開源,免費(fèi) -多瀏覽器支持:Firefox,chrome,IE,Opera,Edge -多平臺支持:Liunx,Windows,MAC -多語言支持:Java,python,Ruby,C#,JavaScript、C++ -對Web頁面具有良好的支持作用; -簡單(API簡單)、靈活(用開發(fā)語言驅(qū)動) -支持分布式測試用例執(zhí)行 selenium工具介紹 selenium 1.0
Selenium IDE:是嵌入到火狐瀏覽器中的一個(gè)插件,可實(shí)現(xiàn)簡單瀏覽器的操作錄制與回放功能 。可快速創(chuàng)建bug腳本,幫助開發(fā)人員重現(xiàn)bug,IDE錄制的腳本可轉(zhuǎn)換成多種不同語言,從而幫助我們快速的開發(fā)腳本。 Selenium Grid:一種自動化的測試輔助工具,gird通過利用現(xiàn)有的計(jì)算機(jī)基礎(chǔ)設(shè)施,加快Web-App的功能測試。利用gird可方便地實(shí)現(xiàn)在多臺機(jī)器上和不同環(huán)境中運(yùn)行測試用例,如:進(jìn)行兼容性測試,在谷歌瀏覽器上打開百度網(wǎng)頁 selenium RC:支持多種不同語言編寫的自動化測試腳本。分為client Libraries和Server client Libraries 庫:主要用來編寫測試腳本,用來控制selenium Server庫 Server:控制瀏覽器的行為。如:查詢等 selenium Server分為Launcher、Http Proxy、Core Selenium Core:被嵌入到瀏覽器頁面中的,Core是一堆堆javascript函數(shù)的集合,通過這堆javascript可實(shí)現(xiàn)程序?qū)g覽器的控制 selenium Launcher:主要是啟動瀏覽器。把selenium Core加載到瀏覽器頁面當(dāng)中,并把瀏覽器的代理設(shè)置成selenium Server的Http Proxy,也就是一種協(xié)議 Selenium 2.0 把WebDriver加入到這個(gè)家族中,簡單用公式表示為: Selenium 2.0=Selenium 1.0 + WebDriver WebDriver可以看成 Selenium RC替代品 保留Selenium RC是Selenium為了保持向下的兼容性保留了 Selenium RC是在瀏覽器運(yùn)行javascript應(yīng)用,使用瀏覽器內(nèi)置的javascript翻譯器來翻譯、執(zhí)行selenese(即:selenium命令的集合) WebDriver針對各個(gè)瀏覽器而開發(fā),取代了嵌入到被測Web應(yīng)用中的JavaScript。與瀏覽器的緊密集成支持創(chuàng)建更高級的測試,避免了JavaScript安全模型導(dǎo)致的限制。除了來自瀏覽器廠商的支持,WebDriver還利用操作系統(tǒng)級的調(diào)用模擬用戶輸入。(可直接控制瀏覽器)
聯(lián)系客服