軟件工程實踐_第1頁
軟件工程實踐_第2頁
軟件工程實踐_第3頁
軟件工程實踐_第4頁
軟件工程實踐_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程實踐有人幫你是幸運,學(xué)會心懷歡喜與感恩。無人幫你是命運,學(xué)會坦然面對與承擔(dān)。人生的必修課是接受無常,人生的選修課是放下執(zhí)著。當(dāng)生命陷落的時候請記得,你必須跌到你從未經(jīng)歷過的谷底,才能站上你從未到達過的高峰。辛勤的蜜蜂永沒有時間的悲哀?!既R克黑天鵝頸部的羽毛是純黑的還油亮油亮的;背部的每一片羽毛中間是純黑,周圍顏色變淺,片片油亮的羽毛像魚鱗似的覆蓋著,尾部的羽毛翻著小波浪像禮服的裙邊,向出席晚宴的女明星。因為這件黑色禮服讓黑天鵝顯得既高貴又神秘。以澹泊明志,以擔(dān)當(dāng)辦事,以智能除惑,以無求交友,以勤奮學(xué)習(xí),以慎言防口,以勤儉生活,以宏愿立志,以熱心做人!

發(fā)生問題不要埋怨客觀,還要多從主觀上找原因。埋怨別人不了解自己的人,首先自己就不了解別人。埋怨組織領(lǐng)導(dǎo)不相信自己的人,首先是自己不相信組織領(lǐng)導(dǎo)。

看財物應(yīng)象流水,取之有道,用之有度,不做金錢奴隸;做人應(yīng)象稱桿,追求正直,超越平庸,憑良心處世!

做人切記三不要:一不要拿自己的錯誤來懲罰自己;二不要拿別人的錯誤來懲罰自己;三不要拿自己的錯誤來懲罰別人!

做人牢記三點:一、拿望遠鏡看別人,拿放大鏡看自己;二、接受表揚要低下頭來,接受批評要抬起頭來;三、不要把善良看成愚蠢,不要把謙虛看成懦弱!帥氣不輕浮,平常不霸氣,善辯不糾纏,能言不多事,謹慎不畏縮,勇敢不粗魯,細致不小器,精明不計較,重情不自擾,失戀不失志!

做事失敗可以重來,做人失敗難以挽回。做事忌隨心所欲,做人須嚴謹慎重。一個人的智慧是他的朋友,一個人的謬誤是他的敵人。

活潑不放蕩,熱情不沖動,開放不瘋狂,好學(xué)不嫉妒,好強不逞強,聰明不傲慢,出色不張揚!

骨宜剛,氣宜柔,志宜大,膽宜小,心宜虛,言宜實,慧宜增,福宜惜。做人要以禮義交際,以廉恥律己!

做事先做人,這是處事原則;立業(yè)先立德,這是做人原則。做事不做人,永遠做不成事;做人不立德,永遠做不成人!

自尊、自知、自制是做人最高境界。尊重自己、尊重別人、保持尊嚴,對自己的行為負責(zé)是做人的基本素養(yǎng)!軟件工程實踐軟件工程實踐有人幫你是幸運,學(xué)會心懷歡喜與感恩。無人幫你是命運,學(xué)會坦然面對與承擔(dān)。人生的必修課是接受無常,人生的選修課是放下執(zhí)著。當(dāng)生命陷落的時候請記得,你必須跌到你從未經(jīng)歷過的谷底,才能站上你從未到達過的高峰。辛勤的蜜蜂永沒有時間的悲哀?!既R克黑天鵝頸部的羽毛是純黑的還油亮油亮的;背部的每一片羽毛中間是純黑,周圍顏色變淺,片片油亮的羽毛像魚鱗似的覆蓋著,尾部的羽毛翻著小波浪像禮服的裙邊,向出席晚宴的女明星。因為這件黑色禮服讓黑天鵝顯得既高貴又神秘。以澹泊明志,以擔(dān)當(dāng)辦事,以智能除惑,以無求交友,以勤奮學(xué)習(xí),以慎言防口,以勤儉生活,以宏愿立志,以熱心做人!

發(fā)生問題不要埋怨客觀,還要多從主觀上找原因。埋怨別人不了解自己的人,首先自己就不了解別人。埋怨組織領(lǐng)導(dǎo)不相信自己的人,首先是自己不相信組織領(lǐng)導(dǎo)。

