軟件測試于質(zhì)量保證題庫及軟件測試與質(zhì)量保證_第1頁
軟件測試于質(zhì)量保證題庫及軟件測試與質(zhì)量保證_第2頁
軟件測試于質(zhì)量保證題庫及軟件測試與質(zhì)量保證_第3頁
軟件測試于質(zhì)量保證題庫及軟件測試與質(zhì)量保證_第4頁
軟件測試于質(zhì)量保證題庫及軟件測試與質(zhì)量保證_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、選擇題(每題只有一個選項,將你認(rèn)為合理的選項填在題前括號內(nèi),每小題2分,共16分)(D)1、較實用的軟件測試停止標(biāo)準(zhǔn)是()。A、測試超產(chǎn)過了預(yù)定時間,則停止測試。B、根據(jù)單位時間內(nèi)查出故障的數(shù)量決定是否停止測試。C、執(zhí)行了所有的測試用例,但并沒有發(fā)現(xiàn)故障,則停止測試。D、用圖表示出某個測試階段中單位時間檢查出的故障數(shù)量,通過對圖中曲線的分析,確定應(yīng)繼續(xù)測試還是停止測試。(C)2、軟件測試的目的是:A、表明軟件是正確的 B、評價軟件質(zhì)量C、盡可能發(fā)現(xiàn)軟件中的錯誤 D、判定軟件是否合格(A)3、()不是常見的覆蓋率標(biāo)準(zhǔn)。A、函數(shù)覆蓋 B、數(shù)據(jù)流覆蓋 C、邏輯覆蓋 D、功能覆蓋(B)4、將基于功能的和基于實現(xiàn)的測試方法結(jié)合在一起的動態(tài)測試類型,我們稱這種測試為()。A、白盒測試 B、灰盒測試 C、黑盒測試 D、基于故障的測試(B)5、下列不隸屬于白盒測試方法的是():A、控制流測試 B、健壯性測試 C、數(shù)據(jù)流測試 D、變異測試(A)6、項目管理三要素不包括()。 A、Programming B、Process C、Problem D、Process(D)7、下列選項中,不是Mercury公司測試工具的是()。A、LoadRunner B、WinRunner C、TestDirector D、Rebot(A)8、下面()方法能夠有效地檢測輸入條件的各種組合可能引起的錯誤。A、因果圖 B、等價類劃分 C、邊界值分析 D、錯誤推測(D)1、通常,()是在編碼階段進(jìn)行的測試,它是整個測試工作的基礎(chǔ)。A、系統(tǒng)測試 B、確認(rèn)測試 C、集成測試 D、單元測試(A)2、據(jù)權(quán)威部門統(tǒng)計,軟件錯誤產(chǎn)生的原因分布圖表中,如下()選項是導(dǎo)致軟件錯誤的主要原因:A、軟件需求規(guī)格說明錯誤B、設(shè)計錯誤C、編碼錯誤D、測試錯誤(C)3、軟件測試充分性理論是由()最先提出的。A、Deutsch和Willis B、McCalletal.C、Goodenough和Gerhart D、Evansh和Marciniak(C)4、軟件測試風(fēng)險管理包含()和風(fēng)險控制兩方面內(nèi)容。A、 風(fēng)險排序 B、風(fēng)險識別 C、風(fēng)險評估 D、風(fēng)險分析(D)5、下列不屬于黑盒測試方法的是()。A、等價類劃分 B、狀態(tài)測試 C、邊界值分析 D、變異測試(A)6、常見的覆蓋率標(biāo)準(zhǔn)不包括()。A、函數(shù)覆蓋 B、邏輯覆蓋 C、數(shù)據(jù)流覆蓋 D、功能覆蓋(B)7、因果圖是()公司最先發(fā)明并實施的。A、SUN B、IBM C、Microsoft D、ORACLE(D)8、針對下面一個程序段:if ((A>1)&&(B==0))S1;If ((A==2)||(X>1))S2;其中,S1、S2均為語句塊?,F(xiàn)在選取測試用例:A=2B=0X=3,該測試用例滿足了()。A、路徑覆蓋 B、條件組合覆蓋C、判定覆蓋 D、語句覆蓋(A)1、下列各測試工具中隸屬于Mercury公司產(chǎn)品的是()A、WinRunner B、JUnit C、Purify D、WebStress(D)2、下面關(guān)于軟件測試的說法,其中正確的是()經(jīng)過測試沒有發(fā)現(xiàn)錯誤,說明程序正確 成功的測試是沒有發(fā)現(xiàn)錯誤的測試測試的目標(biāo)是為了證明程序沒有錯誤 D、成功的測試是發(fā)現(xiàn)了迄今尚未發(fā)現(xiàn)的錯誤的測試(B)3、在某種類型會議上,由小組成員閱讀程序,以發(fā)現(xiàn)程序錯誤,同時測試員利用測試數(shù)據(jù)人工運(yùn)行程序并得出輸出結(jié)果,然后由參加者對結(jié)果進(jìn)行審查,以達(dá)到測試的目的。這種測試方法是()。A、軟件審查 B、代碼走查 C、技術(shù)評審 D、代碼審查(C)4、測試充分性準(zhǔn)則內(nèi)容不包括()。A、空集不充分性 B、單調(diào)性 C、可靠性 D、復(fù)雜性(A)5、控制流覆蓋準(zhǔn)則約束最弱的是()。A、點覆蓋 B、邊覆蓋 C、條件覆蓋 D、路徑覆蓋(C)6、設(shè)計測試用例時候,()是用得最多的一種黑盒測試方法。A、因果圖 B、等價類劃分 C、邊界值分析 D、錯誤推測(B)7、軟件測試風(fēng)險管理包含()和風(fēng)險控制兩方面內(nèi)容。A、風(fēng)險識別 B、風(fēng)險評估 C、風(fēng)險排序 D、風(fēng)險分析(A)8、對下面的計算個人所得稅程序中if(income<800) taxrate=0;elseif(income<=1500) taxrate=0.05;elseif(income<2000) taxrate=0.08;elsetaxrate=0.1;滿足判定覆蓋的測試用例是()。A、income=(799,1500,1999,2000) B、income=(799,1501,2000,2001)C、income=(800,1500,2000,2001) D、income=(800,1499,2000,2001)二、判斷題(判斷下列題目是否正確,如果正確請打“√”,錯誤請打“×”每小題2分,共8分)(√)1、技術(shù)評審即是一種技術(shù)手段,也是一種質(zhì)量管理手段。(×)2、設(shè)計-實現(xiàn)-測試,軟件測試是開發(fā)后期的一個階段。(×)3、單元測試僅僅證明了被測程序單元做了什么。(×)4、由于函數(shù)覆蓋率是基于代碼的,所以也可以把函數(shù)覆蓋歸入黑盒測試的范疇。(√)1、在軟件測試中,測試預(yù)言是一種檢驗待測系統(tǒng)在特定執(zhí)行下是否正確運(yùn)行的方法。(×)2、在白盒測試中,如果覆蓋率達(dá)到100%,就基本可以保證把所有的隱藏程序缺陷都已經(jīng)揭露出來了。(×)3、軟件測試的目的在于發(fā)現(xiàn)錯誤、改正錯誤。(√)4、由于函數(shù)覆蓋率是基于代碼的,所以也可以把函數(shù)覆蓋歸入白盒測試的范疇。(×)1、軟件測試等于程序測試。(×)2、我是個很棒的程序員,我無需進(jìn)行單元測試。(√)3、在白盒測試中,即使覆蓋率達(dá)到100%,也無法保證所有的隱藏程序缺陷都已經(jīng)被揭露出來。(×)4、由于函數(shù)覆蓋率是基于代碼的,所以也可以把函數(shù)覆蓋歸入黑盒測試的范疇。(×)1、軟件故障是導(dǎo)致軟件失效的必要和充分要素。(√)2、同行評審的主要目標(biāo)在于檢測錯誤、核對與標(biāo)準(zhǔn)的偏離。(√)3、在任何軟件機(jī)構(gòu)中,定期、不定期的培訓(xùn)、再培訓(xùn)都是必須而且是必要的。(√)4、在整個機(jī)構(gòu)中使用基礎(chǔ)設(shè)施防護(hù)與改進(jìn)部件的主要目標(biāo)是在機(jī)構(gòu)積累的SQA經(jīng)驗基礎(chǔ)上消除或至少降低出錯率。(×)5、所有SQA活動和項目里程碑的完成或項目里程碑的檢驗是同時發(fā)生的。(×)6、DanielGalin等提在20世紀(jì)50年代建立的經(jīng)典質(zhì)量費(fèi)用模型,提供了一種以經(jīng)濟(jì)學(xué)觀點把與產(chǎn)品質(zhì)量保證相關(guān)的費(fèi)用非類的方法學(xué)。(√)7、一旦更改過的SCI替換了前面的SCI,就認(rèn)為完成了軟件的一個新版本。(√)8、軟件質(zhì)量成本是一個投資問題,而不是成本問題!(×)9、SEICMM評估標(biāo)準(zhǔn),ISO9001和ISO9000-3標(biāo)準(zhǔn)是典型的項目過程標(biāo)準(zhǔn)。(√)10、軟件質(zhì)量保證的獨(dú)特性是由軟件產(chǎn)品不同于其他制造產(chǎn)品的本質(zhì)決定的。(√)1、在專業(yè)的軟件開發(fā)、維護(hù)中,SQA環(huán)境是建立、執(zhí)行SQA方法時必須首要考慮的問題。(×)2、如何看待軟件產(chǎn)品內(nèi)部的缺陷,開發(fā)者和用戶的立場是一致的。(√)3、專家觀點通過引進(jìn)補(bǔ)充的外部能力到機(jī)構(gòu)內(nèi)部開發(fā)過程中來而支持質(zhì)量評估工作。(×)4、質(zhì)量管理標(biāo)準(zhǔn)是專業(yè)標(biāo)準(zhǔn),它們向開發(fā)組提供方法學(xué)指南。(√)5、軟件生命周期模型強(qiáng)調(diào)的是直接開發(fā)活動,而沒有指示出開發(fā)過程的顧客參與。(×)6、規(guī)程具有機(jī)構(gòu)范圍的適用性,它的執(zhí)行和具體執(zhí)行的人或組織背景有著密切關(guān)系。(×)7、CAPA的目的在于檢測、處理、改正軟件缺陷。(×)8、項目進(jìn)展控制SQA工具有Gatt圖、日歷、數(shù)據(jù)流圖和活動網(wǎng)絡(luò)圖。(√)9、IEEE、ISO、DOD、ANSI、EIA都是著名的SQA標(biāo)準(zhǔn)開發(fā)機(jī)構(gòu)。(√)10、在科學(xué)和工程中,如果沒有度量,對一切都沒有一個定量的了解,那么這種科學(xué)和工程既不是有效的,也不是實際的。(×)1、在軟件產(chǎn)品制定生產(chǎn)計劃階段,不必進(jìn)行重大的SQA活動。(√)2、軟件故障是導(dǎo)致軟件失效的必要,而非充分要素。(×)3、只有客戶才會有興趣透徹定義它的需求以確保他約定的軟件產(chǎn)品的質(zhì)量。(√)4、軟件質(zhì)量系統(tǒng)之間各不相同,說明機(jī)構(gòu)SQA系統(tǒng)構(gòu)建存在固有靈活性。(√)5、質(zhì)量管理標(biāo)準(zhǔn)指導(dǎo)軟件開發(fā)、維護(hù)和基礎(chǔ)設(shè)施的管理。它的重點是需要什么,但沒有指明如何達(dá)到標(biāo)準(zhǔn)要求的努力細(xì)節(jié)。(×)6、通常,檢查表的使用的是強(qiáng)制性的。(×)7、CAPA的執(zhí)行從根本上依賴于正確的指導(dǎo)和經(jīng)常的培訓(xùn)。(√)8、軟件質(zhì)量度量面臨的特有困難根植于包含于軟件質(zhì)量度量的測量(參數(shù))中。(√)9、一旦更改過的SCI替換了前面的SCI,就認(rèn)為完成了軟件的一個新版本。(×)10、SQA項目過程標(biāo)準(zhǔn)如CMM、ISO9000-3標(biāo)準(zhǔn)。三、填空題(每空1分,共14分;請把答案書寫在相應(yīng)橫線上。)1、軟件測試過程包含的測試活動有測試計劃,測試設(shè)計,測試實施,測試執(zhí)行,缺陷跟蹤和測試評估2、軟件測試策略的確定過程通常經(jīng)歷確定測試需求、評估風(fēng)險、確定測試策略三個階段組成。3、變異測試的理論基礎(chǔ)是程序員能力假設(shè)和組合效應(yīng)假設(shè)。4、軟件缺陷打開/關(guān)閉圖表、根本原因圖表、軟件缺陷關(guān)閉周期表是常用的軟件缺陷跟蹤圖表。5、軟件測試規(guī)范可以分為行業(yè)規(guī)范和操作規(guī)范。1、通常,由人工進(jìn)行的靜態(tài)測試方法包括桌面檢查、代碼審查、代碼走查和技術(shù)評審。2、典型的測試設(shè)計活動包括測試用例設(shè)計、測試過程設(shè)計、設(shè)計驅(qū)動程序和穩(wěn)定的樁。3、按照測試的層次和策略,軟件測試可以分為單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。4、為了考察測試用例的重要性,我們可以從有效性、可重用性、易組織性、可評估性、可管理性五方面理解。5、面向?qū)ο蠹蓽y試常見方法包括抽樣測試、正交矩陣(陣列)測試。1、面向?qū)ο鬁y試充分性三個常用標(biāo)準(zhǔn)是基于狀態(tài)的覆蓋率、基于約束的覆蓋率和基于代碼的覆蓋率。2、常見的程序分析視角有句法視角,功能視角、文本視角和計算流視角3、按照測試用例的設(shè)計方法,軟件測試可以分為白盒測試、黑盒測試和灰盒測試。4、我們可以按照編寫過程、執(zhí)行過程和組織過程三個緯度對測試用例屬性進(jìn)行歸類。5、單元測試內(nèi)容包含如下方面:模塊接口測試、邊界條件測試、錯誤處理測試、局部數(shù)據(jù)結(jié)構(gòu)測試和重要路徑測試。1、軟件質(zhì)量工程包括軟件質(zhì)量保證、軟件質(zhì)量規(guī)劃和軟件質(zhì)量控制三大方面。2、McCall模型產(chǎn)品修改緯度的質(zhì)量因素有可維護(hù)性、可測試性、靈活性。3、面向?qū)ο竽P筒煌谄渌P偷闹饕卣魇墙M件的密集重用。4、有兩種同行評審方法學(xué):審查和走查。5、RMA可以劃分成三組類別內(nèi)部風(fēng)險管理措施、分包風(fēng)險管理措施和顧客風(fēng)險管理措施。6、支持性質(zhì)量手段有模板和檢查表。7、依據(jù)軟件系統(tǒng)的生命周期和其他階段,軟件質(zhì)量度量劃分為軟件過程度量和軟件產(chǎn)品度量。8、軟件配置發(fā)布的版本有基線版本、中間版本、修訂版本。9、SQA標(biāo)準(zhǔn)被劃分成軟件質(zhì)量管理標(biāo)準(zhǔn)和軟件項目過程標(biāo)準(zhǔn)兩類。10、軟件缺陷的固有特征有軟件缺陷的固有性、軟件缺陷的敏感性、軟件缺陷的感染性。1、McCall模型劃分了軟件運(yùn)行、軟件轉(zhuǎn)移、軟件修改三個緯度的11個軟件質(zhì)量因素。2、螺旋模型任何一次迭代都可劃分為制定計劃、風(fēng)險分析和化解、工程和顧客評估四個項限。3、依據(jù)合同評審的目標(biāo)對合同評審主題進(jìn)行分類為建議草案評審主題和合同草案評審主題兩種類型。4、典型的版本方針包括嚴(yán)格-單一活動版本方針、多版本方針。5、軟件對屬于各種質(zhì)量因素的需求的符合性是由軟件質(zhì)量度量來測量的。6、CAPA過程的成功運(yùn)行包含如下活動:信息收集、信息分析、解決方案和改進(jìn)方法的建立、改進(jìn)方法的執(zhí)行、跟蹤。7、常見的軟件配置演化模型有線性演化模型和樹演化模型。8、軟件更改的質(zhì)量保證工作需要每個更改的SCI的質(zhì)量保證和整個新軟件系統(tǒng)版本的質(zhì)量保證兩個級別的活動。9、從內(nèi)容和重點上我們可以把質(zhì)量管理標(biāo)準(zhǔn)劃分成認(rèn)證標(biāo)準(zhǔn)和評估標(biāo)準(zhǔn)兩種類型。10、測試人員、SQA單位是SQA專職人員。1、CMM內(nèi)容包含初始級、可重復(fù)級、已定義級、已管理級和可優(yōu)化級五個等級。2、軟件質(zhì)量保證的目標(biāo)包括面向產(chǎn)品的軟件開發(fā)和面向過程的軟件維護(hù)兩大方面。3、開發(fā)生命周期階段SQA部件可以劃分成三類:評審、專家觀點、軟件測試、軟件維護(hù)SQA部件和由第三方/分包商使用的SQA部件。4、版本方針和更改方針是維護(hù)方針的主要組成。5、外部參與方可被分類為分包商、COTS軟件和重用軟件模塊的供貨商和顧客自身三組。6、在任何機(jī)構(gòu)中,CAPA要正確發(fā)揮作用需要CAPA記錄流的跟蹤、CAPA執(zhí)行的跟蹤和CAPA執(zhí)行結(jié)果的跟蹤三個要的跟蹤任務(wù)。7、軟件更改的質(zhì)量保證工作需要每個更改的SCI的質(zhì)量保證和整個新軟件系統(tǒng)版本的質(zhì)量保證兩個級別的活動。8、軟件過程度量可以進(jìn)一步劃分為軟件過程質(zhì)量度量、軟件過程進(jìn)度度量和軟件過程生產(chǎn)率度量。9、從內(nèi)容和重點上我們可以把質(zhì)量管理標(biāo)準(zhǔn)劃分成認(rèn)證標(biāo)準(zhǔn)和評估標(biāo)準(zhǔn)兩種類型。10、通常,軟件質(zhì)量的管理部件有項目進(jìn)展控制、軟件質(zhì)量度量、軟件質(zhì)量費(fèi)用和可用于控制軟件維護(hù)的工具SQA管理工具。四、名詞解釋(每小題3分,共18分)1、軟件測試風(fēng)險軟件測試風(fēng)險是指軟件測試過程出現(xiàn)的或潛在的問題2、動態(tài)測試技術(shù)通過在抽樣測試數(shù)據(jù)上運(yùn)行程序來檢驗程序的動態(tài)行為和運(yùn)行結(jié)果以發(fā)現(xiàn)缺陷。3、確認(rèn)測試確認(rèn)測試是驗證軟件的功能和性能及其它特性是否與用戶的要求一致。對軟件的從功能、性能、可靠性、易用性等方面作全面的質(zhì)量檢測,幫助軟件企業(yè)找出產(chǎn)品存在的問題,出具相應(yīng)的產(chǎn)品質(zhì)量報告。4、條件組合覆蓋條件組合覆蓋是邏輯覆蓋標(biāo)準(zhǔn)的一種,它要求選取足夠多的測試數(shù)據(jù),使得每個判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。5、L10N軟件本地化6、(軟件產(chǎn)品的)FURPSFURPS即軟件系統(tǒng)的功能、可使用性、可靠性、性能和支持等特性。1、L10N&&I18N軟件本地化和國際化2、軟件測試項目管理軟件測試項目管理就是以測試項目為管理對象,通過一個臨時性的專門的測試組織,運(yùn)用專門的軟件測試知識、技能、工具和方法,對測試項目進(jìn)行計劃、組織、執(zhí)行和控制,并在時間成本、軟件測試質(zhì)量等方面進(jìn)行分析和管理活動。3、軟件測試文檔測試文檔是對要執(zhí)行的軟件測試及測試的結(jié)果進(jìn)行描述、定義、規(guī)定和報告的任何書面或圖示信息。4、測試用例測試用例是為了特定目的而設(shè)計的測試數(shù)據(jù)及相關(guān)測試規(guī)程的一個特定集合,即為有效發(fā)現(xiàn)軟件缺陷的最小測試執(zhí)行單元。5、白盒測試白盒測試是指測試人員根據(jù)程序的內(nèi)部結(jié)構(gòu)特性和與程序路徑相關(guān)的數(shù)據(jù)特性,設(shè)計測試數(shù)據(jù)組成測試用例執(zhí)行程序的一種動態(tài)測試。6、無效等價類無效等價類是指對于程序的規(guī)格說明來說,不合理的,沒有意義的輸入數(shù)據(jù)的集合。軟件測試軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。或軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計的一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例運(yùn)行程序,以及發(fā)現(xiàn)錯誤的過程。2、測試用例的有效性軟件測試用例是測試人員測試過程中的重要參考依據(jù);不同測試人員根據(jù)相同測試用例所得到的輸出應(yīng)該是一致的。3、軟件測試規(guī)范軟件測試規(guī)范是對軟件測試流程的過程化,并對每一個過程元素進(jìn)行明確界定,而形成的完整的規(guī)范體系。4、條件覆蓋條件覆蓋隸屬控制流覆蓋標(biāo)準(zhǔn)的范疇,它不僅要求每個語句至少執(zhí)行一次,而且要求使得判定表達(dá)式中每個條件都取得各種可能的結(jié)果5、TDD測試驅(qū)動開發(fā)(TestDrivenDevelopment)6、α測試α測試是由用戶在開發(fā)環(huán)境下進(jìn)行的測試,也可以是公司內(nèi)部的用戶在模擬實際操作環(huán)境下進(jìn)行的測試。這是在受控制的環(huán)境下進(jìn)行的測試。Crosby軟件質(zhì)量的定義系統(tǒng)、部件或過程滿足規(guī)定需求的程度。2、軟件可靠性(IEEE)軟件可靠性是指一個系統(tǒng)或組件在某個特定時期、特定條件下完成所需完成的功能的能力。3、規(guī)程規(guī)程是完成某件事情或行動的特定方式,即規(guī)程是為了完成一個任務(wù),根據(jù)給定方法所執(zhí)行的詳細(xì)活動或過程。4、開發(fā)風(fēng)險軟件開發(fā)風(fēng)險是軟件開發(fā)任務(wù)或環(huán)境的一種狀態(tài)或性質(zhì),如果忽略它,將增加軟件項目失敗的可能。5、(軟件工程領(lǐng)域)模板在軟件工程領(lǐng)域,模板指的是小組或機(jī)構(gòu)創(chuàng)建的,用于編輯報告以及其他形式文檔的格式。6、軟件配置管理一個負(fù)責(zé)應(yīng)用(計算機(jī)化的或非計算機(jī)化的)技術(shù)工具和管理規(guī)程、使之能夠完成為維護(hù)SCI和軟件配置版本所需任務(wù)的SQA部1、DanielGalin軟件質(zhì)量保證的擴(kuò)展定義軟件質(zhì)量保證是一個有系統(tǒng)的、有計劃的行動集合,它是提供軟件產(chǎn)品開發(fā)、維護(hù)過程符合其已建立的技術(shù)需求以及跟上計劃安排和在預(yù)算限制之內(nèi)進(jìn)行管理上的需求充分信任所必需的。2、合同評審合同評審是一個指導(dǎo)評審建議草案和合同文檔的SQA部件。3、規(guī)程規(guī)程是完成某件事情或行動的特定方式,即規(guī)程是為了完成一個任務(wù),根據(jù)給定方法所執(zhí)行的詳細(xì)活動或過4、4W1HW1H即WHAT,WHEN,WHERE,WHO和HOW。他們具體含義如下:WHAT--Whatactivitieshavetobeperformed?WHEN--WhenShouldtheactivitybeperformed?WHERE--Whereshouldtheactivitybeperformed?WHO--Whoshouldperformtheactivity?HOW--Howshouldeachactivitybeperformed?5、受控文檔受控文檔是那些目前就對軟件系統(tǒng)的開發(fā)、維護(hù)以及與目前和將來顧客關(guān)系的管理重要或可能變得重要的,并且處于控制狀態(tài)下的文檔。6、軟件質(zhì)量度量一個項目具有給定質(zhì)量屬性的程度定量測度;或一個函數(shù),其輸入為軟件數(shù)據(jù)、輸出為單一的數(shù)值,該值可以被理解為軟件具有給定質(zhì)量屬性的程度Pressman軟件質(zhì)量的定義軟件質(zhì)量是符合明確陳述的功能性能需求、明確文檔化了的開發(fā)標(biāo)準(zhǔn)和所有專業(yè)開發(fā)預(yù)期的隱含特性。2、軟件開發(fā)風(fēng)險軟件開發(fā)風(fēng)險是軟件開發(fā)任務(wù)或環(huán)境的一種狀態(tài)或性質(zhì),如果忽略它,將增加軟件項目失敗的可能。3、合同評審合同評審是一個指導(dǎo)評審建議草案和合同文檔的SQA部件。4、質(zhì)量記錄質(zhì)量記錄是一種特殊類型的受控文檔。它是面向顧客的文檔,用于證實同顧客需求的全面符合性以及貫穿于開發(fā)和維護(hù)全過程的軟件質(zhì)量保證系統(tǒng)的有效運(yùn)行5、軟件可靠性管理軟件可靠性管理指通過一個程序使軟件的可靠性得到最優(yōu)化的過程。此程序著重于軟件防錯(softwareerrorprevention),發(fā)現(xiàn)并清除fault;此程序著重于采用一定措施并根據(jù)諸如資源,進(jìn)度表及性能的約束條件使可靠性最大化。6、軟件配置版本軟件配置版本是指在給定時間點上組成軟件系統(tǒng)的、已批準(zhǔn)而且文檔化的SCI版本的集合。五、問答題(每小題4分,共20分)談?wù)勀銓ψ儺悳y試原理的理解。(1)使用變異算子對被測程序做微小的合乎語法的變動,每個新程序稱為一個變異體;(2)根據(jù)已有的測試數(shù)據(jù)運(yùn)行變異體;(3)比較變異體和原程序的運(yùn)行結(jié)果:如果兩者不同就稱該測試數(shù)據(jù)將該變異體殺死了;否則稱該變異體是活的。2、請闡述軟件測試的原則。(1)盡早的和不斷的測試應(yīng)作為軟件開發(fā)人員的座右銘。(2)測試用例應(yīng)當(dāng)由測試數(shù)據(jù)和與之對應(yīng)的預(yù)期結(jié)果組成。(3)測試用例應(yīng)包括合理的輸入條件和不合理的輸入條件。(4)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。(5)充分注意測試當(dāng)中的群體現(xiàn)象。(6)要對每一個測試結(jié)果作全面的檢查。(7)保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護(hù)工作提供充分的資料。3、測試用例設(shè)計的考慮因素有哪些?(1)測試用例必須具有代表性、典型性;[1分](2)測試用例要濃縮系統(tǒng)設(shè)計;[1分](3)測試用例既要考慮正確的輸入,也需要考慮錯誤或異常的輸入,以及促使這些錯誤、異常發(fā)生的條件;[1分](4)用戶測試用例設(shè)計需要考慮用戶實際使用場景。[1分]4、集成測試策略中,漸增式與非漸增式集成策略各有何優(yōu)、缺點?為什么通常采用漸增式?非漸增式集成策略是將所有的模塊一次連接起來,簡單、易行,節(jié)省機(jī)時,但測試過程中難于查錯,發(fā)現(xiàn)錯誤也很難定位,測試效率低。[1分]漸增式集成策略是將模塊一個一個地連入系統(tǒng),每連入一個模塊,都要對新系統(tǒng)進(jìn)行測試。這種組裝測試方案比較非漸增式,容易查出錯誤及進(jìn)行錯誤定位,有利于查出模塊接口部分的錯誤,因此測試效率高。但漸增式較費(fèi)機(jī)時。[2分]比較兩種集成策略,顯然漸增式有利于實現(xiàn)測試的目標(biāo),故通常采用漸增式進(jìn)行組裝測試。[1分]5、請評價白盒測試?(1)[2分]優(yōu)點迫使測試人員去仔細(xì)思考軟件的實現(xiàn);可以檢測代碼中的每條分支和路徑;揭示隱藏在代碼中的錯誤;對代碼的測試比較徹底;最優(yōu)化。(2)[2分]缺點昂貴;無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤;白盒測試不驗證規(guī)格的正確性。黑盒測試的特點有哪些?(1)不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性;[1分](2)測試人員只需知道該程序輸入和輸出之間的關(guān)系或功能;[1分](3)設(shè)計測試用例的依據(jù)是需求規(guī)格說明書或用戶手冊;[1分](4)尤其適合于一些第三方軟件測試,由于無法得到源程序,無法用其它方法進(jìn)行測試。[1分]等價類劃分的步驟如何?(1)根據(jù)輸入條件把數(shù)目極多的輸入數(shù)據(jù)劃分成若干有效等價類和若干無效等價類;[2分](2)設(shè)計一個測試用例,使其覆蓋盡可能多的尚未被覆蓋的有效等價類,重復(fù)該步驟,直至所有有效等價類均被覆蓋;[1分](3)設(shè)計一個測試用例,使其覆蓋一個的尚未被覆蓋的無效等價類,重復(fù)該步驟,直至所有無效等價類均被覆蓋。[1分]3、談?wù)勀銓Α俺掷m(xù)的軟件測試”的理解。持續(xù)的軟件測試有兩方面的含義:(1)完整的軟件測試工作應(yīng)該貫穿整個軟件生存周期存周期[2分](2)軟件開發(fā)不同階段都有軟件測試工作,即軟件測試工作的各個步驟分布在整個軟件生存周期中。[2分]4、一般的軟件項目管理與軟件測試項目管理之間的區(qū)別由那些?(1)對于一般的軟件項目管理,成本和進(jìn)度控制是最重要的;[2分](2)而在軟件測試項目管理中,質(zhì)量第一是基本點,所有測試項目管理工作都要圍繞提高產(chǎn)品質(zhì)量展開,最終保證在合理的成本、進(jìn)度下滿足用戶需求或期望。[2分]5、與桌面檢查相比,代碼審查與代碼走查有哪些優(yōu)點?(1)桌面檢查即程序員自己檢查自己的程序。通常,由于程序員思維定勢、心理因素的限制,使得桌面檢查效率不高。[2分](2)代碼走查、代碼審查采用成組方式進(jìn)行,一旦發(fā)現(xiàn)錯誤就知道了錯誤的位置和性質(zhì),從而大大降低了調(diào)試費(fèi)用和成本;另外代碼走查、代碼審查可以一次發(fā)現(xiàn)一批錯誤,錯誤發(fā)現(xiàn)效率較高。[2分]1、請比較白盒測試與黑盒測試方法?(1)白盒測試只考慮測試軟件產(chǎn)品,它不保證完整的需求規(guī)格是否被滿足。而黑盒測試只考慮測試需求規(guī)格,它不保證實現(xiàn)的所有部分是否被測試到。[1分](2)黑盒測試會發(fā)現(xiàn)遺漏的缺陷,指出規(guī)格的哪些部分沒有被完成。而白盒測試會發(fā)現(xiàn)代理方面的缺陷,指出哪些實現(xiàn)部分是錯誤的。[1分](3)白盒測試比黑盒測試成本要高得多。它需要在測試可被計劃前產(chǎn)生源代碼,并且在確定合適的數(shù)據(jù)和決定軟件是否正確方面需要花費(fèi)更多的工作量。[1分](4)一個白盒測試的失敗會導(dǎo)致一次修改,這需要所有的黑盒測試被重復(fù)執(zhí)行并且重新決定白盒測試路徑。[1分]測試項目中,主要的測試文檔有哪些?測試計劃、測試設(shè)計規(guī)格說明、測試用例說明、測試規(guī)程規(guī)格說明、測試執(zhí)行報告、測試日志、測試缺陷報告、測試總結(jié)報告等3、談?wù)勀銓Α败浖y試的必要性”的理解。軟件測試的必要性主要體現(xiàn)在如下方面:程序代碼最終體現(xiàn)了軟件的質(zhì)量;軟件測試力爭發(fā)現(xiàn)更多的缺陷盡量減少殘留的缺陷;軟件測試提高軟件的正確性;軟件測試建立對軟件的信心;軟件測試掌握軟件的質(zhì)量水平;軟件測試是軟件質(zhì)量保證的重要手段。4、請闡述測試用例在代碼走查中的作用。(1)代碼走查中,測試用例并不是關(guān)鍵,也并不是僅想驗證這幾個測試用例運(yùn)行是否正確,人腦畢竟比計算機(jī)慢太多;(2)這里測試用例是作為懷疑程序邏輯與計算錯誤的啟發(fā)點,在隨測試實例游歷程序邏輯時,在懷疑程序的過程中發(fā)現(xiàn)錯誤。5、測試覆蓋準(zhǔn)則的作用如何?1)定量地規(guī)定軟件測試需求,指導(dǎo)測試數(shù)據(jù)的選擇;(2)度量測試數(shù)據(jù)集,揭示軟件特定特征的能力;(3)對測試結(jié)果和軟件可靠性評估具有重要影響。專業(yè)軟件開發(fā)的SQA環(huán)境有哪些特征?遵守合同約定;服從顧客供貨商關(guān)系;需要協(xié)同工作;需要同其他開發(fā)組的合作和協(xié)調(diào);同其它軟件系統(tǒng)的接口;項目組有變化時項目繼續(xù)進(jìn)行;需要持續(xù)維護(hù)軟件系統(tǒng)若干年。請指出走查、審查這兩種同行評審方法的不同?走查和審查的區(qū)別是其正式性的等級。其中,審查是兩者之中更為正式。[2分]走查的發(fā)現(xiàn)限于被評審文檔的意見,而審查的發(fā)現(xiàn)還同改進(jìn)開發(fā)方法自身的工作相結(jié)合。所以和走查相比,審查對一般的SQA做出了更大貢獻(xiàn)。請詳細(xì)描述軟件質(zhì)量費(fèi)用的經(jīng)典模型?在經(jīng)典軟件質(zhì)量費(fèi)用模型中,軟件質(zhì)量費(fèi)用可以劃分為控制費(fèi)用、控制失效費(fèi)用。其中,控制費(fèi)用被進(jìn)一步細(xì)化為預(yù)防費(fèi)用和評價費(fèi)用;控制失效費(fèi)用進(jìn)一步細(xì)化為內(nèi)部失效費(fèi)用、外部失效費(fèi)用。預(yù)防費(fèi)用包括建立軟件質(zhì)量基礎(chǔ)設(shè)施、更新并改進(jìn)基礎(chǔ)設(shè)施以及完成其運(yùn)行所需的常規(guī)活動的投資。評價費(fèi)用花在特定項目或軟件系統(tǒng)中軟件錯誤的檢測上。內(nèi)部失效費(fèi)用是指改正在顧客現(xiàn)場安裝軟件之前實施設(shè)計評審、軟件測試及驗收測試時檢測到的錯誤而產(chǎn)生的費(fèi)用。(4)外部失效費(fèi)用限定為改正由顧客或維護(hù)組在顧客現(xiàn)場安裝軟件系統(tǒng)之后檢測到的失效的費(fèi)用。認(rèn)證標(biāo)準(zhǔn)和評估標(biāo)準(zhǔn)的主要區(qū)別?認(rèn)證標(biāo)準(zhǔn)的重點是外部的--支持供貨商顧客關(guān)系[2分],而評估標(biāo)準(zhǔn)的重點是內(nèi)部的。因為評估標(biāo)準(zhǔn)關(guān)注的是軟件過程改進(jìn)[2分]。5、CCB的決策機(jī)制有哪些種類?你認(rèn)為其中那種決策機(jī)制更實用?(1)最普遍的方法是投票決定。每個代表都投票,采用少數(shù)服從多數(shù)的方式。這種民主的做法能夠充分調(diào)動CCB成員的機(jī)機(jī)性;但是少數(shù)服從多數(shù)含義模糊,該決策模式也容易產(chǎn)生一些政見。(2)極端的做法是所有決策都交給一個人,這種安排鼓勵在決策中靈活考慮各種意見,但壓抑了CCB其他成員的積極性;(3)第三種可行的決策機(jī)制是尋求CCB成員的一致意見,同時提供合理的跳出機(jī)制。綜合考慮上述三種不同CCB決策機(jī)制,第三種策略最為實用。6、傳統(tǒng)質(zhì)量成本和現(xiàn)代質(zhì)量成本的主要區(qū)別有哪些?傳統(tǒng)的質(zhì)量成本集中在與失效有關(guān)的事件和活動,如損壞、缺陷等。傳統(tǒng)質(zhì)量成本通常以報廢、返工、返修等形式出現(xiàn);[2分]現(xiàn)代的質(zhì)量成本的目的則在于通過預(yù)防和評估活動中的適當(dāng)投入,減少與失效有關(guān)的活動。[2分]Crosby,Juran,Pressman軟件質(zhì)量定義的比較。(1)Crosby的定義指的是寫好的軟件符合由顧客和它的專業(yè)組編制的規(guī)格說明書的程度。這也意味著包含在規(guī)格說明中的錯誤是不予考慮的,也不降低軟件質(zhì)量—顯然這是不足的。[1分](2)Juran的定義旨在達(dá)到顧客滿意度,這就要求對檢查改正顧客的需求規(guī)格書投入大量工作。但該定義的主要缺點是免除了顧客對軟件規(guī)格書準(zhǔn)確性、完備性的責(zé)任。[1分](3)Pressman定義為SQA提出了要由開發(fā)者滿足的三個要求:特定功能需求,它主要是指軟件系統(tǒng)的輸出;在合同中提出的軟件質(zhì)量標(biāo)準(zhǔn);反映當(dāng)今水平的專業(yè)方法的良好軟件工程方法的發(fā)展水平。實際上,Pressman定義提供了測試滿足需求程度的操作方向。談?wù)勀銓贤u審過程的理解?合同評審是一個指導(dǎo)評審建議草案和合同文檔的SQA部件。其過程分為兩個階段進(jìn)行:[1分](1)第一階段—提交給可能顧客之前的建議草案評審;[1分](2)第二階段—簽約前的合同草案評審,該階段在建議和合同談判期達(dá)成的理解基礎(chǔ)上評審合同草案。[1分]每個評審階段完成后,要求建議組與法律部進(jìn)行必要的修改、補(bǔ)充和改正。[1分]請列舉典型的軟件質(zhì)量基礎(chǔ)設(shè)施SQA部件?(不少于5個)規(guī)程與工作條例、支持性質(zhì)量手段、員工培訓(xùn)與認(rèn)證、改正性和預(yù)防性措施、配置管理、文檔編制控制請指出軟件質(zhì)量費(fèi)用擴(kuò)展模型對軟件質(zhì)量費(fèi)用經(jīng)典模型的擴(kuò)展。仔細(xì)考察經(jīng)典軟件質(zhì)量費(fèi)用模型的考察,我們將發(fā)現(xiàn)經(jīng)典軟件質(zhì)量費(fèi)用模型沒有能夠涵蓋管理以及管理性失效導(dǎo)致的軟件質(zhì)量費(fèi)用。[2分]軟件質(zhì)量費(fèi)用擴(kuò)展模型拓展了經(jīng)典軟件質(zhì)量費(fèi)用模型,以涵蓋管理人員對軟件質(zhì)量總費(fèi)用的‘貢獻(xiàn)’—軟件質(zhì)量的擴(kuò)展模型:相對經(jīng)典軟件質(zhì)量費(fèi)用,軟件質(zhì)量費(fèi)用擴(kuò)展模型添加了管理性準(zhǔn)備與控制費(fèi)用和管理性失效費(fèi)用。[2分](管理性準(zhǔn)備與控制費(fèi)用同實施的預(yù)防性管理失效或減少這些這些失效的預(yù)期出現(xiàn)的活動相關(guān)聯(lián);)請描述ISO9000-3質(zhì)量管理系統(tǒng)的基本原理(1)顧客關(guān)注。機(jī)構(gòu)依靠它們的顧客,所以應(yīng)當(dāng)理解當(dāng)前的與未來的顧客需要;(2)領(lǐng)導(dǎo)--建立并維護(hù)一個積極的內(nèi)部環(huán)境中行使領(lǐng)導(dǎo)權(quán),以實現(xiàn)機(jī)構(gòu)的目標(biāo);(3)人們的投入。人是機(jī)構(gòu)之本,他們在各機(jī)構(gòu)層次的全身心投入使得他們的能力能用于為機(jī)構(gòu)謀益;(4)過程方法--當(dāng)把活動與資源作為過程管理的時候,就更有效地達(dá)到理想的結(jié)果;(5)管理理的系統(tǒng)方法--把過程作為一個系統(tǒng)管理;(6)持續(xù)改進(jìn)--對全面性能正在進(jìn)行的改進(jìn)應(yīng)當(dāng)在機(jī)構(gòu)的日程上優(yōu)先;(7)決策制定的實在方法。有效決策是建立在信息分析的基礎(chǔ)上的;(8)相互支持的供貨商關(guān)系。一個機(jī)構(gòu)和它的供貨商是互相依賴時,相互支持的供貨由關(guān)系增強(qiáng)雙方創(chuàng)造增加值的能力6、傳統(tǒng)質(zhì)量成本和現(xiàn)代質(zhì)量成本的主要區(qū)別有哪些?傳統(tǒng)的質(zhì)量成本集中在與失效有關(guān)的事件和活動,如損壞、缺陷等。傳統(tǒng)質(zhì)量成本通常以報廢、返工、返修等形式出現(xiàn);現(xiàn)代的質(zhì)量成本的目的則在于通過預(yù)防和評估活動中的適當(dāng)投入,減少與失效有關(guān)的活動。在軟件產(chǎn)品與其他工業(yè)產(chǎn)品之間的區(qū)別主要有哪些?并描述這些不同?軟件產(chǎn)品和其他工業(yè)產(chǎn)品的主要區(qū)別有如下幾點:(1)產(chǎn)品的復(fù)雜性;產(chǎn)品的復(fù)雜性能夠用產(chǎn)品許可的操作方式的數(shù)目來度量:工業(yè)產(chǎn)品,即使是高級機(jī)器,也不允許由其不同的機(jī)器組合建立的幾千種以上的操作方式;一個典型的軟件,人們可以發(fā)現(xiàn)上百萬種軟件操作的可能。(2)產(chǎn)品的可見性;工業(yè)產(chǎn)品是可見的,而軟件產(chǎn)品是不可見的。工業(yè)產(chǎn)品的大多數(shù)缺陷可在制造過程中檢測出來;然而軟件產(chǎn)品的缺陷是不可見的,軟件包中的組件可能從一開始就缺失了。(3)產(chǎn)品開發(fā)和制造過程的特殊性。同工業(yè)產(chǎn)品相比,軟件產(chǎn)品不能在生產(chǎn)過程的所有三個階段檢測缺陷。能夠檢測缺陷的唯一階段是開發(fā)階段。高度螺旋模型每次迭代必需的活動包含哪些?顧客的需求規(guī)格說明、意見與更改要求;開發(fā)者的計劃制定活動;開發(fā)者的風(fēng)險分析與化解;開發(fā)者設(shè)計活動;開發(fā)者關(guān)于編碼、測試、發(fā)布的構(gòu)造活動;顧客的評價3、請從SQA的角度,闡述分別編寫用戶需求文檔和系統(tǒng)需求文檔的理由?(1)很自然人們會想到只有客戶才會有興趣透徹定義它的需求以確保他約定的軟件產(chǎn)品的質(zhì)量。他編制的需求文檔是對低質(zhì)量的基礎(chǔ)防護(hù);(2)然而我們對各種軟件質(zhì)量因素的分析表明,開發(fā)者可以添加代表它自身利益的需求,例如可重用性需求、可驗證性需求等;許多情況下,某些沒有包括在典型客戶需求文檔中的質(zhì)量因素確是開發(fā)者感興趣的。而,諸如可移植性、可重用性、可驗證性等質(zhì)量因素,客戶很少感興趣。這也就是人們?yōu)楹畏謩e編制客戶需求文檔和系統(tǒng)需求文檔的理由。4、主要的SQA維護(hù)基礎(chǔ)設(shè)施工具有哪些?主要的SQA維護(hù)基礎(chǔ)設(shè)施工具有軟件維護(hù)規(guī)程和工作條例、支持性軟件質(zhì)量手段、維護(hù)組的培訓(xùn)和認(rèn)證、預(yù)防性和改正性措施、軟件配置管理、軟件維護(hù)文檔和質(zhì)量記錄等5、軟件質(zhì)量度量過程模型包含哪些活動?(1)軟件質(zhì)量需求的定義;(2)軟件質(zhì)量度量和評估的準(zhǔn)備;(3)軟件質(zhì)量度量的執(zhí)行、分析和確認(rèn)6、傳統(tǒng)質(zhì)量成本和現(xiàn)代質(zhì)量成本的主要區(qū)別有哪些?(1)[2分]傳統(tǒng)的質(zhì)量成本集中在與失效有關(guān)的事件和活動,如損壞、缺陷等。傳統(tǒng)質(zhì)量成本通常以報廢、返工、返修等形式出現(xiàn);(2)[2分]現(xiàn)代的質(zhì)量成本的目的則在于通過預(yù)防和評估活動中的適當(dāng)投入,減少與失效有關(guān)的活動。六、應(yīng)用題(每小題8分,共24分)1、某軟件需求規(guī)格說明中包含如下要求:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進(jìn)行文件修改。但是,如果第一列字符不正確,則輸出信息L;如果第二列字符不是數(shù)字,則給出信息M。請采用因果圖進(jìn)行分析,并繪制出該軟件需求規(guī)格說明對應(yīng)的因果圖。[4分]識別出所有原因和所有結(jié)果,并給出原因、結(jié)果元的編號如下:編號原因1第一列字符為A2第一列字符為B3第二列字符為一個數(shù)字11中間原因21修改文件22給出信息L23給出信息M(2)[4分]識別所有原因與原因之間,原因與結(jié)果之間,結(jié)果與結(jié)果之間的關(guān)系,再次接觸上繪制出因果圖如下圖所示。2、某程序模塊功能描述如下:用戶輸入分別合乎規(guī)則輸入年、月、日,程序即給出相應(yīng)日期的下一天。假設(shè)限定該模塊年份在區(qū)間[1840,3000],月份、日規(guī)定滿足公歷約束。試分別選取測試數(shù)據(jù)對年進(jìn)行(1)基本邊界值測試和(2)健壯性測試。假設(shè)該模塊的輸入:年、月、日分別使用變量year,month,day表示。[4分]基本邊界值測試的測試數(shù)據(jù)year值在有效取值區(qū)間內(nèi)取極值,其他變量取正常值。依據(jù)基本邊界值測試基本原理,測試數(shù)據(jù)選擇如下:組別測試數(shù)據(jù)1year=1840,month=1,day=122year=1841,month=2,day=203year=2002,month=9,day=14year=2999,month=11,day=105year=3000,month=3,day=30[4分]健壯性測試的測試數(shù)據(jù)year值在整個取值區(qū)間內(nèi)取極值,其他變量取正常值。依據(jù)健壯性測試基本原理,數(shù)據(jù)選擇如下:組別測試數(shù)據(jù)1year=1840,month=1,day=122year=1841,month=2,day=203year=2002,month=9,day=14year=2999,month=11,day=105year=3000,month=3,day=306year=1839,month=4,day=197year=3001,month=8,day=223、某程序模塊如下,其中,S1,S2均為語句塊:if((A>1)AND(B==0))S1;if((A==2)OR(X>1))S2;請把上述代碼轉(zhuǎn)換成程序流程圖分別選擇測試數(shù)據(jù)使得(2)判定覆蓋、(3)條件組合覆蓋標(biāo)準(zhǔn)都能夠得到滿足。(1)[2分]程序流程圖(2)(2)[2分]判定覆蓋標(biāo)準(zhǔn)A=2,B=0,X=3;A=1,B=1,X=1(3)[4分]條件組合覆蓋A=2,B=0,X=3;A=1,B=1,X=1;A=2,B=1,X=1A=1,B=0,X=21、閱讀如下C程序:要求:請繪制出左邊代碼對應(yīng)的流圖;計算所得流圖的環(huán)形復(fù)雜度要求:請繪制出左邊代碼對應(yīng)的流圖;計算所得流圖的環(huán)形復(fù)雜度V(G);假設(shè)輸入的取值范圍為(1000,20001),請用基本路徑測試方法為變量year設(shè)計測試用例,使其滿足基本路徑測試的要求。 if(year%4==0){ if(year%100==0){ if(year%400!=0) leap=1; else leap=0; }elseleap=1; }else leap=0;returnleap;}[3分]流圖(2)[1分]V(G)=e-n+2=14-12+2=判定點數(shù)+1=區(qū)域數(shù)=4(3)[4分]問題3要求設(shè)計滿足基本路徑覆蓋的測試用例,而且輸入的取值范圍(1000,2001)。所選擇的測試數(shù)據(jù)只要使得獨(dú)立路徑數(shù)量得到滿足即可。典型的測試數(shù)據(jù)為:測試用例編號測試數(shù)據(jù)預(yù)期執(zhí)行結(jié)果測試路徑1year=1001leap=01-2-3-11-122year=1004leap=11-2-4-5-10-11-123year=1100leap=01-2-4-6-7-9-10-11-124year=2000leap=11-2-4-6-8-10-11-122、被測程序段為:可供選擇的測試數(shù)據(jù)組合如下:可供選擇的測試數(shù)據(jù)組合如下:xyⅠ31Ⅱ-12Ⅲ03Ⅳ12找出實現(xiàn)(1)語句覆蓋;(2)判定覆蓋;(3)條件覆蓋至少要選擇的數(shù)據(jù)組。(1)III [2分] (2)III,IV [3分] (3)I,III [3分]3、擬對如下的軟件結(jié)構(gòu):請圖形的方式分別給出(1)深度優(yōu)先的自頂向下集成測試策略、(2)自底向上集成測試策略的對上述軟件結(jié)構(gòu)進(jìn)行集成測試的詳細(xì)集成過程。假設(shè)集成測試過程中必須的驅(qū)動模塊、樁模塊分別編號:MX、SX,其中X為整數(shù)即驅(qū)動模塊或樁模塊編號。[4分]深度優(yōu)先的自頂向下集成測試策略(2)[4分]自底向上集成測試策略1、有一段子程序:procedureexample(y,z:real;varx:real)begin if (y>1)and(z=0)thenx:=x/y; if (y=2)or(x=l)thenx:=x+l;end.該子程序接受x,y,z的值,并將計算結(jié)果x的值返回給調(diào)用程序。答題要求:(1)把上述子程序轉(zhuǎn)化成程序流程圖。(2)用白盒法設(shè)計測試用例,并使得所設(shè)計的一組或幾組測試數(shù)據(jù)能夠滿足條件組合覆蓋標(biāo)準(zhǔn)。 (1)程序流程圖(2)[4分]用白盒法中條件組合覆蓋設(shè)計測試用例:①y=2,z=0,x=4;②y=2,z=1,x=1;③y=1,z=0,x=2;④y=1,z=1,x=1.2、某程序模塊功能描述如下:用戶輸入分別合乎規(guī)則輸入年、月、日,程序即給出相應(yīng)日期的下一天。假設(shè)限定該模塊年份在區(qū)間[1840,3000],月份、日規(guī)定滿足公歷約束。試分別選取測試數(shù)據(jù)對月份進(jìn)行(1)基本邊界值測試和(2)健壯性測試。、假設(shè)該模塊的輸入:年、月、日分別使用變量year,month,day表示。(1)[4分]基本邊界值測試的測試數(shù)據(jù):在各變量取值有效區(qū)間內(nèi),month取極值,其他變量取任意正常值。按照基本邊界值測試原理,測試數(shù)據(jù)選取如下:組別測試數(shù)據(jù)1year=1840,month=1,day=122year=1841,month=2,day=203year=2002,month=9,day=14year=2999,month=11,day=105year=3000,month=12,day=30(2)[4分]健壯性測試的測試數(shù)據(jù):month值在整個取值空間中選擇,其他變量取有效值區(qū)間中的任意值。按照健壯性測試原理,測試數(shù)據(jù)選取如下:組別測試數(shù)據(jù)1year=1840,month=1,day=122year=1841,month=2,day=203year=2002,month=9,day=14year=2999,month=11,day=105year=3000,month=12,day=306year=1839,month=0,day=197year=3001,month=13,day=223、變量的命名規(guī)則一般規(guī)定如下:變量名的長度不多于40個字符,第一個字符必須為英文字母,其他字母可以英文字母、數(shù)字以及下劃線的任意組合。請用等價分類法設(shè)計測試用例。(1)劃分等價類[4分]輸入條件合理等價類不合理等價類長度(1)小于40個字符(2)等于40個字符(5)大于40個字符第一個字符(3)英文字母(6)非英文字母其他字母(4)英文字母、數(shù)字或下劃線的任意組合空格標(biāo)點符號運(yùn)算符號其他可顯示字符(2)設(shè)計測試用例[4分]測試數(shù)據(jù)測試范圍期望結(jié)果s_name12等價類(1),(3),(4)有效a1b2c3d4e5f6g7h8i9j1k2l3m4n5o6p7q8r9s_tr等價類(2),(3),(4)有效a1b2c3d4e5f6g7h8i9j1k2l3m4n5o6p7q8r9s_trff等價類(5)無效234name等價類(6)無效abgh等價類(7)無效Ab!2f等價類(8)無效Fg+ghh等價類(9)無效H@gh等價類(10)無效軟件測試與質(zhì)量保證一、軟件測試的定義定義:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。或者說軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例,并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯誤的過程。二、測試的目的: 基于不同的立場,存在著兩種完全不同的測試目的。從用戶的角度出發(fā),普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可接受該產(chǎn)品。從軟件開發(fā)者的角度出發(fā),則希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗證該軟件已正確地實現(xiàn)了用戶的要求,確立人們對軟件質(zhì)量的信心。GrenfordMyers軟件測試目的(1)測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;(2)一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;(3)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試換言之,測試的目的是系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。能夠證明軟件的功能和性能與需求說明相符合。測試不能表明軟件中不存在錯誤,它只能說明軟件中存在錯誤。三、軟件測試的原則 1.應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測試”作為軟件開發(fā)者的座右銘。2.測試用例應(yīng)由測試輸入數(shù)據(jù)和對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。3.程序員應(yīng)避免檢查自己的程序。4.在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。5.充分注意測試中的群集現(xiàn)象。

