版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、6.3.1 信息系統(tǒng)測試系統(tǒng)測試是保證管理信息系統(tǒng)質(zhì)量的一個重要環(huán)節(jié)。 程序編制完成后, 要用各種測試方 法檢查各個部分是否達(dá)到了規(guī)定的質(zhì)量標(biāo)準(zhǔn)。 系統(tǒng)測試是為了發(fā)現(xiàn)程序和系統(tǒng)中的錯誤。 好 的測試方案有可能發(fā)現(xiàn)從未發(fā)現(xiàn)的錯誤, 能夠發(fā)現(xiàn)從未發(fā)現(xiàn)過的錯誤的測試才是成功的測試, 否則就沒有必要進(jìn)行測試了。6.3.2 系統(tǒng)測試概述一、系統(tǒng)測試概述系統(tǒng)測試,英文是 System Testing 。是將已經(jīng)確認(rèn)的軟件、計算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其 他元素結(jié)合在一起, 進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試, 系統(tǒng)測試是針對整個產(chǎn)品系 統(tǒng)進(jìn)行的測試, 目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義, 找出與需求規(guī)格
2、不符或與之矛 盾的地方, 從而提出更加完善的方案。 系統(tǒng)測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯誤原因和位 置,然后進(jìn)行改正。 是基于系統(tǒng)整體需求說明書的黑盒類測試, 應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件。 對象不僅僅包括需測試的軟件, 還要包含軟件所依賴的硬件、 外設(shè)甚至包括某些數(shù)據(jù)、 某些 支持軟件及其接口等。系統(tǒng)測試是保證系統(tǒng)質(zhì)量的關(guān)鍵, 是對整個系統(tǒng)開發(fā)過程的最終審查。 在管理信息系統(tǒng) 開發(fā)周期的各個階段都不可避免地會出現(xiàn)差錯, 系統(tǒng)開發(fā)人員應(yīng)力求在每個階段結(jié)束之前進(jìn) 行認(rèn)真、 嚴(yán)格的技術(shù)審查, 盡可能及時發(fā)現(xiàn)并糾正錯誤, 但開發(fā)過程中的階段審查并不能發(fā) 現(xiàn)所有的錯誤。 這些錯誤如果等到系統(tǒng)投入運行后再糾
3、正, 將在人力、 物力上造成很大的浪 費,甚至導(dǎo)致系統(tǒng)的失敗。 此外,在程序設(shè)計過程中, 也會或多或少地引入新的錯誤。 因此, 在應(yīng)用系統(tǒng)投入之前必須糾正這些錯誤, 這是系統(tǒng)能夠正確、 可靠運行的重要保證。 統(tǒng)計資 料表明, 對于一些較大規(guī)模的系統(tǒng)來說, 系統(tǒng)調(diào)試的工作量往往占據(jù)程序系統(tǒng)編制開發(fā)總工 作量的 40%以上。很多人認(rèn)為“測試是證明程序中不存在錯誤的過程”、 “程序測試的目的是要證明程序 正確地執(zhí)行了預(yù)期的功能”、 “程序測試的過程是使人們確信程序可完成預(yù)期要完成的工作 過程”。但卻是錯誤的定義。測試的定義應(yīng)該是: 為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。從這個 定義出發(fā)可以看出應(yīng)該把查出了新
4、錯誤的測試看作是成功的測試, 沒有發(fā)現(xiàn)錯誤的測試則是 失敗的測試。系統(tǒng)測試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟, 是對系統(tǒng)開發(fā)過程中的系統(tǒng)分析、 系統(tǒng) 設(shè)計和系統(tǒng)實施的最后復(fù)查。 基于以上系統(tǒng)測試概念和目的, 在進(jìn)行系統(tǒng)測試時應(yīng)遵循以下 基本原則。(1) 測試工作應(yīng)避免由原來開發(fā)軟件的個人和小組承擔(dān)。測試工作應(yīng)由專門人員來進(jìn)行,會 更客觀、更有效。(2) 測試用例不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預(yù)期輸出結(jié)果。將實際輸出結(jié) 果與預(yù)期輸出結(jié)果相比較就能發(fā)現(xiàn)程序是否有錯誤。(3)設(shè)計測試用例不僅要包括有效合理的輸入數(shù)據(jù),也要包含不合理、無效的輸入數(shù)據(jù)。二、系統(tǒng)測試內(nèi)容系統(tǒng)的測試工作可以分為模塊
5、測試、子系統(tǒng)測試和系統(tǒng)測試。1模塊測試模塊測試式以系統(tǒng)的程序模塊為對象進(jìn)行測試,驗證模塊功能及其接口與設(shè)計說明書是否一致。在一個設(shè)計系統(tǒng)中,每個模塊完成一個清晰單一定義的功能,可以把模塊作為一個單獨的實體來測試。 模塊測試的目的式測試模塊在語法、格式和邏輯上的錯誤, 保證每個模塊本身能正常運行,在該測試中發(fā)現(xiàn)的問題大都是程序設(shè)計錯誤或系統(tǒng)設(shè)計中的錯誤。模塊測試主要從下述幾個方面進(jìn)行。(1 )模塊功能。測試模塊功能是否正常,即能否在正常輸入情況下獲得應(yīng)該得到的結(jié)果(2)內(nèi)部數(shù)據(jù)結(jié)構(gòu)。測試模塊內(nèi)部數(shù)據(jù)結(jié)構(gòu)的內(nèi)容、數(shù)據(jù)行使及數(shù)據(jù)之間的相互關(guān)系是否 正確,這些數(shù)據(jù)結(jié)構(gòu)是否能夠正確地支持模塊功能的實現(xiàn)。
6、(3 )出錯處理。測試模塊運行出錯時,出錯處理功能是否能及時啟動并有效工作。(4 )邊界條件。軟件往往容易在邊界條件上發(fā)生問題,因此需要測試模塊在其各種邊界參 數(shù)處能否正常工作。2. 子系統(tǒng)測試完成每個模塊的測試以后,需要按照系統(tǒng)設(shè)計所完成的模塊結(jié)構(gòu)圖把它們連接成子系統(tǒng), 即進(jìn)行子系統(tǒng)測試。有些模塊能夠單獨地正常工作,但是連接起來就不能正常運行,這里可能存在接口和整體協(xié)調(diào)問題。例如數(shù)據(jù)可能在接口的傳遞中丟失、一個模塊的運行可能會干擾其他模塊運行等都是子系統(tǒng)測試所要關(guān)注的問題。子系統(tǒng)測試是在模塊測試的基礎(chǔ)上,解決模塊間的相互調(diào)用問題, 主要測試子系統(tǒng)中各個模塊的外部功能,以及模塊之間的接口好調(diào)用
7、關(guān)系。子系統(tǒng)測試主要有以下內(nèi)容。(1)各模塊的連接是否有錯誤。測試模塊接口是否正常,及模塊調(diào)用參數(shù)的數(shù)目、順序和類型是否正確,數(shù)據(jù)能否正確無誤地流入、流出模塊;能否保證數(shù)據(jù)的有效傳輸、數(shù)據(jù)的完整性和一致性。(2)運行中的人機(jī)界面及各種通信接口能否滿足設(shè)計要求。(3)所涉及的外部設(shè)備是否能正確連接,與相關(guān)外部設(shè)備的通信功能是否滿足設(shè)計要求。3系統(tǒng)測試系統(tǒng)測試就是將經(jīng)過子系統(tǒng)測試的模塊群裝配成一個完整的系統(tǒng)進(jìn)行測試,以檢查系統(tǒng)是否達(dá)到了系統(tǒng)分析的要求,系統(tǒng)測試的依據(jù)是系統(tǒng)分析報告,系統(tǒng)的測試不僅是對軟件的測試,而且是對系統(tǒng)的軟件與硬件一同進(jìn)行測試。系統(tǒng)測試包含功能測試、恢復(fù)測試、安全測試、強(qiáng)度測試
8、和性能測試。(1 )功能測試。系統(tǒng)功能測試是對系統(tǒng)分析報告中的目標(biāo)和軟件系統(tǒng)所實現(xiàn)的目標(biāo)進(jìn)行逐 個比較,用以檢查目標(biāo)功能是否遺漏。(2 )恢復(fù)測試。系統(tǒng)恢復(fù)測試主要檢查系統(tǒng)的容錯能力。測試系統(tǒng)出錯時,能否在制定的 時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)。(3 )安全測試。系統(tǒng)安全測試主要檢驗系統(tǒng)是否存在安全保密漏洞。,在測試期間,測試 人員假扮非法入侵者,采用各種辦法試圖突破防線。(4 )強(qiáng)度測試。系統(tǒng)強(qiáng)度測試主要檢驗系統(tǒng)的信息處理能力最高能達(dá)到什么實際限度。強(qiáng) 度測試迫使系統(tǒng)在它的設(shè)計能力極限狀態(tài)下進(jìn)行,進(jìn)而測出系統(tǒng)的極限。(5 )性能測試。對于一些實時和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未
9、必滿足性 能要求。性能測試要全面、可靠地系統(tǒng)運行中的各種性能指標(biāo)是否能夠達(dá)到用戶的實際需要。 模塊測試、子系統(tǒng)測試和系統(tǒng)測試,每一步都是在前一步的基礎(chǔ)上進(jìn)行,其過程如圖所示。模塊測試子系統(tǒng)測試【系統(tǒng)的測試內(nèi)容】圖例6.3.2軟件測試的方法軟件測試的常用方法:測試名稱測試內(nèi)容Black Box黑盒測試把軟件軟件系統(tǒng)當(dāng)做一個“黑箱”,無法了 解或使用系統(tǒng)的內(nèi)部結(jié)構(gòu)及知識。從軟件的 行為,而不是內(nèi)部結(jié)構(gòu)出發(fā)來設(shè)計測試。White Box白盒測試設(shè)計者可以看到軟件系統(tǒng)的內(nèi)部結(jié)構(gòu),并且 使用軟件的內(nèi)部知識來指導(dǎo)測試數(shù)據(jù)及方法 的選擇。Gray Box灰盒測試介于黑盒和白盒之間1黑盒測試:黑盒測試,英文是
10、 Black Box Test in又稱功能測試或者數(shù)據(jù)驅(qū)動測試。測試者把程序 看成是一個黑盒,完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性而進(jìn)行的測試。黑盒測試是根據(jù)軟件的規(guī)格對軟件進(jìn)行的測試,這類測試不考慮軟件內(nèi)部的運作原理, 因此軟件對用戶來說就像一個黑盒子。軟件測試人員以用戶的角度,通過各種輸入和觀察軟件的各種輸出結(jié)果來發(fā)現(xiàn)軟件存在的缺陷,而不關(guān)心程序具體如何實現(xiàn)的一種軟件測試方法。黑盒測試常用工具有:AutoRunner、winrunner、loadrunner。在黑盒測試中所采用的方法主要有等價類劃分和邊界值分析等方法。(1)等價類劃分程序中所輸入的數(shù)據(jù)按照程序功能說明可以分成若干個等價類,按
11、輸入條件可以將每一個等價類分成有效輸入等價類與無效輸入等價類兩種。因此,對于每一個有效或無效的等價類可以設(shè)計一些測試用例,如果這些測試用例不出現(xiàn)錯誤,說明對于同一類的其他數(shù)據(jù)也不會出錯,否則肯定出錯。例如,在測試銷售定價處理程序時,由于產(chǎn)品銷售價格主要依賴于客戶所訂購的產(chǎn)品數(shù)量、客戶是否是老客戶、客戶是否具有拖欠貸款的記錄等條件。因此在對該程序測試中,可以按照這三個條件設(shè)計不同的等價類測試用例。(1)邊界值分析由于許多軟件在處理邊界值時容易發(fā)生錯誤,用大于、等于、小于邊界值的數(shù)據(jù)作為測試用例更容易發(fā)現(xiàn)程序中的錯誤。而等價類測試方法往往是在某一等價類中進(jìn)行隨機(jī)選擇, 未必代表了邊界狀況。因此,邊
12、界值測試方法可以對等價類測試方法進(jìn)行有效的補(bǔ)充。例如,某一程序的輸入數(shù)據(jù)位 01000,可以選擇-0.1、0、0.1、999.9、1000、1000.1作為測試 用例。2白盒測試白盒測試,英文是 White Box Testi ng。又稱結(jié)構(gòu)測試或者邏輯驅(qū)動測試。是允許人們檢 查程序的內(nèi)部結(jié)構(gòu),是測試者從檢查程序的邏輯著手,得出測試數(shù)據(jù),進(jìn)行測試的過程。是把測試對象看作一個打開的盒子。利用白盒測試法進(jìn)行動態(tài)測試時,需要測試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程,不需測試軟件產(chǎn)品的功能。白盒測試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條
13、件組合覆蓋和路徑覆蓋。它知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。白盒測試常用工具有:Jtest、VcSmith、Jeon tract、C+ Test CodeWizard、logiscope。*總結(jié):實際工作中,對系統(tǒng)的了解越多越好。目前大多數(shù)的測試人員都是做黑盒測試,很少有做白盒測試的。因為白盒測試對軟件測試人員的要求非常高,需要有很多編程經(jīng)驗。做.NET程序的白盒測試你要能看得懂 .NET代碼。
14、做JAVA程序的測試,需要你能看懂JAVA 的代碼。 如果你都能看懂了,你還會做測試么?6.3.2 軟件測試步驟一、軟件測試的過程系統(tǒng)測試是開發(fā)過程中一個獨立而且非常重要的階段, 也是保證開發(fā)質(zhì)量的重要手段之 一。測試過程基本上與開發(fā)過程平行進(jìn)行。 在測試過程中, 需要對整個測試過程進(jìn)行有效的 管理,保證測試的質(zhì)量和效率。一個規(guī)范的測試過程通常包括以下基本的測試活動。1. 制定測試計劃在制定測試計劃時, 需要充分考慮整個項目的開發(fā)時間和開發(fā)進(jìn)度, 以及一些人為因素 和客觀條件等,使得測試計劃是可行的。測試計劃的內(nèi)容主要有:測試的內(nèi)容、進(jìn)度安排、 測試所需的環(huán)境和條件、測試培訓(xùn)安排等。2. 編制
15、測試大綱測試大綱是測試的依據(jù), 它明確詳盡地規(guī)定了在測試中針對系統(tǒng)的每一項功能或特性所 必須完成的基本測試項目和測試完成的標(biāo)準(zhǔn)。3. 設(shè)計和生成測試用例依據(jù)測試大綱設(shè)計和生成測試用例,產(chǎn)生測試設(shè)計說明文檔,其主要內(nèi)容有被測項目、 輸入數(shù)據(jù)、測試過程和預(yù)期輸出結(jié)果等。4. 實施測試測試的實施階段是由一系列的測試周期組成的。 在每個測試周期中, 測試人員和開發(fā)人 員將依據(jù)預(yù)先編制好的測試大綱及準(zhǔn)備好的測試用例,對被測系統(tǒng)或設(shè)備進(jìn)行完整的測試。5. 生成測試報告測試完成后,要形成相應(yīng)的測試報告。主要對測試進(jìn)行概要說明, 列出測試的結(jié)論,指 出錯誤和缺陷。另外,給出一些建議。二、軟件測試的方法對軟件進(jìn)
16、行測試的主要方法有人工測試和機(jī)器測試。 人工測試采用人工方法進(jìn)行, 目的 在于檢查程序的靜態(tài)結(jié)構(gòu), 找出編譯不能發(fā)現(xiàn)的錯誤。 經(jīng)驗表面, 良好的人工測試可以發(fā)現(xiàn) 程序中30%70%的編碼和邏輯設(shè)計錯誤,從而可以減少機(jī)器測試的負(fù)擔(dān)。機(jī)器測試是將 事先設(shè)計好的測試用例作用于被測試程序, 對比測試結(jié)果和預(yù)期結(jié)果的差別以發(fā)現(xiàn)錯誤。 機(jī) 器測試只能發(fā)現(xiàn)錯誤的癥狀, 不能進(jìn)行問題定位, 而人工測試一旦發(fā)現(xiàn)錯誤, 就能確定問題的位置、類型和性質(zhì)。對于一些類型的錯誤,機(jī)器測試比人工測試有效,但對另一些類型的 錯誤則人工測試更有效。因此,應(yīng)根據(jù)實際情況來選擇測試方法。二、系統(tǒng)測試步驟合理安排測試步驟對于提高測試
17、效率、降低測試成本有很大的作用。管理信息系統(tǒng)的測試步驟是:分別按硬件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)和軟件系統(tǒng)進(jìn)行測試,最后對整個系統(tǒng)進(jìn)行總的綜合測試。測試的步驟如下:(1 )硬件測試在開發(fā)建設(shè)管理信息系統(tǒng)時, 通常需要根據(jù)項目情況選購硬件設(shè)備。 在硬件設(shè)備采購到貨后,應(yīng)在各相關(guān)廠商的配合下進(jìn)行初始驗收測試,初驗通過后,再將其與軟件、網(wǎng)絡(luò)等一起進(jìn)行系統(tǒng)測試。初驗測試所做的主要工作有一下幾點。1. 配置檢測。檢測是否按照合同提供了相應(yīng)的配置,如系統(tǒng)軟件、硬盤、內(nèi)存、CPU等的配置情況。2. 硬件設(shè)備的外觀檢查。所有設(shè)備及配件開箱后外觀有無明顯的劃痕和損傷,這些包括計算機(jī)主機(jī)、工作站、磁帶庫、磁盤機(jī)柜和存儲設(shè)備等。
18、3. 硬件測試。首先進(jìn)行加電檢測,查看運行狀態(tài)是否正常,有無報警、屏幕有無亂碼提示 和死機(jī)現(xiàn)象,以及是否能進(jìn)入正常提示狀態(tài);然后進(jìn)行操作檢測,用一些常用的命令來 檢測機(jī)器是否能執(zhí)行命令,執(zhí)行結(jié)果是否正常,如文件復(fù)制、顯示文件內(nèi)容、建立目錄 等,最后檢查是否提供了相關(guān)工具,如幫助系統(tǒng)、系統(tǒng)管理工具等。通過以上測試,要求形成相應(yīng)的硬件測試報告,報告中應(yīng)包含測試步驟、測試過程和測試結(jié)論等。(2 )網(wǎng)絡(luò)測試如果開發(fā)的管理信息系統(tǒng)需要在局域網(wǎng)或廣域網(wǎng)上運行,通常需要選購網(wǎng)絡(luò)設(shè)備。在網(wǎng)絡(luò)設(shè)備按合同到貨后,應(yīng)在各相關(guān)廠商的配合下進(jìn)行初始驗收測試, 初驗通過后,再將其與 軟件、網(wǎng)絡(luò)等一起進(jìn)行系統(tǒng)測試。初驗測試
19、所做的主要工作有一下幾點。1 網(wǎng)絡(luò)設(shè)備的外觀檢查,所有設(shè)備及配件開箱后外觀有無明顯的劃痕和損傷,這些包括交 換機(jī)、路由器等。2 硬件測試。對交換機(jī)、路由器等進(jìn)行加電檢測,觀看運行狀態(tài)是否正常,有無錯誤、有 無報警等。3網(wǎng)絡(luò)連通測試。檢測網(wǎng)絡(luò)是否連通,檢測服務(wù)器和各工作站是否能通過網(wǎng)絡(luò)設(shè)備建立正常 連接。通過以上測試,要求形成相應(yīng)的網(wǎng)絡(luò)測試報告,報告中應(yīng)包含測試步驟、 測試過程和測試結(jié)論等。(3 )軟件測試軟件測試實際上分為 4個步驟:單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。如圖所示:圖:管理信息系統(tǒng)測試過程(a)單元測試。單元測試也稱為模塊測試。對源程序中的每個程序單元進(jìn)行測試,以驗證每個模塊
20、是否滿足系統(tǒng)說明書的要求。一般情況下是編好一個程序模塊就測試一個,通常采用白盒測試方法,再輔之以黑盒測試。(b)集成測試。集成測試又稱組裝測試。是把模塊按系統(tǒng)設(shè)計說明書的要求組裝起來進(jìn)行測試。集成測試的主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題,如數(shù)據(jù)通過接口時可能丟失,一個模塊對另一個模塊可能造成有害影響,將它們組合起來后可能不能實現(xiàn)預(yù)期的功能,全局?jǐn)?shù)據(jù)結(jié)構(gòu)會出現(xiàn)問題,誤差累積到超過可接受的程度等。集成測試通常有兩種方法:一種是非增量式集成測試,即先分別測試各個模塊, 再把這些模塊組合起來進(jìn)行整體測試;另一種是增量集成測試,即把下一個要測試的模塊組合到已測試好的模塊中,測試完后再將下一個需要測試的模塊組
21、合起來進(jìn)行測試,逐步把所有的模塊組合在一起,并完成測試。集成方式可采用 自頂向下集成或自底向上集成。(C)確認(rèn)測試。確認(rèn)測試是按照系統(tǒng)說明書中定義的全部功能和性能要求及確認(rèn)測試計劃,來測試整個軟件系統(tǒng)是否達(dá)到了用戶要求,確認(rèn)測試首先要進(jìn)行有效性測試及軟件配置審查,然后進(jìn)行驗收測試和安裝測試,經(jīng)過管理部門的認(rèn)可和專家的鑒定后,軟件即可以交給用戶使用。確認(rèn)測試通常采用黑盒測試法。(d)系統(tǒng)測試。系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等系統(tǒng)的各個部分 連接到一起,對整個系統(tǒng)進(jìn)行總的功能、性能等方面的測試。其目的是通過與系統(tǒng)的需求相 比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方。634
22、軟件正確性證明測試正確性證明是顯示產(chǎn)品正確的一種數(shù)學(xué)技術(shù)。換句話說,產(chǎn)品滿足規(guī)格說明。該技術(shù)有時稱為驗證,然而驗證一次常用于表示所有的非執(zhí)行測試技術(shù),不只是正確性證明。為明確起見,將這個數(shù)學(xué)稱為正確性證明,它是一個數(shù)學(xué)證明過程?!纠繛榱嗣靼兹绾巫C明正確性, 考慮圖a所示代碼段。與代碼等效的流程圖(圖b)所示。我們現(xiàn)在來證明該代碼段是正確的。執(zhí)行該代碼之后,變量s的值等于數(shù)組y的n個元素的和。在圖c中,在每個語句之前和之后,在標(biāo)注字母AH的地方,放置一個斷言,也就是在每個擁有某個數(shù)字屬性的地方做一個聲明。我們需要做的是證明每個斷言的正確性。Int k,s;Int yn;K=0;S=0;Whil
23、e(k n?sj s+ykn 1,2,3 (輸入規(guī)格說明)K=0K=0 且 s=0K n 且 s=y0+y1+ - +yk-1K=n 且 s=y0+y1+ -+yn-1Kn 且 s=y0+y1+ +yk-1Kn 且 s=y0+y1+ - - +ykkJ k+1K n 且 s=y0+y1+ -+yk-1圖C:帶有輸入規(guī)格說明、輸出規(guī)格說明、循環(huán)不變式和斷言的圖輸入規(guī)格說明一一代碼執(zhí)行前在A處具有的條件是,變量n是一個正整數(shù),也就是:A: n 1,2,3。( 1)明顯的輸出規(guī)格說明是,如果控制達(dá)到H點,s的值等于儲存在數(shù)組y中的n各值的和,也就是:H: s=y0+y1+.+yn-1( 2)事實上,對于較強(qiáng)的輸出規(guī)格說明,可以證明改代碼段是正確的:H: k=n 且 s=y0+y1+yn-1(3)除了輸入和輸出規(guī)格說明, 本證明過程的第三個方面是提供一個循環(huán)不變式, 也就是必 須在D點提供一個數(shù)學(xué)表達(dá)式,不管該循環(huán)執(zhí)行了0次、1次還是許多次。要證明持有的循環(huán)不變試試:D: k 1,如果要求的那樣,k n成立。 進(jìn)一步地說,因為k=0, k-1=-1,所以式(4)中的和是
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國乘用車用輕型柴油發(fā)動機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國800G 數(shù)據(jù)中心交換機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球電動汽車電子軸行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球高架軌道秤行業(yè)調(diào)研及趨勢分析報告
- 2025打工人發(fā)財游園年會(打工人發(fā)財年會主題)活動策劃方案
- 建筑節(jié)能的規(guī)劃與實施策略
- 健身休閑行業(yè)服務(wù)交易合同范文
- 會計勞動合同模板
- 掌握數(shù)據(jù)分析的關(guān)鍵技能
- 石材幕墻施工合同范本
- 《酶聯(lián)免疫分析技術(shù)》課件
- 鮮棗貯藏技術(shù)規(guī)程
- DB23T 3838-2024商貿(mào)行業(yè)有限空間個體防護(hù)裝備配備規(guī)范
- 2024年循環(huán)水操作工(中級)職業(yè)鑒定理論考試題庫((含答案))
- 《電子技術(shù)基礎(chǔ)(第二版)》中職技工全套教學(xué)課件
- 人教版五年級上冊小數(shù)乘除法豎式計算題200道及答案
- 五年級上冊美術(shù)《傳統(tǒng)門飾》課件
- DL∕T 1309-2013 大型發(fā)電機(jī)組涉網(wǎng)保護(hù)技術(shù)規(guī)范
- (2020版)煤礦安全生產(chǎn)標(biāo)準(zhǔn)化管理體系評分表
- 城鄉(xiāng)低保待遇協(xié)議書
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計技術(shù)規(guī)程
評論
0/150
提交評論