看財物應(yīng)象流水,取之有道,用之有度,不做金錢奴隸;做人應(yīng)象稱桿,追求正直,超越平庸,憑良心處世!

做人切記三不要:一不要拿自己的錯誤來懲罰自己;二不要拿別人的錯誤來懲罰自己;三不要拿自己的錯誤來懲罰別人!

做人牢記三點:一、拿望遠鏡看別人,拿放大鏡看自己;二、接受表揚要低下頭來,接受批評要抬起頭來;三、不要把善良看成愚蠢,不要把謙虛看成懦弱!帥氣不輕浮,平常不霸氣,善辯不糾纏,能言不多事,謹慎不畏縮,勇敢不粗魯,細致不小器,精明不計較,重情不自擾,失戀不失志!

做事失敗可以重來,做人失敗難以挽回。做事忌隨心所欲,做人須嚴謹慎重。一個人的智慧是他的朋友,一個人的謬誤是他的敵人。

活潑不放蕩,熱情不沖動,開放不瘋狂,好學(xué)不嫉妒,好強不逞強,聰明不傲慢,出色不張揚!

骨宜剛,氣宜柔,志宜大,膽宜小,心宜虛,言宜實,慧宜增,福宜惜。做人要以禮義交際,以廉恥律己!

做事先做人,這是處事原則;立業(yè)先立德,這是做人原則。做事不做人,永遠做不成事;做人不立德,永遠做不成人!

自尊、自知、自制是做人最高境界。尊重自己、尊重別人、保持尊嚴,對自己的行為負責(zé)是做人的基本素養(yǎng)!第八講軟件測試內(nèi)容和目的測試的目的和策略測試的活動測試的產(chǎn)品測試的方法和度量要求測試用例構(gòu)造技術(shù)測試的目標(biāo)Myers測試是一個為了尋找錯誤而運行的過程一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例一個成功的測試是指揭示了迄今為止尚未發(fā)現(xiàn)的錯誤的測試IEEE由人工或自動方法來執(zhí)行或評價系統(tǒng)或系統(tǒng)部件的過程,以驗證它是否滿足規(guī)定的需求;或識別出期望的結(jié)果和實際結(jié)果之間有無差別。Myers軟件測試十原則程序員應(yīng)避免測試自己編制的程序測試用例的設(shè)計必須包括預(yù)期的輸出結(jié)果測試用例應(yīng)包括有效的和期望的輸入情況,也要包括無效的和不期望的輸入情況徹底檢查每個測試結(jié)果只檢查程序是否做了它應(yīng)該做的事僅僅完成了測試工作的一半,另一半則是要檢查程序是否做了它不該做的事避免不可重復(fù)的即興測試,保留全部測試用例一段程序中存在錯誤的概率與在這段程序中已發(fā)現(xiàn)的錯誤數(shù)成正比測試是一項非常復(fù)雜、創(chuàng)造性的和需要高度智慧的挑戰(zhàn)性任務(wù)不要為了便于測試擅自修改程序測試工作必須有明確的目標(biāo)測試的原則(DAVIE)所有的測試都應(yīng)追溯到需求應(yīng)該在測試工作真正開始前的較長時間就進行測試計劃Pareto(20-80)原則應(yīng)用于軟件測試測試應(yīng)從“小規(guī)?!遍_始,逐步轉(zhuǎn)向“大規(guī)?!备F舉測試是不可能的為了達到最佳效果,應(yīng)該由獨立的第三方來構(gòu)造測試測試策略途徑測試開始于模塊層,然后延伸到整個基于計算機的系統(tǒng)集合中不同的測試技術(shù)適用于不同的時間點測試是由軟件的開發(fā)人員和(對大型系統(tǒng)來說)獨立的測試組來管理的測試和調(diào)試是不同的活動,但是調(diào)試必須能夠適應(yīng)任何的測試策略測試完成準則資源耗盡采用的測試方法滿足某種測試充分性要求滿足覆蓋率等可度量的測試要求一段時期沒有發(fā)現(xiàn)問題且所有發(fā)現(xiàn)問題均已解決通過測試評估出軟件達到要求的可靠度測試發(fā)現(xiàn)頻率和趨勢達到預(yù)先計劃的限度之下(限度根據(jù)要求、經(jīng)驗和歷史數(shù)據(jù)得到)在一段時期沒有出現(xiàn)等級高的問題測試概圖階段活動單元集成合格性系統(tǒng)技術(shù)方法靜態(tài)測試靜態(tài)分析代碼審查動態(tài)測試白盒測試白盒測試用例技術(shù)黑盒測試黑盒測試用例技術(shù)V模型系統(tǒng)需求軟件需求概要設(shè)計詳細設(shè)計單元測試集成測試編碼合格性測試系統(tǒng)測試詳細設(shè)計概要設(shè)計軟件需求系統(tǒng)需求軟件任務(wù)編譯后的單元測試后的單元集成的軟件測試后的軟件交付軟件驗證驗證驗證驗證驗證驗證驗證與確認驗證與確認J.McDermid于1994年在“軟件工程師參考手冊”中提出測試活動單元測試(UNIT)集成測試(INTERGRATION)合格性測試(QUALIFICATION)系統(tǒng)測試(SYSTEM)單元測試對軟件單元進行測試,確實保證它作為一個單元能正常地工作單元測試的目的是驗證單元滿足功能、性能和接口等的要求單元測試采用的技術(shù):靜態(tài)分析、代碼審查、白盒動態(tài)測試測試的充分性由各種測試覆蓋率來度量單元動態(tài)測試的內(nèi)容主要針對下列模塊的五個基本特性進行:模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行路徑出錯處理路徑影響以上各點的邊界條件單元測試用例的要求1)用指定值、異常值和極限值驗證全部計算;2)驗證全部輸入數(shù)據(jù)的各種選擇;3)驗證全部輸出數(shù)據(jù)的各種選擇和格式;4)每個單元的全部可執(zhí)行語句至少執(zhí)行一次;5)在每個分支點進行選擇的測試。單元測試用例的內(nèi)容1)指明被驗證的需求或功能;2)解釋測試如何進行,說明驗證代碼與單元設(shè)計一致的準則和技術(shù),以驗證接口滿足需求;3)指明測試使用的支持軟件,如測試工具、驅(qū)動模塊、樁模塊、動態(tài)路徑分析工具等;4)說明全部輸入數(shù)據(jù)和(或)驅(qū)動程序等;5)說明預(yù)期的輸出,包括數(shù)據(jù)值或其它可以驗證的結(jié)果;6)通過準則。

