.3 軟件測試
考點(9)軟件測試的基本概念
測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。好的測試方案是盡可能地發(fā)現(xiàn)至今沿未發(fā)現(xiàn)的錯誤,成功的測試則是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤。
1.軟件測試的任務(wù)
軟件測試的任務(wù)主要是預(yù)防軟件發(fā)生錯誤、發(fā)現(xiàn)并改正程序錯誤和提供錯誤診斷信息。
2軟件測試的步驟
(l)模塊測試(單元測試)。
(2)子系統(tǒng)測試。
(3)系統(tǒng)測試(集成測試)。
(4)驗收測試。
(5)平行運(yùn)行。
3.軟件測試的方法
軟件測試的方法有動態(tài)測試、靜態(tài)測試和正確性證明3種。
動態(tài)測試通常指的是上機(jī)測試,這種方法是使程序有控制地進(jìn)行,并從多種角度觀察程序運(yùn)得時的行為,以發(fā)現(xiàn)其中的錯誤;靜態(tài)測試一般是指人工評審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯誤,這是一個相當(dāng)有效的檢驗手段,但由于評審人的能力有限,靜態(tài)測試顯然不
可能發(fā)現(xiàn)所有的錯誤。
考點(10)軟件測試技術(shù)
1.基本概念
單元:是程序中最小的和最有意義的部分,由數(shù)據(jù)輸入、加工和輸出3部分組成,單元是可以正式說明的程序段。
程序/子程序:是由單元組成,內(nèi)部各單元之間聯(lián)系最為緊密,程序由子程序組成。
拼程序/系統(tǒng):是由程序/子程序組成,每個程序完成獨(dú)立的加工,子系統(tǒng)之間相對獨(dú)立,有獨(dú)立的數(shù)據(jù)確認(rèn)機(jī)構(gòu)。
2.黑箱和白箱測試的實施
(l)黑箱測試法(功能測試)。是把程序看成是一個黑箱子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。也就是說,黑箱測試是在程序接日進(jìn)行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)接收輸入數(shù)據(jù),產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。
(2)白箱測試法(結(jié)構(gòu)測試)。是把程序看成裝在一個透明的白箱子里,也就是完全了解程序的結(jié)構(gòu)和處理過程,按照程序內(nèi)部的邏輯測試程序,檢驗程序中的每條通路是否都能按預(yù)定的要求正確工作。3.程序排錯方法
程序排錯是程序測試后開始的工作,它確定測試中發(fā)現(xiàn)錯誤的性質(zhì)和位置,并修改錯誤,排錯有很多種方法,主要有簡單排錯法、歸納排錯法、演繹排錯法和反向搜索排錯法等。
4.測試與排錯
測試與排錯是互相聯(lián)系但又是性質(zhì)不同的兩類活動,它們之間的關(guān)系是一個好的測試設(shè)計有利于排錯,從而保證程序的正確性。
5.路徑測試
路徑測試是結(jié)構(gòu)測試之一,路徑可定義為從程序元素的人口開始,到它的出口終止的可執(zhí)行指令程序。路徑測試的目標(biāo)是通過檢驗足夠多的程序元素的路徑來證實程序元素的實際結(jié)構(gòu)同所期望的程序元素的結(jié)構(gòu)是一致的。
考點(11)軟件測試的組成
軟件系統(tǒng)的開發(fā)過程是一個自頂向下逐步細(xì)化的過程,而測試過程是以相反順序進(jìn)行的集成過程,軟件測試的組成包括單元測試、集成測試、有效性測試、系統(tǒng)測試和驗收測試等。
(1)單元測試。是檢查模塊單元的子程序或過程的實際功能與該模塊的功能和接口的描述是否相符,以及是否有編碼錯誤的存在。
(2)集成測試。集成測試是指在組裝軟件模塊的同時進(jìn)行測試,以查找與接口有關(guān)的錯誤。
(3)有效性測試。是指當(dāng)軟件的運(yùn)行達(dá)到了用戶的期望時,則認(rèn)為軟件是有效的。
(4)系統(tǒng)測試。是將軟件系統(tǒng)與硬件,外設(shè)與其他系統(tǒng)元素結(jié)合在一起,對整個軟件系統(tǒng)進(jìn)行測試,其內(nèi)容包括功能測試、吞吐量測試、可用性測試、保密性測試、安裝測試、可恢復(fù)性測試、資料測試和程序測試。
(5)驗收測試。是系統(tǒng)測試通過后,由用戶進(jìn)行驗收測試,確定系統(tǒng)功能的可接受性。
(6)軟件測試的實施。軟件測試是一個極為復(fù)雜的過程。一個規(guī)范化的軟件測試過程通常包括以下基本的測試活動:擬定軟件測試計劃,編制軟件測試大綱,設(shè)計和生成測試用例,實施測試,生成軟件問題報告。
2.4 軟件維護(hù)
考點(12) 軟件維護(hù)的基本概念
維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長和代價的一個階段。軟件工程學(xué)的主要目的就是提高軟件的可維護(hù)性,降低維護(hù)的花費(fèi)。
軟件維護(hù)通常包括為了糾正在使用過程中暴露出來的錯誤而進(jìn)行的改進(jìn)性維護(hù),為了適應(yīng)外部環(huán)境的變化而進(jìn)行的適應(yīng)性維護(hù),為了改進(jìn)原有的軟件而進(jìn)行的完善性維護(hù),以及為了改進(jìn)將來的可維護(hù)性和可靠性而進(jìn)行的預(yù)防性維護(hù)。
1.軟件維護(hù)的基本任務(wù)
軟件維護(hù)是指系統(tǒng)交付使用以后對它所做的改變,也是軟件生存周期中最后一個階段。
改變的原因是改正程序的錯誤和缺陷,改進(jìn)設(shè)計和適用新的軟、硬件環(huán)境,增加新的應(yīng)用范圍。
2.軟件維護(hù)的分類
軟件維護(hù)主要劃分為糾錯性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。
(1)糾錯性維護(hù)。由于前期的測試不可能揭露軟件系統(tǒng)中所有潛在的錯誤,用戶在使用軟件時仍將會遇到錯誤,診斷和改正這些錯誤的過程稱為糾錯性維護(hù)。
(2)適應(yīng)性維護(hù)。由于新的硬件設(shè)備不斷推出,操作系統(tǒng)和編譯系統(tǒng)也不斷地升級,為了使軟件能適應(yīng)新的環(huán)境而引起的程序修改和擴(kuò)充活動稱為適應(yīng)性維護(hù)。
(3)完善性維護(hù)。在軟件的正常使用過程中,用戶還會不斷地提出新的需求。為了滿足用戶新的需求而增加軟件功能的活動稱為完善性維護(hù)。
考點(13)影響維護(hù)的因素
影響軟件維護(hù)的因素包括人員因素、技術(shù)因素、管理因素和程序自身的因素。
考點(14)軟件可維護(hù)性度量
可維護(hù)性度量表示軟件系統(tǒng)維護(hù)工作的強(qiáng)度或維護(hù)工作量的大小。實踐中把可維護(hù)性試題問題分為對可測試性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。
考點(9)軟件測試的基本概念
測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。好的測試方案是盡可能地發(fā)現(xiàn)至今沿未發(fā)現(xiàn)的錯誤,成功的測試則是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤。
1.軟件測試的任務(wù)
軟件測試的任務(wù)主要是預(yù)防軟件發(fā)生錯誤、發(fā)現(xiàn)并改正程序錯誤和提供錯誤診斷信息。
2軟件測試的步驟
(l)模塊測試(單元測試)。
(2)子系統(tǒng)測試。
(3)系統(tǒng)測試(集成測試)。
(4)驗收測試。
(5)平行運(yùn)行。
3.軟件測試的方法
軟件測試的方法有動態(tài)測試、靜態(tài)測試和正確性證明3種。
動態(tài)測試通常指的是上機(jī)測試,這種方法是使程序有控制地進(jìn)行,并從多種角度觀察程序運(yùn)得時的行為,以發(fā)現(xiàn)其中的錯誤;靜態(tài)測試一般是指人工評審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯誤,這是一個相當(dāng)有效的檢驗手段,但由于評審人的能力有限,靜態(tài)測試顯然不
可能發(fā)現(xiàn)所有的錯誤。
考點(10)軟件測試技術(shù)
1.基本概念
單元:是程序中最小的和最有意義的部分,由數(shù)據(jù)輸入、加工和輸出3部分組成,單元是可以正式說明的程序段。
程序/子程序:是由單元組成,內(nèi)部各單元之間聯(lián)系最為緊密,程序由子程序組成。
拼程序/系統(tǒng):是由程序/子程序組成,每個程序完成獨(dú)立的加工,子系統(tǒng)之間相對獨(dú)立,有獨(dú)立的數(shù)據(jù)確認(rèn)機(jī)構(gòu)。
2.黑箱和白箱測試的實施
(l)黑箱測試法(功能測試)。是把程序看成是一個黑箱子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。也就是說,黑箱測試是在程序接日進(jìn)行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)接收輸入數(shù)據(jù),產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。
(2)白箱測試法(結(jié)構(gòu)測試)。是把程序看成裝在一個透明的白箱子里,也就是完全了解程序的結(jié)構(gòu)和處理過程,按照程序內(nèi)部的邏輯測試程序,檢驗程序中的每條通路是否都能按預(yù)定的要求正確工作。3.程序排錯方法
程序排錯是程序測試后開始的工作,它確定測試中發(fā)現(xiàn)錯誤的性質(zhì)和位置,并修改錯誤,排錯有很多種方法,主要有簡單排錯法、歸納排錯法、演繹排錯法和反向搜索排錯法等。
4.測試與排錯
測試與排錯是互相聯(lián)系但又是性質(zhì)不同的兩類活動,它們之間的關(guān)系是一個好的測試設(shè)計有利于排錯,從而保證程序的正確性。
5.路徑測試
路徑測試是結(jié)構(gòu)測試之一,路徑可定義為從程序元素的人口開始,到它的出口終止的可執(zhí)行指令程序。路徑測試的目標(biāo)是通過檢驗足夠多的程序元素的路徑來證實程序元素的實際結(jié)構(gòu)同所期望的程序元素的結(jié)構(gòu)是一致的。
考點(11)軟件測試的組成
軟件系統(tǒng)的開發(fā)過程是一個自頂向下逐步細(xì)化的過程,而測試過程是以相反順序進(jìn)行的集成過程,軟件測試的組成包括單元測試、集成測試、有效性測試、系統(tǒng)測試和驗收測試等。
(1)單元測試。是檢查模塊單元的子程序或過程的實際功能與該模塊的功能和接口的描述是否相符,以及是否有編碼錯誤的存在。
(2)集成測試。集成測試是指在組裝軟件模塊的同時進(jìn)行測試,以查找與接口有關(guān)的錯誤。
(3)有效性測試。是指當(dāng)軟件的運(yùn)行達(dá)到了用戶的期望時,則認(rèn)為軟件是有效的。
(4)系統(tǒng)測試。是將軟件系統(tǒng)與硬件,外設(shè)與其他系統(tǒng)元素結(jié)合在一起,對整個軟件系統(tǒng)進(jìn)行測試,其內(nèi)容包括功能測試、吞吐量測試、可用性測試、保密性測試、安裝測試、可恢復(fù)性測試、資料測試和程序測試。
(5)驗收測試。是系統(tǒng)測試通過后,由用戶進(jìn)行驗收測試,確定系統(tǒng)功能的可接受性。
(6)軟件測試的實施。軟件測試是一個極為復(fù)雜的過程。一個規(guī)范化的軟件測試過程通常包括以下基本的測試活動:擬定軟件測試計劃,編制軟件測試大綱,設(shè)計和生成測試用例,實施測試,生成軟件問題報告。
2.4 軟件維護(hù)
考點(12) 軟件維護(hù)的基本概念
維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長和代價的一個階段。軟件工程學(xué)的主要目的就是提高軟件的可維護(hù)性,降低維護(hù)的花費(fèi)。
軟件維護(hù)通常包括為了糾正在使用過程中暴露出來的錯誤而進(jìn)行的改進(jìn)性維護(hù),為了適應(yīng)外部環(huán)境的變化而進(jìn)行的適應(yīng)性維護(hù),為了改進(jìn)原有的軟件而進(jìn)行的完善性維護(hù),以及為了改進(jìn)將來的可維護(hù)性和可靠性而進(jìn)行的預(yù)防性維護(hù)。
1.軟件維護(hù)的基本任務(wù)
軟件維護(hù)是指系統(tǒng)交付使用以后對它所做的改變,也是軟件生存周期中最后一個階段。
改變的原因是改正程序的錯誤和缺陷,改進(jìn)設(shè)計和適用新的軟、硬件環(huán)境,增加新的應(yīng)用范圍。
2.軟件維護(hù)的分類
軟件維護(hù)主要劃分為糾錯性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。
(1)糾錯性維護(hù)。由于前期的測試不可能揭露軟件系統(tǒng)中所有潛在的錯誤,用戶在使用軟件時仍將會遇到錯誤,診斷和改正這些錯誤的過程稱為糾錯性維護(hù)。
(2)適應(yīng)性維護(hù)。由于新的硬件設(shè)備不斷推出,操作系統(tǒng)和編譯系統(tǒng)也不斷地升級,為了使軟件能適應(yīng)新的環(huán)境而引起的程序修改和擴(kuò)充活動稱為適應(yīng)性維護(hù)。
(3)完善性維護(hù)。在軟件的正常使用過程中,用戶還會不斷地提出新的需求。為了滿足用戶新的需求而增加軟件功能的活動稱為完善性維護(hù)。
考點(13)影響維護(hù)的因素
影響軟件維護(hù)的因素包括人員因素、技術(shù)因素、管理因素和程序自身的因素。
考點(14)軟件可維護(hù)性度量
可維護(hù)性度量表示軟件系統(tǒng)維護(hù)工作的強(qiáng)度或維護(hù)工作量的大小。實踐中把可維護(hù)性試題問題分為對可測試性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。