摘 要軟件測試屬于檢測軟件質(zhì)量及可靠性的一種有效手段,而軟件可靠性又決定了軟件質(zhì)量,兩者之間存在著緊密的聯(lián)系?;谶@種情況,本文首先介紹了軟件可靠性模型,并在此基礎(chǔ)上分析了Seeding模型的設(shè)計與研究,其中包括Seeding模型的含義、應(yīng)用以及完善。
【關(guān)鍵詞】軟件測試 可靠性模型 Seeding模型
計算機(jī)技術(shù)的日益普及為人們的生活及生產(chǎn)都創(chuàng)造了便利的條件,而人們也對軟件的質(zhì)量提出了較高的要求,軟件的可靠性得到了社會各界的廣泛關(guān)注。而可靠性模型的建立為軟件測試工作創(chuàng)造了良好的條件,有利于工作人員對軟件中錯誤數(shù)據(jù)的數(shù)量進(jìn)行估計,進(jìn)而提升軟件的質(zhì)量。因此在這種情形下研究軟件測試中可靠性模型的設(shè)計與研究就具有一定的現(xiàn)實意義。
1 軟件可靠性模型
軟件可靠性指的是軟件產(chǎn)品在規(guī)定條件及時間區(qū)間內(nèi)完成規(guī)定功能的能力,其中規(guī)定條件包括計算機(jī)系統(tǒng)狀態(tài)以及軟件輸入條件,規(guī)定時間區(qū)間指的是軟件實際運(yùn)行的時間區(qū)間,規(guī)定功能指的是為提供給定的服務(wù),是軟件產(chǎn)品所必須具備的功能。軟件的發(fā)展離不開軟件可靠性模型的支持。軟件可靠性模型指的是在軟件測試過程中建立了可靠性框圖和數(shù)學(xué)模型,以此來實現(xiàn)軟件可靠性的預(yù)測及計算。軟件可靠性模型包括性能度量、模型假設(shè)、數(shù)據(jù)要求以及參數(shù)估計等四個部分。對于性能度量而言,它指的是該模型的輸出量,多數(shù)情況下都是用數(shù)學(xué)表達(dá)式來對其進(jìn)行表達(dá)。對于參數(shù)估計而言,指的是通過參數(shù)估計來對數(shù)據(jù)進(jìn)行獲取,這些數(shù)據(jù)多數(shù)都是軟件測試時很難獲取的參數(shù)。對于模型假設(shè)而言,它指的是可靠性模型中的一些和實際情況基本類似的假設(shè)。對于數(shù)據(jù)要求而言,它指的是在可靠性模型建立過程中,要求檢測人員輸入一些相關(guān)的數(shù)據(jù)。另外,軟件可靠性模型也具有下述兩種特點:
(1)軟件可靠性模型和設(shè)計程序的語言無關(guān)聯(lián);
(2)軟件可靠性模型和軟件開發(fā)方法無關(guān)系。
2 Seeding模型的設(shè)計與研究
2.1 Seeding模型含義
Seeding模型是一種軟件可靠性模型,它可以對軟件中的錯誤數(shù)量進(jìn)行估計和預(yù)算,它的優(yōu)點是操作便捷、直觀形象。
Seeding模型又叫做種子模型,這種模型是在估計水池中魚量的基礎(chǔ)上建立起來的。假設(shè)水池中一共有N條魚,則可以通過下述幾個步驟對魚的數(shù)量進(jìn)行預(yù)測:首先,從水池里隨機(jī)捕獲一些魚,將其數(shù)量設(shè)為Nt,并對捕獲的魚進(jìn)行標(biāo)記,再將它們?nèi)糠湃胨乩?,讓他們充分游動,進(jìn)而和水池中未被捕獲的魚混在一起。然后,從水池里再捕獲一些魚,將其數(shù)量設(shè)為n,在這些魚當(dāng)中,一定會有一些被標(biāo)記的魚,將其數(shù)量設(shè)為nt,將沒有被標(biāo)記魚的數(shù)量設(shè)為n-nt。最后,在計算過程中,可以假設(shè)水池里的被標(biāo)記魚和沒有被標(biāo)記魚之間的比值與被標(biāo)記魚占水池里總魚量的比例相等,經(jīng)過相關(guān)推算,可以得到如下關(guān)系式:
N=n*Nt/nt
2.2 Seeding模型的應(yīng)用
Seeding模型在進(jìn)行軟件測試時的原理是:該模型在排錯之前,軟件中錯誤數(shù)據(jù)的數(shù)量是N個,工作人員并不知道軟件里有多少個未知錯誤。這個時候工作人員可以向程序里添加Nt個錯誤,然后再進(jìn)行排錯。工作人員在進(jìn)行排錯時,還應(yīng)該對排錯類型進(jìn)行記錄,錯誤類型可以分為兩種,一種是原有錯誤,將其數(shù)量設(shè)成n,另一種是所添加的錯誤,將其數(shù)量設(shè)成nt,所以可以得到判斷軟件錯誤數(shù)量的公式為:
N=(n+nt)*Nt/nt
雖然從理論上來看這種方法可以幫助工作人員判斷軟件里的錯誤數(shù)量,但在實際應(yīng)用過程中,該方法并不可行。工作人員無法對軟件里錯誤數(shù)據(jù)的具體數(shù)量和具體內(nèi)容進(jìn)行確定,因此工作人員所添加的錯誤極有可能和原有錯誤重復(fù)。并且這種方法過分依賴工作人員進(jìn)行排錯,沒有實現(xiàn)自動測試,不僅浪費(fèi)了大量的能力,取得的效果也不是十分理想。
2.3 Seeding模型的完善
Seeding模型在完善之后的原理是:首先,需要兩名工作人員對相同的程序進(jìn)行獨立排錯。其次,第一名工作人員在完成軟件排錯之后,應(yīng)對排錯結(jié)果進(jìn)行記錄,然后讓第二名工作人員進(jìn)行排錯,第二名工作人員不需要對所有錯誤數(shù)據(jù)都進(jìn)行排除,只進(jìn)行一段時間即可,并對排錯結(jié)果進(jìn)行記錄。最后,讓分析員對兩名工作人員的結(jié)果和排錯情況進(jìn)行分析,并根據(jù)Seeding模型的公式來估算軟件中錯誤數(shù)據(jù)的數(shù)量。第二名工作人員在每進(jìn)行一段時間之后,就可以將排錯結(jié)果交給分析員分析,直到獲得較為正確的估測值,這個時候,第二名工作人員的工作任務(wù)就完成了。由此可見,不需要所有工作人員都完成全部的排錯工作,就可以獲得比較正確的估計值。值得注意的是該模型在應(yīng)用過程中應(yīng)該滿足以下幾個假設(shè):
(1)工作人員需要進(jìn)行獨立排錯,不允許對軟件信息進(jìn)行交流;
(2)在排錯時不可以添加新的錯誤;
(3)軟件錯誤觸發(fā)概率是一樣的。
另外,工作人員的排錯效率是影響軟件里錯誤數(shù)量估測值可靠性的關(guān)鍵因素,工作人員的排錯效率和排錯可靠性越高,就會讓通過模型所得到的估測值越準(zhǔn)確。因此,要想確??煽啃阅P偷臏?zhǔn)確度,就要提升工作人員的排錯效率,進(jìn)而對模型進(jìn)行改進(jìn)。
3 結(jié)論
總而言之,要想確保軟件產(chǎn)品的質(zhì)量,就需要對軟件進(jìn)行測試,而要想確保測試效果,就必須在軟件測試過程中設(shè)計可靠性模型,進(jìn)而對軟件錯誤數(shù)量進(jìn)行有效檢測,讓軟件開發(fā)人員能夠及時采取措施對這些錯誤進(jìn)行解決,以確保軟件產(chǎn)品的質(zhì)量。而Seeding模型的設(shè)計與研究還處于發(fā)展階段,因此相關(guān)工作人員應(yīng)該加強(qiáng)對其的研究,根據(jù)實際工作所需對其進(jìn)行不斷完善,以提升軟件測試的精準(zhǔn)性。
參考文獻(xiàn)
[1]胡湘萍.淺析軟件測試中的可靠性模型設(shè)計[J].信息通信,2016(03):186-187.
[2]于淑云.針對軟件可靠性測試的擴(kuò)展UML模型的設(shè)計與實現(xiàn)[J].新鄉(xiāng)學(xué)院學(xué)報,2014,31(12):38-41.
[3]潘正輝.基于云計算的基礎(chǔ)設(shè)施云服務(wù)平臺設(shè)計和實現(xiàn)[J].電子技術(shù)與軟件工程,2017(15):12-12.
[4]潘正輝.基于百度云服務(wù)的Android云終端設(shè)計及實現(xiàn)[J].電子測試,2017(14).
[5]潘正輝.基于安卓系統(tǒng)的近場無線通訊功能設(shè)計與實現(xiàn)[D].大連理工大學(xué),2013.
作者簡介
潘正輝(1988-),男,江蘇省無錫市人。中級工程師,碩士。研究方向為軟件工程。
作者單位
安谷科技股份有限公司 江蘇省無錫市 214000