測試概圖階段活動單元集成合格性系統(tǒng)技術(shù)方法靜態(tài)測試靜態(tài)分析代碼審查動態(tài)測試白盒測試白盒測試用例技術(shù)黑盒測試黑盒測試用例技術(shù)V模型系統(tǒng)需求軟件需求概要設(shè)計詳細設(shè)計單元測試集成測試編碼合格性測試系統(tǒng)測試詳細設(shè)計概要設(shè)計軟件需求系統(tǒng)需求軟件任務(wù)編譯后的單元測試后的單元集成的軟件測試后的軟件交付軟件驗證驗證驗證驗證驗證驗證驗證與確認驗證與確認

J.McDermid于1994年在“軟件工程師參考手冊”中提出測試活動單元測試(UNIT)集成測試(INTERGRATION)合格性測試(QUALIFICATION)系統(tǒng)測試(SYSTEM)單元測試對軟件單元進行測試,確實保證它作為一個單元能正常地工作單元測試的目的是驗證單元滿足功能、性能和接口等的要求單元測試采用的技術(shù):靜態(tài)分析、代碼審查、白盒動態(tài)測試測試的充分性由各種測試覆蓋率來度量單元動態(tài)測試的內(nèi)容主要針對下列模塊的五個基本特性進行:模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行路徑出錯處理路徑影響以上各點的邊界條件單元測試用例的要求1)用指定值、異常值和極限值驗證全部計算;2)驗證全部輸入數(shù)據(jù)的各種選擇;3)驗證全部輸出數(shù)據(jù)的各種選擇和格式;4)每個單元的全部可執(zhí)行語句至少執(zhí)行一次;5)在每個分支點進行選擇的測試。單元測試用例的內(nèi)容1)指明被驗證的需求或功能;2)解釋測試如何進行,說明驗證代碼與單元設(shè)計一致的準則和技術(shù),以驗證接口滿足需求;3)指明測試使用的支持軟件,如測試工具、驅(qū)動模塊、樁模塊、動態(tài)路徑分析工具等;4)說明全部輸入數(shù)據(jù)和(或)驅(qū)動程序等;5)說明預(yù)期的輸出,包括數(shù)據(jù)值或其它可以驗證的結(jié)果;6)通過準則。

