软件测试反例,基于模型检测多反例对软件进行调试
摘要:
如今,模型檢測已經普遍應用于對軟件屬性的檢測中。模型檢測技術含有高度的自動化性,當設計的系統違背規約時,模型檢測器會返回一個源碼級別的錯誤路徑即反例,反例中包含了對應于違背規約的錯誤解釋信息。通過對反例中的解釋信息進行分析,我們可以得到系統為什么違背系統屬性的錯誤原因,而這些分析將會給系統修復過程提供了重要的依據。 鑒于模型檢測的諸多優點,在故障定位技術中應用模型檢測技術已經成為一個研究熱點。然而,復雜系統的反例往往顯得非常的冗余和復雜,甚至讓人覺得難以理解,這就使得我們需要花費大量時間來檢查反例進而找出引發系統錯誤的起因。現在的模型檢測器已經可以產生所有的反例,所以我們更希望能夠利用多反例來查找系統中故障的位置,而不是只采用一個反例的信息。本文提出了距離度量技術和Tarantula技術在錯誤解釋和故障定位上的拓展。 在以往的方法中,尋找故障用的是單反例,對于反例的選擇也是沒有依據的隨意之舉,通常會導致這個反例在故障定位中并不是一個好的選擇。已知單獨的反例在調試中可能對找出錯誤沒有幫助,那些僅僅采用一個單獨反例會由于信息的不確定性,在不斷地嘗試不同的反例中浪費大量時間,而多反例會給出清楚的線索來進行故障定位。在本文方法中,根據反例和成功執行路徑集合以及利用距離度量技術和Tarantula技術,可以找出一個反例和它的最優路徑。這個反例就是一個最佳選擇,能夠很好地讓我們在特定信息線索中找出含有故障的謂詞,再通過與最優路徑對比就可以找出引起故障產生的原因。在Tarantula技術中,會提供一個在代碼中聲明可能成為故障的懷疑度高低的排名,這類信息就是找到基準反例的根據。 通常,在代碼太多時會難以找出故障的位置,因而我們提出了一個在部分可疑代碼中,基于距離度量分析對比進行故障定位的方法。對整個路徑中代碼的部分壓縮區域進行分析可以提高效率和精確性。距離度量提供了尋找最優成功執行路徑的技術,它是對應于反例來選擇的。我們將這兩種技術融合在一起,從而加快了找錯的能力,同時,這種融合也更利于精確度上的提高。當然,最后我們也提出了仍然需要改進和加強的地方。
展開
總結
以上是生活随笔為你收集整理的软件测试反例,基于模型检测多反例对软件进行调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机辅助设计A卷,《计算机辅助设计》考
- 下一篇: linux如何关闭防火墙