-
軟件測試的分類
瀑布模式、敏捷測試、基于腳本大的測試、基于風(fēng)險的測試、探索式測試等
傳統(tǒng)的瀑布模型(傳統(tǒng)軟件工程學(xué)的開發(fā)模式,最早出現(xiàn),)
(1)瀑布模型
項目計劃-->需求分析-->軟件設(shè)計-->程序開發(fā)-->軟件測試-->集成維護(hù)
(每一個階段都是以上一個階段的輸出做為下一個階段的輸入)
項目計劃:制定項目總體的研發(fā)計劃,確定項目主要的里程碑節(jié)點;需要輸出項目計劃書。
需要分析:明確用戶的需求定義,并對定義進(jìn)行清晰的描述,是充分理解客戶需求,詳細(xì)描述產(chǎn)品功能的一個重要階段;需要輸出產(chǎn)品的需求規(guī)格書。
軟件設(shè)計:根據(jù)產(chǎn)品的定義,確定產(chǎn)品的實現(xiàn)方案;包括定義軟件與硬件的結(jié)構(gòu),組件模塊的實現(xiàn)方法,接口、界面、數(shù)據(jù)如何組織,需要輸出概要設(shè)計、詳細(xì)設(shè)計在內(nèi)的多份說明書。
程序開發(fā):由開發(fā)團(tuán)隊根據(jù)需求和設(shè)計具體實現(xiàn)產(chǎn)品的功能,根據(jù)編程規(guī)范編寫各類組件和模塊,最后輸出產(chǎn)品版本。
軟件測試:通過獨立的測試小組(QA團(tuán)隊)來評估產(chǎn)品是否滿足需求的定義,需要輸出測試結(jié)果、測試報告。
集成維護(hù):產(chǎn)品經(jīng)過測試后交付給用戶,根據(jù)用戶的使用情況,對產(chǎn)品進(jìn)行維護(hù),及必要的修改、升級的操作。
瀑布模式的有缺點
優(yōu)點
1、強(qiáng)調(diào)需求、設(shè)計的作用
2、前一階段完成后,只需要關(guān)注后續(xù)階段
3、為項目提供了按階段劃分的檢查點,里程碑清晰
4、文檔規(guī)范
缺點
1、難以適應(yīng)需求的頻繁變化
2、項目周期后段才能看到成果
3、強(qiáng)制的里程碑、完成時間點
4、文檔工作量大
(2)V模型(使用最廣泛)
優(yōu)點
描述了測試與軟件開發(fā)過程的對應(yīng)關(guān)系。
強(qiáng)調(diào)了軟件開發(fā)的協(xié)作與速度,反應(yīng)測試活動和分析設(shè)計的關(guān)系,并且將軟件實現(xiàn)和驗證有機(jī)的結(jié)合起來,明確界定測試過程存在不同階段的,明確了不同測試階段和研發(fā)過程每個階段的對應(yīng)關(guān)系。
缺點
把測試當(dāng)做軟件編碼后的階段,忽視了測試對需求的分析和驗證,對需求與概要的驗證要到后期才能進(jìn)行,不符合軟件測試需要盡早進(jìn)行的感念。
(3)W模型
軟件開發(fā)過程中,各個階段測試都參與,測試伴隨軟件開發(fā)的整個開發(fā)周期
優(yōu)點:能盡早的發(fā)現(xiàn)軟件的缺陷;有利于盡早的發(fā)現(xiàn)軟件的風(fēng)險,及早的制定相應(yīng)的應(yīng)對方案,加快項目的進(jìn)度
缺點:需求設(shè)計編碼還是串行的關(guān)系,測試開發(fā)保持著一種線性的關(guān)系,在上一個階段完成后才能進(jìn)行以一個階段,不能很好的支持迭代場景。
(4)X模型
解決交接與頻繁集成周期的問題。
分片段進(jìn)行測試。
(5)H模型
把軟件測試當(dāng)做一個獨立的流程,貫穿在整個軟件測試周期當(dāng)中,與其他流程并發(fā)進(jìn)行。
查看全部 -
一·軟件測試的分類
軟件測試手段
根據(jù)測試對象的可見度:黑盒測試、 白盒測試
根據(jù)狀態(tài):靜態(tài)測試、動態(tài)測試
執(zhí)行方式:手工測試、自動化測試
(1)黑盒測試:(系統(tǒng)測試階段常用)
所謂黑盒測試就是把系統(tǒng)或者軟件看成一個不能打開的盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性下,通過相關(guān)暴露出的接口,對程序進(jìn)行測試。只檢查程序的功能是否按照需求規(guī)定,正常使用;程序是否能適當(dāng)?shù)慕邮茌斎霐?shù)據(jù),并產(chǎn)生正確的輸出信息;著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯,一般針對軟件外面的界面,可見的功能;更多從用戶的視角,通過不同數(shù)據(jù)事件,來驅(qū)動我們的系統(tǒng),通過輸出結(jié)果進(jìn)行判斷;
優(yōu)點:
1.容易實施,不需要關(guān)注內(nèi)部的實現(xiàn)
2.更貼近用戶的使用角度
缺點:
1.測試覆蓋率較低,一般只能覆蓋到代碼量的不到40%(不可見不了解內(nèi)部)
2.針對黑盒的自動化測試,復(fù)用率較低,維護(hù)成本較高。因:產(chǎn)品活動增/刪(更新)針對功能,活動經(jīng)常變
黑盒測試主要測試什么
1.是否有不正確或遺漏的功能?(軟件的實現(xiàn)上有沒有實現(xiàn)的不正確或者沒有實現(xiàn)的功能)
2.在接口上,輸入系統(tǒng)是否能正確的接受?系統(tǒng)能否輸出正確的結(jié)果?(輸入到輸出系統(tǒng)是否能滿足預(yù)期的要求)
3.是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?(系統(tǒng)對數(shù)據(jù)的處理和訪問上有沒有問題)
4.性能上是否能夠滿足要求?(黑盒測試重要的一方面)
黑盒測試的主要設(shè)計方法
1.等價類劃分法:針對程序的輸入條件進(jìn)行分類,輸入典型的數(shù)據(jù)
2.邊界值分析法:特殊的邊界數(shù)據(jù),測試代碼的邊界狀態(tài)
3.錯誤推測法:基于經(jīng)驗,直覺,判斷錯誤的地方;特殊字符,文件不存在
4.因果圖法:根據(jù)輸入輸出看做原因和結(jié)果,形成因果圖。(因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。)
5.正交試驗分析法:選出代表性的數(shù)據(jù),作為輸入數(shù)據(jù)
6.狀態(tài)遷移圖法:軟件審批的過程,各種狀態(tài)遷移
7.流程分析法:處理程序邏輯執(zhí)行的路徑來設(shè)計測試用例
(2)白盒測試:邏輯覆蓋率來衡量完整性
測試人員對內(nèi)部的結(jié)構(gòu)非常了解,邏輯結(jié)構(gòu)透明,白盒測試又稱為結(jié)構(gòu)化測試和透明盒測試,針對邏輯結(jié)構(gòu)測試用例主要的邏輯單位:
語句覆蓋:保證程序每條語句執(zhí)行一次
分支(判定):保證每條分支至少執(zhí)行一次
條件:條件表達(dá)式,至少計算一次
條件組合:覆蓋所以不同條件下的組合情況
路徑:程序中,每一條可能的路徑至少執(zhí)行一次
優(yōu)點
1.迫使測試人員去仔細(xì)思考軟件的實現(xiàn),理解原理(應(yīng)為透明,對系統(tǒng)深入了解)
2.可以檢測代碼中的每條分支和路徑
3.揭示隱藏在代碼中的錯誤
4.對代碼的測試比較徹底
缺點
1.昂貴。(較高的覆蓋率)
2.無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤(少寫)
3.不能直接驗證需求的正確性(根據(jù)代碼來的)主要測試方法:
代碼檢測法:多面 代碼審查
靜態(tài)結(jié)構(gòu)分析法:測試工具,源代碼的內(nèi)部結(jié)構(gòu)分析
靜態(tài)質(zhì)量度量法:標(biāo)準(zhǔn)的度量模型如ios質(zhì)量標(biāo)準(zhǔn)
邏輯覆蓋法:6種邏輯,語句 ,分支,條件,條件組合,路徑,判定
基本路徑測試法:通過分析復(fù)雜度,選出基本可執(zhí)行路徑的集合。程序控制流圖,描述程序控制流
(3)灰盒測試
介于黑、白盒測試之間的,關(guān)注輸出對于輸入的正確性,同時也關(guān)注內(nèi)部表現(xiàn)(結(jié)合白黑盒測試,在系統(tǒng)組建這層來評價應(yīng)用軟件設(shè)計符合需求的情況)
(4)靜態(tài)測試
定義:靜態(tài)測試是指無須執(zhí)行被測程序,而是通過評審軟件文檔或代碼,度量程序靜態(tài)復(fù)雜度,檢查軟件是否符合編程標(biāo)準(zhǔn),借以發(fā)現(xiàn)編寫的程序的不足之處,減少錯誤出現(xiàn)的概率;(通過靜態(tài)的審查代碼或者文檔來發(fā)現(xiàn)程序的不足)靜態(tài)測試的方式 (不正式到正式)
1.互審 程序員相互檢查對方的代碼
2.走查 小組一起來集體來
3.會議
動態(tài)測試(黑盒設(shè)計的一些方法主要是動態(tài)測試的一些方法)
定義:動態(tài)測試是指通過運行被測程序,檢查運行結(jié)果與預(yù)期結(jié)果的差異,并分析運行效率、正確性和健壯性等。舉例(外觀車漆又沒劃傷,輪胎胎壓足不足,油量正常不正常屬于靜態(tài)測試,汽車發(fā)動聽聽引擎聲音,開車感受乘車舒適度可操控性屬于動態(tài)測試)
手工測試
由專門的測試人員從用戶視角來驗證軟件是否滿足設(shè)計要求的行為。更適用針對深度的測試和強(qiáng)調(diào)主觀判斷的測試。(充分利用主觀能動性)
眾包測試,探索式測試
自動化測試
使用單獨的測試工具軟件控制測試的自動化執(zhí)行以及對預(yù)期和結(jié)果進(jìn)行自動檢查。
單元測試、接口測試、性能測試等查看全部 -
3-3 安全測試
安全測試:對軟件產(chǎn)品進(jìn)行測試以保證其符合產(chǎn)品安全需求和質(zhì)量標(biāo)準(zhǔn)
滲透測試:通過模擬對軟件系統(tǒng)的惡意攻擊行為來評估系統(tǒng)安全性的一種測試
OWASP:Open Web Application Security Project ?開放網(wǎng)絡(luò)應(yīng)用安全項目
下面博主演示了訪問OWASP官網(wǎng)
OWASP Top Ten Project 2013
1.Injection 注入腳本漏洞使用戶訪問到不該訪問的數(shù)據(jù)的目的
2.Broken Authentication and Session Management 失效的身份認(rèn)證和會話管理 ?會話劫持漏洞
3.Cross—Site Scripting(XSS)跨站腳本
4.Insecure Direct Object References 不安全的對象直接引用 ?參數(shù)的保護(hù)
5.Security Misconfiguration ? 安全配置類錯誤
6.Sensitive Data Exposure ? ?敏感信息泄露 ? 信息傳遞沒有對關(guān)鍵信息進(jìn)行加密
7.Missing Function Level Access Control ? 功能級別訪問控制缺失 ? 比如訪問網(wǎng)站可以訪問到用戶沒有權(quán)限到達(dá)的地方
8.Cross-Site Function Level Access Control(CSRF) ?跨站請求偽造 ?
9.Using Components with Known Vulnerabilities ? ?使用了已知有漏洞的組件 ??
10.Unvalidated Redirects adn Forwards ? ?未被驗證的重定向和轉(zhuǎn)發(fā) ?(釣魚網(wǎng)站)
安全測試工具各種針對的點:
Appscan,Webinspect,W3AF:web應(yīng)用
Nessus:服務(wù)器,主機(jī)
Nmap:端口開放
MetaSploit:攻擊軟件,滲透測試
WebScarab:代理劫持
Fortify:針對白盒,源碼中的安全問題
查看全部 -
軟件測試的重要性,例舉一些軟件故障完成的損失慘重。例如千年蟲,日本證券公司,AT-T公司斷網(wǎng)
軟件測試概要
介紹軟件測試來源以及相關(guān)定義
軟件測試不等于程序測試,他設(shè)計到方方面面。
重點講述軟件測試的五大要素,其中最重要的是質(zhì)量,其他四大要素都是為質(zhì)量服務(wù)跟鋪墊的。其次人是人力。以及講述軟件測試必須遵守的七個原則。查看全部 -
軟件測試概念思維導(dǎo)圖
查看全部 -
A/B測試的主流工具
查看全部 -
A/B測試的基本概念
查看全部 -
軟件上冒煙測試用來確認(rèn)代碼的更改會不會造成其他的錯誤,可與回歸測試對比
查看全部 -
指在板卡開發(fā)完成后會通電進(jìn)行測試,如果沒有冒煙就是沒有問題
查看全部 -
monkey測試的基本概念
查看全部 -
回歸測試的基本概念,回歸測試最適合自動化測試,應(yīng)該成為自動化測試的第一優(yōu)先級
查看全部 -
無障礙測試的基本概念
查看全部 -
部署測試的概念和測試邏輯 部署測試一般是軟件測試的第一步操作
查看全部 -
本地化測試的基本概念和測試邏輯
查看全部 -
可靠性測試,軟件方面主要是軟件的功能,性能,硬件方面主要是硬件所處的環(huán)境等針對性測試
查看全部
舉報