單元測試執(zhí)行環(huán)境驅(qū)動模塊被測單元樁模塊B樁模塊C樁模塊A集成測試依據(jù)軟件設(shè)計確定的軟件結(jié)構(gòu),按照軟件集成“工序”,把各個軟件單元逐步集成為完整的軟件系統(tǒng),并不斷發(fā)現(xiàn)和排除錯誤,以保證聯(lián)接、集成的正確性。

集成測試的內(nèi)容1)軟件單元的接口測試;2)軟件部件的功能、性能測試;3)全面數(shù)據(jù)結(jié)構(gòu)測試;4)必要的運行時間、存貯空間、計算精度測試;5)邊界條件和非法輸入的測試。

集成測試的要求1)必須對有調(diào)用關(guān)系的軟件單元之間的所有調(diào)用進行測試,驗證每個調(diào)用接口的完整性和一致性;2)應(yīng)對軟件進行正確處理的能力的經(jīng)受錯誤影響的能力進行測試;3)應(yīng)測試在各種外部輸入下,從外部接口采集和(或)發(fā)送數(shù)據(jù)的能力,包括對正確數(shù)據(jù)及狀態(tài)的處理,對接口錯誤、數(shù)據(jù)錯誤、協(xié)議錯誤的識別及處理。

集成測試的通過準則1)軟件單元無錯誤地連接;2)滿足各項功能、性能要求;3)對錯誤的輸入有正確處理的能力;4)對測試中的異常有合理解釋;5)人機界面、對外接口正確無誤;軟件集成策略1)非增量方式先測試好每一個軟件單元,然后一次組裝在一起再測試整個程序。2)增量方式逐步把下一個要被組裝的軟件單元或部件,同已測好的軟件部件結(jié)合起來測試。增量方式主要包括自頂向下、自底向上、自頂向下與自底向上相結(jié)合等方法。集成方式非增量方式

BigBang增量方式自頂向下方法自底向上方法“三明治”方法增量和非增量方式的優(yōu)缺點增量方式的優(yōu)點:a.增量方式占用人工較少。b.增量方式可以較早地發(fā)現(xiàn)模塊接口錯誤。c.增量方式容易排錯。d.增量方式測試效果好,比較徹底。非增量方式的優(yōu)點:a.非增量方式占用機器時間較少。b.非增量方式有利于并行開發(fā)。非增量方式有一種很直接、原始的組裝方式,它把所有通過單元測試的模塊一古腦兒地全部集成在一起,直接組裝成軟件系統(tǒng),并對它進行測試。這種被貶義地稱作大爆炸(BigBang)的組裝方式,目前仍在許多場合使用。

人們期望它可以帶來方便、快捷的組裝效果。這種方法遭到廣大測試專家的批評,普遍認為它會引起混亂,且難以確定錯誤源的位置。自頂向下方法自頂向下集成法是一個模塊一個模塊地組裝軟件的方法。按照控制的結(jié)構(gòu),從主控模塊(主程序)開始,向下地逐個把模塊連接起來。集成的方式有兩種:深度優(yōu)先組裝法及寬度優(yōu)先組裝法。深度優(yōu)先法是先把結(jié)構(gòu)中的一條主要的控制路經(jīng)上的全部模塊逐步組裝起來。然后再連接其它的控制路徑。寬度優(yōu)先法是從結(jié)構(gòu)的頂層開始逐層往下組裝。自頂向下集成的過程步驟1)主控模塊用作為測試驅(qū)動器。直接附屬于主控模塊的各模塊全都用樁模塊代替。2)按照所選的組裝法(即深度優(yōu)先或?qū)挾葍?yōu)先)每次用一個真模塊取代一個附屬的樁模塊。3)當(dāng)裝入每個真模塊時都要進行測試。4)作完每一組測試后又再用一個真模塊代替另一個樁模塊。5)可以進行回復(fù)測試(即重新再作過去作過的全部或部分測試),以便肯定沒有新的錯誤發(fā)生。自底向上方法自底向上集成測試方法是從軟件結(jié)構(gòu)中最底層的、最基本的軟件單元開始進行集成和測試。由于在逐步向上組裝過程中下層模塊總是存在的,也就是說不再需要樁模塊了,但卻需要調(diào)用這些模塊開展工作的驅(qū)動模塊。自底向上集成的過程步驟1)低層的模塊組成簇,以執(zhí)行某個特定的軟件子功能。2)編寫一個驅(qū)動模塊作為測試的控制程序,和被測試的簇連在一起,負責(zé)安排測試用例的輸入及輸出。3)對簇進行測試。4)拆去各個小簇的驅(qū)動模塊,把幾個小簇合并成大簇,再重復(fù)做2、3及4步。

