標(biāo)簽: 北京物聯(lián)網(wǎng)軟件開發(fā)公司 2024-08-16 次
現(xiàn)代物聯(lián)網(wǎng)軟件開發(fā)項(xiàng)目中通常包含大量文件和數(shù)百萬行代碼。由于數(shù)量龐大,查找和糾正錯(cuò)誤(即調(diào)試)非常困難。
在許多軟件開發(fā)外包公司中,開發(fā)人員仍然手動(dòng)查找錯(cuò)誤,這占用了他們大量工作時(shí)間。研究表明,這占總開發(fā)時(shí)間的 30% 到 90%。
格拉茨工業(yè)大學(xué) (TU Graz) 軟件技術(shù)研究所的 Birgit Hofer 和 Thomas Hirsch 開發(fā)了一種基于現(xiàn)有自然語言處理方法和指標(biāo)的解決方案,可以大大加快查找錯(cuò)誤代碼并進(jìn)行調(diào)試的過程。
故障定位耗費(fèi)最多時(shí)間
“作為第一步,我們針對(duì)開發(fā)人員進(jìn)行了調(diào)查,以找出調(diào)試過程中最浪費(fèi)時(shí)間的事情。結(jié)果發(fā)現(xiàn),實(shí)際修復(fù)錯(cuò)誤根本不是大問題,但程序員主要陷入了定位錯(cuò)誤,即將搜索范圍縮小到程序代碼中的正確區(qū)域,”Birgit Hofer 解釋道。
基于這一認(rèn)識(shí),研究人員著手尋找該問題的解決方案,該解決方案還可擴(kuò)展到具有大量代碼的應(yīng)用程序。
雖然存在有效的基于模型的方法,即將程序轉(zhuǎn)換為邏輯表示(稱為模型),但這僅適用于小型程序。這是因?yàn)橛?jì)算工作量會(huì)隨著代碼的大小而呈指數(shù)級(jí)增長(zhǎng)。
Birgit Hofer 和 Thomas Hirsch 采用的方法用數(shù)字來表示某些軟件屬性(例如代碼的可讀性或復(fù)雜性),并且還可以用于大量代碼,因?yàn)橛?jì)算工作量?jī)H呈線性增加。
漏洞描述與代碼對(duì)比
故障定位的起點(diǎn)是錯(cuò)誤報(bào)告,測(cè)試人員或用戶填寫一份表格,描述觀察到的故障,并輸入有關(guān)軟件版本、操作系統(tǒng)、故障發(fā)生前他們采取的步驟以及其他相關(guān)信息。
根據(jù)此錯(cuò)誤報(bào)告,自然語言處理和度量相結(jié)合,對(duì)整個(gè)代碼的類和變量、文件、方法或函數(shù)的名稱以及對(duì)方法和函數(shù)的調(diào)用進(jìn)行分析。
該應(yīng)用程序會(huì)識(shí)別與錯(cuò)誤報(bào)告最相符的代碼部分。因此,開發(fā)人員會(huì)收到一份包含 5 到 10 個(gè)文件的列表,這些文件按照它們對(duì)所觀察到的故障負(fù)責(zé)的可能性進(jìn)行排序。
開發(fā)人員還會(huì)收到最有可能涉及的故障類型的信息。這些數(shù)據(jù)可用于更快地定位和修復(fù)錯(cuò)誤。
“軟件開發(fā)人員的工作時(shí)間很昂貴,但他們往往把更多的寶貴時(shí)間來查找和修復(fù)錯(cuò)誤,而不是開發(fā)新功能,”Birgit Hofer 說。
“由于已經(jīng)存在多種解決此問題的方法,我們已研究如何將它們結(jié)合起來并加以改進(jìn),以便為商業(yè)應(yīng)用奠定基礎(chǔ)。我們現(xiàn)在已經(jīng)奠定了基礎(chǔ),系統(tǒng)也運(yùn)行正常。然而,為了將其整合到公司中,它仍然必須適應(yīng)公司各自的需求?!?/p>
2024/07/25
2024/10/15
2024/09/18
2024/07/12
2024/09/04
2024/11/01
2024/08/05
2024/11/06