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