這樣在軟件結(jié)構(gòu)上逐步向上組裝。“三明治”方法自頂向下測試的主要優(yōu)點是能較早顯示出整個程序的輪廓。主要缺點是,當(dāng)測試上層模塊時使用樁模塊較多,很難模擬出真實模塊的全部功能,使部分測試內(nèi)容被迫推遲,直至換上真實模塊后再補充測試。自底向上測試從下層模塊開始,設(shè)計測試用例比較容易,但是在測試的早期不能顯示出程序的輪廓。針對自頂向下、自底向上方法各自的優(yōu)點和不足,人們提出了自頂向下和自底向上相結(jié)合,從兩頭向中間逼近的混合式組裝方法,被形象稱之為“三明治”方法。“三明治”方法的步驟步驟:1)對上層模塊采取自頂向下測試;2)對關(guān)鍵模塊或子系統(tǒng)采取自底向上測試?;旌鲜降摹叭髦巍狈椒ǎC合了自頂向下、自底向上兩種方法的長處,揚了長避了短。例如,對關(guān)鍵模塊采取自底向上測試,就可能把輸入輸出模塊提前組裝進程序,使設(shè)計測試用例變得較為容易;或者使具有重要功能的模塊早點與有關(guān)的模塊相連,以便及早暴露可能存在的問題。除關(guān)鍵模塊及少數(shù)與之相關(guān)的模塊外,對其余模塊尤其是上層模塊仍采取自頂向下的測試方法,以便收到較早顯示程序總體輪廓的效果。合格性測試根據(jù)軟件需求規(guī)格說明中定義的全部功能、性能、可靠性等需求,測試整個軟件是否達到要求。合格性測試內(nèi)容功能測試性能測試資源和余量測試邊界測試操作測試外部接口測試強度測試可靠性測試安全性測試恢復(fù)性測試安裝性測試移植性測試保密性測試回歸測試功能測試根據(jù)功能需求進行測試,以確認軟件與軟件功能需求的一致功能測試應(yīng)達到以下要求:a.每一個軟件功能都必須被測試用例或被認可的異常所覆蓋(或由于異常情況的出現(xiàn)而未達到期望的覆蓋,但該異常已被測試者認識到,并進行了處理);b.用一系列合理的數(shù)據(jù)類型和數(shù)據(jù)值運行,測試軟件在正常、超負荷、飽和和其它“最壞”情況下的結(jié)果;c.用假想的數(shù)據(jù)類型和數(shù)據(jù)值運行,以測試軟件排斥不規(guī)則(非法)輸入的能力。性能測試對軟件是否與所需定量的性能需求一致進行確認。包括:a.軟件在獲得定量結(jié)果時計算的精確性;b.有時間要求的軟件,其實際的運行時間;c.軟件完成功能所能處理的數(shù)據(jù)量;d.軟件各部分的協(xié)調(diào)性;e.其它性能指標(biāo)。

資源和余量測試測試是否符合軟件需求規(guī)格說明中提出的處理時間、儲存空間和內(nèi)存、輸入/輸出通道等資源使用的要求,并在設(shè)計中為這些資源留出了余量。通常情況下,應(yīng)保證在儲存空間和內(nèi)存,輸入/輸出通道,以及處理時間的占用上至少有20%的余量。邊界測試測試軟件在輸入域和(或)輸出域、數(shù)據(jù)結(jié)構(gòu)、狀態(tài)轉(zhuǎn)換、過程參數(shù)、功能界限等邊界點或端點情況下的運行狀態(tài)。