經(jīng)驗表明,測試后程序中殘存的錯誤數(shù)目與該程序中已發(fā)現(xiàn)的錯誤數(shù)目成正比。6.嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。7.應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。8.妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。四、軟件測試的對象 軟件測試并不等于程序測試。軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個期間。需求分析、概要設(shè)計、詳細(xì)設(shè)計以及程序編碼等各階段所得到的文檔,包括需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細(xì)設(shè)計規(guī)格說明以及源程序,都應(yīng)成為軟件測試的對象。五、確認(rèn)和驗證: 為把握軟件開發(fā)各個環(huán)節(jié)的正確性,需要進(jìn)行各種確認(rèn)和驗證工作。確認(rèn)(Validation),是一系列的活動和過程,目的是想證實在一個給定的外部環(huán)境中軟件的邏輯正確性。需求規(guī)格說明的確認(rèn)程序的確認(rèn)驗證(Verification),試圖證明在軟件生存期各個階段,以及階段間的邏輯協(xié)調(diào)性、完備性和正確性。七、測試信息流測試信息流軟件配置:軟件需求規(guī)格說明、軟件設(shè)計規(guī)格說明、源代碼等;測試配置:測試計劃、測試用例、測試程序等;測試工具:測試數(shù)據(jù)自動生成程序、靜態(tài)分析程序、動態(tài)分析程序、測試結(jié)果分析程序、以及驅(qū)動測試的測試數(shù)據(jù)庫等等。測試結(jié)果分析:比較實測結(jié)果與預(yù)期結(jié)果,評價錯誤是否發(fā)生。排錯(調(diào)試):對已經(jīng)發(fā)現(xiàn)的錯誤進(jìn)行錯誤定位和確定出錯性質(zhì),并改正這些錯誤,同時修改相關(guān)的文檔。修正后的文檔再測試:直到通過測試為止。通過收集和分析測試結(jié)果數(shù)據(jù),對軟件建立可靠性模型利用可靠性分析,評價軟件質(zhì)量:—軟件的質(zhì)量和可靠性達(dá)到可以接受的程度;—所做的測試不足以發(fā)現(xiàn)嚴(yán)重的錯誤;如果測試發(fā)現(xiàn)不了錯誤,可以肯定,測試配置考慮得不夠細(xì)致充分,錯誤仍然潛伏在軟件中。八、測試與軟件開發(fā)各階段的關(guān)系軟件開發(fā)過程是一個自頂向下,逐步細(xì)化的過程軟件計劃階段定義軟件作用域軟件需求分析建立軟件信息域、功能和性能需求、約束等軟件設(shè)計把設(shè)計用某種程序設(shè)計語言轉(zhuǎn)換成程序代碼測試過程是依相反順序安排的自底向上,逐步集成的過程。九、軟件測試用例設(shè)計兩種常用的測試方法黑盒測試白盒測試(一)黑盒測試這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測試又叫做功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試方法是在程序接口上進(jìn)行測試,主要是為了發(fā)現(xiàn)以下錯誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。但這是不可能的。假設(shè)一個程序P有輸入量X和Y及輸出量Z。在字長為32位的計算機(jī)上運(yùn)行。若X、Y取整數(shù),按黑盒方法進(jìn)行窮舉測試:可能采用的測試數(shù)據(jù)組:232×232=264如果測試一組數(shù)據(jù)需要1毫秒,一年工作365×24小時,完成所有測試需5億年(二)白盒測試此方法把測試對象看做一個透明的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢查:對程序模塊的所有獨(dú)立的執(zhí)行路徑至少測試一次;對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。對一個具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。給出一個小程序的流程圖,它包括了一個執(zhí)行20次的循環(huán)。包含的不同執(zhí)行路徑數(shù)達(dá)5^20條,對每一條路徑進(jìn)行測試需要1毫秒,假定一年工作365×24小時,要想把所有路徑測試完,需3170年白盒測試的測試用例設(shè)計十、白盒測試的測試用例設(shè)計(一)邏輯覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計測試用例的技術(shù)。它屬白盒測試。語句覆蓋判定覆蓋條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋。舉例:所有路徑為:L1(a->c->e),L2(a->b->d),L3(a->b->e),L4(a->c->d)依據(jù)以上推導(dǎo)出來的結(jié)果就可以設(shè)計滿足要求的測試用例。(二)語句覆蓋語句覆蓋就是設(shè)計若干個測試用例,運(yùn)行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。在圖例中,正好所有的可執(zhí)行語句都在路徑L1上,所以選擇路徑L1設(shè)計測試用例,就可以覆蓋所有的可執(zhí)行語句。測試用例的設(shè)計格式如下

