時(shí)間:2022-05-10 03:20:40
序論:在您撰寫(xiě)軟件測(cè)試論文時(shí),參考他人的優(yōu)秀作品可以開(kāi)闊視野,小編為您整理的1篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
摘要:嵌入式計(jì)算機(jī)是計(jì)算機(jī)行業(yè)中一種比較先進(jìn)的計(jì)算機(jī)技術(shù)。隨著科學(xué)技術(shù)的不斷發(fā)展,嵌入式計(jì)算機(jī)的使用范圍也越來(lái)越廣,在嵌入式計(jì)算機(jī)使用的過(guò)程中,能夠有效地保證對(duì)需要的功能的實(shí)現(xiàn)。但是,由于嵌入式計(jì)算機(jī)軟件的結(jié)構(gòu)相對(duì)于其他類(lèi)型的計(jì)算機(jī)來(lái)說(shuō)比較復(fù)雜,這就要求我們要能夠按照使用需要,及時(shí)對(duì)嵌入式計(jì)算機(jī)軟件技術(shù)進(jìn)行測(cè)試。文章根據(jù)現(xiàn)階段嵌入式計(jì)算機(jī)與嵌入式計(jì)算機(jī)軟件的概念,針對(duì)開(kāi)發(fā)使用的技術(shù)進(jìn)行分析,找出如何使用相關(guān)的技術(shù)對(duì)嵌入式計(jì)算機(jī)的軟件進(jìn)行測(cè)試。
關(guān)鍵詞:嵌入式;計(jì)算機(jī)軟件;測(cè)試;關(guān)鍵技術(shù)
前言
隨著我國(guó)的工業(yè)不斷地進(jìn)步,科學(xué)技術(shù)的不斷發(fā)展,嵌入式計(jì)算機(jī)技術(shù)也得到了很大程度的提升。我們身邊普通的計(jì)算機(jī)并不是嵌入式計(jì)算機(jī),嵌入式計(jì)算機(jī)指的是專(zhuān)門(mén)針對(duì)某一個(gè)項(xiàng)目或者是某一個(gè)行業(yè)進(jìn)行開(kāi)發(fā)的專(zhuān)業(yè)計(jì)算機(jī)。嵌入式計(jì)算機(jī)不僅僅能夠?qū)崿F(xiàn)對(duì)需求開(kāi)發(fā)的功能,有效地提升工作的效率。嵌入式軟件是嵌入式計(jì)算機(jī)中安裝的軟件,一般情況下,嵌入式軟件都需要根據(jù)不同的工作需要,完成相應(yīng)的功能,這就要求嵌入式軟件要具備一定的穩(wěn)定性,對(duì)嵌入式計(jì)算機(jī)軟件進(jìn)行測(cè)試,能夠很好地保證嵌入式軟件的正常工作。
1什么是嵌入式計(jì)算機(jī)
嵌入式計(jì)算機(jī)指的是針對(duì)某一種技術(shù),或者是某一種網(wǎng)絡(luò)、某一種功能等專(zhuān)門(mén)開(kāi)發(fā)的計(jì)算機(jī)系統(tǒng),利用計(jì)算機(jī)技術(shù),加入嵌入式系統(tǒng),能夠?qū)崿F(xiàn)對(duì)計(jì)算機(jī)硬件和軟件功能的增多,能夠更加適合實(shí)際運(yùn)用的需要。嵌入式計(jì)算機(jī)針對(duì)某一種功能的需要進(jìn)行開(kāi)發(fā),對(duì)開(kāi)發(fā)的成本、功能的可靠性以及計(jì)算機(jī)的大小等因素,都有十分嚴(yán)格的要求。通過(guò)對(duì)計(jì)算機(jī)處理器、硬件、系統(tǒng)、應(yīng)用等進(jìn)行嵌入式技術(shù)的操作,能夠更加有效地保證計(jì)算機(jī)技術(shù)的實(shí)現(xiàn)。嵌入式計(jì)算機(jī)大多被應(yīng)用在工業(yè)生產(chǎn)中,能夠提升工作效率,保證工作的質(zhì)量[1]。
2什么是嵌入式計(jì)算機(jī)軟件
嵌入式計(jì)算機(jī)軟件指的是在嵌入式計(jì)算機(jī)中使用的軟件,能夠進(jìn)行獨(dú)立功能的操作,嵌入式計(jì)算機(jī)軟件包括嵌入式微處理器、傳感器、控制器、定時(shí)器、儲(chǔ)存器等等。在嵌入式計(jì)算機(jī)中使用的電子芯片或是電子器件,將嵌入式計(jì)算機(jī)軟件安裝到嵌入式計(jì)算機(jī)中,能夠有效地實(shí)現(xiàn)常規(guī)計(jì)算機(jī)不具備的功能,比如:實(shí)時(shí)監(jiān)控功能、對(duì)設(shè)備的管理功能、數(shù)據(jù)處理功能、進(jìn)行移動(dòng)計(jì)算等等,真正地實(shí)現(xiàn)了現(xiàn)代化自動(dòng)化的電子處理,是實(shí)現(xiàn)現(xiàn)階段自動(dòng)化與智能化的社會(huì)生產(chǎn)力的重要途徑,嵌入式計(jì)算機(jī)軟件就是自動(dòng)化的核心部分[2]。我們可以將嵌入式計(jì)算機(jī)軟件分為:簡(jiǎn)單嵌入式系統(tǒng)和復(fù)雜嵌入式系統(tǒng)兩種。簡(jiǎn)單的嵌入式系統(tǒng)只能夠完成一項(xiàng)功能,比較典型的簡(jiǎn)單嵌入式系統(tǒng)就是單片機(jī)。單片機(jī)通過(guò)ROM技術(shù)就能夠?qū)崿F(xiàn)對(duì)系統(tǒng)的使用,能夠達(dá)到對(duì)程序控制的目的。復(fù)雜嵌入式系統(tǒng)的功能與普通的計(jì)算機(jī)系統(tǒng)功能并沒(méi)有什么過(guò)大的區(qū)別,只不過(guò)在復(fù)雜的嵌入式系統(tǒng)中,安裝了一些微型的嵌入式操作系統(tǒng),以及嵌入式應(yīng)用軟件在計(jì)算機(jī)中,能夠使計(jì)算機(jī)的功能得到相應(yīng)的完善,這就是嵌入式計(jì)算機(jī)軟件的作用[3]。
3什么是嵌入式計(jì)算機(jī)軟件的測(cè)試
嵌入式計(jì)算機(jī)軟件相比普通的計(jì)算機(jī)軟件來(lái)說(shuō),更具有專(zhuān)業(yè)性,嵌入式計(jì)算機(jī)軟件只能夠在某一個(gè)制定的平臺(tái)或者系統(tǒng)中運(yùn)行。但是嵌入式計(jì)算機(jī)軟件的開(kāi)發(fā)環(huán)境與運(yùn)行的環(huán)境還存在很大的差異,不能夠使用同一網(wǎng)絡(luò)環(huán)境。嵌入式計(jì)算機(jī)軟件需要使用交叉開(kāi)發(fā)的形式,在進(jìn)行開(kāi)發(fā)的計(jì)算機(jī)中,安裝并運(yùn)行開(kāi)發(fā)工具,開(kāi)始對(duì)軟件進(jìn)行編譯,再將編譯完成的軟件通過(guò)下載的方式,將軟件發(fā)送到目標(biāo)計(jì)算機(jī)中,當(dāng)開(kāi)發(fā)計(jì)算機(jī)與目標(biāo)計(jì)算機(jī)都有了嵌入式軟件,就能夠建立通訊連接,并且能夠?qū)浖逻_(dá)命令、下載數(shù)據(jù)等等。兩臺(tái)計(jì)算機(jī)的操作系統(tǒng)不同,計(jì)算機(jī)的處理器也有著一定的差異,這樣的方式會(huì)增加嵌入式軟件開(kāi)發(fā)過(guò)程的步驟,增加了開(kāi)發(fā)步驟的復(fù)雜性[4]。我們將對(duì)嵌入式軟件進(jìn)行開(kāi)發(fā)的計(jì)算機(jī)稱(chēng)為宿主機(jī),對(duì)軟件進(jìn)行接收并運(yùn)行的稱(chēng)為目標(biāo)機(jī)。宿主機(jī)對(duì)使用開(kāi)發(fā)工具,利用宿主機(jī)的操作系統(tǒng)對(duì)計(jì)算機(jī)軟件進(jìn)行開(kāi)發(fā),通過(guò)通信連接將計(jì)算機(jī)軟件發(fā)送到目標(biāo)集中,盡管這一系列的操作看似很簡(jiǎn)單,但是卻需要強(qiáng)大的系統(tǒng)和硬件的支持。在這種形式下進(jìn)行運(yùn)行的嵌入式計(jì)算機(jī)軟件開(kāi)發(fā)的活動(dòng),一般情況下,宿主機(jī)都是我們平時(shí)工作生活中使用的通用計(jì)算機(jī),也可以是開(kāi)發(fā)微機(jī)或者是軟件工作站等等。目標(biāo)機(jī)與宿主機(jī)不同,目標(biāo)機(jī)能夠承載宿主機(jī)開(kāi)發(fā)的嵌入式計(jì)算機(jī)軟件的運(yùn)行,將嵌入式計(jì)算機(jī)軟件安裝在目標(biāo)機(jī)中,就能夠?qū)崿F(xiàn)嵌入式軟件的功能[5]。
4對(duì)嵌入式軟件測(cè)試關(guān)鍵技術(shù)進(jìn)行研究
4.1對(duì)宿主機(jī)進(jìn)行測(cè)試的技術(shù)研究
宿主機(jī)指的是對(duì)嵌入式軟件進(jìn)行開(kāi)發(fā)的計(jì)算機(jī),對(duì)宿主機(jī)進(jìn)行測(cè)試的方式有兩種,即靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試兩種,這兩種方式使用的是代碼邏輯的方式對(duì)宿主機(jī)進(jìn)行測(cè)試。4.1.1靜態(tài)測(cè)試技術(shù)很多計(jì)算機(jī)軟件開(kāi)發(fā)的專(zhuān)家,在對(duì)計(jì)算機(jī)軟件進(jìn)行檢測(cè)的時(shí)候,通常使用的都是人工檢查的方式,由設(shè)計(jì)人員組成一個(gè)小組,小組的成員之間互相交流對(duì)軟件開(kāi)發(fā)使用了哪些程序、使用的是什么算法進(jìn)行的計(jì)算,并交代設(shè)計(jì)數(shù)據(jù)與軟件的模塊之間有什么樣的關(guān)系等。這樣的方式雖然能夠在一定程度上找出軟件中是否存在相關(guān)的問(wèn)題。但是,由于現(xiàn)階段嵌入式計(jì)算機(jī)軟件的結(jié)構(gòu)越來(lái)越復(fù)雜,設(shè)計(jì)的步驟越來(lái)越繁瑣,軟件設(shè)計(jì)的規(guī)模也在逐漸擴(kuò)大,這就要求在一款軟件的設(shè)計(jì)過(guò)程中,可能會(huì)有很多的軟件設(shè)計(jì)師、工程師等一起參與到軟件的開(kāi)發(fā)工作當(dāng)中,每個(gè)工作人員的分工也大有不同,再使用從前的方式對(duì)軟件進(jìn)行檢查,就會(huì)加重檢查工作的負(fù)擔(dān)[6]。這就要求我們,要根據(jù)現(xiàn)階段的計(jì)算機(jī)軟件開(kāi)發(fā)的實(shí)際情況,找出最合適現(xiàn)階段軟件開(kāi)發(fā)的檢測(cè)技術(shù),對(duì)原始的計(jì)算機(jī)軟件的檢測(cè)工作進(jìn)行優(yōu)化升級(jí),能夠使計(jì)算機(jī)軟件的檢查工作更加簡(jiǎn)便。在檢查的過(guò)程中,加入適當(dāng)?shù)臋z測(cè)技術(shù),先對(duì)整個(gè)嵌入式計(jì)算機(jī)軟件的開(kāi)發(fā)軟件系統(tǒng)框圖進(jìn)行整理,并且對(duì)其設(shè)置自動(dòng)連接的相關(guān)量,軟件的源代碼編程能夠通過(guò)自動(dòng)化技術(shù)進(jìn)行查找。這樣的方式能夠使軟件審查工作的工作效率有很大的提升,能夠使驗(yàn)證工作的結(jié)果更加準(zhǔn)確有效。我們可以通過(guò)靜態(tài)測(cè)試的方式,得到軟件中相關(guān)信息[7]。(1)軟件的源代碼程序繪制過(guò)程的邏輯圖,以及對(duì)軟件進(jìn)行控制的工作流程。(2)軟件系統(tǒng)完整的邏輯框圖,系統(tǒng)內(nèi)部關(guān)系調(diào)節(jié)的網(wǎng)絡(luò)圖。(3)軟件程序運(yùn)行的路徑分析圖。(4)軟件生成的不同部分的顯示圖。(5)軟件不同部分顯示圖的位置信息,操作的頻率等信息。這些信息都能夠在靜態(tài)測(cè)試中得到實(shí)現(xiàn),首先要使用靜態(tài)測(cè)試的系統(tǒng)對(duì)軟件的操作邏輯和控制系統(tǒng)進(jìn)行分析,能夠有效地將軟件分析的更加精確,在進(jìn)行軟件測(cè)試的過(guò)程中,能夠使測(cè)試的結(jié)果更加準(zhǔn)確,并且能夠?qū)y(cè)試結(jié)果更加精準(zhǔn)的表現(xiàn)出來(lái),檢測(cè)出軟件系統(tǒng)中是否存在相關(guān)的問(wèn)題,并以此對(duì)軟件的系統(tǒng)進(jìn)行改善。4.1.2動(dòng)態(tài)測(cè)試技術(shù)對(duì)宿主機(jī)的動(dòng)態(tài)測(cè)試主要指的是對(duì)軟件的代碼進(jìn)行測(cè)試,能夠有效地檢測(cè)出代碼的執(zhí)行能力,并且分析軟件代碼的覆蓋率,能夠有效地檢測(cè)出軟件的功能。能夠有效地了解到軟件的性能,還能夠通過(guò)分析更加了解軟件中代碼的執(zhí)行情況,這樣的檢測(cè)方式能夠促進(jìn)對(duì)軟件系統(tǒng)的改進(jìn),推進(jìn)了軟件系統(tǒng)的發(fā)展,可以根據(jù)檢測(cè)的結(jié)果,對(duì)軟件的功能進(jìn)行優(yōu)化和完善[8]。動(dòng)態(tài)測(cè)試技術(shù)還能夠?qū)浖O(shè)置的完成程度進(jìn)行測(cè)試,能夠?qū)ζ渲幸呀?jīng)開(kāi)發(fā)完畢的數(shù)據(jù)進(jìn)行檢測(cè),檢查其中是否存在缺少的數(shù)據(jù),這樣的方式能夠?yàn)檐浖拈_(kāi)發(fā)工作提供重要的依據(jù)。動(dòng)態(tài)測(cè)試技術(shù)能夠?qū)④浖械拿總€(gè)函數(shù)的情況,以及對(duì)內(nèi)存的分配情況等進(jìn)行檢測(cè),能夠?qū)④浖懈鞣N元素的分配情況進(jìn)行顯示,并且能夠同時(shí)對(duì)相對(duì)應(yīng)的數(shù)據(jù)、代碼、函數(shù)等進(jìn)行顯示。
4.2對(duì)仿真機(jī)進(jìn)行測(cè)試的技術(shù)研究
仿真機(jī)作為宿主機(jī)與目標(biāo)機(jī)之間重要的環(huán)節(jié)之一,通過(guò)仿真機(jī)的使用,能夠有效地完善計(jì)算機(jī)軟件測(cè)試的功能以及軟件自身的性能,比對(duì)宿主機(jī)的測(cè)試更加直觀、更加真實(shí),并且能夠?qū)浖兄饕募夹g(shù)進(jìn)行仿真測(cè)試,使測(cè)試的結(jié)果更具有說(shuō)服力。其測(cè)試的結(jié)果既能夠作用于宿主機(jī),還能夠作用于目標(biāo)機(jī)。4.2.1仿真機(jī)測(cè)試數(shù)據(jù)獲取技術(shù)現(xiàn)階段,針對(duì)仿真機(jī)的數(shù)據(jù)監(jiān)測(cè),一直都是技術(shù)上很難實(shí)現(xiàn)的問(wèn)題之一,很多對(duì)嵌入式軟件的檢測(cè)都需要在測(cè)試的過(guò)程中先提供軟件設(shè)計(jì)的源代碼,這樣的方式需要使用的數(shù)據(jù)量比較大,這就要求我們要針對(duì)這類(lèi)數(shù)據(jù)的準(zhǔn)確性進(jìn)行技術(shù)的提升,才能夠保證檢測(cè)數(shù)據(jù)的精準(zhǔn)性。仿真機(jī)監(jiān)測(cè)技術(shù)能夠從一定程度上保證數(shù)據(jù)信息的完整性,在對(duì)數(shù)據(jù)進(jìn)行完全的緩存后,再使用測(cè)試工具進(jìn)行修改,能夠從很大程度上保證數(shù)據(jù)的正常輸入,在測(cè)試結(jié)束之后,還能夠?qū)σ呀?jīng)進(jìn)行緩存的數(shù)據(jù)進(jìn)行讀取,并將數(shù)據(jù)整理保存到計(jì)算機(jī)中。但是,需要注意的是,使用這種方式進(jìn)行測(cè)試,還要保證數(shù)據(jù)緩存的大小不會(huì)超過(guò)測(cè)試的容量,測(cè)試才能夠順利的運(yùn)行[9]。4.2.2仿真機(jī)仿真測(cè)試技術(shù)對(duì)嵌入式計(jì)算機(jī)軟件進(jìn)行仿真測(cè)試,能夠在測(cè)試的過(guò)程中,對(duì)數(shù)據(jù)進(jìn)行集中地管理和處理。仿真測(cè)試需要一定的技術(shù)支持,能夠?qū)?shù)據(jù)進(jìn)行仿真模擬,在模擬的過(guò)程中,能夠看到技術(shù)的使用過(guò)程,再按照每款軟件不同的性質(zhì),分類(lèi)仿真,使測(cè)試的結(jié)果更加真實(shí)可靠。還要保證在對(duì)數(shù)據(jù)的檢測(cè)過(guò)程中,傳輸信號(hào)是能夠穩(wěn)定運(yùn)行的,才能夠保證仿真測(cè)試的數(shù)據(jù)是實(shí)時(shí)的。
4.3對(duì)目標(biāo)機(jī)進(jìn)行測(cè)試的技術(shù)
目標(biāo)機(jī)相對(duì)于其他部分來(lái)說(shuō),在測(cè)試的過(guò)程中,更需要注意目標(biāo)機(jī)的綜合能力,還要能夠測(cè)試軟件自身的交互能力,并且測(cè)試軟件是否安全可靠,目標(biāo)機(jī)測(cè)試的結(jié)果能夠更加真實(shí)地體現(xiàn)計(jì)算機(jī)軟件的性能[10]。4.3.1故障注入技術(shù)嵌入式計(jì)算機(jī)軟件在計(jì)算機(jī)中運(yùn)行的狀態(tài),可以通過(guò)人為的方式進(jìn)行設(shè)置。但是,這就要求目標(biāo)機(jī)的部件能夠具備一定的功能,能夠按照設(shè)置的時(shí)間、設(shè)置的運(yùn)行方式等進(jìn)行運(yùn)作。故障注入技術(shù)指的是在目標(biāo)機(jī)中,通過(guò)對(duì)某一部分的測(cè)試,能夠更加有效地檢驗(yàn)?zāi)繕?biāo)機(jī)中的性能,比如:魯棒性測(cè)試、邊界測(cè)試等等。使軟件在運(yùn)行時(shí)的狀態(tài)能夠表現(xiàn)的更加明顯。4.3.2內(nèi)存分析技術(shù)嵌入式計(jì)算機(jī)的系統(tǒng),一般情況下內(nèi)存都會(huì)比較小。使用內(nèi)存分析技術(shù),能夠有效地保證在分析的過(guò)程中,找出計(jì)算機(jī)內(nèi)存存在的問(wèn)題。在問(wèn)題的分析過(guò)程中,能夠防止內(nèi)存中的某些內(nèi)存會(huì)產(chǎn)生分配錯(cuò)誤的問(wèn)題,很多的計(jì)算機(jī)軟件故障都是因?yàn)閮?nèi)存分配的錯(cuò)誤造成的。這就要求我們要通過(guò)內(nèi)存分析的技術(shù),來(lái)對(duì)內(nèi)存進(jìn)行判定。一般情況下,我們都會(huì)選擇硬件的方式進(jìn)行分析,但是硬件分析的方式需要耗費(fèi)的資金比較多,而且分析工具具有一定的環(huán)境限制,但是軟件分析會(huì)對(duì)計(jì)算機(jī)的代碼產(chǎn)生一定的影響,并且會(huì)影響內(nèi)存的運(yùn)行。這就要求我們?cè)谶M(jìn)行內(nèi)存分析的過(guò)程中,要能夠按照不同的情況對(duì)測(cè)試的方式進(jìn)行選擇[11]。4.3.3程序性能分析技術(shù)在嵌入式計(jì)算機(jī)運(yùn)行的過(guò)程中,還有一個(gè)十分重要的因素就是程序的性能。一般情況下,嵌入式計(jì)算機(jī)對(duì)程序的性能都有一定的要求,能夠在已經(jīng)設(shè)置的時(shí)間內(nèi),對(duì)某一數(shù)據(jù)進(jìn)行中斷處理或者是生成處理,這就要求我們要在測(cè)試的過(guò)程中,要能夠根據(jù)實(shí)際情況決定先對(duì)那一部分的代碼進(jìn)行優(yōu)化,因?yàn)榍度胧接?jì)算機(jī)的優(yōu)化程序的時(shí)間是很寶貴的,要盡可能地避免對(duì)一些沒(méi)有必要的程序的優(yōu)化工作。使用程序性能分析技術(shù),能夠?qū)⒂?jì)算機(jī)內(nèi)的數(shù)據(jù)進(jìn)行整理,并按照消耗的時(shí)間,消耗的類(lèi)型,消耗的歷時(shí)等進(jìn)行分析。按照這些數(shù)據(jù),能夠?qū)τ?jì)算機(jī)中的數(shù)據(jù)進(jìn)行判斷,決定先對(duì)哪一部分的程序進(jìn)行優(yōu)化,才能夠保證對(duì)數(shù)據(jù)檢測(cè)的工作效率,保證對(duì)程序的優(yōu)化是有效的。使用程序性能分析的工具,不僅僅能夠顯示計(jì)算機(jī)中每一部分的優(yōu)化需要多少時(shí)間,還能夠按照需要優(yōu)化的程度進(jìn)行排序,引導(dǎo)工作人員對(duì)系統(tǒng)程序進(jìn)行優(yōu)化分析[12]。在對(duì)程序進(jìn)行測(cè)試的過(guò)程中,可以先對(duì)計(jì)算機(jī)軟件中的代碼進(jìn)行分析,能夠找出已經(jīng)被使用的代碼,以及計(jì)算機(jī)接口的工作效率等等。可以在測(cè)試的過(guò)程中使用插樁的方式進(jìn)行測(cè)試,分析完畢后在可執(zhí)行的代碼當(dāng)中適當(dāng)?shù)厝谌肭度胧杰浖⒍哌M(jìn)行綜合測(cè)試,得到的結(jié)果就能夠明確地看出,其中的代碼哪些已經(jīng)執(zhí)行,哪些被遺漏,或者是哪些數(shù)據(jù)的信息覆蓋還不夠全面。需要注意的是,使用這類(lèi)分析工具進(jìn)行分析,很可能會(huì)影響到計(jì)算機(jī)軟件代碼的運(yùn)行,導(dǎo)致軟件運(yùn)行出現(xiàn)故障問(wèn)題。
5結(jié)束語(yǔ)
嵌入式計(jì)算機(jī)與我們的生活之間的關(guān)系十分緊密,能夠產(chǎn)生巨大的影響,我們身邊很多部分都使用了嵌入式計(jì)算機(jī)進(jìn)行功能的完成和實(shí)現(xiàn),比如:飛機(jī)的飛行控制器,或者是我們家中很多的家用電器,冰箱、洗衣機(jī)等等,都在一定程度上使用了嵌入式軟件技術(shù)。隨著科學(xué)技術(shù)的進(jìn)步越來(lái)越快,嵌入式技術(shù)也越來(lái)越繁瑣。這就要求我們要在不斷地使用中對(duì)嵌入式技術(shù)進(jìn)行完善,對(duì)嵌入式技術(shù)進(jìn)行優(yōu)化升級(jí),能夠從一定程度上保證嵌入式技術(shù)的發(fā)展,對(duì)軟件進(jìn)行測(cè)試,能夠大大地提升嵌入式計(jì)算機(jī)軟件的穩(wěn)定性。
作者:王琨 單位:西安外事學(xué)院工學(xué)院
1軟件工程中的軟件測(cè)試
1.1軟件測(cè)試的含義
軟件測(cè)試根據(jù)用戶(hù)的使用目的,將成功開(kāi)發(fā)的軟件進(jìn)行相應(yīng)的糾錯(cuò)動(dòng)作,從而披露該軟件的各種問(wèn)題及缺失因素,促進(jìn)研發(fā)人員進(jìn)行相應(yīng)的改進(jìn),從而達(dá)到完善軟件的目的。
1.2軟件測(cè)試的關(guān)鍵性階段
主要有以下兩個(gè)關(guān)鍵性的檢測(cè)階段。第一階段是軟件開(kāi)發(fā)過(guò)程中各主要單元模塊完成后進(jìn)行測(cè)試。這一階段測(cè)試可以將缺陷控制在最小單元模塊內(nèi),給研發(fā)人員最快的測(cè)試反饋,促使其完善單元模塊的功能,達(dá)到用戶(hù)的使用要求;第二階段測(cè)試是軟件系統(tǒng)全部完成后,進(jìn)行全方位的綜合測(cè)試,查找系統(tǒng)在使用過(guò)程中可能存在的問(wèn)題。此時(shí),需要根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能進(jìn)行多種測(cè)試工具的應(yīng)用,以其找到系統(tǒng)不符合要求的功能或性能瑕疵。
1.3軟件工程中軟件測(cè)試的方法
對(duì)軟件工程進(jìn)行軟件測(cè)試時(shí),不同軟件可以運(yùn)用不同的測(cè)試方法?,F(xiàn)階段,主要以軟件測(cè)試在測(cè)試過(guò)程中是否需要將程序進(jìn)行完全運(yùn)行來(lái)判斷測(cè)試方法,不需要系統(tǒng)程序運(yùn)行就能完成測(cè)試的方法稱(chēng)為靜態(tài)方法;需要系統(tǒng)時(shí)時(shí)傳送相應(yīng)數(shù)據(jù),并通過(guò)相應(yīng)程序檢測(cè)系統(tǒng)是否達(dá)到用戶(hù)的期望值,是否存在運(yùn)行邏輯上的問(wèn)題和算法上的缺陷等的測(cè)試方法稱(chēng)為動(dòng)態(tài)方法。目前,靜態(tài)測(cè)試方法應(yīng)用較廣的有靜態(tài)排演法、軟件檢查法和軟件審查法。隨著軟件測(cè)試方法的不斷創(chuàng)新和完善,新興的測(cè)試方法如靜態(tài)自動(dòng)分析、分析模型等方法不斷得到應(yīng)用;動(dòng)態(tài)測(cè)試方法隨著精細(xì)化測(cè)試進(jìn)程的深入逐漸細(xì)分為單元測(cè)試方法、集成測(cè)試方法、系統(tǒng)測(cè)試方法。這些測(cè)試方法相較于靜態(tài)測(cè)試方法,具有范圍廣、測(cè)試成功率高、內(nèi)容覆蓋面大、應(yīng)用程度高等特點(diǎn)。如白盒測(cè)試、代碼覆蓋測(cè)試等。
2軟件測(cè)試在軟件工程中的作用分析
2.1軟件工程項(xiàng)目需要軟件測(cè)試進(jìn)行全方位的輔助管理
所謂軟件工程項(xiàng)目就是將用戶(hù)的要求進(jìn)行立項(xiàng)管理,通過(guò)建立項(xiàng)目組、研究用戶(hù)的使用目標(biāo)來(lái)確立項(xiàng)目目標(biāo),對(duì)目標(biāo)現(xiàn)狀進(jìn)行系統(tǒng)研究與分析、總體目標(biāo)細(xì)分階段性目標(biāo)以及規(guī)劃項(xiàng)目總體方案等,將軟件開(kāi)發(fā)過(guò)程建立在項(xiàng)目管理過(guò)程中。在這一過(guò)程中,各階段性成果都需要軟件測(cè)試來(lái)校驗(yàn)其可行性,從而輔助軟件工程項(xiàng)目步入更完善的項(xiàng)目管理中。首先,軟件工程項(xiàng)目需要精細(xì)化項(xiàng)目管理和集中項(xiàng)目管理兩者協(xié)調(diào)統(tǒng)一。因此,需要設(shè)立軟件測(cè)試機(jī)構(gòu),能夠?qū)?xiàng)目細(xì)分的各階段、各模塊進(jìn)行軟件測(cè)試。其次,項(xiàng)目組人員組成和責(zé)任落實(shí)要依照規(guī)章制度實(shí)施。要體現(xiàn)軟件測(cè)試的重要性和實(shí)際意義,測(cè)試機(jī)構(gòu)負(fù)責(zé)人為項(xiàng)目組組長(zhǎng)的最佳人選。其組員為各項(xiàng)目負(fù)責(zé)人和其他測(cè)試人員組成。軟件測(cè)試結(jié)果必須立即反饋到軟件研發(fā)人員、程序員及系統(tǒng)分析人員等相關(guān)人員手中,以期促進(jìn)其團(tuán)結(jié)協(xié)作,將軟件各部分呈現(xiàn)出的問(wèn)題解決。最終滿足用戶(hù)的使用要求,實(shí)現(xiàn)軟件設(shè)計(jì)的目標(biāo)。可見(jiàn),軟件測(cè)試的輔助作用,對(duì)于軟件工程項(xiàng)目的精細(xì)化管理、軟件相關(guān)技術(shù)的綜合管理等至關(guān)重要。
2.2軟件工程項(xiàng)目實(shí)施反促軟件測(cè)試發(fā)展
研發(fā)一個(gè)新的軟件系統(tǒng)時(shí),其核心內(nèi)容包括目標(biāo)確定、框架設(shè)計(jì)、分支設(shè)計(jì)和編碼應(yīng)用等,這些核心內(nèi)容均需要軟件測(cè)試來(lái)實(shí)現(xiàn)其統(tǒng)一性和兼容性。系統(tǒng)目標(biāo)是軟件測(cè)試的最終目的,軟件測(cè)試需要圍繞系統(tǒng)目標(biāo)進(jìn)行缺陷的發(fā)現(xiàn)和反饋,從而實(shí)現(xiàn)各階段測(cè)試的統(tǒng)一性和完整性,從而促進(jìn)系統(tǒng)的協(xié)調(diào)和完善。經(jīng)過(guò)軟件測(cè)試的系統(tǒng),必須保證達(dá)到項(xiàng)目目標(biāo),且在長(zhǎng)時(shí)間運(yùn)行下無(wú)重大bug。從這一過(guò)程來(lái)看,軟件測(cè)試是在軟件工程項(xiàng)目實(shí)施中得以發(fā)展的。軟件測(cè)試機(jī)構(gòu)并不是真正意義上的獨(dú)立,其“獨(dú)立”僅是功能上的獨(dú)立。實(shí)際上,在進(jìn)行軟件工程項(xiàng)目實(shí)施的整個(gè)過(guò)程中,無(wú)論是整體設(shè)計(jì)還是精細(xì)化管理,都需要軟件測(cè)試參與其中,以測(cè)試角度對(duì)軟件工程項(xiàng)目的設(shè)計(jì)和實(shí)施進(jìn)行指導(dǎo)和輔助,從而糾正一些設(shè)計(jì)上的錯(cuò)誤和細(xì)節(jié)上的缺陷。這種參與的直接性促進(jìn)軟件測(cè)試必須緊跟項(xiàng)目研發(fā)現(xiàn)狀,才能提出及時(shí)有效的參考意見(jiàn),促進(jìn)項(xiàng)目順利開(kāi)發(fā)。軟件編碼規(guī)范是軟件研發(fā)團(tuán)隊(duì)必須規(guī)范執(zhí)行的,而這種規(guī)范的編碼剛是軟件測(cè)試機(jī)構(gòu)的首要任務(wù),制定規(guī)范要嚴(yán)肅,執(zhí)行規(guī)范要嚴(yán)格,才能給用戶(hù)呈現(xiàn)出高質(zhì)量的軟件產(chǎn)品。
2.3軟件測(cè)試原則
軟件測(cè)試的原則是在其測(cè)試的基本目的和要求下產(chǎn)生的,因此,在進(jìn)行軟件測(cè)試時(shí),必須注意其原則性。(1)堅(jiān)持用戶(hù)使用目的,堅(jiān)持項(xiàng)目總體目標(biāo)和階段性目標(biāo)的實(shí)現(xiàn)原則;(2)測(cè)試“精細(xì)化”即細(xì)分分支、單元模塊、階段性成果、系統(tǒng)全面測(cè)試等隨時(shí)進(jìn)行;(3)測(cè)試時(shí)間要越早越好,頻率越高越好;(4)測(cè)試中邏輯性檢測(cè)和算法檢測(cè)要注重;(5)測(cè)試要結(jié)合數(shù)據(jù)檢測(cè)進(jìn)行;(6)保證測(cè)試的嚴(yán)肅性;(7)測(cè)試堅(jiān)持第三方進(jìn)行原則;(8)不合理?xiàng)l件值都要進(jìn)行測(cè)試;(9)測(cè)試過(guò)程、方法、用便、結(jié)果、完善等都要記錄在案,便于故障定位和日常維護(hù)。
3自動(dòng)化軟件測(cè)試技術(shù)分析
隨著智能化技術(shù)和自動(dòng)化技術(shù)的不斷深入應(yīng)用,在軟件測(cè)試中,自動(dòng)化軟件測(cè)試技術(shù)得到創(chuàng)新和發(fā)展,并在軟件開(kāi)發(fā)中應(yīng)用得越來(lái)越廣泛。所以,人們將各種自動(dòng)測(cè)試的效果進(jìn)行評(píng)估,將成功案例進(jìn)行相似引用,來(lái)判斷檢測(cè)的可行性。最初的自動(dòng)化測(cè)試具有較嚴(yán)格的針對(duì)性,運(yùn)用特定的測(cè)試原則和測(cè)試方法,將統(tǒng)計(jì)指標(biāo)運(yùn)用其中,從而得到測(cè)試結(jié)果,并對(duì)其進(jìn)行全面評(píng)估,從而得出自動(dòng)化測(cè)試的嚴(yán)密性。隨著自動(dòng)化測(cè)試的不斷深入推進(jìn)和創(chuàng)新,其測(cè)試準(zhǔn)則和自動(dòng)測(cè)試技術(shù)越來(lái)越成熟,逐漸過(guò)渡到自動(dòng)測(cè)試模型化階段。逐漸形成自動(dòng)測(cè)試的等級(jí)制度,使得自動(dòng)軟件測(cè)試技術(shù)成為測(cè)試控制能力高低優(yōu)劣的一個(gè)重要判斷依據(jù)。
4結(jié)語(yǔ)
總之,軟件測(cè)試已經(jīng)發(fā)展成為軟件工程中一個(gè)必不可少的重要組成部分,軟件測(cè)試不僅能夠?qū)浖馁|(zhì)量進(jìn)行一個(gè)系統(tǒng)的評(píng)價(jià),而且是目前確保軟件質(zhì)量的主要途徑之一。并實(shí)現(xiàn)軟件產(chǎn)品整體質(zhì)量與企業(yè)經(jīng)濟(jì)效益的整體提高,進(jìn)而提升軟件企業(yè)的核心競(jìng)爭(zhēng)力。。
作者:欒新亮 單位:鄂爾多斯市特種設(shè)備檢驗(yàn)所
1嵌入式軟件的特點(diǎn)
嵌入式系統(tǒng)的應(yīng)用軟件是實(shí)現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵,其主要特點(diǎn)如下:
1.1軟件開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境不同
嵌入式系統(tǒng)軟件的開(kāi)發(fā)通常采用交叉編譯方式,即軟件的開(kāi)發(fā)在通用計(jì)算機(jī)上進(jìn)行,而軟件的運(yùn)行環(huán)境卻是在嵌入式專(zhuān)用設(shè)備上。開(kāi)發(fā)環(huán)境被認(rèn)為是主機(jī)平臺(tái),運(yùn)行環(huán)境為目標(biāo)平臺(tái),相應(yīng)的測(cè)試被稱(chēng)為主機(jī)測(cè)試和交叉測(cè)試。
1.2缺乏可視性
嵌入式軟件缺乏可視性主要表現(xiàn)在兩個(gè)方面:(1)數(shù)據(jù)的可視性方面:嵌入式系統(tǒng)通常沒(méi)有顯示設(shè)備和存儲(chǔ)設(shè)備,只有在線實(shí)時(shí)觀測(cè)或是將數(shù)據(jù)傳輸?shù)街鳈C(jī)上才能進(jìn)行結(jié)果分析;(2)編程的可視性方面:由于嵌入式軟件的開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境不同,在進(jìn)行開(kāi)發(fā)時(shí),一方面不能實(shí)時(shí)觀察程序的運(yùn)行效果,另一方面程序在仿真環(huán)境和目標(biāo)設(shè)備中的運(yùn)行效果可能存在差異。
1.3實(shí)時(shí)性要求較高
多任務(wù)嵌入式系統(tǒng)中,對(duì)重要性各不相同的任務(wù)進(jìn)行統(tǒng)籌兼顧的合理調(diào)度是保證每項(xiàng)任務(wù)及時(shí)執(zhí)行的關(guān)鍵,單純通過(guò)提高處理器速度是無(wú)法完成和提高效率的,這種任務(wù)調(diào)度只能由優(yōu)化編寫(xiě)的系統(tǒng)軟件來(lái)完成,因此實(shí)時(shí)性是系統(tǒng)軟件的基本要求。
1.4軟硬件緊密結(jié)合
在嵌入式系統(tǒng)軟硬件體系結(jié)構(gòu)內(nèi)部,各層次、模塊之間的耦合度比通用計(jì)算機(jī)更強(qiáng),這是嵌入式系統(tǒng)要求高效的結(jié)果,而通用計(jì)算機(jī)出于可擴(kuò)展等要求更強(qiáng)調(diào)系統(tǒng)的模塊化、層次化和標(biāo)準(zhǔn)化。
2嵌入式軟件仿真測(cè)試環(huán)境
嵌入式軟件測(cè)試不同于傳統(tǒng)的通用軟件測(cè)試,由于其嵌入性、實(shí)時(shí)性、反應(yīng)性、專(zhuān)用性等特點(diǎn),它比一般的通用軟件測(cè)試更加困難。因此,根據(jù)不同測(cè)試階段的需求,建立恰當(dāng)?shù)臏y(cè)試環(huán)境是避免嵌入式軟件測(cè)試瓶頸、提高測(cè)試效率、保證測(cè)試質(zhì)量的唯一出路。由于嵌入式系統(tǒng)通常采用軟硬件并行開(kāi)發(fā)的方式,在進(jìn)行軟件設(shè)計(jì)與測(cè)試時(shí),真實(shí)目標(biāo)設(shè)備常常不能及時(shí)提供,而且對(duì)于單片機(jī)、DSP這些深嵌入式系統(tǒng)來(lái)說(shuō),數(shù)據(jù)的顯示采集、測(cè)試用例輸入等都需要專(zhuān)門(mén)的軟件來(lái)實(shí)現(xiàn),因此在進(jìn)行嵌入式軟件測(cè)試前,必須首先建立嵌入式軟件仿真測(cè)試環(huán)境。嵌入式軟件是軟硬件耦合系統(tǒng),把軟硬件分離開(kāi)來(lái),建立嵌入式軟件獨(dú)立的運(yùn)行環(huán)境是建立嵌入式軟件仿真測(cè)試環(huán)境的關(guān)鍵。一個(gè)完整的嵌入式系統(tǒng)包括處理器、I/O接口以及各種外部設(shè)備,在建立嵌入式軟件仿真測(cè)試環(huán)境時(shí),需要考慮軟硬件的分離原則,即哪些采用真實(shí)硬件設(shè)備,哪些需要用軟件仿真實(shí)現(xiàn),哪些需要用硬件仿真實(shí)現(xiàn),不同的嵌入式系統(tǒng)以及軟件測(cè)試階段,需要建立的仿真測(cè)試環(huán)境也不相同。
3嵌入式軟件仿真測(cè)試環(huán)境分類(lèi)
根據(jù)運(yùn)行環(huán)境和實(shí)際環(huán)境的差異,嵌入式軟件仿真測(cè)試環(huán)境可分為全數(shù)字仿真測(cè)試環(huán)境、半物理仿真測(cè)試環(huán)境和全物理仿真測(cè)試環(huán)境。
3.1全數(shù)字仿真測(cè)試環(huán)境
全數(shù)字仿真測(cè)試環(huán)境是指仿真嵌入式系統(tǒng)硬件及外圍環(huán)境的一套軟件系統(tǒng)。全數(shù)字仿真環(huán)境是通過(guò)CPU、控制芯片、I/O、中斷、時(shí)鐘等仿真器的組合在宿主機(jī)上構(gòu)造嵌入式軟件運(yùn)行所必需的硬件環(huán)境,為嵌入式軟件的運(yùn)行提供一個(gè)精確的數(shù)字化硬件環(huán)境模型。
3.2半實(shí)物仿真測(cè)試環(huán)境
半實(shí)物仿真測(cè)試環(huán)境是利用仿真模型來(lái)仿真被測(cè)系統(tǒng)的外圍系統(tǒng),而被測(cè)系統(tǒng)采用真實(shí)的系統(tǒng)。測(cè)試環(huán)境模擬被測(cè)軟件運(yùn)行所需的真實(shí)環(huán)境的輸入和輸出,并且能夠組織被測(cè)軟件的輸入來(lái)驅(qū)動(dòng)被測(cè)軟件運(yùn)行,同時(shí)接收被測(cè)軟件的輸出結(jié)果。外部仿真設(shè)備:為目標(biāo)機(jī)提供激勵(lì)信號(hào)輸入,接收并處理目標(biāo)機(jī)輸出數(shù)據(jù),保證軟件的連續(xù)、不間斷運(yùn)行,實(shí)現(xiàn)自動(dòng)化測(cè)試;可以采用軟件仿真或硬件仿真(ADS2等)。并不是所有的外設(shè)都采用仿真實(shí)現(xiàn),可以隨著項(xiàng)目的進(jìn)展以及根據(jù)外設(shè)的復(fù)雜性,有選擇性的加入真實(shí)外部設(shè)備。
3.3全實(shí)物仿真測(cè)試環(huán)境
在全實(shí)物仿真測(cè)試環(huán)境中,被測(cè)軟件處在完全真實(shí)的運(yùn)行環(huán)境中,直接將整個(gè)系統(tǒng)和其外圍的物理設(shè)備建立真實(shí)的連接,形成閉環(huán)進(jìn)行測(cè)試。全物理仿真測(cè)試環(huán)境是基于真實(shí)目標(biāo)機(jī)的系統(tǒng)測(cè)試,是對(duì)整個(gè)嵌入式系統(tǒng)軟硬件的綜合測(cè)試,只有在系統(tǒng)研制的后期,所有硬件研制工作都已完成后才能進(jìn)行。
4嵌入式軟件仿真測(cè)試環(huán)境的構(gòu)建方法
根據(jù)嵌入式軟件及測(cè)試環(huán)境的特點(diǎn),不同測(cè)試階段的測(cè)試環(huán)境搭建方法如下:
4.1單元測(cè)試
單元測(cè)試是針對(duì)軟件設(shè)計(jì)最小單位模塊而進(jìn)行的內(nèi)部測(cè)試。由于目標(biāo)機(jī)環(huán)境資源少、實(shí)現(xiàn)難度大,因此嵌入式軟件的單元測(cè)試主要采用白盒測(cè)試的方法,一般在宿主機(jī)上,利用集成開(kāi)發(fā)環(huán)境或測(cè)試工具(Clockwork、TestBed、Cantata++等)的全數(shù)字仿真模擬器來(lái)進(jìn)行,找出單元編碼時(shí)產(chǎn)生的錯(cuò)誤以及與軟件需求設(shè)計(jì)的偏差。在極特殊情況下,也可以在目標(biāo)機(jī)上進(jìn)行,利用單元測(cè)試中的驅(qū)動(dòng)模塊和樁模塊進(jìn)行。
4.2集成測(cè)試
集成測(cè)試是把經(jīng)過(guò)單元測(cè)試的模塊按軟件的結(jié)構(gòu)組合在一起作為一個(gè)軟件部件或部件集來(lái)進(jìn)行的綜合測(cè)試。嵌入式軟件的集成測(cè)試可在宿主機(jī)環(huán)境上利用Clockwork、TestBed、Cantata++等測(cè)試工具來(lái)完成,也可在目標(biāo)機(jī)上搭建仿真測(cè)試環(huán)境來(lái)完成,具體依賴(lài)于軟硬件耦合程度和集成級(jí)別。
4.3軟硬件集成測(cè)試
軟硬件集成測(cè)試主要是在軟件集成測(cè)試完成后,形成獨(dú)立的配置項(xiàng),加載到相應(yīng)的硬件平臺(tái)上測(cè)試其運(yùn)行情況,以確定軟硬件能夠正確協(xié)調(diào)工作,實(shí)現(xiàn)軟件需求規(guī)定的功能、性能等要求。軟硬件集成測(cè)試必須在目標(biāo)機(jī)環(huán)境下進(jìn)行,交聯(lián)設(shè)備可以采用仿真模型替代??梢岳冒雽?shí)物仿真測(cè)試工具搭建測(cè)試環(huán)境來(lái)進(jìn)行確認(rèn)測(cè)試,比如:ADS-2、dSPACE等。
4.4系統(tǒng)測(cè)試
系統(tǒng)測(cè)試是將被測(cè)軟件和硬件資源都綜合起來(lái)構(gòu)成完整的應(yīng)用系統(tǒng)進(jìn)行測(cè)試,確保整個(gè)系統(tǒng)達(dá)到研制任務(wù)書(shū)的要求。嵌入式軟件的系統(tǒng)測(cè)試對(duì)測(cè)試環(huán)境有嚴(yán)格的要求,必須在真實(shí)目標(biāo)機(jī)環(huán)境下進(jìn)行,包括運(yùn)行平臺(tái)、交聯(lián)設(shè)備都要是真實(shí)的,目的是要確保嵌入式軟件能夠在最終的真實(shí)硬件環(huán)境下正確運(yùn)行。
5結(jié)束語(yǔ)
嵌入式系統(tǒng)在人類(lèi)生活中發(fā)揮著重要的作用,軟件所占的比重越來(lái)越大,也越來(lái)越復(fù)雜,保證嵌入式軟件的可靠性正面臨嚴(yán)峻的挑戰(zhàn)。由于嵌入式系統(tǒng)的實(shí)時(shí)性和嵌入式特性,使得嵌入式軟件的測(cè)試也面臨一些特殊的問(wèn)題。根據(jù)嵌入式軟件設(shè)計(jì)過(guò)程中不同階段的測(cè)試需求,建立合適的測(cè)試環(huán)境,才能提高嵌入式軟件的測(cè)試效率,保證軟件設(shè)計(jì)工作的順利進(jìn)行。另外,雖然日前已經(jīng)有一些針對(duì)嵌入式軟件的測(cè)試和調(diào)試工具,但是在有些方面仍存在不足,需要進(jìn)一步對(duì)嵌入式軟件的測(cè)試環(huán)境和測(cè)試技術(shù)進(jìn)行研究,完善和研制更先進(jìn)的測(cè)試工具。
作者:于慧媛 單位:中國(guó)人民解放軍91413部隊(duì)
1軟件測(cè)試對(duì)于軟件開(kāi)發(fā)工作的重要意義
軟件測(cè)試是軟件開(kāi)發(fā)中不可缺失的工作內(nèi)容,通過(guò)有效的軟件測(cè)試步驟,能夠幫助軟件開(kāi)發(fā)工程人員減輕工作負(fù)擔(dān),在很大程度上提升了軟件的實(shí)用性能。因?yàn)殡娮榆浖纳a(chǎn)過(guò)程極為復(fù)雜,在開(kāi)發(fā)的過(guò)程中需要經(jīng)歷許多環(huán)節(jié),每個(gè)環(huán)節(jié)的數(shù)據(jù)要求都極為嚴(yán)格,很有可能因?yàn)闃O小的差異造成軟件應(yīng)用的失誤。軟件測(cè)試就是為了實(shí)現(xiàn)對(duì)于軟件開(kāi)發(fā)后的使用作出初步的評(píng)估,保證下一個(gè)生產(chǎn)環(huán)節(jié)能夠正常執(zhí)行,也為了確認(rèn)軟件的使用具有質(zhì)量保證。軟件的測(cè)試能夠涉及整個(gè)軟件設(shè)計(jì)、開(kāi)發(fā),以及未來(lái)升級(jí)的過(guò)程。首先,能夠幫助軟件開(kāi)發(fā)商確認(rèn)軟件的使用質(zhì)量。其次,還能夠?yàn)楣こ處熖峁┯行У男畔⒎答?,幫助工程師進(jìn)行軟件系統(tǒng)操作的風(fēng)險(xiǎn)預(yù)警評(píng)估。還有,就是實(shí)現(xiàn)為未來(lái)軟件系統(tǒng)升級(jí)奠定基礎(chǔ),能夠保證軟件在未來(lái)的開(kāi)發(fā)計(jì)劃中添加有效的性能價(jià)值[1]。軟件測(cè)試的工作具有相當(dāng)高的行業(yè)地位,能夠幫助工程師和開(kāi)發(fā)商盡早發(fā)現(xiàn)問(wèn)題,并且給予充足的時(shí)間去解決問(wèn)題,進(jìn)而提升了大眾對(duì)軟件的使用效果,滿足了推動(dòng)科學(xué)技術(shù)進(jìn)步的時(shí)代要求。
2軟件測(cè)試的具體步驟和方法
2.1軟件測(cè)試的對(duì)象
軟件測(cè)試的對(duì)象主要是針對(duì)于軟件使用過(guò)程中出現(xiàn)的邏輯操作,其中包含軟件的使用規(guī)則,還有在軟件應(yīng)用中的程序設(shè)定是否滿足人們的應(yīng)用習(xí)慣,還要考慮到軟件開(kāi)發(fā)的初期設(shè)計(jì)是否能夠滿足社會(huì)大眾的需求,能夠?qū)崿F(xiàn)廣泛的普及,并且獲得大眾的喜愛(ài)。因?yàn)檐浖y(cè)試與其他方式的應(yīng)用測(cè)試不同,軟件的測(cè)試需要遍布整個(gè)軟件的設(shè)計(jì)完成過(guò)程,要求軟件能夠?qū)崿F(xiàn)具體使用的功能性。
2.2軟件測(cè)試的種類(lèi)
軟件的測(cè)試工作也分成兩種形式,一種是靜態(tài)的檢測(cè)試驗(yàn),另外一種是動(dòng)態(tài)的檢測(cè)試驗(yàn)[2]。首先進(jìn)行靜態(tài)種類(lèi)的具體劃分解釋?zhuān)渲械墓ぷ鲀?nèi)容具體實(shí)施不必要展開(kāi)軟件的運(yùn)行功能,只要進(jìn)行人力的代碼查詢(xún)工作審核就可以了。這期間可以對(duì)整個(gè)軟件的設(shè)計(jì)腳本進(jìn)行分析,得到房中數(shù)據(jù)的編碼,保證在網(wǎng)絡(luò)中展開(kāi)的數(shù)據(jù)時(shí)正確有效的。與此同時(shí)能夠展開(kāi)對(duì)軟件編程的評(píng)估,其中的數(shù)據(jù)值都在控制范圍內(nèi),不能超過(guò)最低的數(shù)值要求。編寫(xiě)數(shù)據(jù)程序的人員在結(jié)束初始工作后還要展開(kāi)對(duì)程序的審查,其中的大部分工作內(nèi)容需要依靠合作完成。專(zhuān)業(yè)的人員通過(guò)技術(shù)手段結(jié)束數(shù)據(jù)的參考值評(píng)估,要求在人工審查的途徑中實(shí)現(xiàn)數(shù)據(jù)的核對(duì)工作??偨Y(jié)的角度來(lái)評(píng)定靜態(tài)測(cè)試的作用,就是通過(guò)人工和數(shù)據(jù)參考工具實(shí)現(xiàn)對(duì)編程的審核。另外一種就是動(dòng)態(tài)的測(cè)試種類(lèi),這種方式需要進(jìn)行軟件的啟動(dòng),在運(yùn)行的過(guò)程中通過(guò)既定的數(shù)據(jù)進(jìn)行測(cè)試評(píng)估。按照專(zhuān)業(yè)的白盒與黑盒方式進(jìn)行測(cè)試實(shí)驗(yàn),達(dá)到動(dòng)態(tài)測(cè)評(píng)的目的。白盒的功能就是測(cè)試軟件的邏輯性,能夠滿足人們使用的正常運(yùn)作,黑盒則更傾向與想軟件的使用功能,以及軟件的數(shù)據(jù)管理進(jìn)行測(cè)試。白盒與黑盒的測(cè)試功能滿足了對(duì)于軟件測(cè)試的基本要求,實(shí)現(xiàn)了為軟件后續(xù)開(kāi)發(fā)提供數(shù)據(jù)的重要任務(wù)。
2.3軟件測(cè)試的方法步驟
將軟件的測(cè)試方法進(jìn)行歸納和綜合,發(fā)現(xiàn)主要的測(cè)試方法來(lái)源于對(duì)于測(cè)試種類(lèi)的需求。將白盒和黑盒的測(cè)試程序運(yùn)用到軟件的測(cè)試中去,實(shí)現(xiàn)人工和技術(shù)的雙層數(shù)據(jù)收集,實(shí)現(xiàn)對(duì)于軟件的數(shù)據(jù)編程、應(yīng)用操作,以及未來(lái)升級(jí)的發(fā)展需求都進(jìn)行監(jiān)管。由白盒協(xié)助人工進(jìn)行數(shù)據(jù)的整理,達(dá)成數(shù)據(jù)外接的基礎(chǔ)使用。再由黑盒的運(yùn)行操作達(dá)成對(duì)于內(nèi)置程序、數(shù)據(jù)的檢測(cè)和觀察,保證軟件進(jìn)入正式使用中的功能性。軟件測(cè)試的整體步驟,都由數(shù)據(jù)的支持進(jìn)行操作,具體的步驟首先是進(jìn)行功能性檢驗(yàn),然后將外因排除后執(zhí)行內(nèi)因運(yùn)行,之后找尋可能導(dǎo)致程序出現(xiàn)問(wèn)題的原因,最后結(jié)合參數(shù)的運(yùn)算和總結(jié),達(dá)成軟件測(cè)試的目的[3]。
3軟件測(cè)試在軟件開(kāi)發(fā)過(guò)程中的應(yīng)用實(shí)施
軟件的開(kāi)發(fā)是一個(gè)十分復(fù)雜的過(guò)程,為了成功的實(shí)現(xiàn)軟件的應(yīng)用和升級(jí),就需要工程師進(jìn)行嚴(yán)密的設(shè)計(jì)、開(kāi)發(fā),以及研制,最后成就的科學(xué)技術(shù)產(chǎn)品。因?yàn)槿藗內(nèi)找嬖鲩L(zhǎng)的科學(xué)需求,完美的軟件必須還要經(jīng)過(guò)不斷的推敲和升級(jí)。
(1)軟件測(cè)試的應(yīng)用主要考察軟件的實(shí)用性和需求。軟件的創(chuàng)作和制造都是為了滿足人們生活的需求,在開(kāi)發(fā)的過(guò)程中要考慮產(chǎn)品的功能性,還要考慮開(kāi)發(fā)商的開(kāi)發(fā)成本是否能夠支持整個(gè)軟件的制作完成。
(2)軟件的整體設(shè)計(jì)是否合理,需要通過(guò)軟件測(cè)試得到論證。工程師進(jìn)行軟件的數(shù)據(jù)編寫(xiě),是為了滿足人們的生活需要,各項(xiàng)開(kāi)發(fā)和功能的深入研究都是為了實(shí)現(xiàn)軟件的實(shí)用性。軟件的測(cè)試能夠檢測(cè)出軟件開(kāi)發(fā)中的問(wèn)題,進(jìn)行及時(shí)的補(bǔ)救工作實(shí)施,盡量做到不浪費(fèi)開(kāi)發(fā)成本的目的。
(3)要求在軟件測(cè)試應(yīng)用實(shí)際作用于軟件的后期拓展。無(wú)論是學(xué)習(xí)軟件還是工作軟件,甚至于游戲軟件,都必須要滿足未來(lái)的發(fā)展和升級(jí)要求,實(shí)現(xiàn)能夠無(wú)限開(kāi)發(fā)和研制的目的,保證軟件具有創(chuàng)新性。軟件測(cè)試很大程度上也是為了找尋軟件的功能延續(xù)性,促進(jìn)軟件的再開(kāi)發(fā)和再創(chuàng)造。
(4)軟件的測(cè)試需要應(yīng)用到軟件的最終檢測(cè)和維護(hù)環(huán)節(jié)中去。每款軟件開(kāi)發(fā)后都應(yīng)該得到檢測(cè),只有質(zhì)量能夠達(dá)到標(biāo)準(zhǔn)才能保證軟件的出售。再者就是應(yīng)用到軟件出售后的軟件維護(hù),保證軟件高質(zhì)量運(yùn)行[4]。
4結(jié)語(yǔ)
在信息技術(shù)不斷摸索前進(jìn)的過(guò)程中,軟件的應(yīng)用托陳出新不斷進(jìn)步,實(shí)現(xiàn)了人們生活、工作,以及學(xué)習(xí)的全面提速。為了保證軟件在人們生活中的使用質(zhì)量,以及適用程度,進(jìn)行軟件開(kāi)發(fā)前期的軟件測(cè)試是必須嚴(yán)格執(zhí)行的工作步驟。
作者:丁旻昊 單位:中國(guó)特種飛行器研究所
軟件測(cè)試是保證軟件質(zhì)量的重要手段之一。目前社會(huì)上對(duì)軟件測(cè)試人才需求非常旺盛,據(jù)報(bào)道其人才缺口高達(dá)30萬(wàn)人[1],高校學(xué)生畢業(yè)后直接從事軟件測(cè)試工作的占據(jù)了軟件測(cè)試行業(yè)從業(yè)人員的48%[2],許多高校都開(kāi)設(shè)了軟件測(cè)試課程,如蘇州大學(xué)[3],北京工業(yè)大學(xué)[4]等,以培養(yǎng)相應(yīng)的軟件測(cè)試人才。我校計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)2008版教學(xué)設(shè)計(jì)中新增了軟件測(cè)評(píng)課程,含理論課28學(xué)時(shí)及實(shí)驗(yàn)課8學(xué)時(shí),于2011年首次在大四上學(xué)期開(kāi)設(shè)。軟件測(cè)試主要是一門(mén)技能型課程[5],其理論性相對(duì)較弱,且和軟件工程概論課存在較多內(nèi)容的重復(fù)。吸取了首次授課時(shí)重理論輕實(shí)踐的教訓(xùn),我們將軟件測(cè)試課程的目標(biāo)定位為在一定理論基礎(chǔ)的指導(dǎo)下使學(xué)生熟練掌握軟件測(cè)試的技能,因此2012年第二次授課時(shí)將理論課減少為24學(xué)時(shí),實(shí)驗(yàn)課增加到12學(xué)時(shí)。借鑒同濟(jì)大學(xué)朱少民教授[6-7]的經(jīng)驗(yàn),實(shí)驗(yàn)課著重講述一些常用開(kāi)源軟件測(cè)試工具的使用,包括功能測(cè)試工具Selenium和AutoIT,單元測(cè)試工具Junit,代碼覆蓋工具Emma以及性能測(cè)試工具Jmeter等。Jmeter是Apache組織開(kāi)發(fā)的一個(gè)用于壓力測(cè)試和性能測(cè)試的純Java桌面工具,可用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο蟮饶M繁重的負(fù)載來(lái)測(cè)試它們的強(qiáng)度或分析不同壓力類(lèi)型下的整體性能[8]。性能測(cè)試是保證應(yīng)用程序后能夠穩(wěn)定可靠運(yùn)行的必要手段之一。以我們?yōu)槟硻C(jī)場(chǎng)開(kāi)發(fā)的戰(zhàn)略規(guī)劃管理系統(tǒng)為例,由于前未進(jìn)行全面的性能測(cè)試,客戶(hù)使用一段時(shí)間后經(jīng)常反映系統(tǒng)響應(yīng)速度慢。利用Jmeter對(duì)主要模塊進(jìn)行了性能測(cè)試,結(jié)合測(cè)試結(jié)果對(duì)數(shù)據(jù)庫(kù)進(jìn)行了優(yōu)化,此后客戶(hù)再也沒(méi)有反映過(guò)響應(yīng)速度慢的問(wèn)題。本著科研服務(wù)于教學(xué)的宗旨,以該系統(tǒng)為原型,完善了基于Jmeter的性能測(cè)試及數(shù)據(jù)庫(kù)優(yōu)化實(shí)驗(yàn)教學(xué)設(shè)計(jì)。
1Web應(yīng)用程序性能測(cè)試實(shí)驗(yàn)
這部分實(shí)驗(yàn)?zāi)康氖鞘箤W(xué)生熟練掌握使用Jmeter測(cè)試Web應(yīng)用程序的一般流程和方法。實(shí)驗(yàn)任務(wù)測(cè)試績(jī)效考核子系統(tǒng)中的評(píng)分模塊。評(píng)分人登錄系統(tǒng)后進(jìn)入評(píng)分環(huán)節(jié),選擇其未完成的評(píng)分項(xiàng)目(若有多個(gè)未評(píng)分項(xiàng),則需要全部對(duì)其評(píng)分)。每個(gè)評(píng)分項(xiàng)中包含對(duì)多個(gè)部門(mén)的評(píng)分,部門(mén)數(shù)大于等于3個(gè)時(shí)需符合正態(tài)分布,如可評(píng)出優(yōu)秀3個(gè)、良好6個(gè)、合格4個(gè)、基本合格2個(gè),否則可任意評(píng)分。按照循序漸進(jìn)的原則,設(shè)計(jì)了3個(gè)步驟:一是Jmeter的基本應(yīng)用,包括腳本錄制、添加http請(qǐng)求、添加斷言以及查看測(cè)試結(jié)果等;二是Jmeter的邏輯控制結(jié)構(gòu),如分支和循環(huán)等;三是Jmeter的高級(jí)應(yīng)用,如參數(shù)值可變以及參數(shù)個(gè)數(shù)可變等。
1.1Jmeter的基本應(yīng)用
Jmeter可以手工添加腳本,但更方便的是使用腳本錄制軟件Badboy[9]。Badboy錄制的腳本可以保存為Jmeter格式,然后在Jmeter中直接打開(kāi)和修改。腳本主要是一系列的http請(qǐng)求,其中可以設(shè)置請(qǐng)求的URL,請(qǐng)求方法(get/post)及請(qǐng)求參數(shù)等,如圖1所示。通過(guò)添加斷言(如是否含有特定字符串)檢查請(qǐng)求是否返回正確結(jié)果。添加查看結(jié)果樹(shù)并運(yùn)行測(cè)試腳本查看程序的測(cè)試結(jié)果。
1.2Jmeter的控制結(jié)構(gòu)
Jmeter具有豐富的邏輯控制結(jié)構(gòu),包括控制器,switch控制器,while控制器以及forEach控制器等。實(shí)驗(yàn)重點(diǎn)練習(xí)控制器和forEach控制器??刂破髋袛郕meter變量是否滿足給定條件,若滿足則執(zhí)行其包含的測(cè)試元素,否則不執(zhí)行。ForEach控制器對(duì)Jmeter變量的每一個(gè)取值都執(zhí)行一遍其包含的測(cè)試元素。圖2是一個(gè)控制器,其條件為變量COUNT小于10且變量VAR等于字符串“abcd”。圖2Jmeter的控制器圖Jmeter的變量引用使用${變量名}的方式,變量一般提取自返回頁(yè)面中的某些信息,如滿足特定條件記錄的行數(shù)或某個(gè)特定位置的字符串取值等。變量提取可采用正則表達(dá)式或Xpath進(jìn)行匹配,講解其匹配原則并現(xiàn)場(chǎng)演示。圖3利用正則表達(dá)式提取需評(píng)選優(yōu)秀的單位個(gè)數(shù),其中引用名稱(chēng)youxiu就是變量名。匹配失敗則取設(shè)置的缺省值0。如對(duì)于頁(yè)面中返回的html代碼“…您當(dāng)前可以評(píng)出優(yōu)秀<spanid="ltYSMsg">3</span>個(gè)…”可提取出優(yōu)秀個(gè)數(shù)為3。
1.3Jmeter的高級(jí)應(yīng)用
本部分著重解決實(shí)際測(cè)試過(guò)程中的一些常見(jiàn)問(wèn)題,如參數(shù)內(nèi)容可變及參數(shù)個(gè)數(shù)可變等。測(cè)試登錄環(huán)節(jié)時(shí)需模擬不同的用戶(hù)登錄行為,即圖1的http請(qǐng)求中txtUserName一項(xiàng)的值應(yīng)是變化的。Jmeter提供的CSVDataSetConfig可解決這一問(wèn)題,如圖4所示。將所有評(píng)分人的信息存儲(chǔ)在一個(gè)CSV文件中,把其中的列名填入VariableNames項(xiàng),之后將圖1中的txtUserName值改為userAccount(即CSV文件的第1列)實(shí)現(xiàn)參數(shù)值的動(dòng)態(tài)變化。進(jìn)入評(píng)分項(xiàng)后需根據(jù)情況選擇優(yōu)秀和良好等的個(gè)數(shù),且要反映在http請(qǐng)求的參數(shù)中。由于參評(píng)單位的個(gè)數(shù)因評(píng)分人和評(píng)分項(xiàng)各異,因此無(wú)法在GUI界面中一一添加。需動(dòng)態(tài)添加的參數(shù)包括評(píng)分列表中的name及其value,value的取值從優(yōu)秀到基本合格依次為1234。為簡(jiǎn)單起見(jiàn),我們按順序?qū)挝贿M(jìn)行評(píng)分。如系統(tǒng)要求評(píng)出3個(gè)優(yōu)秀,則測(cè)試中前3個(gè)部門(mén)打優(yōu)秀,其余依次類(lèi)推。由于同一部門(mén)的優(yōu)秀良好等單選按鈕的name值相同(如圖5所示),我們選擇提取該組唯一的ID號(hào),然后將其轉(zhuǎn)換為name,其對(duì)應(yīng)關(guān)系是用$代替下劃線(如ID號(hào)為gbBSCExamList_ctl02_rbExamerLevel,name為gbBSCExamList$ctl02$rbExamerLevel)。Jmeter的Beanshellpreprocessor可在提交http請(qǐng)求前動(dòng)態(tài)調(diào)整參數(shù)個(gè)數(shù)及參數(shù)值。下面給出了Beanshellpreprocessor的代碼。其中ExamerLevel_matchNr為Jmeter的系統(tǒng)變量,提供了正則表達(dá)式匹配項(xiàng)ExamerLevel匹配成功的個(gè)數(shù)(即參評(píng)單位的個(gè)數(shù))。如前所述匹配數(shù)量小于3時(shí)可任意評(píng)分,為簡(jiǎn)單起見(jiàn)我們均將其評(píng)為優(yōu)秀。N=Integer.parseInt(vars.get("ExamerLevel_match-Nr"));(N>=3){YX=Integer.parseInt(vars.get("youxiu"));LH=Integer.parseInt(vars.get("lianghao"))+YX;HG=Integer.parseInt(vars.get("hege"))+LH;BHG=Integer.parseInt(vars.get("jibenhege"))+HG;for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");(i<=YX){sampler.a(chǎn)ddArgument(item,"1");}else(i<=LH){sampler.a(chǎn)ddArgument(item,"2");}else(i<=HG){sampler.a(chǎn)ddArgument(item,"3");}else(i<=BHG){sampler.a(chǎn)ddArgument(item,"4");}}}else{for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");sampler.a(chǎn)ddArgument(item,"1");}}設(shè)計(jì)了含35個(gè)并發(fā)線程的線程組,模擬實(shí)際35個(gè)評(píng)分人的評(píng)分過(guò)程。全部線程在1秒鐘之內(nèi)啟動(dòng),比實(shí)際情況更嚴(yán)格。得到聚合報(bào)告如圖6所示,其中點(diǎn)擊考核評(píng)分頁(yè)面響應(yīng)時(shí)間最長(zhǎng),為335毫秒。且測(cè)試過(guò)程中無(wú)錯(cuò)誤發(fā)生,說(shuō)明系統(tǒng)評(píng)分模塊可靠。
2數(shù)據(jù)庫(kù)性能優(yōu)化實(shí)驗(yàn)
除應(yīng)用程序外,數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)劣亦影響系統(tǒng)性能。這部分實(shí)驗(yàn)?zāi)康氖鞘箤W(xué)生熟練掌握使用SQLServer測(cè)試數(shù)據(jù)庫(kù)性能的一般流程和方法,并進(jìn)行簡(jiǎn)單的數(shù)據(jù)庫(kù)調(diào)優(yōu)。為減少?gòu)?fù)雜性,設(shè)計(jì)一個(gè)簡(jiǎn)單的由三張表組成的人員組織結(jié)構(gòu)數(shù)據(jù)庫(kù):user、or-gan及userorgan表。其中user表含4586條記錄,or-gan表含1722條記錄,userorgan表含6804條記錄(一人可在多部門(mén)任職)。實(shí)驗(yàn)任務(wù)根據(jù)賬號(hào)查詢(xún)其姓名及所在單位信息。
2.1SQL語(yǔ)句執(zhí)行計(jì)劃對(duì)應(yīng)用程序中頻繁執(zhí)行的SQL語(yǔ)句檢查執(zhí)行計(jì)劃非常重要。初始時(shí),三張表均未建立任何索引,下面SQL語(yǔ)句的執(zhí)行計(jì)劃如圖7所示。由圖7知,三張表均采用全表掃描的方式。對(duì)大表全表掃描可能涉及多次磁盤(pán)I/O,非常費(fèi)時(shí),應(yīng)盡力避免此種情況。SQLServer報(bào)告由于缺少索引影響了查詢(xún)性能,并給出了相關(guān)建議。selectA.vcAccount,A.vcName,C.vcNamefromtest.dbo.[user]Ainnerjointest.dbo.[useror-gan]BonA.vcAccount=B.cnvcempidinnerjointest.dbo.organConB.cnvcorgid=C.nNodeIDwhereA.vcAccount='testuser'為表格建立以下索引:indexIND_USERACCOUNTontest.dbo.[user](vcAccount)clusteredindexPK_ORGANontest.dbo.[organ](nNodeID)indexIND_USERORGANontest.dbo.[userorgan](cnvcempid,cnvcorgid)再次運(yùn)行后顯示執(zhí)行計(jì)劃如圖8所示??梢?jiàn)所有表掃描均已替換為相應(yīng)的索引查找,且SQLServ-er未報(bào)告缺少索引影響查詢(xún)性能。兩次執(zhí)行查詢(xún)的磁盤(pán)I/O和CPU時(shí)間見(jiàn)表1,可見(jiàn)為表添加正確的索引可提高查詢(xún)性能。
2.2索引建立原則總結(jié)
建立索引的一般滿足原則如下[10](篇幅所限,未給出實(shí)例):(1)為主鍵所在的列創(chuàng)建索引。為經(jīng)常進(jìn)行連接但未指定為外鍵的字段建立索引。(2)在頻繁進(jìn)行排序或分組的字段上建立索引。(3)在條件表達(dá)式中經(jīng)常用到的不同值較多的字段上建立索引,在不同值較少的字段上不建立索引,如性別字段。不在查詢(xún)很少引用的列上創(chuàng)建索引。(4)若經(jīng)常同時(shí)使用多個(gè)字段排序,可在這些字段上建立復(fù)合索引。要盡量使關(guān)鍵查詢(xún)形成索引覆蓋,其前導(dǎo)字段一定是使用最頻繁的字段。(5)查看索引并刪除不使用的索引。需頻繁進(jìn)行數(shù)據(jù)查入操作的數(shù)據(jù)庫(kù)應(yīng)有較少的索引,需頻繁進(jìn)行讀取操作的數(shù)據(jù)庫(kù)應(yīng)有更多的索引。(6)在聚集索引中,避免包括不必要的列,盡可能使用較小的數(shù)據(jù)類(lèi)型。(7)在支持排序和范圍查詢(xún)的字段上考慮使用聚集索引。(8)具有高選擇性的列是索引的好候選列,具有高密度的列是索引最糟糕的候選列。
3結(jié)語(yǔ)
軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵步驟。在軟件正式前一般都需要經(jīng)過(guò)性能測(cè)試,以保證軟件在一定負(fù)荷下的平穩(wěn)可靠運(yùn)行。Jmeter是一款優(yōu)秀的開(kāi)源性能測(cè)試工具,可測(cè)試繁重負(fù)載下的系統(tǒng)表現(xiàn)。軟件性能表現(xiàn)還取決于數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)劣,建立適當(dāng)?shù)乃饕蓽p輕數(shù)據(jù)庫(kù)查詢(xún)和處理負(fù)擔(dān),進(jìn)而提高系統(tǒng)處理能力。通過(guò)本教學(xué)設(shè)計(jì)實(shí)驗(yàn)學(xué)生普遍反映認(rèn)識(shí)到了性能測(cè)試的重要性,了解了執(zhí)行計(jì)劃在數(shù)據(jù)庫(kù)性能優(yōu)化中的作用。
作者:張志遠(yuǎn)馮興杰單位:中國(guó)民航大學(xué)
摘要:
在IT行業(yè),人們對(duì)于軟件開(kāi)發(fā)與測(cè)試關(guān)系的研究熱度不減;同時(shí)軟件的開(kāi)發(fā)與測(cè)試,也一直是軟件項(xiàng)目團(tuán)隊(duì)的中堅(jiān)力量,要想保證軟件開(kāi)發(fā)產(chǎn)品的質(zhì)量,就要有測(cè)試人員對(duì)于質(zhì)量進(jìn)行驗(yàn)證,所以測(cè)試人員也相當(dāng)于質(zhì)檢人員,但是兩者之間的關(guān)系還有更加深入的關(guān)系,對(duì)此本文就軟件測(cè)試與軟件開(kāi)發(fā)關(guān)系展開(kāi)分析,希望對(duì)于軟件設(shè)計(jì)水平的提升,起到積極促進(jìn)的作用。
關(guān)鍵詞:
軟件測(cè)試;軟件開(kāi)發(fā);關(guān)系
0前言
軟件開(kāi)發(fā)是一個(gè)系統(tǒng)性的過(guò)程,包括概念階段、計(jì)劃階段、開(kāi)發(fā)階段等,而軟件開(kāi)發(fā)工程與軟件測(cè)試工程師分別對(duì)應(yīng)著軟件產(chǎn)品生命周期的開(kāi)發(fā)與驗(yàn)證階段。表面看似兩者是一個(gè)上下游的關(guān)系,但是不同工程師所占的立場(chǎng)不同們對(duì)于軟件的認(rèn)識(shí)也呈現(xiàn)差異化,對(duì)此需要工程師共同討論等,繼而確定最佳的產(chǎn)品方案。
1概念分析
軟件開(kāi)發(fā)與軟件測(cè)試是軟件工程的重要階段,前者是在客戶(hù)需求的基礎(chǔ)上進(jìn)行軟件系統(tǒng)制造的過(guò)程,也包括系統(tǒng)設(shè)計(jì)、編碼程序等內(nèi)容。而后者主要是將前者各個(gè)階段,存在的漏洞等利用測(cè)試用例找出,是對(duì)于軟件需求等的最終審核,也是對(duì)于產(chǎn)品的質(zhì)檢。
2工作內(nèi)容
2.1開(kāi)發(fā)人員
其工作內(nèi)容主要體現(xiàn)在以下幾點(diǎn);第一、加強(qiáng)軟件需求分析,明確軟件開(kāi)發(fā)方向。第二、編寫(xiě)軟件詳細(xì)設(shè)計(jì)文檔,包括程序流程、函數(shù)等內(nèi)容;還包括單元、集成測(cè)試等文檔的編寫(xiě)。另外只有審核完寫(xiě)好的文檔后,才能進(jìn)行代碼的編寫(xiě)。第三、代碼編寫(xiě)是非常重要的,直接關(guān)系著軟件程序的功能發(fā)揮;而軟件開(kāi)發(fā)不僅僅就是寫(xiě)代碼,還包括很多其他的內(nèi)容。第四、程序編碼結(jié)束后,需要由開(kāi)發(fā)工程師,對(duì)其進(jìn)行系統(tǒng)自測(cè),保證程序正確編寫(xiě);自測(cè)合格后,以及文檔編寫(xiě)好后,一并交給軟件測(cè)試人員進(jìn)行檢測(cè)。
2.2測(cè)試人員
第一、通過(guò)對(duì)于軟件需求說(shuō)明書(shū)的審核,明確軟件功能開(kāi)發(fā)方向。第二、積極建立測(cè)試環(huán)境,也就是指軟件運(yùn)行的條件,包括軟硬件設(shè)施的設(shè)置等。對(duì)于軟件實(shí)際工作環(huán)境的模擬,也是測(cè)試環(huán)境構(gòu)建的主要內(nèi)容,繼而保證軟件的實(shí)際應(yīng)用不會(huì)出現(xiàn)問(wèn)題,對(duì)此可見(jiàn)測(cè)試環(huán)節(jié)還原現(xiàn)場(chǎng)環(huán)境的重要性。第三、將配套軟件進(jìn)行運(yùn)行,檢查其是否存在缺陷、功能是否充分的發(fā)揮,對(duì)于檢查出來(lái)的問(wèn)題,組織相關(guān)的工程師進(jìn)行軟件問(wèn)題的修正工作。第四、協(xié)助并指導(dǎo)工作人員安裝軟件程序。
3關(guān)系
軟件開(kāi)發(fā)和軟件測(cè)試主要的工作目標(biāo)在于用戶(hù)需求的實(shí)現(xiàn),保證交付軟件的質(zhì)量,開(kāi)發(fā)與測(cè)試并存,首先由開(kāi)發(fā)人員進(jìn)行軟件實(shí)現(xiàn),然后由測(cè)試人員找出軟件中存在的程序問(wèn)題,最后提交開(kāi)發(fā)修復(fù),兩者之間是相互合作、相互影響的關(guān)系,繼而除去軟件開(kāi)發(fā)中的的程序問(wèn)題,保證軟件的高品質(zhì)。兩者的工作交集,在于軟件缺陷,但是軟件開(kāi)發(fā)工程師、軟件測(cè)試工程師,工作崗位不同、對(duì)于軟件的看法不同,對(duì)此難免會(huì)存在意見(jiàn)分歧,所以測(cè)試工程師加強(qiáng)與軟件開(kāi)發(fā)師之間的關(guān)系處理尤為重要,繼而更好的形成向心力,保證軟件開(kāi)發(fā)的高效性和該品質(zhì)性。好的軟件開(kāi)發(fā),不僅僅要狠抓軟件開(kāi)發(fā)與軟件測(cè)試兩個(gè)環(huán)節(jié),更要注重產(chǎn)品開(kāi)發(fā)的全過(guò)程;另外更不能傾向于某個(gè)環(huán)節(jié),而要讓軟件開(kāi)發(fā)和測(cè)試都要硬,從而更好的保證后續(xù)工作的順利進(jìn)行。
4關(guān)系處理辦法
4.1尊重開(kāi)發(fā)成果
測(cè)試人員的綜合素養(yǎng)、綜合技能等,直接影響著軟件開(kāi)發(fā)的進(jìn)度與質(zhì)量等,為了更好地處理測(cè)試與開(kāi)發(fā)之間的關(guān)系,測(cè)試人員要抱有一定崗位職責(zé)、職業(yè)素質(zhì),本著公平、公正的心理尊重軟件開(kāi)發(fā)環(huán)節(jié)的工作成果;軟件開(kāi)發(fā)會(huì)可能會(huì)存在一系列的隱藏程序漏洞等,這都是非常正常的,而測(cè)試工程師的主要職責(zé)就是找出這些漏洞,提高開(kāi)發(fā)進(jìn)行修正,從而另一個(gè)角度來(lái)說(shuō)也是在幫助開(kāi)發(fā)工程師成長(zhǎng);但是實(shí)際上,部分的測(cè)試人員在檢查開(kāi)發(fā)提交的測(cè)試軟件時(shí),會(huì)因?yàn)榘l(fā)現(xiàn)問(wèn)題而出現(xiàn)一系列消極的情緒,對(duì)于軟件開(kāi)發(fā)工程師進(jìn)行謾罵侮辱等,不僅降低了軟件開(kāi)發(fā)工程師的工作積極性,也影響了兩個(gè)工作層面的關(guān)系,最終延長(zhǎng)了軟件交付的日期,以及軟件的質(zhì)量。開(kāi)發(fā)工程工作內(nèi)容繁瑣且任務(wù)重,不可能全面顧及,導(dǎo)致程序開(kāi)發(fā)存在一定的問(wèn)題,而測(cè)試人員作為軟件品質(zhì)完善的關(guān)鍵,要在尊重軟件開(kāi)發(fā)作品的同時(shí),積極的進(jìn)行漏洞檢查,實(shí)現(xiàn)良好的團(tuán)隊(duì)協(xié)作氛圍。
4.2缺陷技巧的提交
由于軟件開(kāi)發(fā)與軟件測(cè)試工作埃的交集就是程序缺陷,對(duì)此測(cè)試人員就要做到以下幾點(diǎn),繼而保證缺陷技巧的有效提交,保證軟件開(kāi)發(fā)人員的更好接受。
4.2.1換位思考測(cè)試
人員在接受軟件開(kāi)發(fā)提交的作品時(shí),首要的就是了解軟件開(kāi)發(fā)工程師對(duì)于測(cè)試結(jié)果的關(guān)注內(nèi)容、范圍以及關(guān)鍵點(diǎn)等;一般軟件開(kāi)發(fā)人員對(duì)于測(cè)試結(jié)果最注重的就是軟件邏輯、數(shù)據(jù)流轉(zhuǎn)等方面的內(nèi)容,對(duì)此測(cè)試人員就要合理的采用測(cè)試技巧,有效的調(diào)整程序漏洞的提交方案。軟件測(cè)試也是一個(gè)復(fù)雜且繁瑣的過(guò)程,首先測(cè)試工程師要按照指定的測(cè)試流程,對(duì)軟件作品進(jìn)行系統(tǒng)邏輯的測(cè)試,找出影響系統(tǒng)正常運(yùn)轉(zhuǎn)的錯(cuò)誤邏輯問(wèn)題,將其第一時(shí)間反饋給開(kāi)發(fā)工程師;測(cè)試環(huán)節(jié)接觸到的其他問(wèn)題,但并不是影響系統(tǒng)邏輯的漏洞點(diǎn),按照漏洞提交順序進(jìn)行依次提交更容易被開(kāi)發(fā)工程師所接受。
4.2.2漏洞描述要精準(zhǔn)
測(cè)試人員的測(cè)試結(jié)果,是開(kāi)發(fā)人員漏洞改進(jìn)的關(guān)鍵,一個(gè)精準(zhǔn)的的Bug描述,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)幫助性是非常大的,能夠幫助開(kāi)發(fā)人員更加精準(zhǔn)的進(jìn)行漏洞定位。這就要求測(cè)試人員在進(jìn)行Bug描述時(shí),要注重語(yǔ)言的干練簡(jiǎn)明,語(yǔ)氣要肯定,避免使用好像、不確定等詞匯,繼而模糊開(kāi)發(fā)人員的工作思路。其次描述的內(nèi)容要突出重點(diǎn),忌諱全面開(kāi)花。最后根據(jù)以往的經(jīng)驗(yàn),給軟件開(kāi)發(fā)人員提出一系列的建議,像可能會(huì)出現(xiàn)漏洞的部位等,繼而實(shí)現(xiàn)軟件的高品質(zhì)。
4.2.3注重普遍問(wèn)題的提交
軟件開(kāi)發(fā)人員一般工作都非常的忙碌,而重復(fù)漏洞或是無(wú)效漏洞的提交,會(huì)大大的影響其工作的心情、工作量與工作進(jìn)度等,對(duì)此測(cè)試人員在測(cè)試系統(tǒng)漏洞時(shí),要養(yǎng)成Bug分析的好習(xí)慣,分清其問(wèn)題的獨(dú)立性還是普遍性,若是普遍問(wèn)題可以提交一個(gè)。這就要求測(cè)試時(shí)人員要加強(qiáng)對(duì)于軟件系統(tǒng)的熟練度,包括業(yè)務(wù)要求、操作以及使用等,當(dāng)測(cè)試人員也不確定漏洞是否存在時(shí),可以與其他測(cè)試人員進(jìn)行溝通,或是與開(kāi)發(fā)工程師進(jìn)行溝通,繼而精準(zhǔn)定位程序漏洞。
4.2.4加強(qiáng)有效溝通
考慮到測(cè)試人員與開(kāi)發(fā)人員之間的矛盾問(wèn)題,主要的原因在于缺乏溝通或是交流無(wú)效,對(duì)此首先測(cè)試熱源就要占到用戶(hù)的角度上,正確的表達(dá)出自己的想法,讓開(kāi)發(fā)人員也占到用戶(hù)的角度進(jìn)行討論。其次由于兩者工作理念不同,對(duì)此難免會(huì)存在爭(zhēng)議,對(duì)此測(cè)試人員保持自己觀點(diǎn),可在下個(gè)版本中完善。最后加強(qiáng)兩者之間的溝通,明確對(duì)方的工作想法,保證系統(tǒng)認(rèn)知的更加深入、全面,并靈活的運(yùn)用測(cè)試手段,從而更好的保證軟件高品質(zhì)。
5總結(jié)
綜上所述,通過(guò)對(duì)于軟件測(cè)試與軟件開(kāi)發(fā)關(guān)系的分析,發(fā)現(xiàn)作為軟件產(chǎn)品全生命周期的關(guān)鍵環(huán)節(jié),更要加強(qiáng)溝通合作,提升企業(yè)研發(fā)的凝聚力,做到就事論事奔著相同目標(biāo)共同努力,從而更好的保證軟件產(chǎn)品的進(jìn)度和質(zhì)量。
作者:侯中原 單位:商丘醫(yī)學(xué)高等專(zhuān)科學(xué)校
[摘要]
隨著我國(guó)計(jì)算機(jī)網(wǎng)絡(luò)的不斷普及和發(fā)展,無(wú)論是人們的日常生活還是工作,甚至是休閑娛樂(lè),都離不開(kāi)互聯(lián)網(wǎng)的支持,可以說(shuō),計(jì)算機(jī)軟件已經(jīng)受到越來(lái)越多人的應(yīng)用,并且逐步成為了影響人們生活的重要技術(shù)。隨著人們對(duì)計(jì)算機(jī)應(yīng)用軟件需求量的不斷增加,計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)也越來(lái)越頻繁,因此,要對(duì)其開(kāi)發(fā)流程以及開(kāi)發(fā)需求進(jìn)行深入的分析。文章將對(duì)計(jì)算機(jī)軟件測(cè)試技術(shù)與開(kāi)發(fā)應(yīng)用進(jìn)行了研究。
[關(guān)鍵詞]
計(jì)算機(jī)軟件;測(cè)試技術(shù);開(kāi)發(fā)應(yīng)用;相關(guān)研究
計(jì)算機(jī)軟件測(cè)試技術(shù)對(duì)于軟件開(kāi)發(fā)而言具有重要的作用,能充分保障軟件的精確性,為軟件開(kāi)發(fā)工作帶來(lái)安全保證。筆者將從計(jì)算機(jī)軟件開(kāi)發(fā)的重要性、計(jì)算機(jī)軟件開(kāi)發(fā)流程、計(jì)算機(jī)軟件測(cè)試技術(shù)在軟件開(kāi)發(fā)中的有效應(yīng)用,三個(gè)部分進(jìn)行闡述。
1分析計(jì)算機(jī)軟件開(kāi)發(fā)的重要性
相對(duì)于應(yīng)用軟件而言,計(jì)算機(jī)僅僅只是作為一種輔助工具,計(jì)算機(jī)之所以能夠幫助人們有效地解決這類(lèi)問(wèn)題,促進(jìn)社會(huì)迅猛發(fā)展,最重要的就是計(jì)算機(jī)內(nèi)的軟件應(yīng)用,可見(jiàn),軟件的開(kāi)發(fā)極為重要。隨著國(guó)家經(jīng)濟(jì)體系的不斷改革,各行各業(yè)已經(jīng)逐步面向現(xiàn)代化發(fā)展,互聯(lián)網(wǎng)的普及無(wú)疑為人們的發(fā)展奠定了結(jié)實(shí)的基礎(chǔ),也給應(yīng)用軟件的進(jìn)一步研究開(kāi)發(fā)提供強(qiáng)有力的保障,計(jì)算機(jī)軟件的應(yīng)用已經(jīng)在人們的生活中得以普及,而人們的日常生活也已經(jīng)離不開(kāi)網(wǎng)絡(luò)的支持。計(jì)算機(jī)軟件的應(yīng)用不斷豐富了人們的日常生活,使人們更加重視精神的自我培養(yǎng),此外,計(jì)算機(jī)網(wǎng)絡(luò)也在不斷推動(dòng)著人們前進(jìn)。
2計(jì)算機(jī)軟件開(kāi)發(fā)流程
2.1分析開(kāi)發(fā)需求和設(shè)計(jì)概要
在開(kāi)發(fā)計(jì)算機(jī)軟件之前,對(duì)其進(jìn)行需求分析是開(kāi)發(fā)應(yīng)用軟件的首要環(huán)節(jié),亦是最重要的環(huán)節(jié)之一。軟件開(kāi)發(fā)需求分析質(zhì)量,會(huì)直接對(duì)應(yīng)用軟件開(kāi)發(fā)造成影響,一般情況下研究人員要根據(jù)軟件需求內(nèi)容,對(duì)軟件的概要進(jìn)行設(shè)計(jì),并且結(jié)合軟件的功能需求情況設(shè)計(jì)出軟件程序流程圖,若是利用類(lèi)似于C語(yǔ)言等的高級(jí)語(yǔ)言實(shí)施程序編寫(xiě),還應(yīng)當(dāng)根據(jù)軟件模塊設(shè)計(jì)各模塊的應(yīng)用功能。概要設(shè)計(jì)為軟件的開(kāi)發(fā)提供了程序框架,后續(xù)的開(kāi)發(fā)工作都是在這個(gè)框架基礎(chǔ)上進(jìn)行操作,可見(jiàn)這個(gè)框架不但能夠決定計(jì)算機(jī)軟件程序功能,而且還能對(duì)軟件運(yùn)行的效率產(chǎn)生一定的影響。在基于軟件程序具體的開(kāi)發(fā)過(guò)程中,想要實(shí)現(xiàn)其特定功能,可選擇多個(gè)語(yǔ)句或者邏輯關(guān)系等來(lái)實(shí)現(xiàn),但不同的邏輯關(guān)系與語(yǔ)句也會(huì)從一定程度上影響軟件。軟件開(kāi)發(fā)及其需求越來(lái)越復(fù)雜,如何編寫(xiě)簡(jiǎn)潔而又不會(huì)存在漏洞的應(yīng)用程序,已經(jīng)成為了各軟件開(kāi)發(fā)人員最終的目標(biāo),因此,在實(shí)際研究過(guò)程當(dāng)中,研究人員要十分重視概要設(shè)計(jì)環(huán)節(jié)的工作,并且保持思路清晰,設(shè)計(jì)完程序流程圖之后要進(jìn)行全方位的審核,不斷簡(jiǎn)化軟件的邏輯關(guān)系,最終實(shí)現(xiàn)科學(xué)合理的軟件邏輯關(guān)系。
2.2詳細(xì)的編碼與設(shè)計(jì)
緊跟需求分析和概要設(shè)計(jì)后的一個(gè)環(huán)節(jié)就是進(jìn)行程序的具體編寫(xiě)工作。在編寫(xiě)程序的過(guò)程當(dāng)中,首先應(yīng)當(dāng)選擇計(jì)算機(jī)語(yǔ)言,經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,高級(jí)計(jì)算機(jī)語(yǔ)言出現(xiàn)提高了軟件的開(kāi)發(fā)效率。人們按照開(kāi)發(fā)軟件的實(shí)際需求,有針對(duì)性地研究了很多種類(lèi)的計(jì)算機(jī)語(yǔ)言,例如:如常見(jiàn)有JAVA、C語(yǔ)言等,到了現(xiàn)在出現(xiàn)了VF與VB等可視化的編程軟件,這類(lèi)軟件的研發(fā)使研究人員即便沒(méi)有專(zhuān)業(yè)知識(shí)也可完成簡(jiǎn)單的軟件開(kāi)發(fā)。此外,在實(shí)際編碼前,研究人員應(yīng)進(jìn)行詳細(xì)設(shè)計(jì),在已設(shè)計(jì)的框架上,按特定的邏輯關(guān)系將軟件所需實(shí)現(xiàn)的一些功能進(jìn)行設(shè)計(jì),根據(jù)詳細(xì)設(shè)計(jì)流程進(jìn)行編碼。目前,計(jì)算機(jī)軟件設(shè)計(jì)使用最多的是C語(yǔ)言,這種語(yǔ)言的模塊形式較為簡(jiǎn)單、語(yǔ)句便于理解,所以非常適合在開(kāi)發(fā)、維護(hù)軟件過(guò)程中運(yùn)用,受到研發(fā)人員的青睞。
3計(jì)算機(jī)軟件測(cè)試技術(shù)在軟件開(kāi)發(fā)中的有效應(yīng)用
軟件程序的編寫(xiě)完成之后,研發(fā)人員還要對(duì)其實(shí)施相應(yīng)測(cè)試,監(jiān)測(cè)這款軟件的應(yīng)用效果以及功能等是否能夠達(dá)到預(yù)期效果,一般情況下,測(cè)試軟件的方法就是隨機(jī)輸入一些數(shù)據(jù)到計(jì)算機(jī)中,然后再看結(jié)果是否達(dá)到要求,為了能夠確保軟件功能的精準(zhǔn)性,常常會(huì)選擇幾組隨機(jī)數(shù)據(jù)配合一些特殊參數(shù)進(jìn)行檢測(cè)。如果檢測(cè)出來(lái)的結(jié)果和軟件功能相符合,那么則說(shuō)明通過(guò)測(cè)試,反之,則不符合。近幾年以來(lái),計(jì)算機(jī)的軟件開(kāi)發(fā)技術(shù)得到迅猛發(fā)展,研究人員也開(kāi)發(fā)了一些專(zhuān)門(mén)針對(duì)軟件測(cè)試的程序,但是由于受到技術(shù)水平因素的影響,使用測(cè)試軟件受到一定的局限,比如:一個(gè)測(cè)試軟件只能對(duì)一種軟件實(shí)施檢測(cè),并且測(cè)試結(jié)果只能當(dāng)作參考,測(cè)試結(jié)果的準(zhǔn)確率還需要提升,但是不管怎樣,測(cè)試軟件的研發(fā)就足以標(biāo)志著計(jì)算機(jī)軟件程序的未來(lái)發(fā)展方向。新開(kāi)發(fā)軟件通過(guò)檢測(cè)以后,需要交予需求方進(jìn)行使用,為了保證軟件能滿足人們的實(shí)際使用需求,使用方也會(huì)進(jìn)行驗(yàn)收,軟件驗(yàn)收方要求極為嚴(yán)格,但是驗(yàn)收方式基本和測(cè)試方法相似,同樣采取輸入?yún)?shù)來(lái)進(jìn)行驗(yàn)收,因此,就增加了不必要的驗(yàn)收程序。研發(fā)人員還應(yīng)當(dāng)繼續(xù)研究,爭(zhēng)取研發(fā)出更多的測(cè)試軟件,使軟件的測(cè)試結(jié)果更加精確。軟件測(cè)試技術(shù)作為軟件開(kāi)發(fā)過(guò)程中最為重要的組成部分,該技術(shù)主要目的是為了將軟件產(chǎn)品中存在的問(wèn)題及時(shí)找出,并將測(cè)試報(bào)告交給軟件開(kāi)發(fā)人員予以修改??梢?jiàn),在軟件開(kāi)發(fā)工作中,軟件檢測(cè)技術(shù)的應(yīng)用是不可缺少的環(huán)節(jié)。
4結(jié)語(yǔ)
總而言之,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)已經(jīng)在人們的生活中得以廣泛應(yīng)用,而軟件就是應(yīng)用計(jì)算機(jī)的關(guān)鍵,隨著人們各類(lèi)需求不斷增加,開(kāi)發(fā)計(jì)算機(jī)軟件已經(jīng)成為了研究人員的日常工作,在具體的軟件研究過(guò)程中,軟件測(cè)試技術(shù)的使用是必不可少的,因此軟件開(kāi)發(fā)人員還應(yīng)切實(shí)做好相關(guān)工作,解決軟件開(kāi)發(fā)所面臨的困境,不斷提升自己的開(kāi)發(fā)水平,對(duì)軟件開(kāi)發(fā)工作進(jìn)行深入研究,促進(jìn)軟件事業(yè)的持續(xù)發(fā)展。
作者:高俊 鄒金萍 單位:江西生物科技職業(yè)學(xué)院
摘要:
本文針對(duì)軟件測(cè)試課程的教育現(xiàn)狀,結(jié)合軟件測(cè)試的課程特點(diǎn)和培養(yǎng)目標(biāo),從面向應(yīng)用型人才的培養(yǎng)方式出發(fā),提出了以案例式教學(xué)為主導(dǎo),走教學(xué)產(chǎn)業(yè)化發(fā)展的軟件測(cè)試改革方案。
關(guān)鍵詞:
軟件測(cè)試;應(yīng)用型人才;案例式教學(xué);教學(xué)產(chǎn)業(yè)化
隨著我國(guó)IT行業(yè)的發(fā)展,越來(lái)越多的企業(yè)意識(shí)到軟件測(cè)試的重要性,因此軟件測(cè)試人員成為當(dāng)前IT業(yè)界亟需的熱門(mén)人才。面對(duì)軟件測(cè)試人員緊迫的需求形勢(shì),應(yīng)用型人才培養(yǎng)單位應(yīng)該擴(kuò)大軟件測(cè)試人員的人才培養(yǎng)規(guī)模,提高培養(yǎng)質(zhì)量。
一、《軟件測(cè)試》課程教育現(xiàn)狀
我國(guó)軟件測(cè)試技術(shù)發(fā)展已有十余年,但I(xiàn)T市場(chǎng)對(duì)于測(cè)試人員仍然呈現(xiàn)出供不應(yīng)求的勢(shì)態(tài)。目前國(guó)內(nèi)高校對(duì)軟件工程專(zhuān)業(yè)幾乎都會(huì)開(kāi)設(shè)軟件測(cè)試課程,甚至有些高校已經(jīng)設(shè)置有軟件測(cè)試專(zhuān)業(yè)。2011年11月,教育部主辦了“2011年高等學(xué)校軟件測(cè)試課程教學(xué)論壇”,對(duì)測(cè)試人才的培養(yǎng)及測(cè)試領(lǐng)域的全面發(fā)展起到了積極地推動(dòng)作用[1]。高校系統(tǒng)化的專(zhuān)業(yè)教育體系為學(xué)生奠定了扎實(shí)而科學(xué)的學(xué)科基礎(chǔ),并對(duì)軟件測(cè)試技術(shù)的理論化和系統(tǒng)化發(fā)展起到了不可替代的作用。利弊相依,傳統(tǒng)的人才培養(yǎng)模式對(duì)軟件測(cè)試課程設(shè)置和培養(yǎng)方案上還是會(huì)存在以下不足。
1.重理論輕實(shí)踐在傳統(tǒng)的軟件測(cè)試課程設(shè)置中,大多采用教師在課堂上講授理論知識(shí),學(xué)生上機(jī)時(shí)完成實(shí)驗(yàn)操作的教學(xué)方式。實(shí)驗(yàn)的目的只是為了檢查學(xué)生知識(shí)點(diǎn)的理解和掌握,實(shí)驗(yàn)題目大多比較陳舊,不能與時(shí)俱進(jìn)地與當(dāng)前的最新技術(shù)或最熱門(mén)的應(yīng)用相結(jié)合,使得學(xué)生的測(cè)試知識(shí)體系過(guò)于單薄。
2.重學(xué)生個(gè)體知識(shí)積累,輕團(tuán)隊(duì)協(xié)作能力培養(yǎng)團(tuán)隊(duì)協(xié)作在軟件工程中的重要性無(wú)須多述。軟件測(cè)試作為軟件工程中重要一個(gè)環(huán)節(jié),貫穿于整個(gè)軟件生命周期,測(cè)試人員與系統(tǒng)分析員、軟件設(shè)計(jì)師、程序員、維護(hù)人員之間的溝通必不可少,良好的團(tuán)隊(duì)協(xié)作才能有助于項(xiàng)目的進(jìn)行,有助于高效、正確地開(kāi)發(fā)出高質(zhì)量的軟件產(chǎn)品。傳統(tǒng)的教學(xué)模式中,很少引入分組協(xié)作的環(huán)節(jié)去鍛煉學(xué)生的溝通和交流能力,更不能設(shè)計(jì)出測(cè)試人員和開(kāi)發(fā)人員的溝通場(chǎng)景,不能滿足學(xué)生在項(xiàng)目中去加深理解、鞏固提高的需求。
3.重即有知識(shí),輕科學(xué)創(chuàng)新一直以來(lái),軟件測(cè)試課程在高校的課程體系中受到重視并不多,課程結(jié)束后并沒(méi)有延續(xù)測(cè)試知識(shí)的后續(xù)課程。因此,學(xué)生不能在后面的學(xué)習(xí)和實(shí)踐中進(jìn)行總結(jié)提升。知識(shí)在母體中是要經(jīng)過(guò)消化、適應(yīng)、轉(zhuǎn)化、演進(jìn)、創(chuàng)新、融合、活化,而后才稱(chēng)為組織的“行動(dòng)知識(shí)”,現(xiàn)有的教學(xué)模式不能很好的產(chǎn)生知識(shí)發(fā)酵效果。
二、《軟件測(cè)試》課程特點(diǎn)和培養(yǎng)目標(biāo)
軟件測(cè)試是一門(mén)應(yīng)用型較強(qiáng)的學(xué)科,應(yīng)注重理論聯(lián)系實(shí)踐。一個(gè)合格的軟件評(píng)測(cè)師除了要掌握即有的測(cè)試?yán)碚摵蛙浖R(shí)外,還必須具備對(duì)軟件測(cè)試行業(yè)的深刻理解,必須具備對(duì)計(jì)算機(jī)專(zhuān)業(yè)知識(shí),包括編程技能、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、中間件等知識(shí)的系統(tǒng)掌握,必須具備溝通能力、團(tuán)隊(duì)協(xié)作精神。軟件測(cè)試是為了盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯(cuò)誤,最終把一個(gè)高質(zhì)量的軟件交給用戶(hù),這并不是一項(xiàng)簡(jiǎn)單的工作。要做好軟件測(cè)試,測(cè)試人員不僅需要站在客戶(hù)的角度思考問(wèn)題,真正理解客戶(hù)的需求,具備良好的分析能力和創(chuàng)造性思維能力,完成功能測(cè)試和界面測(cè)試,而且要能理解軟件系統(tǒng)的實(shí)現(xiàn)原理和各種使用場(chǎng)景,具備扎實(shí)的技術(shù)功底,能使用測(cè)試工具完成相應(yīng)的性能測(cè)試、安全性測(cè)試、兼容性測(cè)試和可靠性測(cè)試等更具挑戰(zhàn)性的任務(wù)[2]。從這個(gè)角度看,一個(gè)優(yōu)秀的測(cè)試工程師需要掌握更多的知識(shí)和技能。
三、《軟件測(cè)試》課程教學(xué)改革方案
以上可以看出,當(dāng)前高校對(duì)于測(cè)試課程的不重視,以及當(dāng)前的軟硬件設(shè)施及教學(xué)方法都不能滿足對(duì)應(yīng)用型測(cè)試技術(shù)人才的培養(yǎng)要求。為了適應(yīng)軟件產(chǎn)業(yè)發(fā)展對(duì)測(cè)試人才的迫切需要,實(shí)現(xiàn)軟件人才培養(yǎng)的持續(xù)性發(fā)展,針對(duì)軟件測(cè)試課程調(diào)整培養(yǎng)方案,展開(kāi)深入的教學(xué)改革和實(shí)踐活動(dòng)十分迫切和必要。
1.加大師資力量,構(gòu)建完善的軟硬件測(cè)試平臺(tái)教師素養(yǎng)的提高是軟件測(cè)試教學(xué)改革得以順利開(kāi)展的前提。此前,國(guó)內(nèi)對(duì)軟件測(cè)試并不重視,致使國(guó)內(nèi)軟件測(cè)試人才短缺,大部分高校內(nèi)雖然有計(jì)算機(jī)系,但多以重開(kāi)發(fā)輕測(cè)試,測(cè)試教師的專(zhuān)業(yè)素質(zhì)和數(shù)量都遠(yuǎn)遠(yuǎn)不夠。因此,不僅要重視對(duì)教師測(cè)試專(zhuān)業(yè)技術(shù)的培訓(xùn),提供更多的學(xué)習(xí)機(jī)會(huì),也應(yīng)該認(rèn)真開(kāi)展軟件測(cè)試教學(xué)研究,構(gòu)造專(zhuān)業(yè)的軟件測(cè)試教學(xué)團(tuán)隊(duì)。作為一門(mén)實(shí)踐性較高的課程,軟件測(cè)試必須建議專(zhuān)門(mén)的、完備的實(shí)驗(yàn)教學(xué)體系和環(huán)境。目前,高校普遍缺乏軟件測(cè)試的軟、硬件環(huán)境,致使學(xué)生無(wú)法通過(guò)項(xiàng)目實(shí)踐來(lái)深入理解和提高測(cè)試相關(guān)知識(shí)和技能。
2.運(yùn)用案例教學(xué),豐富軟件測(cè)試項(xiàng)目實(shí)戰(zhàn)案例在教學(xué)活動(dòng)中,學(xué)生總是對(duì)最新、最流行的項(xiàng)目和案例感興趣,陳舊的案例既不能滿足當(dāng)前市場(chǎng)上對(duì)測(cè)試人才的技術(shù)需求,又不能很好的激起學(xué)生的興趣。運(yùn)用案例教學(xué)最重要的環(huán)節(jié)就是豐富案例素材,保持案例的“鮮活性”與“生命力”。高??梢圆捎脷v年本科畢業(yè)設(shè)計(jì)中運(yùn)用了流行的技術(shù)、難度適中、功能較為完整的應(yīng)用作為軟件測(cè)試課程的測(cè)試案例,不但可以保證素材的延續(xù)性,也使得學(xué)生畢業(yè)設(shè)計(jì)完成的質(zhì)量有所提高。
3.加強(qiáng)校企合作,走教學(xué)產(chǎn)業(yè)化發(fā)展之路[3]企業(yè)需要人才,高校為企業(yè)輸送人才,校園中學(xué)習(xí)的技能最終要接收用人單位的考驗(yàn)。所以與軟件企業(yè)合作,建立對(duì)口的學(xué)生實(shí)訓(xùn)基地,是應(yīng)用型人才培養(yǎng)的重要途徑。軟件測(cè)試技術(shù)的掌握與提高離不開(kāi)項(xiàng)目實(shí)戰(zhàn),讓學(xué)生在真正的軟件工程過(guò)程中從事測(cè)試工作,不僅能使學(xué)生深刻體會(huì)到軟件測(cè)試在整個(gè)項(xiàng)目中的作用,掌握測(cè)試方法和技巧,對(duì)于學(xué)生的溝通交流能力、團(tuán)隊(duì)協(xié)作能力都有積極的促進(jìn)作用。
四、小結(jié)
軟件測(cè)試是保障軟件質(zhì)量,驗(yàn)證軟件可靠性的重要環(huán)節(jié),其重要性不言而喻。重視軟件測(cè)試應(yīng)從企業(yè)用人的實(shí)際需求出發(fā),高校應(yīng)加強(qiáng)面向企業(yè)需求的軟件測(cè)試改革,切實(shí)培養(yǎng)學(xué)生的動(dòng)手操作能力,使學(xué)生掌握最新的測(cè)試方法和技巧,讓企業(yè)需求促進(jìn)和推動(dòng)高校教學(xué)發(fā)展。
作者:于營(yíng) 單位:三亞學(xué)院
1測(cè)試流程不合理
1.1測(cè)試設(shè)計(jì)重點(diǎn)偏離使用QC軟件測(cè)試發(fā)現(xiàn)bug統(tǒng)計(jì),如表1所示。根據(jù)表1工作量統(tǒng)計(jì),25人/日為5個(gè)中級(jí)測(cè)試工程師一周的工作量,但是根據(jù)測(cè)試用例發(fā)現(xiàn)的bug數(shù)量?jī)H占bug總量的44.18%,該比例顯示測(cè)試用例的設(shè)計(jì)重點(diǎn)嚴(yán)重出現(xiàn)偏離。需要在測(cè)試用例設(shè)計(jì)的方向上進(jìn)行調(diào)整。
1.2測(cè)試過(guò)程不可控QC軟件測(cè)試計(jì)劃中測(cè)試執(zhí)行階段為2013.3.8-2013.3.27,執(zhí)行三輪測(cè)試;實(shí)際測(cè)試時(shí)間為2013.3.23-2013.4.20,執(zhí)行測(cè)試三輪,計(jì)劃完成時(shí)間嚴(yán)重偏離,表2為原計(jì)劃與實(shí)際計(jì)劃的對(duì)比。表2顯示測(cè)試計(jì)劃進(jìn)行了較大調(diào)整,計(jì)劃截止時(shí)間比原計(jì)劃延遲23天。延遲原因經(jīng)分析主要為開(kāi)發(fā)提交測(cè)試時(shí)間延遲,開(kāi)發(fā)提交版本問(wèn)題較多,測(cè)試計(jì)劃安排不合理,在兩輪測(cè)試間為安排開(kāi)發(fā)修改bug時(shí)間等。想要解決該問(wèn)題,不僅需要對(duì)測(cè)試過(guò)程進(jìn)行管理,同時(shí)也需要對(duì)開(kāi)發(fā)提交的測(cè)試版本質(zhì)量進(jìn)行管理。
2軟件質(zhì)量管理改進(jìn)對(duì)策
2.1需求工程管理軟件開(kāi)發(fā)過(guò)程中,需求不明確會(huì)帶來(lái)需求的頻繁變更,浪費(fèi)了很多時(shí)間。針對(duì)此項(xiàng)問(wèn)題,可對(duì)需求相關(guān)的活動(dòng)進(jìn)行統(tǒng)一管理,其需求管理結(jié)構(gòu)圖如圖2所示。加強(qiáng)需求開(kāi)發(fā)和需求管理的有機(jī)結(jié)合,不僅減少了需求的變更次數(shù),還解決了工程師對(duì)需求不能理解到位的問(wèn)題。需求開(kāi)發(fā)和需求管理同樣重要,只有兩者互相配合才能做出用戶(hù)滿意的產(chǎn)品。
2.2立項(xiàng)管理為了使有限的資源發(fā)揮更高的價(jià)值,公司可通過(guò)立項(xiàng)管理流程進(jìn)行立項(xiàng)管理,立項(xiàng)管理流程分為立項(xiàng)建議、立項(xiàng)評(píng)審和立項(xiàng)籌備三個(gè)階段,其具體流程圖3所示。
2.3測(cè)試流程管理針對(duì)測(cè)試流程中發(fā)現(xiàn)的問(wèn)題,可對(duì)整體的測(cè)試流程做如下的改變:(1)測(cè)試部門(mén)可進(jìn)行需求學(xué)習(xí)及需求討論,對(duì)理解不清楚及有疑問(wèn)的需求,由研發(fā)設(shè)計(jì)部門(mén)進(jìn)行解答,研發(fā)設(shè)計(jì)部門(mén)不能解答的由其聯(lián)系用戶(hù)確認(rèn)后作出解答;(2)需求確認(rèn)后,針對(duì)系統(tǒng)功能和性能等指標(biāo),由測(cè)試工程師進(jìn)行測(cè)試測(cè)用例的設(shè)計(jì),設(shè)計(jì)從兩個(gè)方面進(jìn)行,一方面測(cè)試工程師根據(jù)需求進(jìn)行測(cè)試用例的編寫(xiě),另一方面測(cè)試工程師可根據(jù)用戶(hù)反饋問(wèn)題進(jìn)行分析匯總;(3)使用QC功能測(cè)試工具對(duì)應(yīng)用軟件兼容性、操作系統(tǒng)兼容性進(jìn)行測(cè)試,以便于使用測(cè)試工具完成多種環(huán)境下的功能和兼容性測(cè)試;(4)進(jìn)行自由測(cè)試以便于對(duì)系統(tǒng)測(cè)試用例進(jìn)行補(bǔ)充,分析測(cè)試用例未覆蓋問(wèn)題的原因;(5)定期分析缺陷庫(kù)中的問(wèn)題,分析問(wèn)題產(chǎn)生的原因,進(jìn)行測(cè)試用例的修改。
3結(jié)論
本文指出了軟件質(zhì)量管理過(guò)程中可能會(huì)引起軟件質(zhì)量問(wèn)題的原因,對(duì)軟件質(zhì)量管理的相關(guān)問(wèn)題進(jìn)行了分析,歸納和總結(jié),這些問(wèn)題在軟件開(kāi)發(fā)人員中具有一定的普遍性。實(shí)踐表明,通過(guò)對(duì)這些問(wèn)題進(jìn)行分類(lèi),開(kāi)發(fā)人員可以清楚地知道在軟件設(shè)計(jì)中容易出現(xiàn)的問(wèn)題,能夠及時(shí)采取相應(yīng)的措施,推動(dòng)軟件質(zhì)量的全面提高。
作者:翁婕丁鐵喬揚(yáng)單位:南京萊斯信息技術(shù)股份有限公司質(zhì)量與技術(shù)管理部
根據(jù)權(quán)威機(jī)構(gòu)統(tǒng)計(jì)部門(mén)調(diào)查數(shù)據(jù)顯示可知,在常用的軟件開(kāi)發(fā)項(xiàng)目環(huán)節(jié)中,軟件測(cè)試工作大約能夠占到軟件開(kāi)發(fā)工作總量的42%以上,而軟件測(cè)試所需投入的研究經(jīng)費(fèi)成本也將占到總額數(shù)的50%。由此可知,軟件測(cè)試環(huán)節(jié)對(duì)于整個(gè)軟件工程開(kāi)發(fā)應(yīng)用具有十分重要的意義。然而,如何建立一支高效軟件測(cè)試團(tuán)隊(duì)對(duì)于構(gòu)建更加完善的軟件工程起著直接導(dǎo)向性作用。BarryBoehm曾闡述了人的因素在軟件測(cè)試中的重要作用,人為所占因素甚至超過(guò)了其他環(huán)節(jié)性因素,其代表理論構(gòu)造性成本模型認(rèn)為由于軟件測(cè)試分析師與程序員的原因會(huì)導(dǎo)致其工作效率相差數(shù)倍。因此,加強(qiáng)軟件測(cè)試團(tuán)隊(duì)的高效率建設(shè)對(duì)于構(gòu)建高質(zhì)量軟件應(yīng)用程序具有重要作用。
1高效軟件測(cè)試團(tuán)隊(duì)建設(shè)的可行性策略
1.1軟件測(cè)試團(tuán)隊(duì)的特質(zhì)建設(shè)
軟件測(cè)試團(tuán)隊(duì)的素質(zhì)建設(shè)對(duì)于整個(gè)軟件工程質(zhì)量而言具有非常重要的作用,人是測(cè)試工作中最具價(jià)值也是最重要的資源。因此,應(yīng)該積極構(gòu)建合格的、高質(zhì)量的合作團(tuán)隊(duì)。(1)軟件測(cè)試以及軟件工程開(kāi)發(fā)都需要程序員具備足夠的自信心,對(duì)軟件檢測(cè)結(jié)構(gòu)以及程序的缺陷要如實(shí)匯報(bào)。對(duì)于軟件項(xiàng)目工程中出現(xiàn)的各種問(wèn)題要認(rèn)真處理,以此減少客戶(hù)可能遇到的種種問(wèn)題。(2)軟件測(cè)試人員還要具備足夠的懷疑精神,對(duì)可能存在的漏洞性錯(cuò)誤要及時(shí)予以檢測(cè)和糾正,進(jìn)而提高其自我創(chuàng)造力。(3)軟件測(cè)試團(tuán)隊(duì)要積極構(gòu)建溝通協(xié)調(diào)能力??梢酝ㄟ^(guò)與客戶(hù)進(jìn)行必要的溝通來(lái)及時(shí)發(fā)現(xiàn)軟件運(yùn)行中存在的不足之處,其中測(cè)試者可以針對(duì)模擬環(huán)境下用戶(hù)對(duì)于軟件環(huán)境的應(yīng)用情況進(jìn)行科學(xué)分析,以此對(duì)軟件編寫(xiě)過(guò)程和總結(jié)文檔進(jìn)行反復(fù)檢查檢測(cè),提高軟件的運(yùn)行效率和正確性。(4)必備的檢測(cè)技術(shù)能力。軟件測(cè)試團(tuán)隊(duì)必須具備重要的專(zhuān)業(yè)技能,需要精通數(shù)據(jù)庫(kù)、通信、網(wǎng)絡(luò)、GUI測(cè)試、測(cè)試工具、自動(dòng)化測(cè)試腳本和相關(guān)業(yè)務(wù)領(lǐng)域等,以此全面提升他們的測(cè)試能力和測(cè)試積極性。
1.2軟件測(cè)試團(tuán)隊(duì)的制度性建設(shè)舉措
一個(gè)優(yōu)秀的軟件測(cè)試團(tuán)隊(duì)必定擁有一套完善的團(tuán)隊(duì)管理制度,擁有明確的職責(zé)分工和高端測(cè)試人員,通過(guò)不斷規(guī)范團(tuán)隊(duì)管理制度,做到揚(yáng)長(zhǎng)避短,及時(shí)提升整體測(cè)試質(zhì)量。其中,軟件測(cè)試團(tuán)隊(duì)需要不斷加強(qiáng)匯報(bào)制度建設(shè)、工作總結(jié)制度建設(shè)、獎(jiǎng)懲制度建設(shè)、測(cè)試審核制度建設(shè)、會(huì)議制度建設(shè)等,通過(guò)科學(xué)合理地分配職責(zé)關(guān)系來(lái)進(jìn)一步強(qiáng)化團(tuán)隊(duì)成員的素質(zhì)建設(shè)。在此過(guò)程中,還要注重對(duì)于資深測(cè)試人員的正確引導(dǎo)和建設(shè),加強(qiáng)彼此間的溝通交流,不斷豐富團(tuán)隊(duì)的測(cè)試知識(shí)庫(kù),通過(guò)科學(xué)吸收先進(jìn)的測(cè)試管理知識(shí)來(lái)提升整體測(cè)試技能和技巧,以此減少開(kāi)發(fā)團(tuán)隊(duì)協(xié)同工作中的一些領(lǐng)域瓶頸。
2結(jié)語(yǔ)
綜上所述,本文對(duì)目前國(guó)內(nèi)軟件工程的發(fā)展應(yīng)用現(xiàn)狀以及其中出現(xiàn)的漏洞不足之處進(jìn)行了分析。只有不斷加強(qiáng)對(duì)軟件測(cè)試團(tuán)隊(duì)的整體素質(zhì)和綜合開(kāi)發(fā)技能的教育,才能從根本上提升其軟件測(cè)試技能,要在不斷建立健全團(tuán)隊(duì)管理制度的基礎(chǔ)上加強(qiáng)相關(guān)軟件工程建設(shè),以此全面提高測(cè)試人員的軟件工程技術(shù)水平。
作者:段煉單位:鄭州銀行科技開(kāi)發(fā)部
1軟件工程提升軟件健壯性分析
軟件工程目前一直缺少一個(gè)明確的定義,但是目前業(yè)內(nèi)專(zhuān)家都一致認(rèn)為軟件工程一般分為需求分析、設(shè)計(jì)、編碼及測(cè)試4個(gè)環(huán)節(jié)。其中前面3個(gè)環(huán)節(jié)是整個(gè)軟件的編寫(xiě),而最后1個(gè)環(huán)節(jié)的軟件測(cè)試,則是通過(guò)各種專(zhuān)業(yè)測(cè)試方法來(lái)測(cè)試軟件是否滿足軟件工程下的10種特性:可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性。
2當(dāng)前軟件測(cè)試的現(xiàn)狀
從對(duì)軟件工程的分析來(lái)看,軟件測(cè)試是保證軟件最終健壯性的最后一個(gè)工序。但是,當(dāng)前很多軟件設(shè)計(jì)公司,在軟件測(cè)試方面投入的人力物力都非常低,甚至沒(méi)有專(zhuān)門(mén)的軟件測(cè)試部門(mén),而是由一些軟件設(shè)計(jì)人員兼職。雖然這樣也有了所謂的軟件測(cè)試這道工序,顯然因?yàn)檐浖O(shè)計(jì)人員本身的先入為主,所以在軟件測(cè)試的過(guò)程中,往往不容易發(fā)現(xiàn)潛在的問(wèn)題。另外有的軟件測(cè)試人員僅僅把軟件推到市場(chǎng)上,部分使用人員來(lái)進(jìn)行測(cè)試,雖然這也是一種測(cè)試方法,但是這種由用戶(hù)測(cè)試的軟件測(cè)試環(huán)節(jié),更多的是在軟件的操作體驗(yàn)的測(cè)試,并不能夠發(fā)現(xiàn)軟件潛在的bug,正確的軟件測(cè)試流程,應(yīng)該設(shè)計(jì)專(zhuān)業(yè)的測(cè)試軟件,通過(guò)白盒測(cè)試的方法來(lái)針對(duì)軟件代碼進(jìn)行測(cè)試。而上述的僅僅測(cè)試界面和操作,那只是軟件測(cè)試中的黑盒測(cè)試法,只有綜合白盒和黑盒,才可能獲得更好的軟件測(cè)試效果。但是,目前能夠綜合這2種測(cè)試方法的專(zhuān)業(yè)軟件測(cè)試部門(mén),還是非常稀缺的。這自然導(dǎo)致了國(guó)內(nèi)整個(gè)軟件行業(yè)的軟件健壯性存在缺陷的主要原因之一。
3軟件測(cè)試重要性分析
3.1軟件危機(jī)下凸顯軟件測(cè)試的重要性
軟件危機(jī)一直是IT行業(yè)的最重要的話題,其實(shí)在軟件危機(jī)這個(gè)名詞出來(lái)之前,軟件工程就已經(jīng)初步有了核心流程,不過(guò)正是因?yàn)楹芏鄬?zhuān)家有著自己的理論,所以讓軟件工程這門(mén)技術(shù)的解釋出現(xiàn)了很多不同的版本,不過(guò)在眾多版本中,軟件測(cè)試始終占據(jù)一個(gè)重要的模塊。軟件危機(jī)常見(jiàn)的表現(xiàn)就是因?yàn)檐浖陂_(kāi)發(fā)的過(guò)程中,成本失控、時(shí)間跳水、穩(wěn)定性和兼容性欠缺等諸多問(wèn)題,而不得不一而再再而三的重新開(kāi)發(fā),特別是軟件在設(shè)計(jì)的過(guò)程中,對(duì)于可維護(hù)性、可修復(fù)性不重視,導(dǎo)致維護(hù)的成本占據(jù)了整個(gè)軟件生存周期的90%以上,這很明顯是不正常的。通常而言,軟件維護(hù)的成本應(yīng)該是軟件生存周期的70%以下,超過(guò)70%,這個(gè)軟件最終的結(jié)局一定會(huì)失敗。軟件測(cè)試的過(guò)程,除了針對(duì)軟件的運(yùn)行是否穩(wěn)定,同樣也會(huì)對(duì)軟件的可維護(hù)性進(jìn)行有效的判斷,盡可能的避免軟件危機(jī)的產(chǎn)生,所以從軟件危機(jī)的角度上來(lái)看,軟件測(cè)試在軟件工程中的地位無(wú)疑是非常重要的。
3.2軟件測(cè)試的必要性
(1)是交流的問(wèn)題,容易導(dǎo)致軟件接口處的錯(cuò)誤?,F(xiàn)代軟件設(shè)計(jì)已經(jīng)不是單人作戰(zhàn)的模式,已經(jīng)上升到團(tuán)隊(duì)甚至全球軟件工程師通過(guò)互聯(lián)網(wǎng)這個(gè)大平臺(tái)進(jìn)行合作,這種方式顯然對(duì)軟件工程規(guī)范要求更高。其中交流往往就成了一個(gè)很重要的問(wèn)題,很多軟件工程師在設(shè)計(jì)的過(guò)程中,盡可能的將自己負(fù)責(zé)的模塊做到完美,甚至也能夠考慮到模塊間的借口問(wèn)題。但是因?yàn)榻涣魃系牟槐?,或者忽視交流,往往?huì)產(chǎn)生2個(gè)模塊接口不兼容,甚至還會(huì)發(fā)生軟件需要重新改寫(xiě)的問(wèn)題。
(2)軟件結(jié)構(gòu)有越來(lái)越復(fù)雜的趨勢(shì)。雖然軟件開(kāi)始實(shí)施模塊化設(shè)計(jì)方式,將一個(gè)軟件整體拆解成無(wú)數(shù)個(gè)小的系統(tǒng)模塊進(jìn)行設(shè)計(jì),然后將設(shè)計(jì)好的模塊進(jìn)行統(tǒng)一封裝。這種化整為零的軟件設(shè)計(jì)方式的確有效的改善了軟件復(fù)雜性的問(wèn)題,但是同樣也面臨著模塊間的兼容問(wèn)題,不同設(shè)計(jì)師的設(shè)計(jì)風(fēng)格可能會(huì)導(dǎo)致軟件可維護(hù)性降低及可移植性降低,特別是一些軟件開(kāi)發(fā)公司,根本就沒(méi)有軟件工程的概念,其研發(fā)的軟件產(chǎn)品,更是漏洞百出,自然很難保證軟件產(chǎn)品的健壯性。
(3)程序代碼的設(shè)計(jì)問(wèn)題。目前一個(gè)軟件的誕生,往往會(huì)有好幾千萬(wàn)行的代碼,而且在軟件正式代碼編寫(xiě)之前,還需要撰寫(xiě)概要設(shè)計(jì)代碼和詳細(xì)設(shè)計(jì)代碼,這些往往都給錯(cuò)誤埋下伏筆。如果程序設(shè)計(jì)代碼撰寫(xiě)不規(guī)范,沒(méi)有相應(yīng)的注釋?zhuān)瑳](méi)有相應(yīng)的模塊設(shè)計(jì),往往計(jì)算式發(fā)現(xiàn)了軟件的錯(cuò)誤,最終維護(hù)起來(lái),也很難讓維護(hù)工程師定位,甚至連測(cè)試工程師也很難找到錯(cuò)誤的地方。
(4)設(shè)計(jì)文檔的組成非常少。一個(gè)軟件產(chǎn)品的誕生,除了優(yōu)秀的代碼設(shè)計(jì)之外,還要一份完善的代碼文檔,包括軟件的可行性研究、需求分析、詳細(xì)設(shè)計(jì)、代碼編寫(xiě),以及軟件測(cè)試等工作流程中所需要的一切的代碼文檔。如果代碼文檔貧乏,甚至沒(méi)有,那么一旦在軟件測(cè)試環(huán)節(jié),或者在軟件使用環(huán)節(jié),出現(xiàn)錯(cuò)誤時(shí),那就很難進(jìn)行維護(hù)調(diào)試了。這時(shí)候的維護(hù)成本往往會(huì)比重新編寫(xiě)一款軟件的成本還要低,可見(jiàn)設(shè)計(jì)文檔的錯(cuò)誤撰寫(xiě)給軟件健壯性的影響。
(5)一些軟件測(cè)試工具和開(kāi)發(fā)工具本身的問(wèn)題,往往導(dǎo)致軟件出現(xiàn)嚴(yán)重的bug。而且在設(shè)計(jì)階段,還很難發(fā)現(xiàn),因?yàn)槭潜旧碥浖y(cè)試工具和軟件開(kāi)發(fā)工具引起的,因?yàn)檐浖y(cè)試工具和開(kāi)發(fā)工具實(shí)際上也是一種軟件,如果這些軟件的健壯性有問(wèn)題,自然也會(huì)導(dǎo)致測(cè)試結(jié)果出現(xiàn)偏差,最終影響到軟件的健壯性。
3.3軟件測(cè)試成本過(guò)半證明了軟件測(cè)試的重要性
軟件工程雖然在很多專(zhuān)家和權(quán)威機(jī)構(gòu)的定義有所偏差,但是無(wú)一例外,對(duì)于軟件成本構(gòu)成的分析上,軟件測(cè)試的成本一直占據(jù)了主要部分,最低的認(rèn)為,軟件測(cè)試成本要占據(jù)30%,最高的則認(rèn)為占據(jù)到50%。如果將后期維護(hù)成本也放在軟件測(cè)試板塊中,那么這個(gè)測(cè)試成本就會(huì)變得更高。因?yàn)檐浖M(jìn)入維護(hù)期時(shí),一旦出現(xiàn)軟件需要進(jìn)行調(diào)試,那么修復(fù)后的軟件依然要進(jìn)行軟件測(cè)試,否則很難保證調(diào)試后軟件依然能夠保證健壯性。作為一個(gè)軟件系統(tǒng)的所有代碼,都是牽一發(fā)而動(dòng)全身,修改了某處代碼,可能會(huì)影響到另外一個(gè)模塊的功能,所以在維護(hù)期內(nèi),對(duì)軟件的任何變動(dòng),都需要進(jìn)行軟件測(cè)試,才能夠保證軟件接下來(lái)的健壯性。但很明顯,如果將軟件測(cè)試工作放在軟件推出市場(chǎng)之前,就來(lái)進(jìn)行有效的測(cè)試,那么對(duì)于軟件整個(gè)生命周期的成本,將能夠得到有效的降低。軟件測(cè)試的成本的高低,往往和軟件的質(zhì)量成正比,而軟件質(zhì)量提升了,后期的維護(hù)成本就能夠有效的降低,所以綜合起來(lái),軟件測(cè)試這部分的成本支出是非常有必要的。
4軟件測(cè)試流程分析
(1)建立獨(dú)立的軟件測(cè)試部門(mén),測(cè)試部門(mén)領(lǐng)導(dǎo)應(yīng)該對(duì)這個(gè)專(zhuān)業(yè)非常精通,而不是簡(jiǎn)單的由開(kāi)發(fā)人員兼職,這個(gè)測(cè)試部門(mén)需要從可行性研究開(kāi)始就應(yīng)該著手對(duì)軟件研發(fā)進(jìn)行測(cè)試,可行性研究的最終確認(rèn)應(yīng)該也有軟件測(cè)試主管部門(mén)的簽字確認(rèn)才能夠進(jìn)行下一步的工作。
(2)軟件測(cè)試工作不是等到軟件全部開(kāi)發(fā)完畢才來(lái)進(jìn)行測(cè)試,而是跟隨軟件設(shè)計(jì)的整改生命周期,針對(duì)每一個(gè)環(huán)節(jié)進(jìn)行測(cè)試,軟件測(cè)試部門(mén)應(yīng)該擁有獨(dú)立的物理部門(mén)和獨(dú)立于開(kāi)放環(huán)境的測(cè)試環(huán)境,這樣才能夠提供更加完善的軟件測(cè)試,盡可能的將軟件bug扼殺在搖籃里。
(3)軟件模塊測(cè)試,因?yàn)楝F(xiàn)在軟件設(shè)計(jì)都已經(jīng)進(jìn)入模塊化設(shè)計(jì)標(biāo)準(zhǔn),比如一個(gè)完整的軟件是S,它有A、B、C、D等模塊構(gòu)成,那么對(duì)于A模塊的軟件設(shè)計(jì)過(guò)程中,就應(yīng)該有獨(dú)立的軟件測(cè)試人員進(jìn)行跟蹤,直到A模塊被測(cè)試證明沒(méi)有隱患。以此類(lèi)推,分別對(duì)B、C、D等模塊分別進(jìn)行測(cè)試,合格以后,組裝后的軟件依然進(jìn)行測(cè)試,這樣才能夠最終提升軟件健壯性。在軟件設(shè)計(jì)的過(guò)程中,其實(shí)測(cè)試人員是和軟件開(kāi)發(fā)人員并行工作的,而不是等到軟件設(shè)計(jì)完畢之后,再來(lái)對(duì)模塊進(jìn)行測(cè)試,這種方法才能夠提升軟件測(cè)試的效果。
5結(jié)語(yǔ)
軟件測(cè)試隨著軟件系統(tǒng)復(fù)雜性的不斷提升而變得越來(lái)越重要,如果現(xiàn)在的軟件設(shè)計(jì)公司依然按照傳統(tǒng)的軟件研發(fā),只注重軟件的功能設(shè)計(jì),而忽視軟件測(cè)試,通過(guò)不斷的壓縮測(cè)試成本,希望以此來(lái)提升軟件最終的利潤(rùn)作法已經(jīng)行不通了,只有將軟件測(cè)試做好、做精,才能夠提升軟件的健壯性,才能夠提升軟件的生存周期,才能夠降低軟件的整體成本。
作者:董倩范亞斌單位:石家莊學(xué)院
1關(guān)于軟件測(cè)試的認(rèn)識(shí)
在軟件開(kāi)發(fā)的每一個(gè)階段中,人員的參與都是離不開(kāi)的部分,而人的工作以及人們之間的通信質(zhì)量有很難做到完美無(wú)缺,這就導(dǎo)致了錯(cuò)誤是不可避免的。另外,伴隨著計(jì)算機(jī)控制對(duì)象越來(lái)越復(fù)雜,且軟件的功能及規(guī)模也在不斷的提升,這也使得錯(cuò)誤相對(duì)而言更容易發(fā)生,比如對(duì)于WindowsNT操作系統(tǒng)來(lái)說(shuō),其代碼約為3200萬(wàn)行。總體來(lái)看,在軟件設(shè)計(jì)階段,人們所犯的錯(cuò)位是引起軟件失效的主要原因,而軟件缺陷的根源則在于軟件的復(fù)雜性。在確保軟件可靠性以及質(zhì)量的過(guò)程中,軟件測(cè)試屬于最為主要的手段,以當(dāng)前的軟件工程來(lái)看,多以結(jié)構(gòu)化分析及設(shè)計(jì)作為核心,因此在開(kāi)發(fā)階段,需求分析以及設(shè)計(jì)都是以工程管理以及技術(shù)評(píng)審作為質(zhì)量的保障手段,而工程管理以及技術(shù)評(píng)審又存在著主觀上的缺陷,很容易遺漏錯(cuò)誤使其延續(xù)至開(kāi)發(fā)階段??陀^來(lái)說(shuō),軟件測(cè)試在發(fā)掘軟件中隱藏缺陷的過(guò)程中的確有著很好的效果,以英國(guó)的SHOLIS項(xiàng)目來(lái)看,這一項(xiàng)目使用形式化方法對(duì)軟件規(guī)約進(jìn)行描述及證明,而且利用程序正確性證明方法對(duì)前期的很多缺陷進(jìn)行排除,但是通過(guò)軟件測(cè)試卻依舊發(fā)現(xiàn)了整個(gè)過(guò)程15.175%的缺陷。此外,隨著人們對(duì)軟件測(cè)試重要性的認(rèn)識(shí)越來(lái)越深,其所在軟件開(kāi)發(fā)周期中所占的比例也越來(lái)越高,當(dāng)前很多軟件開(kāi)發(fā)機(jī)構(gòu)已經(jīng)將其40%的研制力量投放到了軟件測(cè)試中,而對(duì)一些比較重要的軟件來(lái)說(shuō),其測(cè)試的費(fèi)用往往會(huì)高達(dá)其他階段費(fèi)用的3至5倍,由此可見(jiàn),不管從哪個(gè)角度出發(fā),軟件測(cè)試都是非常重要的。
2軟件測(cè)試分類(lèi)
當(dāng)前的軟件測(cè)試技術(shù)主要可以分為動(dòng)態(tài)測(cè)試以及靜態(tài)測(cè)試,其中,靜態(tài)測(cè)試主要是指在不執(zhí)行程序代碼的情況下找到程序中有可能存在的缺陷或者對(duì)程序代碼進(jìn)行評(píng)估的過(guò)程中,廣義上看,靜態(tài)測(cè)試還包括軟件需求分析以及技術(shù)評(píng)審。至于動(dòng)態(tài)測(cè)試,則是通過(guò)抽樣測(cè)試數(shù)據(jù)對(duì)程序進(jìn)行運(yùn)行以起到檢查程序中存在的缺陷。在動(dòng)態(tài)測(cè)試的過(guò)程中,其核心內(nèi)容主要包括測(cè)試用例、運(yùn)行正與以及對(duì)于程序運(yùn)行結(jié)果進(jìn)行驗(yàn)證這3部分內(nèi)容,此外還包括一些數(shù)據(jù)管理、文檔編制、操作規(guī)程等輔助方面的工作。
3軟件測(cè)試的對(duì)象
在軟件測(cè)試的過(guò)程中,不單單進(jìn)行一些比較簡(jiǎn)單的程序測(cè)試,也就是說(shuō)僅對(duì)程序能否運(yùn)行進(jìn)行測(cè)試是遠(yuǎn)遠(yuǎn)不夠的。具體來(lái)看,軟件測(cè)試要貫穿在軟件定義以及開(kāi)發(fā)的整個(gè)過(guò)程中,因此軟件測(cè)試的對(duì)象包括需求分析、系統(tǒng)設(shè)計(jì)、程序編碼以及各階段說(shuō)明文檔。此外,因軟件開(kāi)發(fā)過(guò)程中各個(gè)階段之間有著非常金敏的銜接,因此如果前一階段出現(xiàn)問(wèn)題必然會(huì)對(duì)下一階段段的工作造成影響,所以為了確保每一個(gè)階段的正確性,我們要做好確認(rèn)及驗(yàn)證工作。具體來(lái)看,確認(rèn)主要是對(duì)需求規(guī)格以及程序進(jìn)行確認(rèn),這既含有靜態(tài)確認(rèn),又有動(dòng)態(tài)確認(rèn),其中靜態(tài)確認(rèn)大多數(shù)是由人工進(jìn)行分析,而動(dòng)態(tài)確認(rèn)則是利用動(dòng)態(tài)分析以及程序測(cè)試對(duì)程序執(zhí)行的情況進(jìn)行檢查。至于驗(yàn)證,則主要是采取一定手段對(duì)程序執(zhí)行情況進(jìn)行檢查,進(jìn)而證明軟件各階段中的完備性、正確性以及邏輯協(xié)調(diào)性。舉例來(lái)說(shuō),我們驗(yàn)證的對(duì)象包括測(cè)試用戶(hù)需求和系統(tǒng)分析員報(bào)告是否想和、設(shè)計(jì)說(shuō)明書(shū)和測(cè)試需求說(shuō)明書(shū)是否匹配等。
4軟件測(cè)試目的及原則
4.1軟件測(cè)試目的
測(cè)試目前因立場(chǎng)的不同又可以分為兩種,從客戶(hù)角度來(lái)看,總是會(huì)希望通過(guò)測(cè)試來(lái)發(fā)現(xiàn)軟件中的缺陷及隱蔽錯(cuò)誤。而從軟件開(kāi)發(fā)者角度來(lái)看的話,則是希望產(chǎn)品少出現(xiàn)錯(cuò)誤,對(duì)軟件已經(jīng)符合客戶(hù)需求進(jìn)行驗(yàn)證,在這種思路下,測(cè)試人員會(huì)使用一些導(dǎo)致程序失效概率小的測(cè)試模塊進(jìn)行測(cè)試,并對(duì)容易導(dǎo)致錯(cuò)誤暴露的測(cè)試用例進(jìn)行回避,而且對(duì)于有可能出現(xiàn)副作用的語(yǔ)句也并不會(huì)去刻意的檢查?;诖耍诔绦蛑?,還存在很多預(yù)料不到的問(wèn)題,而這類(lèi)問(wèn)題往往要在一些比較特殊的環(huán)境之下才能夠表現(xiàn)出來(lái)。從以上分析我們可以看出,在對(duì)軟件進(jìn)行測(cè)試的過(guò)程中還是要更多的站在用戶(hù)角度對(duì)問(wèn)題進(jìn)行考慮。
4.2軟件測(cè)試原則
(1)“盡早和不斷的進(jìn)行軟件測(cè)試”,只有時(shí)刻牢記這一原則才能夠降低軟件開(kāi)發(fā)中由于工作多樣化、人員配置復(fù)雜化所帶來(lái)的不利影響。具體實(shí)踐的時(shí)候,我們首先要端正態(tài)度,對(duì)各階段技術(shù)審核要認(rèn)真進(jìn)行,另外,我們還要將軟件測(cè)試貫徹到每一個(gè)環(huán)節(jié)中,進(jìn)而早對(duì)錯(cuò)誤進(jìn)行發(fā)現(xiàn)和預(yù)防。
(2)測(cè)試用例選擇的過(guò)程中要有輸入數(shù)據(jù)和以及和輸入數(shù)據(jù)相對(duì)應(yīng)的預(yù)期輸出結(jié)果,具體來(lái)看,在我們進(jìn)行軟件測(cè)試的過(guò)程中要選擇比較適合程序段的測(cè)試用例,這些用例可以對(duì)程序員所編制的程序是否存在錯(cuò)誤進(jìn)行分析,而給出預(yù)期的輸出結(jié)果則可以對(duì)程序段是否存在錯(cuò)誤進(jìn)行更為快捷的判斷。
(3)要避免程序員對(duì)自己的程序進(jìn)行測(cè)試,在軟件測(cè)試的過(guò)程中,冷靜的情緒以及客觀的態(tài)度是不可避免的,而人又很難對(duì)自己的勞動(dòng)成果進(jìn)行否定,因此在程序員對(duì)自己程序進(jìn)行檢查的過(guò)程中會(huì)從主觀上出現(xiàn)偏差,導(dǎo)致測(cè)試結(jié)果不準(zhǔn)確、不客觀。
(4)設(shè)計(jì)測(cè)試用例的過(guò)程中要注意使用不合理輸入套件,所謂不合理輸入條件主要包括輸入異?;蛘邥?huì)導(dǎo)致異變的條件。在軟件正常使用的過(guò)程中,不合理輸入是不可避免的,輕則會(huì)導(dǎo)致運(yùn)算錯(cuò)誤,嚴(yán)重的時(shí)候甚至?xí)管浖А?
(5)對(duì)測(cè)試工作中的群集現(xiàn)象進(jìn)行注意,針對(duì)測(cè)試過(guò)程中錯(cuò)誤較多的程序段,要對(duì)其進(jìn)行詳細(xì)認(rèn)真的檢查,這是因?yàn)閺慕?jīng)驗(yàn)上看,程序段中殘存的錯(cuò)誤于已發(fā)現(xiàn)的錯(cuò)誤往往會(huì)成正比。
(6)對(duì)測(cè)試要認(rèn)真執(zhí)行,這是指我們要做好一個(gè)詳細(xì)的規(guī)劃,具體來(lái)說(shuō),規(guī)劃主要包括:軟件功能、輸入、輸出以及每一功能測(cè)試的進(jìn)度安排等。
(7)對(duì)測(cè)試計(jì)劃、用例、出錯(cuò)統(tǒng)計(jì)以及分析報(bào)告等進(jìn)行妥善的保管,進(jìn)而為日后的軟件維護(hù)提供更為便捷的服務(wù)??傮w來(lái)看,在我們的工作中如果能夠把握住以上原則必然能夠?qū)μ嵘郎y(cè)試工作的效果起到很強(qiáng)促進(jìn)作用。
5結(jié)語(yǔ)
在軟件開(kāi)發(fā)工程中,軟件測(cè)試屬于一個(gè)重要的環(huán)節(jié),一旦缺乏了這一環(huán)節(jié),所開(kāi)發(fā)出的產(chǎn)品必然難以滿足用戶(hù)的要求。本文關(guān)于軟件測(cè)試必要性的分析還存在很多不足之處,也希望各位測(cè)試人員能夠?qū)ζ溥M(jìn)行補(bǔ)充及指正,進(jìn)而共同促進(jìn)這方面研究水平的提升。
作者:樓煒單位:同濟(jì)大學(xué)軟件學(xué)院
按照軟件特征分類(lèi),軟件測(cè)試可分為:功能測(cè)試和性能測(cè)試。功能測(cè)試是黑盒測(cè)試的1個(gè)方面,它檢查實(shí)際軟件功能是否符合用戶(hù)的需求。一般分為:邏輯功能測(cè)試、易用性測(cè)試、安裝測(cè)試和兼容性測(cè)試等。性能測(cè)試主要有時(shí)間性能測(cè)試和空間性能測(cè)試2種。通常還包括:一般性能測(cè)試、可靠性測(cè)試、負(fù)載測(cè)試、壓力測(cè)試。其它分類(lèi)還包括:回歸測(cè)試、冒煙測(cè)試、隨機(jī)測(cè)試?;貧w測(cè)試是指對(duì)軟件的新版本測(cè)試時(shí),重復(fù)執(zhí)行上一版本測(cè)試時(shí)的用例。冒煙測(cè)試是指對(duì)一個(gè)新版本進(jìn)行系統(tǒng)大規(guī)模的測(cè)試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測(cè)性。隨機(jī)測(cè)試是指測(cè)試中所有的輸入數(shù)據(jù)都是隨機(jī)產(chǎn)生的,其目的是模擬用戶(hù)的真實(shí)操作,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。
軟件測(cè)試過(guò)程一般來(lái)說(shuō),軟件測(cè)試工作從立項(xiàng)后就開(kāi)始了,主要經(jīng)歷以下幾個(gè)主要環(huán)節(jié),如圖1所示。需求分析是軟件測(cè)試的1個(gè)重要環(huán)節(jié),測(cè)試人員對(duì)這一環(huán)節(jié)的理解程度將直接影響后續(xù)測(cè)試工作的開(kāi)展。一般而言,需求分析包括軟件功能需求分析,測(cè)試環(huán)境需求分析,測(cè)試資源需求分析等。測(cè)試計(jì)劃的依據(jù)主要是項(xiàng)目開(kāi)發(fā)計(jì)劃和測(cè)試需求分析結(jié)果而制定,測(cè)試計(jì)劃指導(dǎo)整個(gè)測(cè)試過(guò)程。測(cè)試設(shè)計(jì)在測(cè)試活動(dòng)的各個(gè)階段,對(duì)測(cè)試策略、測(cè)試方法、測(cè)試用例進(jìn)行制定和編寫(xiě)。測(cè)試環(huán)境搭建要盡可能模擬實(shí)際應(yīng)用場(chǎng)景,滿足項(xiàng)目的設(shè)計(jì)要求,從而達(dá)到理想的測(cè)試效果。測(cè)試執(zhí)行和測(cè)試記錄由測(cè)試工程師完成,主要是查找軟件的錯(cuò)誤和缺陷,并記錄測(cè)試活動(dòng)中出現(xiàn)的問(wèn)題。缺陷管理是對(duì)測(cè)試活動(dòng)中出現(xiàn)的BUG進(jìn)行管理和跟蹤,保證每個(gè)BUG得到及時(shí)修復(fù)。軟件評(píng)估是在測(cè)試活動(dòng)的最后,對(duì)軟件進(jìn)行全面地分析和總結(jié)。
鐵路產(chǎn)品開(kāi)發(fā)過(guò)程中容易忽視軟件測(cè)試
鐵路產(chǎn)品供應(yīng)商普遍重視占領(lǐng)市場(chǎng)份額,追求利益的最大化,提升產(chǎn)品的服務(wù)質(zhì)量,但是卻容易忽視保證產(chǎn)品質(zhì)量的軟件測(cè)試,這給鐵路安全運(yùn)輸帶來(lái)巨大安全隱患。項(xiàng)目的開(kāi)發(fā)過(guò)程通常是確定項(xiàng)目負(fù)責(zé)人和項(xiàng)目參與人、項(xiàng)目的方案以及項(xiàng)目需要完成的時(shí)間,然后投入項(xiàng)目的開(kāi)發(fā)。研發(fā)過(guò)程中采用團(tuán)隊(duì)協(xié)作,項(xiàng)目分工到人,經(jīng)過(guò)程序編寫(xiě)、調(diào)試,最后集成為產(chǎn)品,并在實(shí)驗(yàn)室和現(xiàn)場(chǎng)環(huán)境下進(jìn)行測(cè)試實(shí)驗(yàn)。對(duì)于項(xiàng)目進(jìn)展情況的掌握是通過(guò)不定期的召開(kāi)會(huì)議和單獨(dú)詢(xún)問(wèn)主要開(kāi)發(fā)人員以及研發(fā)人員匯報(bào)來(lái)實(shí)現(xiàn)的。
在這種開(kāi)發(fā)模式下,因?yàn)轫?xiàng)目的開(kāi)發(fā)過(guò)程中沒(méi)有系統(tǒng)和獨(dú)立的測(cè)試過(guò)程,所進(jìn)行的測(cè)試也是以正向思維為主,重點(diǎn)驗(yàn)證軟件是否實(shí)現(xiàn)了相應(yīng)的功能,而不是軟件在異常情況下的響應(yīng)和處理。軟件開(kāi)發(fā)和軟件測(cè)試本來(lái)就是不同的活動(dòng),開(kāi)發(fā)人員的工作目標(biāo)是創(chuàng)建相應(yīng)模塊,實(shí)現(xiàn)特定功能,從而會(huì)不自覺(jué)地朝這個(gè)方向努力,挑選那些使程序出錯(cuò)可能性較小的測(cè)試數(shù)據(jù)和手段,無(wú)法保證軟件被全方位進(jìn)行測(cè)試,會(huì)給項(xiàng)目帶來(lái)隱患。正是認(rèn)識(shí)到這一情況,才大力主張產(chǎn)品開(kāi)發(fā)應(yīng)進(jìn)行科學(xué)和規(guī)范性管理,加強(qiáng)軟件測(cè)試隊(duì)伍建設(shè),任命專(zhuān)職人員從事測(cè)試工作。利用軟件領(lǐng)域中的相關(guān)技術(shù),對(duì)軟件進(jìn)行科學(xué)、合理的測(cè)試。
如何在企業(yè)內(nèi)部實(shí)施軟件測(cè)試
企業(yè)想要在產(chǎn)品開(kāi)發(fā)過(guò)程中,對(duì)產(chǎn)品軟件展開(kāi)相關(guān)測(cè)試,首先應(yīng)建立合適企業(yè)特點(diǎn)和開(kāi)發(fā)模式的測(cè)試流程;其次,對(duì)不同測(cè)試階段和不同產(chǎn)品的軟件和硬件的特點(diǎn),擬采用不同的測(cè)試技術(shù)和策略。另外,在產(chǎn)品開(kāi)發(fā)過(guò)程中,項(xiàng)目的配置管理、質(zhì)量保證的等方面都應(yīng)形成明確的制度。
1測(cè)試流程
企業(yè)應(yīng)全面規(guī)范項(xiàng)目開(kāi)發(fā)管理流程,對(duì)項(xiàng)目進(jìn)展的各個(gè)階段進(jìn)行明確劃分。軟件測(cè)試是建立在軟件開(kāi)發(fā)的成果之上,即測(cè)試的對(duì)象就是軟件開(kāi)發(fā)的階段性成果,如設(shè)計(jì)文檔、程序代碼和可執(zhí)行的程序。
軟件測(cè)試和硬件測(cè)試的側(cè)重點(diǎn)有所不同。對(duì)于軟件測(cè)試,采用比較通用的測(cè)試流程,如圖2所示。軟件項(xiàng)目的開(kāi)發(fā)從項(xiàng)目立項(xiàng)開(kāi)始,測(cè)試人員介入項(xiàng)目組,明確需求分析階段的用戶(hù)需求,針對(duì)不同測(cè)試階段的工作重點(diǎn),制定各階段的測(cè)試計(jì)劃。在設(shè)計(jì)測(cè)試階段,測(cè)試人員需要確定各測(cè)試階段的測(cè)試方法和必要的測(cè)試工具,搭建測(cè)試環(huán)境,編寫(xiě)相應(yīng)的測(cè)試用例。接下來(lái),按照測(cè)試計(jì)劃分別進(jìn)行單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試,形成各階段的測(cè)試報(bào)告,對(duì)測(cè)試過(guò)程中發(fā)現(xiàn)的缺陷進(jìn)行跟蹤,保證缺陷得到及時(shí)修復(fù)。為了保證軟件在現(xiàn)場(chǎng)環(huán)境下能夠正常運(yùn)行,測(cè)試人員針對(duì)現(xiàn)場(chǎng)實(shí)際情況,制定現(xiàn)場(chǎng)驗(yàn)收計(jì)劃,確定現(xiàn)場(chǎng)驗(yàn)收策略,對(duì)軟件進(jìn)行現(xiàn)場(chǎng)驗(yàn)收和評(píng)估。當(dāng)軟件通過(guò)了各階段的測(cè)試,且全部缺陷得到修復(fù),將進(jìn)入到軟件的階段。軟件階段通過(guò)對(duì)軟件版本的管理和控制,實(shí)現(xiàn)軟件、維護(hù)和升級(jí)等。
對(duì)于硬件測(cè)試,需要面向硬件編程,即在硬件環(huán)境下,編寫(xiě)代碼,實(shí)現(xiàn)采集、控制、通訊等功能。由于硬件產(chǎn)品的開(kāi)發(fā)不能脫離硬件環(huán)境,因此,測(cè)試活動(dòng)與硬件產(chǎn)品開(kāi)發(fā)、過(guò)程調(diào)試、硬件聯(lián)調(diào)都是密不可分的,軟件測(cè)試作為硬件產(chǎn)品開(kāi)發(fā)過(guò)程中的重要環(huán)節(jié),“驗(yàn)證”和“確認(rèn)”產(chǎn)品滿足項(xiàng)目的設(shè)計(jì)需求,硬件產(chǎn)品開(kāi)發(fā)流程如圖3所示。硬件產(chǎn)品的開(kāi)發(fā),首先要明確硬件需求,預(yù)計(jì)產(chǎn)品達(dá)到的效果。在硬件總體設(shè)計(jì)階段,獲取硬件需求,并根據(jù)功能進(jìn)行模塊劃分,定義模塊之間的接口。在詳細(xì)設(shè)計(jì)階段,對(duì)各模塊進(jìn)行編程,搭建相應(yīng)的硬件電路。過(guò)程調(diào)試可分為:軟件過(guò)程調(diào)試和硬件過(guò)程調(diào)試兩種,軟件過(guò)程調(diào)試指的是在硬件電路的環(huán)境下,進(jìn)行軟件調(diào)試的過(guò)程,保證軟件能夠正確控制硬件電路和讀取相應(yīng)數(shù)據(jù);硬件過(guò)程調(diào)試指的是產(chǎn)品電路部分的調(diào)試過(guò)程,驗(yàn)證電子器件之間邏輯是否符合系統(tǒng)設(shè)計(jì)要求,保證硬件產(chǎn)品穩(wěn)定、可靠,不受干擾。各硬件功能模塊調(diào)試成功后,需要進(jìn)行整體硬件聯(lián)調(diào),各硬件模塊被連接成1個(gè)整體,形成產(chǎn)品的雛形,在此階段,主要驗(yàn)證各模塊之間的接口是否符合設(shè)計(jì)要求,是否能夠?qū)崿F(xiàn)系統(tǒng)設(shè)計(jì)的各項(xiàng)功能。硬件產(chǎn)品經(jīng)過(guò)整體聯(lián)調(diào)后,形成樣機(jī)。測(cè)試工程師根據(jù)產(chǎn)品的硬件需求說(shuō)明,制定測(cè)試計(jì)劃,確定測(cè)試方案和測(cè)試方法,并搭建測(cè)試環(huán)境,對(duì)樣機(jī)進(jìn)行硬件測(cè)試,確認(rèn)產(chǎn)品符合硬件產(chǎn)品設(shè)計(jì)要求。
2軟件測(cè)試技術(shù)在各階段的運(yùn)用
在軟件測(cè)試實(shí)施的各個(gè)階段,所采用的測(cè)試方法和測(cè)試策略也各不相同。下面對(duì)于測(cè)試過(guò)程的各階段進(jìn)行分別敘述。
2.1設(shè)計(jì)和代碼審查
設(shè)計(jì)審查是由項(xiàng)目組和測(cè)試組成員組成評(píng)審組對(duì)軟件設(shè)計(jì)和開(kāi)發(fā)的輸出進(jìn)行評(píng)價(jià),以判斷確定設(shè)計(jì)和開(kāi)發(fā)的輸出能否實(shí)現(xiàn)軟件產(chǎn)品預(yù)先定義的規(guī)格,同時(shí)通過(guò)審查標(biāo)識(shí)出與項(xiàng)目需求之間的偏差。設(shè)計(jì)審查按《項(xiàng)目計(jì)劃》所規(guī)定的評(píng)審點(diǎn)進(jìn)行。因臨時(shí)變更引起的突發(fā)性的評(píng)審隨時(shí)進(jìn)行。代碼審查實(shí)際上屬于靜態(tài)測(cè)試。在代碼審查之前,首先要對(duì)代碼進(jìn)行靜態(tài)分析,其目的是通過(guò)對(duì)源程序分析、目測(cè),但不執(zhí)行程序,找出源代碼中可能存在的錯(cuò)誤和缺陷,對(duì)程序設(shè)計(jì)的結(jié)構(gòu)屬性,如分支、路徑、轉(zhuǎn)移等進(jìn)行審查,盡可能地掌握程序的結(jié)構(gòu),為單元測(cè)試的測(cè)試用例的設(shè)計(jì)和執(zhí)行提供信息。代碼審查的目的是檢查源程序編碼是否符合詳細(xì)設(shè)計(jì)的編碼規(guī)定,確保編碼與設(shè)計(jì)的一致性和可追蹤性。檢查的方面主要包括:書(shū)寫(xiě)格式、子程序或函數(shù)的入口和出口,數(shù)據(jù),參數(shù),程序語(yǔ)言的使用,存儲(chǔ)器的使用,可讀性,邏輯表達(dá)式的正確性,代碼結(jié)構(gòu)合理性等。靜態(tài)分析和代碼審查通??梢酝瑫r(shí)進(jìn)行,通過(guò)靜態(tài)分析掌握源程序結(jié)構(gòu),通過(guò)代碼審查,盡量減少書(shū)寫(xiě)錯(cuò)誤和隱含的邏輯錯(cuò)誤,為單元測(cè)試提供比較穩(wěn)定的環(huán)境。
2.2單元測(cè)試
單元測(cè)試是軟件測(cè)試的基礎(chǔ),集成測(cè)試、系統(tǒng)測(cè)試都是建立在單元測(cè)試之上。單元測(cè)試是用來(lái)檢驗(yàn)每個(gè)軟件單元能否正確地實(shí)現(xiàn)其功能,滿足性能和接口要求,還要驗(yàn)證程序和詳細(xì)設(shè)計(jì)說(shuō)明的一致性。從廣義上來(lái)講,單元測(cè)試包括靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試就是上面介紹的“代碼審查”,而動(dòng)態(tài)測(cè)試則是通過(guò)測(cè)試用例、測(cè)試工具來(lái)執(zhí)行程序,檢驗(yàn)程序是否存在缺陷的過(guò)程。單元測(cè)試一般采用白盒測(cè)試方法,手工測(cè)試和自動(dòng)測(cè)試相結(jié)合,針對(duì)程序內(nèi)部的結(jié)構(gòu)和邏輯來(lái)展開(kāi),單元測(cè)試工具一般針對(duì)不同編程語(yǔ)言和開(kāi)發(fā)環(huán)境而設(shè)計(jì)開(kāi)發(fā)的,種類(lèi)很多。我們利用白盒測(cè)試進(jìn)行代碼測(cè)試,利用黑盒測(cè)試進(jìn)行功能性測(cè)試,利用回歸測(cè)試保證維護(hù)代碼的完整性。單元測(cè)試工具固然有用,更重要的是測(cè)試策略,以及測(cè)試用例的設(shè)計(jì)。這也提醒我們?cè)谧鰡卧獪y(cè)試的過(guò)程中,不可避重就輕,要抓住項(xiàng)目核心,進(jìn)行科學(xué)、有效的測(cè)試,只有這樣才能達(dá)到事半功倍的效果。
2.3集成測(cè)試
集成測(cè)試階段采用白盒測(cè)試和黑盒測(cè)試相結(jié)合的方式,將每個(gè)獨(dú)立的功能模塊進(jìn)行關(guān)聯(lián)和集成,便于進(jìn)行功能測(cè)試、界面測(cè)試、結(jié)構(gòu)測(cè)試、數(shù)據(jù)正確性測(cè)試等。在進(jìn)行集成測(cè)試前,測(cè)試工程師要搭建測(cè)試所需的硬件和軟件環(huán)境,盡量模擬設(shè)備實(shí)際的工作環(huán)境。結(jié)合項(xiàng)目的不同特點(diǎn),測(cè)試過(guò)程可以采用手工或自動(dòng)測(cè)試。在進(jìn)行多次重復(fù)測(cè)試和回歸測(cè)試的情況下,可采用自動(dòng)化測(cè)試工具對(duì)軟件進(jìn)行功能性檢測(cè)。
2.4系統(tǒng)測(cè)試
在系統(tǒng)測(cè)試階段,不僅要進(jìn)行功能測(cè)試,還要對(duì)系統(tǒng)的性能、安全性、兼容性和可靠性等進(jìn)行測(cè)試,系統(tǒng)測(cè)試涉及人機(jī)交互和復(fù)雜邏輯,因此系統(tǒng)測(cè)試多采用黑盒測(cè)試的手工測(cè)試方法。系統(tǒng)兼容性測(cè)試要考慮軟、硬件的兼容性。項(xiàng)目開(kāi)發(fā)的硬件和軟件要在指定的環(huán)境下,進(jìn)行多次反復(fù)的安裝和反安裝測(cè)試,以驗(yàn)證接口數(shù)據(jù)調(diào)用和驅(qū)動(dòng)程序是否達(dá)到設(shè)計(jì)標(biāo)準(zhǔn)。安全性測(cè)試和軟件的安全策略密切相關(guān),安全性測(cè)試主要包括:用戶(hù)訪問(wèn)權(quán)限、數(shù)據(jù)庫(kù)安全性、文件安全性等。性能測(cè)試、負(fù)載測(cè)試等必須借助測(cè)試工具來(lái)實(shí)現(xiàn)。過(guò)分強(qiáng)調(diào)測(cè)試工具的作用,極力追求各種軟件測(cè)試工具,是軟件測(cè)試本末倒置的表現(xiàn)。實(shí)際上,測(cè)試過(guò)程中80%以上的缺陷是手工測(cè)試發(fā)現(xiàn)的,僅有不到20%的缺陷是靠工具測(cè)試發(fā)現(xiàn)的,而且這還得要求測(cè)試人員合理地使用工具。
3采用的測(cè)試模型
企業(yè)對(duì)產(chǎn)品開(kāi)發(fā)應(yīng)重點(diǎn)關(guān)注產(chǎn)品開(kāi)發(fā)的過(guò)程控制,以及測(cè)試、管理。保證產(chǎn)品質(zhì)量從源頭開(kāi)始。因此,測(cè)試過(guò)程更適合采用W模型,如圖4所示。在W模型中,測(cè)試過(guò)程和開(kāi)發(fā)過(guò)程都貫穿項(xiàng)目開(kāi)發(fā)過(guò)程的整個(gè)生命周期,兩者同時(shí)開(kāi)始,同時(shí)結(jié)束,相輔相成、始終保持著同步的關(guān)系。這樣做的原因是:測(cè)試工作盡早介入,軟件存在問(wèn)題的可能性就會(huì)降低。項(xiàng)目正式立項(xiàng)后,測(cè)試人員既可參與到項(xiàng)目組中,通過(guò)學(xué)習(xí)和閱讀相關(guān)文檔,加強(qiáng)對(duì)項(xiàng)目的了解,對(duì)項(xiàng)目有個(gè)整體認(rèn)識(shí),形成初步的測(cè)試思路。同時(shí)測(cè)試越早介入項(xiàng)目就能夠越早發(fā)現(xiàn)問(wèn)題,解決問(wèn)題所花費(fèi)的成本越小。如果在軟件的最后階段進(jìn)行測(cè)試,發(fā)現(xiàn)功能設(shè)計(jì)不合理或性能不好,需要修改需求和設(shè)計(jì),不得不返工到系統(tǒng)設(shè)計(jì)或需求定義階段,會(huì)造成很大的代價(jià),所以有必要將軟件測(cè)試延伸到需求、設(shè)計(jì)階段,對(duì)需求、設(shè)計(jì)進(jìn)行驗(yàn)證。有資料表明,60%以上的軟件錯(cuò)誤不是程序錯(cuò)誤,而是分析和設(shè)計(jì)錯(cuò)誤。若把軟件分析、設(shè)計(jì)上的問(wèn)題遺留到后期,可能造成設(shè)計(jì)、編碼的部分甚至全部返工,從而增加軟件開(kāi)發(fā)成本及延長(zhǎng)開(kāi)發(fā)周期等后果。同時(shí),需求和設(shè)計(jì)階段所產(chǎn)生的缺陷具有放大效應(yīng),嚴(yán)重地影響軟件質(zhì)量。因此,為了更早地發(fā)現(xiàn)并解決問(wèn)題,降低修改錯(cuò)誤和缺陷的代價(jià),有必要將測(cè)試延伸到需求分析和設(shè)計(jì)階段中去,使軟件測(cè)試貫穿于整個(gè)生命周期,提倡軟件生命周期測(cè)試的理念,即軟件測(cè)試是對(duì)軟件形成過(guò)程中的所有工作產(chǎn)品(包括程序以及相關(guān)文檔)進(jìn)行的測(cè)試,而不僅僅是對(duì)程序的運(yùn)行進(jìn)行測(cè)試。測(cè)試在對(duì)需求和設(shè)計(jì)階段的測(cè)試活動(dòng)主要是通過(guò)需求評(píng)審和設(shè)計(jì)評(píng)審來(lái)實(shí)現(xiàn),可以更早發(fā)現(xiàn)問(wèn)題,及時(shí)修改問(wèn)題。即對(duì)軟件開(kāi)發(fā)階段中的階段性產(chǎn)品進(jìn)行評(píng)審、走讀或者回憶評(píng)審,發(fā)現(xiàn)其中的問(wèn)題,是一種靜態(tài)測(cè)試。通過(guò)靜態(tài)測(cè)試,可以更早地發(fā)現(xiàn)問(wèn)題,把問(wèn)題消滅在萌芽中,將每個(gè)階段產(chǎn)生的缺陷及時(shí)清除。
總結(jié)
軟件測(cè)試作為專(zhuān)業(yè)性比較強(qiáng)的技術(shù)在我國(guó)起步較晚,受重視程度不夠,但它是保證軟件質(zhì)量的終極手段,目前越來(lái)越受到了人們的關(guān)注。鐵路行業(yè)的生產(chǎn)企業(yè),認(rèn)真做好產(chǎn)品質(zhì)量把關(guān),合理運(yùn)用相關(guān)檢測(cè)技術(shù),將軟件缺陷消滅在萌芽階段,保證鐵路運(yùn)輸和人們生命財(cái)產(chǎn)的安全。
作者:朱劍輝單位:哈爾濱鐵路局科學(xué)技術(shù)研究所