操作測試操作測試包括對用戶接口、人機接口和人機交互要求的所有測試。應(yīng)以常規(guī)操作、非常規(guī)操作、誤操作、快速操作等情況來檢驗界面的可靠性。操作測試工作還包括對照軟件使用說明,逐條進行相應(yīng)的操作,以檢測軟件使用說明的完整性、正確性、與軟件程序的一致性。外部接口測試確認軟件與其外部接口要求的一致性。測試內(nèi)容:a.測試所有外部接口,檢測接口信息的格式和內(nèi)容。b.對每一個外部輸入/輸出接口應(yīng)進行正常和異常情況測試。如果軟件不能在運行環(huán)境中測試,則有必要使用模擬程序或其它測試工具。

強度測試強度測試是在預(yù)先規(guī)定的一段時間內(nèi),在軟件設(shè)計的極限狀態(tài)下,進而在超設(shè)計能力的狀態(tài)下,運行軟件以測試軟件的所有功能??梢栽试S在飽和點上性能降級,但必須保證仍能順利運行??煽啃詼y試軟件可靠性測試是以能獲得可用來評估軟件可靠性的數(shù)據(jù)為目的的一種軟件測試。例如,基于軟件運行剖面設(shè)計軟件測試用例,并用這些測試用例按出現(xiàn)概率進行隨機輸入以模擬軟件真實運行狀態(tài),運行軟件以獲得失效數(shù)據(jù),進而給出軟件的可靠性度量,這就是一種軟件可靠性測試。軟件運行剖面是指:1)軟件運行期間執(zhí)行各個任務(wù)的事件和各事件相應(yīng)概率的集合。2)系統(tǒng)使用條件的一種定義,系統(tǒng)輸入值用其按時間或在可能輸入范圍中以概率分布來定義。