【輸入的(A,B,X),輸出的(A,B,X)】為圖例設(shè)計滿足語句覆蓋的測試用例是:

【(2,0,4),(2,0,3)】覆蓋ace【L1】(三)判定覆蓋判定覆蓋就是設(shè)計若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋又稱為分支覆蓋。對于圖例,如果選擇路徑L1和L2,就可得滿足要求的測試用例【(2,0,4),(2,0,3)】覆蓋ace【L1】

【(1,1,1),(1,1,1)】覆蓋abd【L2】如果選擇路徑L3和L4,還可得另一組可用的測試用例:

【(2,1,1),(2,1,2)】覆蓋abe【L3】

【(3,0,3),(3,1,1)】覆蓋acd【L4】(四)條件覆蓋條件覆蓋就是設(shè)計若干個測試用例,運(yùn)行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。在圖例中,我們事先可對所有條件的取值加以標(biāo)記。例如,對于第一個判斷:條件A>1取真為,取假為

條件B=0取真為,取假為對于第二個判斷:條件A=2取真為,取假為

條件X>1取真為,取假為測試用例覆蓋分支條件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或測試用例 覆蓋分支 條件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e) (五)判定-條件覆蓋判定-條件覆蓋就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷中的每個條件的可能取值至少執(zhí)行一次。測試用例 覆蓋分支條件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)由多個基本判斷組成的流程圖(六)條件組合覆蓋條件組合覆蓋就是設(shè)計足夠的測試用例,運(yùn)行被測程序,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。記①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≯1作測試用例覆蓋條件 覆蓋組合【(2,0,4),(2,0,3)】(L1) ①,⑤【(2,1,1),(2,1,2)】(L3) ②,⑥【(1,0,3),(1,0,4)】(L3) ③,⑦【(1,1,1),(1,1,1)】(L2) ④,⑧(七)路徑測試路徑測試就是設(shè)計足夠的測試用例,覆蓋程序中所有可能的路徑。測試用例通過路徑覆蓋條件【(2,0,4),(2,0,3)】ace(L1) 【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3) 【(3,0,3),(3,0,1)】acd(L3) (八)基本路徑集測試覆蓋關(guān)鍵路徑。得到程序的控制流程圖/程序圖SequenceIfWhileSequenceIfWhile計算環(huán)路復(fù)雜性的方法:-V(G)=簡單判定節(jié)點數(shù)+1V(G)=E-N+2(E是邊數(shù),N是定點數(shù))V(G)=封閉區(qū)域數(shù)+1V(G)=4根據(jù)環(huán)路復(fù)雜性產(chǎn)生基本路徑集Path1:1-2-3-8Path2:1-2-3-8-1-2-3Path3:1-2-4-5-7-8Path4:1-2-4-6-7-8準(zhǔn)備測試用例覆蓋所有基本路徑十一。黑盒測試的測試用例設(shè)計等價類劃分邊界值分析錯誤推測法因果圖(一)等價類劃分等價類劃分是一種典型的黑盒測試方法,使用這一方法時,完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計測試用例。等價類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測試用例。使用這一方法設(shè)計測試用例要經(jīng)歷劃分等價類(列出等價類表)和選取測試用例兩步。劃分等價類

