· ISO:國際標(biāo)準(zhǔn)化組織(International Organization for Standardization ,ISO)
· IEEE:電氣和電子工程師協(xié)會(Institute of Electrical and Electronics Engineers举瑰,IEEE)是一個國際性的電子技術(shù)與信息科學(xué)工程師的協(xié)會
· ANSI:美國國家標(biāo)準(zhǔn)學(xué)會(AMERICAN NATIONAL STANDARDS INSTITUTE捣辆,ANSI)
· GB/T:是指推薦性國家標(biāo)準(zhǔn)(GB/T)
為什么要進(jìn)行軟件測試
· 軟件是人寫的,是人就會犯錯誤此迅。
· 我們無法完全避免錯誤汽畴,但通過努力可盡早定位旧巾。
· 軟件中的錯誤會給客戶帶來重大損失。
什么是軟件測試
IEEE:用人工或自動化的手段來執(zhí)行和評價系統(tǒng)或系統(tǒng)部件的過程整袁,以檢驗(yàn)它是否滿足規(guī)定的需求菠齿,或識別期望的結(jié)果和實(shí)際的結(jié)果之間有無差別。
ANSI:使用為發(fā)現(xiàn)BUG所選擇的輸入和狀態(tài)的組合而執(zhí)行代碼的過程坐昙。
軟件測試的定義
· 測試是為了證明程序有錯绳匀,而不是證明程序無錯誤。
· 一個好的測試用例是在于它能發(fā)現(xiàn)以前未發(fā)現(xiàn)的錯誤炸客。
· 一個成功的測試是發(fā)現(xiàn)了以前未發(fā)現(xiàn)的錯誤的測試
測試活動價值
· 測試并不僅僅是為了找出錯誤疾棵,通過分析錯誤產(chǎn)生的原因和錯誤的發(fā)生趨勢,可以幫助項(xiàng)目的管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過程中的缺陷痹仙,以便及時改進(jìn)是尔;
· 這種分析也能幫助測試人員設(shè)計(jì)出有針對性的測試方法,改善測試的效率和有效性开仰;
· 沒有發(fā)現(xiàn)錯誤的測試也是有價值的拟枚,完整的測試是評定軟件質(zhì)量的一種方法。
軟件測試對象
· 軟件測試并不等于程序測試众弓。軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個期間恩溅。
· 需求分析、概要設(shè)計(jì)谓娃、詳細(xì)設(shè)計(jì)以及程序編碼等各階段所得到的文檔脚乡,包括需求規(guī)格說明、概要設(shè)計(jì)規(guī)格說明滨达、詳細(xì)設(shè)計(jì)規(guī)格說明以及源程序奶稠,都應(yīng)成為軟件測試的對象。
什么是軟件缺陷
· 軟件未實(shí)現(xiàn)需求規(guī)格說明書中要求的功能
· 軟件出現(xiàn)了需求規(guī)格說明書指明不應(yīng)該出現(xiàn)的錯誤
· 軟件實(shí)現(xiàn)了需求規(guī)格說明書中未提到的功能
· 軟件未實(shí)現(xiàn)需求規(guī)格說明書中雖未提及但應(yīng)該實(shí)現(xiàn)的目標(biāo)
· 軟件難以理解捡遍、不易使用锌订、運(yùn)行緩慢或者——從測試人員的角度看——最終用戶會認(rèn)為不好
Bug與缺陷
· 軟件缺陷(Defect),常常又被叫做Bug稽莉。
· 所謂軟件缺陷瀑志,即為計(jì)算機(jī)軟件或程序中存在的某種破壞正常運(yùn)行能力的問題、錯誤污秆、或者隱藏的功能缺陷劈猪。缺陷的存在會導(dǎo)致軟件產(chǎn)品在某種程度上不能滿足用戶的需求。
· IEEE對缺陷有一個標(biāo)準(zhǔn)的定義:從產(chǎn)品內(nèi)部看良拼,缺陷是軟件產(chǎn)品開發(fā)或維護(hù)過程中存在的錯誤战得、毛病等各種問題;從產(chǎn)品外部看庸推,缺陷是系統(tǒng)所需要實(shí)現(xiàn)的某種功能的失效或違背常侦。
描述軟件失效的術(shù)語
· 缺點(diǎn)(defect)
· 偏差(variance)
· 故障(fault)
· 失效(failure)
· 問題(issue)
· 錯誤(error)
· 缺陷(bug)
· 異常(anomaly)
軟件缺陷的級別
致命的(Fatal)
· 造成系統(tǒng)崩潰浇冰、宕機(jī),或造成數(shù)據(jù)丟失聋亡、主要功能彎曲喪失等
嚴(yán)重的(Critical)
· 功能或特性沒有實(shí)現(xiàn)肘习,主要功能部分喪失,產(chǎn)生致命的錯誤聲明
警告的(Major)
· 不影響系統(tǒng)基本使用坡倔,漂佩,但沒有很好的實(shí)現(xiàn)需求,未達(dá)到預(yù)期效果
建議(Suggestion)
· 測試人員提出的建議或質(zhì)疑罪塔。
軟件缺陷產(chǎn)生的原因
· 技術(shù)問題
1.算法錯誤投蝉、語法錯誤、計(jì)算精度問題
2.系統(tǒng)結(jié)構(gòu)不合理征堪、算法選擇不科學(xué)瘩缆,造成性能低下
3.接口參數(shù)傳遞不匹配,導(dǎo)致模塊集成出現(xiàn)問題
· 團(tuán)隊(duì)工作
1.需求理解不清佃蚜,與用戶溝通存在困難
2.項(xiàng)目組內(nèi)部溝通存在問題
· 軟件本身
1.文檔錯誤庸娱、內(nèi)容不正確或拼寫錯誤
2.未考慮大數(shù)據(jù)量、數(shù)據(jù)邊界谐算、數(shù)據(jù)備份涌韩、災(zāi)難恢復(fù)等問題
3.硬件或系統(tǒng)軟件錯誤,軟件開發(fā)標(biāo)準(zhǔn)或過程錯誤
軟件測試能做什么
· 是將已覺察的軟件出現(xiàn)故障的風(fēng)險(xiǎn)程度減小到一個可接受的值
· 發(fā)型軟件中殘存的bug
· 為軟件質(zhì)量的評價提供支持
· 為軟件開發(fā)過程的改進(jìn)提供幫助
· 一種有效的軟件工程驗(yàn)證與確認(rèn)方法
測試原則
· 所有的測試應(yīng)該源于用戶需求
· 測試是一個持續(xù)進(jìn)行的過程氯夷,而不是一個階段
· 測試必須被計(jì)劃、被控制靶擦,并且被提供時間和資源
· 測試應(yīng)當(dāng)分級別腮考,有重點(diǎn)
· 測試是不可能窮盡的,當(dāng)測試出口條件滿足時玄捕,就可以停止測試
· 為了保證測試有效性踩蔚,應(yīng)采用獨(dú)立第三方測試
· 即測試軟件應(yīng)該做的也檢查軟件不該做的
· 測試自動化能解決一部分問題,但不是全部
· 測試中的20 - 80 規(guī)律
· 測試人員應(yīng)公正的測試枚粘,如實(shí)記錄和報(bào)告缺陷
關(guān)于需求
· 需求是指明必須實(shí)現(xiàn)什么的規(guī)格說明馅闽。它描述了系統(tǒng)的行為、特征或?qū)傩遭善窃陂_發(fā)過程中對系統(tǒng)的約束
· 需求可以通過質(zhì)量特性來表述
滿足需求就是應(yīng)滿足:
· 明示的(如合同福也、規(guī)范、標(biāo)準(zhǔn)攀圈、文件中明確規(guī)定的)
· 隱含的(如組織的慣例暴凑、一般習(xí)慣)
· 必須執(zhí)行的(如法律、法規(guī)赘来、行業(yè)規(guī)則)
軟件質(zhì)量定義
· ISO的質(zhì)量定義:一個石頭的所有特性现喳,基于這些特性可以滿足明顯的或隱含的需要
· 軟件質(zhì)量特性(ISO8402:1986 GB/T 6583)
· 功能性
· 可靠性
· 易用性
· 效率
· 維護(hù)性
· 可移植性
外部質(zhì)量和內(nèi)部質(zhì)量
· 功能性
1.適合性
2.準(zhǔn)確性
3.互用性
4.保密性
5.功能性的依存性
· 可靠性
1.成熟性
2.容錯性
3.易恢復(fù)性
4.可靠性的依存性
· 易用性
1.易理解性
2.易學(xué)性
3.易操作性
4.吸引性
5.易用性的依存性
· 效率
1.時間特性
2.資源利用性
3.效率的依存性
· 可維護(hù)性
1.易分析性
2.易變更性
3.穩(wěn)定性
4.易測試性
5.可維護(hù)性的依存性
· 可移植性
1.適應(yīng)性
2.易安裝性
3.共存性
4.可替換性
5.可移植性的依存性