安全性測試針對程序中危險防止和危險處理設(shè)施進行的測試,以驗證其是否有效。安全性測試應(yīng)包括下面的工作:a.全面檢驗軟件在軟件需求規(guī)格說明中規(guī)定的防止危險狀態(tài)措施的有效性和在每一個危險狀態(tài)下的反應(yīng);b.對軟件設(shè)計中用于提高安全性的結(jié)構(gòu)、算法、容錯、冗余、中斷處理等方案,進行針對性測試;c.在異常條件下測試軟件,以表明不會因可能的單個或多個輸入錯誤而導(dǎo)致不安全狀態(tài)。d.用錯誤的安全性關(guān)鍵操作進行測試,以驗證系統(tǒng)對這些操作錯誤的反應(yīng);e.對安全性關(guān)鍵的軟件單元和軟件部件,要單獨進行加強的測試,以確認其滿足安全性需求?;謴?fù)性測試對有恢復(fù)或重置(RESET)功能的軟件,應(yīng)專門對每一類導(dǎo)致恢復(fù)或重置的情況進行測試,以確認恢復(fù)或重置功能。安裝性測試按規(guī)程進行安裝正確性測試,包括參數(shù)裝訂、程序加載等。移植性測試在所有要求的移植環(huán)境中運行軟件以驗證軟件的移植性。保密性測試驗證軟件是否提供了軟件需求規(guī)格說明中規(guī)定的保密機制,使軟件的機密性、完整性和有效性不被破壞?;貧w測試回歸測試是一種選擇性重新測試,目的是檢測系統(tǒng)或系統(tǒng)組成部分在修改期間產(chǎn)生的缺陷,用于驗證已進行的修改并未引起不希望的有害效果,或確認修改后的系統(tǒng)或系統(tǒng)組成部分仍滿足規(guī)定的要求。Alpha測試和Beta測試開發(fā)者想預(yù)見用戶的使用過程是不可能的對于通用軟件產(chǎn)品,讓每個用戶都進行接收(驗收)測試是不切實際的采用Alpha測試和Beta測試來發(fā)現(xiàn)只有最終用戶才能發(fā)現(xiàn)的問題Alpha測試:由一個用戶在開發(fā)者的場所、在開發(fā)者指導(dǎo)下進行測試Beta測試:由最終用戶在一個或多個用戶場所單獨地進行測試系統(tǒng)測試軟件與與系統(tǒng)中其它的軟、硬件對接并測試其接口的過程系統(tǒng)測試的目的,是在真實的系統(tǒng)工作環(huán)境下檢驗軟件是否能與系統(tǒng)正確連接,,并確認軟件是否與用戶需求(系統(tǒng)需求)一致系統(tǒng)測試內(nèi)容安裝性測試功能測試性能測試操作測試外部接口測試安全性測試:注意進行硬件和軟件在各種故障模式下的測試;最壞配置情況下的測試;錯誤操作情況下的測試;多機系統(tǒng)出現(xiàn)故障切換時,系統(tǒng)的功能、性能連續(xù)平穩(wěn)性測試性能強度測試降級能力強度測試獨立(第三方)測試第三方指的是與軟件項目甲方、乙方相對獨立的其它機構(gòu)。進行獨立測試的目的是進一步加強軟件質(zhì)量保證工作,提高軟件的質(zhì)量,并對軟件產(chǎn)品進行客觀評價。進行第三方獨立測試通常有以下優(yōu)點:1)發(fā)揮專業(yè)技術(shù)優(yōu)勢;2)發(fā)揮獨立性優(yōu)勢;3)進一步促進承辦方的工作。測試方法靜態(tài)測試靜態(tài)分析代碼審查代碼走查技術(shù)評審桌面檢查動態(tài)測試白盒測試控制流覆蓋數(shù)據(jù)流覆蓋黑盒測試功能分解等價類劃分邊值分析因果圖隨機測試猜錯法靜態(tài)測試代碼審查:小組集體閱讀討論檢查代碼代碼走查:小組集體用“腦”執(zhí)行并檢查代碼桌面檢查:由程序員閱讀自己編寫的程序技術(shù)評審:會議形式討論檢查代碼靜態(tài)分析:對代碼的機械性、程式化的特性分析方法,包括控制流分析、數(shù)據(jù)流分析、接口分析、表達式分析白盒測試與黑盒測試對比黑盒測試白盒測試優(yōu)點適用于各測試階段從產(chǎn)品功能角度測試容易入手生成測試數(shù)據(jù)可以構(gòu)成測試數(shù)據(jù)使特定程序部分得到測試有一定的充分性度量手段可獲得較多工具支持缺點某些代碼段得不到測試如果規(guī)格說明有誤則無法發(fā)現(xiàn)不易進行充分性度量不易生成測試數(shù)據(jù)無法對未實現(xiàn)規(guī)格說明得部分測試工作量大,通常只用于單元測試,有引用局限性質(zhì)是一種確認技術(shù),回答“我們在構(gòu)造一個正確得系統(tǒng)嗎?”是一種驗證技術(shù),回答“我們在正確地構(gòu)造一個系統(tǒng)嗎?”白盒測試控制流測試語句覆蓋分支覆蓋條件覆蓋條件組合覆蓋路徑覆蓋數(shù)據(jù)流測試全定義使用路徑全使用路徑全定義路徑數(shù)據(jù)流異常狀態(tài)圖測試覆蓋率采用白盒法進行測試時,考慮的是測試用例對程序內(nèi)部邏輯的覆蓋程度。最徹底的白盒法是覆蓋程序中的每一條路徑,但這往往大到無法實現(xiàn)。因此采用其它一些標(biāo)準來量度覆蓋的程度,并希望覆蓋程度盡可能高些。例子func(intA,B,X){if((A>1)&&(B=0)){X:=X/A};if((A=2)||(X>1)){X:=X+1};}A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced流圖符號語句覆蓋語句覆蓋:選擇足夠的測試用例,使得程序中每個語句至少都能被執(zhí)行一次。語句覆蓋率:已執(zhí)行的可執(zhí)行語句占程序中可執(zhí)行語句總數(shù)的百分比。語句覆蓋例取A=2,B=0,X=3A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced分支覆蓋分支覆蓋又稱判定覆蓋。分支覆蓋:執(zhí)行足夠的測試用例,使得程序中每個判定都獲得一次“真”值和“假”值,或者說使得程序中的每一個分支至少都通過一次。分支覆蓋率:已取過“真”和“假”兩個值的判定占程序中所有條件判定個數(shù)的百分比。分支覆蓋例A=3,B=0,X=1沿路徑acd執(zhí)行A=2,B=1,X=3沿路徑abe執(zhí)行A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced條件覆蓋條件覆蓋:執(zhí)行足夠的測試用例,使得判定中的每個子條件都獲得所有可能的結(jié)果。條件覆蓋例共有四個條件:A>1,B=0,A=2,X>1A=2,B=0,X=4沿路徑ace執(zhí)行A=1,B=1,X=1沿路徑abd執(zhí)行A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced分支/條件覆蓋分支/條件覆蓋:執(zhí)行足夠的測試用例,