等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。測試某等價類的代表值就等價于對這一類其它值的測試。等價類的劃分有兩種不同的情況:

①有效等價類:是指對于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。 ②無效等價類:是指對于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計測試用例時,要同時考慮有效等價類和無效等價類的設(shè)計。劃分等價類的原則。

(1)如果輸入條件規(guī)定了取值范圍,或值的個數(shù),則可以確立一個有效等價類和兩個無效等價類。例如,在程序的規(guī)格說明中,對輸入條件有一句話:“……項數(shù)可以從1到999……”則有效等價類是“1≤項數(shù)≤999”兩個無效等價類是“項數(shù)<1”或“項數(shù)>999”。在數(shù)軸上表示成:(2)如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。例如,在Pascal語言中對變量標(biāo)識符規(guī)定為“以字母打頭的……串”。那么所有以字母打頭的構(gòu)成有效等價類,而不在此集合內(nèi)(不以字母打頭)的歸于無效等價類。(3)如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。

(4)如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個輸入值分別進(jìn)行處理。這時可為每一個輸入值確立一個有效等價類,此外針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合。例如,在教師上崗方案中規(guī)定對教授、副教授、講師和助教分別計算分?jǐn)?shù),做相應(yīng)的處理。因此可以確定4個有效等價類為教授、副教授、講師和助教,一個無效等價類,它是所有不符合以上身分的人員的輸入值的集合。(5)如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。例如,Pascal語言規(guī)定“一個語句必須以分號‘;’結(jié)束”。這時,可以確定一個有效等價類“以‘;’結(jié)束”,若干個無效等價類“以‘:’結(jié)束”、“以‘,’結(jié)束”、“以‘’結(jié)束”、“以LF結(jié)束”等。確立測試用例

