管理信息系統(tǒng)測試.docx_第1頁
管理信息系統(tǒng)測試.docx_第2頁
管理信息系統(tǒng)測試.docx_第3頁
管理信息系統(tǒng)測試.docx_第4頁
管理信息系統(tǒng)測試.docx_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

6.3.1 信息系統(tǒng)測試系統(tǒng)測試是保證管理信息系統(tǒng)質(zhì)量的一個(gè)重要環(huán)節(jié)。程序編制完成后,要用各種測試方法檢查各個(gè)部分是否達(dá)到了規(guī)定的質(zhì)量標(biāo)準(zhǔn)。系統(tǒng)測試是為了發(fā)現(xiàn)程序和系統(tǒng)中的錯(cuò)誤。好的測試方案有可能發(fā)現(xiàn)從未發(fā)現(xiàn)的錯(cuò)誤,能夠發(fā)現(xiàn)從未發(fā)現(xiàn)過的錯(cuò)誤的測試才是成功的測試,否則就沒有必要進(jìn)行測試了。6.3.2系統(tǒng)測試概述一、 系統(tǒng)測試概述系統(tǒng)測試,英文是System Testing。是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,系統(tǒng)測試是針對整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方,從而提出更加完善的方案。系統(tǒng)測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯(cuò)誤原因和位置,然后進(jìn)行改正。是基于系統(tǒng)整體需求說明書的黑盒類測試,應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件。對象不僅僅包括需測試的軟件,還要包含軟件所依賴的硬件、外設(shè)甚至包括某些數(shù)據(jù)、某些支持軟件及其接口等。系統(tǒng)測試是保證系統(tǒng)質(zhì)量的關(guān)鍵,是對整個(gè)系統(tǒng)開發(fā)過程的最終審查。在管理信息系統(tǒng)開發(fā)周期的各個(gè)階段都不可避免地會(huì)出現(xiàn)差錯(cuò),系統(tǒng)開發(fā)人員應(yīng)力求在每個(gè)階段結(jié)束之前進(jìn)行認(rèn)真、嚴(yán)格的技術(shù)審查,盡可能及時(shí)發(fā)現(xiàn)并糾正錯(cuò)誤,但開發(fā)過程中的階段審查并不能發(fā)現(xiàn)所有的錯(cuò)誤。這些錯(cuò)誤如果等到系統(tǒng)投入運(yùn)行后再糾正,將在人力、物力上造成很大的浪費(fèi),甚至導(dǎo)致系統(tǒng)的失敗。此外,在程序設(shè)計(jì)過程中,也會(huì)或多或少地引入新的錯(cuò)誤。因此,在應(yīng)用系統(tǒng)投入之前必須糾正這些錯(cuò)誤,這是系統(tǒng)能夠正確、可靠運(yùn)行的重要保證。統(tǒng)計(jì)資料表明,對于一些較大規(guī)模的系統(tǒng)來說,系統(tǒng)調(diào)試的工作量往往占據(jù)程序系統(tǒng)編制開發(fā)總工作量的40%以上。很多人認(rèn)為“測試是證明程序中不存在錯(cuò)誤的過程”、“程序測試的目的是要證明程序正確地執(zhí)行了預(yù)期的功能”、“程序測試的過程是使人們確信程序可完成預(yù)期要完成的工作過程”。但卻是錯(cuò)誤的定義。測試的定義應(yīng)該是:為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。從這個(gè)定義出發(fā)可以看出應(yīng)該把查出了新錯(cuò)誤的測試看作是成功的測試,沒有發(fā)現(xiàn)錯(cuò)誤的測試則是失敗的測試。系統(tǒng)測試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟,是對系統(tǒng)開發(fā)過程中的系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)施的最后復(fù)查?;谝陨舷到y(tǒng)測試概念和目的,在進(jìn)行系統(tǒng)測試時(shí)應(yīng)遵循以下基本原則。(1) 測試工作應(yīng)避免由原來開發(fā)軟件的個(gè)人和小組承擔(dān)。測試工作應(yīng)由專門人員來進(jìn)行,會(huì)更客觀、更有效。(2) 測試用例不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預(yù)期輸出結(jié)果。將實(shí)際輸出結(jié)果與預(yù)期輸出結(jié)果相比較就能發(fā)現(xiàn)程序是否有錯(cuò)誤。(3) 設(shè)計(jì)測試用例不僅要包括有效合理的輸入數(shù)據(jù),也要包含不合理、無效的輸入數(shù)據(jù)。二、系統(tǒng)測試內(nèi)容系統(tǒng)的測試工作可以分為模塊測試、子系統(tǒng)測試和系統(tǒng)測試。1.模塊測試模塊測試式以系統(tǒng)的程序模塊為對象進(jìn)行測試,驗(yàn)證模塊功能及其接口與設(shè)計(jì)說明書是否一致。在一個(gè)設(shè)計(jì)系統(tǒng)中,每個(gè)模塊完成一個(gè)清晰單一定義的功能,可以把模塊作為一個(gè)單獨(dú)的實(shí)體來測試。模塊測試的目的式測試模塊在語法、格式和邏輯上的錯(cuò)誤,保證每個(gè)模塊本身能正常運(yùn)行,在該測試中發(fā)現(xiàn)的問題大都是程序設(shè)計(jì)錯(cuò)誤或系統(tǒng)設(shè)計(jì)中的錯(cuò)誤。模塊測試主要從下述幾個(gè)方面進(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)是否能夠正確地支持模塊功能的實(shí)現(xiàn)。(3)出錯(cuò)處理。測試模塊運(yùn)行出錯(cuò)時(shí),出錯(cuò)處理功能是否能及時(shí)啟動(dòng)并有效工作。(4)邊界條件。軟件往往容易在邊界條件上發(fā)生問題,因此需要測試模塊在其各種邊界參數(shù)處能否正常工作。2.子系統(tǒng)測試完成每個(gè)模塊的測試以后,需要按照系統(tǒng)設(shè)計(jì)所完成的模塊結(jié)構(gòu)圖把它們連接成子系統(tǒng),即進(jìn)行子系統(tǒng)測試。有些模塊能夠單獨(dú)地正常工作,但是連接起來就不能正常運(yùn)行,這里可能存在接口和整體協(xié)調(diào)問題。例如數(shù)據(jù)可能在接口的傳遞中丟失、一個(gè)模塊的運(yùn)行可能會(huì)干擾其他模塊運(yùn)行等都是子系統(tǒng)測試所要關(guān)注的問題。子系統(tǒng)測試是在模塊測試的基礎(chǔ)上,解決模塊間的相互調(diào)用問題,主要測試子系統(tǒng)中各個(gè)模塊的外部功能,以及模塊之間的接口好調(diào)用關(guān)系。子系統(tǒng)測試主要有以下內(nèi)容。(1)各模塊的連接是否有錯(cuò)誤。測試模塊接口是否正常,及模塊調(diào)用參數(shù)的數(shù)目、順序和類型是否正確,數(shù)據(jù)能否正確無誤地流入、流出模塊;能否保證數(shù)據(jù)的有效傳輸、數(shù)據(jù)的完整性和一致性。(2)運(yùn)行中的人機(jī)界面及各種通信接口能否滿足設(shè)計(jì)要求。(3)所涉及的外部設(shè)備是否能正確連接,與相關(guān)外部設(shè)備的通信功能是否滿足設(shè)計(jì)要求。3.系統(tǒng)測試系統(tǒng)測試就是將經(jīng)過子系統(tǒng)測試的模塊群裝配成一個(gè)完整的系統(tǒng)進(jìn)行測試,以檢查系統(tǒng)是否達(dá)到了系統(tǒng)分析的要求,系統(tǒng)測試的依據(jù)是系統(tǒng)分析報(bào)告,系統(tǒng)的測試不僅是對軟件的測試,而且是對系統(tǒng)的軟件與硬件一同進(jìn)行測試。系統(tǒng)測試包含功能測試、恢復(fù)測試、安全測試、強(qiáng)度測試和性能測試。(1)功能測試。系統(tǒng)功能測試是對系統(tǒng)分析報(bào)告中的目標(biāo)和軟件系統(tǒng)所實(shí)現(xiàn)的目標(biāo)進(jìn)行逐個(gè)比較,用以檢查目標(biāo)功能是否遺漏。(2)恢復(fù)測試。系統(tǒng)恢復(fù)測試主要檢查系統(tǒng)的容錯(cuò)能力。測試系統(tǒng)出錯(cuò)時(shí),能否在制定的時(shí)間間隔內(nèi)修正錯(cuò)誤并重新啟動(dòng)系統(tǒng)。(3)安全測試。系統(tǒng)安全測試主要檢驗(yàn)系統(tǒng)是否存在安全保密漏洞。,在測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。(4)強(qiáng)度測試。系統(tǒng)強(qiáng)度測試主要檢驗(yàn)系統(tǒng)的信息處理能力最高能達(dá)到什么實(shí)際限度。強(qiáng)度測試迫使系統(tǒng)在它的設(shè)計(jì)能力極限狀態(tài)下進(jìn)行,進(jìn)而測出系統(tǒng)的極限。(5)性能測試。對于一些實(shí)時(shí)和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未必滿足性能要求。性能測試要全面、可靠地系統(tǒng)運(yùn)行中的各種性能指標(biāo)是否能夠達(dá)到用戶的實(shí)際需要。模塊測試、子系統(tǒng)測試和系統(tǒng)測試,每一步都是在前一步的基礎(chǔ)上進(jìn)行,其過程如圖所示。模塊測試子系統(tǒng)測試系統(tǒng)測試【系統(tǒng)的測試內(nèi)容】圖例6.3.2軟件測試的方法軟件測試的常用方法:測試名稱測試內(nèi)容Black Box黑盒測試把軟件軟件系統(tǒng)當(dāng)做一個(gè)“黑箱”,無法了解或使用系統(tǒng)的內(nèi)部結(jié)構(gòu)及知識(shí)。從軟件的行為,而不是內(nèi)部結(jié)構(gòu)出發(fā)來設(shè)計(jì)測試。White Box白盒測試設(shè)計(jì)者可以看到軟件系統(tǒng)的內(nèi)部結(jié)構(gòu),并且使用軟件的內(nèi)部知識(shí)來指導(dǎo)測試數(shù)據(jù)及方法的選擇。Gray Box灰盒測試介于黑盒和白盒之間1.黑盒測試: 黑盒測試,英文是Black Box Testing。又稱功能測試或者數(shù)據(jù)驅(qū)動(dòng)測試。測試者把程序看成是一個(gè)黑盒,完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性而進(jìn)行的測試。黑盒測試是根據(jù)軟件的規(guī)格對軟件進(jìn)行的測試,這類測試不考慮軟件內(nèi)部的運(yùn)作原理,因此軟件對用戶來說就像一個(gè)黑盒子。軟件測試人員以用戶的角度,通過各種輸入和觀察軟件的各種輸出結(jié)果來發(fā)現(xiàn)軟件存在的缺陷,而不關(guān)心程序具體如何實(shí)現(xiàn)的一種軟件測試方法。黑盒測試常用工具有:AutoRunner、winrunner、loadrunner。在黑盒測試中所采用的方法主要有等價(jià)類劃分和邊界值分析等方法。(1)等價(jià)類劃分程序中所輸入的數(shù)據(jù)按照程序功能說明可以分成若干個(gè)等價(jià)類,按輸入條件可以將每一個(gè)等價(jià)類分成有效輸入等價(jià)類與無效輸入等價(jià)類兩種。因此,對于每一個(gè)有效或無效的等價(jià)類可以設(shè)計(jì)一些測試用例,如果這些測試用例不出現(xiàn)錯(cuò)誤,說明對于同一類的其他數(shù)據(jù)也不會(huì)出錯(cuò),否則肯定出錯(cuò)。例如,在測試銷售定價(jià)處理程序時(shí),由于產(chǎn)品銷售價(jià)格主要依賴于客戶所訂購的產(chǎn)品數(shù)量、客戶是否是老客戶、客戶是否具有拖欠貸款的記錄等條件。因此在對該程序測試中,可以按照這三個(gè)條件設(shè)計(jì)不同的等價(jià)類測試用例。(1)邊界值分析由于許多軟件在處理邊界值時(shí)容易發(fā)生錯(cuò)誤,用大于、等于、小于邊界值的數(shù)據(jù)作為測試用例更容易發(fā)現(xiàn)程序中的錯(cuò)誤。而等價(jià)類測試方法往往是在某一等價(jià)類中進(jìn)行隨機(jī)選擇,未必代表了邊界狀況。因此,邊界值測試方法可以對等價(jià)類測試方法進(jìn)行有效的補(bǔ)充。例如,某一程序的輸入數(shù)據(jù)位01000,可以選擇-0.1、0、0.1、999.9、1000、1000.1作為測試用例。2.白盒測試白盒測試,英文是White Box Testing。又稱結(jié)構(gòu)測試或者邏輯驅(qū)動(dòng)測試。是允許人們檢查程序的內(nèi)部結(jié)構(gòu),是測試者從檢查程序的邏輯著手,得出測試數(shù)據(jù),進(jìn)行測試的過程。是把測試對象看作一個(gè)打開的盒子。利用白盒測試法進(jìn)行動(dòng)態(tài)測試時(shí),需要測試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程,不需測試軟件產(chǎn)品的功能。白盒測試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。它知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動(dòng)、基路測試等,主要用于軟件驗(yàn)證。白盒測試常用工具有:Jtest、VcSmith、Jcontract、C+ Test、CodeWizard、logiscope。*總結(jié): 實(shí)際工作中,對系統(tǒng)的了解越多越好。目前大多數(shù)的測試人員都是做黑盒測試,很少有做白盒測試的。 因?yàn)榘缀袦y試對軟件測試人員的要求非常高,需要有很多編程經(jīng)驗(yàn)。做.NET程序的白盒測試你要能看得懂.NET代碼。做JAVA程序的測試,需要你能看懂JAVA的代碼。 如果你都能看懂了,你還會(huì)做測試么?6.3.2 軟件測試步驟一、軟件測試的過程系統(tǒng)測試是開發(fā)過程中一個(gè)獨(dú)立而且非常重要的階段,也是保證開發(fā)質(zhì)量的重要手段之一。測試過程基本上與開發(fā)過程平行進(jìn)行。在測試過程中,需要對整個(gè)測試過程進(jìn)行有效的管理,保證測試的質(zhì)量和效率。一個(gè)規(guī)范的測試過程通常包括以下基本的測試活動(dòng)。1. 制定測試計(jì)劃在制定測試計(jì)劃時(shí),需要充分考慮整個(gè)項(xiàng)目的開發(fā)時(shí)間和開發(fā)進(jìn)度,以及一些人為因素和客觀條件等,使得測試計(jì)劃是可行的。測試計(jì)劃的內(nèi)容主要有:測試的內(nèi)容、進(jìn)度安排、測試所需的環(huán)境和條件、測試培訓(xùn)安排等。2. 編制測試大綱測試大綱是測試的依據(jù),它明確詳盡地規(guī)定了在測試中針對系統(tǒng)的每一項(xiàng)功能或特性所必須完成的基本測試項(xiàng)目和測試完成的標(biāo)準(zhǔn)。3. 設(shè)計(jì)和生成測試用例依據(jù)測試大綱設(shè)計(jì)和生成測試用例,產(chǎn)生測試設(shè)計(jì)說明文檔,其主要內(nèi)容有被測項(xiàng)目、輸入數(shù)據(jù)、測試過程和預(yù)期輸出結(jié)果等。4. 實(shí)施測試測試的實(shí)施階段是由一系列的測試周期組成的。在每個(gè)測試周期中,測試人員和開發(fā)人員將依據(jù)預(yù)先編制好的測試大綱及準(zhǔn)備好的測試用例,對被測系統(tǒng)或設(shè)備進(jìn)行完整的測試。5. 生成測試報(bào)告測試完成后,要形成相應(yīng)的測試報(bào)告。主要對測試進(jìn)行概要說明,列出測試的結(jié)論,指出錯(cuò)誤和缺陷。另外,給出一些建議。二、軟件測試的方法對軟件進(jìn)行測試的主要方法有人工測試和機(jī)器測試。人工測試采用人工方法進(jìn)行,目的在于檢查程序的靜態(tài)結(jié)構(gòu),找出編譯不能發(fā)現(xiàn)的錯(cuò)誤。經(jīng)驗(yàn)表面,良好的人工測試可以發(fā)現(xiàn)程序中30%70%的編碼和邏輯設(shè)計(jì)錯(cuò)誤,從而可以減少機(jī)器測試的負(fù)擔(dān)。機(jī)器測試是將事先設(shè)計(jì)好的測試用例作用于被測試程序,對比測試結(jié)果和預(yù)期結(jié)果的差別以發(fā)現(xiàn)錯(cuò)誤。機(jī)器測試只能發(fā)現(xiàn)錯(cuò)誤的癥狀,不能進(jìn)行問題定位,而人工測試一旦發(fā)現(xiàn)錯(cuò)誤,就能確定問題的位置、類型和性質(zhì)。對于一些類型的錯(cuò)誤,機(jī)器測試比人工測試有效,但對另一些類型的錯(cuò)誤則人工測試更有效。因此,應(yīng)根據(jù)實(shí)際情況來選擇測試方法。測試模型:程序設(shè)計(jì)系統(tǒng)設(shè)計(jì)階段系統(tǒng)分析階段模塊測試高級測試應(yīng)用需求系統(tǒng)外部規(guī)范設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)程序結(jié)構(gòu)設(shè)計(jì)編寫代碼子模塊測試調(diào)試代碼功能測試模塊整體設(shè)置驗(yàn)收測試安裝測試系統(tǒng)測試二、 系統(tǒng)測試步驟合理安排測試步驟對于提高測試效率、降低測試成本有很大的作用。管理信息系統(tǒng)的測試步驟是:分別按硬件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)和軟件系統(tǒng)進(jìn)行測試,最后對整個(gè)系統(tǒng)進(jìn)行總的綜合測試。測試的步驟如下:(1)硬件測試在開發(fā)建設(shè)管理信息系統(tǒng)時(shí),通常需要根據(jù)項(xiàng)目情況選購硬件設(shè)備。在硬件設(shè)備采購到貨后,應(yīng)在各相關(guān)廠商的配合下進(jìn)行初始驗(yàn)收測試,初驗(yàn)通過后,再將其與軟件、網(wǎng)絡(luò)等一起進(jìn)行系統(tǒng)測試。初驗(yàn)測試所做的主要工作有一下幾點(diǎn)。1. 配置檢測。檢測是否按照合同提供了相應(yīng)的配置,如系統(tǒng)軟件、硬盤、內(nèi)存、CPU等的配置情況。2. 硬件設(shè)備的外觀檢查。所有設(shè)備及配件開箱后外觀有無明顯的劃痕和損傷,這些包括計(jì)算機(jī)主機(jī)、工作站、磁帶庫、磁盤機(jī)柜和存儲(chǔ)設(shè)備等。3. 硬件測試。首先進(jìn)行加電檢測,查看運(yùn)行狀態(tài)是否正常,有無報(bào)警、屏幕有無亂碼提示和死機(jī)現(xiàn)象,以及是否能進(jìn)入正常提示狀態(tài);然后進(jìn)行操作檢測,用一些常用的命令來檢測機(jī)器是否能執(zhí)行命令,執(zhí)行結(jié)果是否正常,如文件復(fù)制、顯示文件內(nèi)容、建立目錄等,最后檢查是否提供了相關(guān)工具,如幫助系統(tǒng)、系統(tǒng)管理工具等。通過以上測試,要求形成相應(yīng)的硬件測試報(bào)告,報(bào)告中應(yīng)包含測試步驟、測試過程和測試結(jié)論等。(2)網(wǎng)絡(luò)測試如果開發(fā)的管理信息系統(tǒng)需要在局域網(wǎng)或廣域網(wǎng)上運(yùn)行,通常需要選購網(wǎng)絡(luò)設(shè)備。在網(wǎng)絡(luò)設(shè)備按合同到貨后,應(yīng)在各相關(guān)廠商的配合下進(jìn)行初始驗(yàn)收測試,初驗(yàn)通過后,再將其與軟件、網(wǎng)絡(luò)等一起進(jìn)行系統(tǒng)測試。初驗(yàn)測試所做的主要工作有一下幾點(diǎn)。1網(wǎng)絡(luò)設(shè)備的外觀檢查,所有設(shè)備及配件開箱后外觀有無明顯的劃痕和損傷,這些包括交換機(jī)、路由器等。2硬件測試。對交換機(jī)、路由器等進(jìn)行加電檢測,觀看運(yùn)行狀態(tài)是否正常,有無錯(cuò)誤、有無報(bào)警等。3.網(wǎng)絡(luò)連通測試。檢測網(wǎng)絡(luò)是否連通,檢測服務(wù)器和各工作站是否能通過網(wǎng)絡(luò)設(shè)備建立正常連接。通過以上測試,要求形成相應(yīng)的網(wǎng)絡(luò)測試報(bào)告,報(bào)告中應(yīng)包含測試步驟、測試過程和測試結(jié)論等。(3)軟件測試軟件測試實(shí)際上分為4個(gè)步驟:單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。如圖所示:初驗(yàn)硬件設(shè)備確認(rèn)后的硬件系統(tǒng)單元測試單元測試單元測試模塊模塊模塊設(shè)計(jì)信息系統(tǒng)測試用戶信息可以運(yùn)行的系統(tǒng)已經(jīng)確認(rèn)的應(yīng)用軟件需求信息已經(jīng)集成的子系統(tǒng)組裝測試確認(rèn)測試已經(jīng)測試過的模塊初驗(yàn)網(wǎng)絡(luò)設(shè)備確認(rèn)后的網(wǎng)絡(luò)系統(tǒng) 圖:管理信息系統(tǒng)測試過程(a)單元測試。單元測試也稱為模塊測試。對源程序中的每個(gè)程序單元進(jìn)行測試,以驗(yàn)證每個(gè)模塊是否滿足系統(tǒng)說明書的要求。一般情況下是編好一個(gè)程序模塊就測試一個(gè),通常采用白盒測試方法,再輔之以黑盒測試。(b)集成測試。集成測試又稱組裝測試。是把模塊按系統(tǒng)設(shè)計(jì)說明書的要求組裝起來進(jìn)行測試。集成測試的主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題,如數(shù)據(jù)通過接口時(shí)可能丟失,一個(gè)模塊對另一個(gè)模塊可能造成有害影響,將它們組合起來后可能不能實(shí)現(xiàn)預(yù)期的功能,全局?jǐn)?shù)據(jù)結(jié)構(gòu)會(huì)出現(xiàn)問題,誤差累積到超過可接受的程度等。集成測試通常有兩種方法:一種是非增量式集成測試,即先分別測試各個(gè)模塊,再把這些模塊組合起來進(jìn)行整體測試;另一種是增量集成測試,即把下一個(gè)要測試的模塊組合到已測試好的模塊中,測試完后再將下一個(gè)需要測試的模塊組合起來進(jìn)行測試,逐步把所有的模塊組合在一起,并完成測試。集成方式可采用自頂向下集成或自底向上集成。(C)確認(rèn)測試。確認(rèn)測試是按照系統(tǒng)說明書中定義的全部功能和性能要求及確認(rèn)測試計(jì)劃,來測試整個(gè)軟件系統(tǒng)是否達(dá)到了用戶要求,確認(rèn)測試首先要進(jìn)行有效性測試及軟件配置審查,然后進(jìn)行驗(yàn)收測試和安裝測試,經(jīng)過管理部門的認(rèn)可和專家的鑒定后,軟件即可以交給用戶使用。確認(rèn)測試通常采用黑盒測試法。(d)系統(tǒng)測試。系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等系統(tǒng)的各個(gè)部分連接到一起,對整個(gè)系統(tǒng)進(jìn)行總的功能、性能等方面的測試。其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方。6.3.4軟件正確性證明測試正確性證明是顯示產(chǎn)品正確的一種數(shù)學(xué)技術(shù)。換句話說,產(chǎn)品滿足規(guī)格說明。該技術(shù)有時(shí)稱為驗(yàn)證,然而驗(yàn)證一次常用于表示所有的非執(zhí)行測試技術(shù),不只是正確性證明。為明確起見,將這個(gè)數(shù)學(xué)稱為正確性證明,它是一個(gè)數(shù)學(xué)證明過程。Int k,s;Int yn;K=0;S=0;While(kn)S=s+yk;K=k+1; 【例】為了明白如何證明正確性,考慮圖a所示代碼段。與代碼等效的流程圖(圖b)所示。我們現(xiàn)在來證明該代碼段是正確的。執(zhí)行該代碼之后,變量s的值等于數(shù)組y的n個(gè)元素的和。在圖c中,在每個(gè)語句之前和之后,在標(biāo)注字母AH的地方,放置一個(gè)斷言,也就是在每個(gè)擁有某個(gè)數(shù)字屬性的地方做一個(gè)聲明。我們需要做的是證明每個(gè)斷言的正確性。圖a:要證明是正確的代碼段K0s0ss+ykkk+1Is Kn?圖b:圖a的流程圖BYESHK0kk+1 ss+yks0Is kn?CDEFGANOn1,2,3 (輸入規(guī)格說明)K=0K=0且s=0Kn且s=y0+y1+yk-1Kn且s=y0+y1+yk-1Kn且s=y0+y1+ykKn且s=y0+y1+yk-1K=n且s=y0+y1+yn-1圖c:帶有輸入規(guī)格說明、輸出規(guī)格說明、循環(huán)不變式和斷言的圖b輸入規(guī)格說明代碼執(zhí)行前在A處具有的條件是,變量n是一個(gè)正整數(shù),也就是:A:n1,2,3。 (1)明顯的輸出規(guī)格說明是,如果控制達(dá)到H點(diǎn),s的值等于儲(chǔ)存在數(shù)組y中的n各值的和,也就是:H:s=y0+y1+.+yn-1 (2)事實(shí)上,對于較強(qiáng)的輸出規(guī)格說明,可以證明改代碼段是正確的:H:k=n且s=y0+y1+yn-1 (3)除了輸入和輸出規(guī)格說明,本證明過程的第三個(gè)方面是提供一個(gè)循環(huán)不變式,也就是必須在D點(diǎn)提供一個(gè)數(shù)學(xué)表達(dá)式,不管該循環(huán)執(zhí)行了0次、1次還是許多次。要證明持有的循環(huán)不變試試:D:kn且s=y0+y1+yk-1 (4)下面將表明,如果在A點(diǎn)輸入規(guī)格說明式(1)成立,那么輸出規(guī)格說明式(3)將在H點(diǎn)成立,也就是證明該代碼段是正確的。首先,執(zhí)行賦值語句k0,現(xiàn)在控制在B點(diǎn),如下的斷言成立:B:k=0 (5)為了更準(zhǔn)確,在B點(diǎn)斷言應(yīng)該讀做k=0且n1,2,3。然而在流程圖中的所有點(diǎn)輸入規(guī)格說明式(1)都成立。為簡便起見,以下“n1,2,3”省略。在C點(diǎn),作為第二賦值語句s0的結(jié)果,下面斷言是真的:C:k=0且s=0 (6)現(xiàn)在進(jìn)入循環(huán),這里將通過推到證明循環(huán)不變式(4)確實(shí)是正確的。在該循環(huán)第一次執(zhí)行之前,斷言式(6)成立,也就是k=0且s=0?,F(xiàn)在看循環(huán)不變式(4)。因?yàn)閿嘌允剑?)可以確定k=0,而且從出入規(guī)格式說明(1)可以確定n1,如果要求的那樣,kn成立。進(jìn)一步地說,因?yàn)閗=0,k-1=-1,所以式(4)中的和是空的,而且要求s=0.循環(huán)不變式(4)

溫馨提示

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

評論

0/150

提交評論