使得判定中每個子條件取到各種可能的值,并使每個判定取到各種可能的結(jié)果。分支/條件覆蓋例做練習(xí)A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced條件組合覆蓋條件組合覆蓋:執(zhí)行足夠的測試用例,使得每個判定中各條件的所有可能的組合都出現(xiàn)一次。條件組合覆蓋例共有8種條件:①A>1,B=0②A>1,B≠0③A≤1,B=0④A≤1,B≠0⑤A=2,X>1⑥A=2,X≤1⑦A≠2,X>1⑧A≠2,X≤1A=2,B=0,X=4(①⑤)A=2,B=1,X=1(②⑥)A=1,B=0,X=2(③⑦)A=1,B=1,X=1(④⑧)A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced路徑覆蓋路徑覆蓋:執(zhí)行足夠的測試用例,使程序所有可能的路徑都獲得通過。路徑覆蓋例四條路徑:ace,abd,abe,acdA=2,B=0,X=3(ace)A=1,B=0,X=1(abd)A=2,B=1,X=1(abe)A=3,B=0,X=1(acd)A>1andB=0A>1andB=0X=X/AX=X/AYESYESNONOabced覆蓋率要求對單元測試來說,語句覆蓋和分支覆蓋是最基本的要求。由于程序中錯誤(異常)處理工作的重要性以及其結(jié)構(gòu)相對簡單,要求錯誤處理要做到路徑覆蓋。對質(zhì)量要求高的軟件單元,可根據(jù)情況提出條件覆蓋、分支/條件覆蓋、條件組合覆蓋以及其它更高的覆蓋要求。控制流測試的測試用例生成經(jīng)驗測試法通過研究程序選擇初始測試用例通過測試執(zhí)行和覆蓋率統(tǒng)計增加測試用例不斷運行直至達到要求的測試覆蓋率與黑盒測試結(jié)合純粹白盒測試方法列出為實現(xiàn)覆蓋所需的全部路徑根據(jù)每個路徑設(shè)計測試用例注意測試零次循環(huán)、一次循環(huán)和最大次數(shù)循環(huán)黑盒測試功能分解等價類劃分邊值分析因果圖猜錯法功能分解使用功能抽象的方法把程序分解為功能單元使用數(shù)據(jù)抽象的方法產(chǎn)生測試每個功能單元的數(shù)據(jù)注意測試功能序列組合和輸入數(shù)據(jù)組合等價類劃分將輸入數(shù)據(jù)域劃分各自具有典型代表意義的有限個等價類,從每個等價類中產(chǎn)生一些代表性測試用例輸入范圍的左、中、右各個離散類別不同的處理方式注意劃分有效等價類和無效等價類設(shè)計一些僅覆蓋一個等價類的測試用例邊值分析經(jīng)驗表明,程序在邊界處的處理常常是關(guān)鍵的,也是容易發(fā)生錯誤的使用正好等于、小于、大于邊界值的數(shù)據(jù)進行測試,發(fā)現(xiàn)錯誤的概率較大,這就是邊值分析技術(shù)使用原則:如果輸入條件規(guī)定了取值范圍或數(shù)據(jù)個數(shù),則可選擇正好等于邊界值、剛剛在邊界范圍內(nèi)和剛剛超越邊界外的值進行測試針對規(guī)格說明的每個輸入條件,使用上述原則對于有序數(shù)列,選擇第一個和最后一個因果圖通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判斷表,然后為判斷表的每一列設(shè)計一個測試用例:分析規(guī)格說明,引出原因(輸入條件)和結(jié)果(輸出條件),并進行標(biāo)識建立連接各個原因和各個結(jié)果的因果圖標(biāo)注不可能出現(xiàn)的原因和結(jié)果組合情況將因果圖轉(zhuǎn)換為決策表對每一列建立一個測試用例隨機測試從所有可能的輸入值中隨機選取測試輸入數(shù)據(jù)的方法使數(shù)據(jù)在規(guī)定的取值范圍內(nèi)并服從預(yù)期的概率分布基于運行剖面的測試方法是可靠性測試的主要方法預(yù)期結(jié)果可以由人工或定性的方法確定是強度測試的有效手段猜錯法列出所有可能有的錯誤和易錯情況表,基于該表設(shè)計測試用例有力的補充充分發(fā)揮敏銳、經(jīng)驗等能力直

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論