在確立了等價類之后,建立等價類表,列出所有劃分出的等價類。再從劃分出的等價類中按以下原則選擇測試用例:

(1)為每一個等價類規(guī)定一個唯一編號;

(2)設(shè)計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步,直到所有的有效等價類都被覆蓋為止;

(3)設(shè)計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步,直到所有的無效等價類都被覆蓋為止。用等價類劃分法設(shè)計測試用例的實例

在某一PASCAL語言版本中規(guī)定:“標(biāo)識符是由字母開頭,后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個,最大字符數(shù)為80個?!?并且規(guī)定:“標(biāo)識符必須先說明,再使用?!薄霸谕徽f明語句中,標(biāo)識符至少必須有一個?!庇玫葍r類劃分的方法,建立輸入等價類表:下面選取了9個測試用例,它們覆蓋了所有的等價類。

①VARx,T1234567:REAL;BEGINx:=3.414;T1234567:=2.732;...…(1),(2),(4),(8),(9),(12),(14)

②VAR:REAL;(3)

③VARx,:REAL;(5)④VART12345678:REAL;(6)⑤VART12345......:REAL;(7)

多于80個字符⑥VART$:CHAR;(10)⑦VARGOTO:INTEGER;(11)⑧VAR2T:REAL;(13)⑨VARPAR:REAL;(15)

BEGIN......

PAP:=SIN(3.14*0.8)/6;(二)邊界值分析邊界值分析也是一種黑盒測試方法,是對等價類劃分方法的補(bǔ)充。人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。比如,在做三角形計算時,要輸入三角形的三個邊長:A、B和C。我們應(yīng)注意到這三個數(shù)值應(yīng)當(dāng)滿足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。但如果把六個不等式中的任何一個大于號“>”錯寫成大于等于號“≥”,那就不能構(gòu)成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。這里所說的邊界是指,相當(dāng)于輸入等價類和輸出等價類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值做為測試數(shù)據(jù)。(三)錯誤推測法人們也可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子。這就是錯誤推測法。錯誤推測法的基本想法是:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。十二。軟件測試的策略測試過程按4個步驟進(jìn)行,即單元測試、組裝測試、確認(rèn)測試和系統(tǒng)測試。開始是單元測試,集中對用源代碼實現(xiàn)的每一個程序單元進(jìn)行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能組裝測試把已測試過的模塊組裝起來,主要對與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測試。確認(rèn)測試則是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測試把已經(jīng)經(jīng)過確認(rèn)的軟件納入實際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測試。(一)單元測試(UnitTesting)單元測試又稱模塊測試,是針對軟件設(shè)計的最小單位─程序模塊,進(jìn)行正確性檢驗的測試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯。單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例。多個模塊可以平行地獨(dú)立進(jìn)行單元測試。1.單元測試的內(nèi)容在單元測試時,測試者需要依據(jù)詳細(xì)設(shè)計說明書和源程序清單,了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測試的測試用例,輔之以黑盒測試的測試用例,使之對任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。(1)模塊接口測試在單元測試的開始,應(yīng)對通過被測模塊的數(shù)據(jù)流進(jìn)行測試。測試項目包括:調(diào)用本模塊的輸入?yún)?shù)是否正確;本模塊調(diào)用子模塊時輸入給子模塊的參數(shù)是否正確;全局量的定義在各模塊中是否一致在做內(nèi)外存交換時要考慮:文件屬性是否正確;OPEN與CLOSE語句是否正確;緩沖區(qū)容量與記錄長度是否匹配;在進(jìn)行讀寫操作之前是否打開了文件;在結(jié)束文件處理時是否關(guān)閉了文件;正文書寫/輸入錯誤,I/O錯誤是否檢查并做了處理。(2)局部數(shù)據(jù)結(jié)構(gòu)測試不正確或不一致的數(shù)據(jù)類型說明使用尚未賦值或尚未初始化的變量錯誤的初始值或錯誤的缺省值變量名拼寫錯或書寫錯不一致的數(shù)據(jù)類型全局?jǐn)?shù)據(jù)對模塊的影響(3)路徑測試選擇適當(dāng)?shù)臏y試用例,對模塊中重要的執(zhí)行路徑進(jìn)行測試。應(yīng)當(dāng)設(shè)計測試用例查找由于錯誤的計算、不正確的比較或不正常的控制流而導(dǎo)致的錯誤。對基本執(zhí)行路徑和循環(huán)進(jìn)行測試可以發(fā)現(xiàn)大量的路徑錯誤。(4)錯誤處理測試出錯的描述是否難以理解出錯的描述是否能夠?qū)﹀e誤定位顯示的錯誤與實際的錯誤是否相符對錯誤條件的處理正確與否在對錯誤進(jìn)行處理之前,錯誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等(5)邊界測試注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細(xì)地選擇測試用例,認(rèn)真加以測試。如果對模塊運(yùn)行時間有要求的話,還要專門進(jìn)行關(guān)鍵路徑測試,以確定最壞情況下和平均意義下影響模塊運(yùn)行時間的因素。2.單元測試的步驟模塊并不是一個獨(dú)立的程序,在考慮測試模塊時,同時要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測模塊相聯(lián)系的其它模塊。驅(qū)動模塊(driver)樁模塊(stub)──存根模塊驅(qū)動模塊(driver)──相當(dāng)于所測模塊的主程序。它接收測試數(shù)據(jù),把這些數(shù)據(jù)傳送給所測模塊,最后再輸出實測結(jié)果。樁模塊(stub)──存根模塊。用以代替所測模塊調(diào)用的子模塊。如果一個模塊要完成多種功能,可以將這個模塊看成由幾個小程序組成。必須對其中的每個小程序先進(jìn)行單元測試要做的工作,對關(guān)鍵模塊還要做性能測試。對支持某些標(biāo)準(zhǔn)規(guī)程的程序,更要著手進(jìn)行互聯(lián)測試。有人把這種情況特別稱為模塊測試,以區(qū)別單元測試。(二)組裝測試(IntegratedTesting)組裝測試(集成測試、聯(lián)合測試)通常,在單元測試的基礎(chǔ)上,需要將所有模塊按照設(shè)計要求組裝成為系統(tǒng)。這時需要考慮的問題是:在把各個模塊連接起來的時侯,穿越模塊接口的數(shù)據(jù)是否會丟失;一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;各個子功能組合起來,能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;單個模塊的誤差累積起來,是否會放大,從而達(dá)到不能接受的程度。在單元測試的同時可進(jìn)行組裝測試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問題,最終構(gòu)成要求的軟件系統(tǒng)。子系統(tǒng)的組裝測試特別稱為部件測試,它所做的工作是要找出組裝后的子系統(tǒng)與系統(tǒng)需求規(guī)格說明之間的不一致。通常,把模塊組裝成為系統(tǒng)的方式有兩種一次性組裝方式增殖式組裝方式1.一次性組裝方式(bigbang)它是一種非增殖式組裝方式。也叫做整體拼裝。使用這種方式,首先對每個模塊分別進(jìn)行模塊測試,然后再把所有模塊組裝在一起進(jìn)行測試,最終得到要求的軟件系統(tǒng)。2.增殖式組裝方式這種組裝方式又稱漸增式組裝首先對一個個模塊進(jìn)行模塊測試,然后將這些模塊逐步組裝成較大的系統(tǒng)在組裝的過程中邊連接邊測試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題通過增殖逐步組裝成為要求的軟件系統(tǒng)。(1)自頂向下的增殖方式這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝。自頂向下的增殖方式在測試過程中較早地驗證了主要的控制和判斷點。選用按深度方向組裝的方式,可以首先實現(xiàn)和驗證一個完整的軟件功能。(2)自底向上的增殖方式這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開始組裝和測試。因為模塊是自底向上進(jìn)行組裝,對于一個給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測試完成,所以不再需要樁模塊。在模塊的測試過程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點。一般來講,一種方式的優(yōu)點是另一種方式的缺點。(3)混合增殖式測試衍變的自頂向下的增殖測試首先對輸入/輸出模塊和引入新算法模塊進(jìn)行測試;再自底向上組裝成為功能相當(dāng)完整且相對獨(dú)立的子系統(tǒng);然后由主模塊開始自頂向下進(jìn)行增殖測試。自底向上-自頂向下的增殖測試首先對含讀操作的子系統(tǒng)自底向上直至根結(jié)點模塊進(jìn)行組裝和測試;然后對含寫操作的子系統(tǒng)做自頂向下的組裝與測試?;貧w測試這種方式采取自頂向下的方式測試被修改的模塊及其子模塊;然后將這一部分視為子系統(tǒng),再自底向上測試。關(guān)鍵模塊問題在組裝測試時,應(yīng)當(dāng)確定關(guān)鍵模塊,對這些關(guān)鍵模塊及早進(jìn)行測試。關(guān)鍵模塊的特征:

①滿足某些軟件需求;

②在程序的模塊結(jié)構(gòu)中位于較高的層次(高層控制模塊);

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論