信息管理行業(yè)案例:15秒查找500000+行代碼中的指針錯誤
這是一個故事,講述了如何在15秒的分析過程中發(fā)現(xiàn)導致崩潰的錯誤,從而避免了40小時的人工檢查。
BITTT Enterprises專注于業(yè)務流程,并為信息管理提供戰(zhàn)略性業(yè)務解決方案。 BITTT幫助他們的客戶改善內(nèi)部技術(shù)系統(tǒng),提高效率和生產(chǎn)率,以實現(xiàn)更健康的利潤。
合伙人Timothy W. Okrey負責BITTT的開發(fā)。實際上,他是BITTT編寫的代碼背后的策劃者。最近,Okrey正在繼續(xù)開發(fā)正在進行中的項目,該項目已經(jīng)進行了兩年。該程序突然開始崩潰時,它處于虛擬生產(chǎn)環(huán)境。這種情況使Okrey完全傻眼了。
在嘗試自己解決問題并向各個方向撞墻之后,Okrey找到了的C/C++運行時分析和錯誤檢測解決方案。Parasoft Insure++不僅幫助Okrey解決了眼前的問題,而且使他能夠同時有效地增強多個獨立項目。
臨界指針錯誤的出現(xiàn)
Okrey正在開發(fā)的產(chǎn)品穩(wěn)定并且可以在虛擬生產(chǎn)模式下運行。但是,該程序在經(jīng)過最近的構(gòu)建以解決客戶要求的許多增強功能后開始失敗。
BITTT已在該產(chǎn)品上投資了兩年,這是一種與薪資相關(guān)的解決方案,旨在幫助客戶減少每周投資的60至70個工時,以手動完成14個州的1000名員工的薪資。由于BITTT的工作,現(xiàn)在客戶的工資單已實現(xiàn)自動化,使他們每周花費不到12個工時。不幸的是,最新版本出現(xiàn)的停止顯示錯誤導致BITTT的客戶恢復到人工工資核算流程。
基于20多年的開發(fā)經(jīng)驗,Okrey知道,如果已經(jīng)碰壁了,那就是時候以不同的方式重做整個項目了。不幸的是,在這種情況下,這甚至都不可行,因為“沒有決定性的證據(jù),甚至沒有可追溯的錯誤。”O(jiān)krey進一步解釋說:“這不是新的發(fā)展。我們也沒有嘗試將部分代碼組合在一起以使其正常工作。這個特定程序是使用工具箱作為細節(jié)從頭開始編寫的。”
該工具包是Okrey于1993年開始創(chuàng)建的工具包。它允許他將工作功能提取到原始源代碼中,或用作任何項目的庫。該工具包為他的所有項目提供了穩(wěn)定的基礎,并減輕了反復重寫代碼的需要。該工具包已經(jīng)發(fā)展到超過500000行代碼,這些代碼都是經(jīng)過最大程度的努力而編寫的。Okrey嚴格遵循結(jié)構(gòu)化編程的規(guī)則,因此在保持代碼清潔方面很明智。他從未使用過第三方工具來分析他的代碼,也從未需要過。
減少下游開發(fā)流程的時間和成本
在一個多星期的時間里,Okrey試圖重新設計引起麻煩的樣式的不同部分。
但是他為解決問題所做的嘗試僅導致更改了一些內(nèi)部零件,從而使故障點發(fā)生在其他位置。“像平時一樣,我用細齒梳和放大鏡花了40多個小時來瀏覽我的所有代碼。我無法找到問題所在。我可以看到發(fā)生了什么事。我只是不知道為什么會這樣,” Okrey說。
從那時開始,他開始尋求幫助。他只發(fā)現(xiàn)了少數(shù)能夠完成他想要的工具。在少數(shù)幾個產(chǎn)品中,大多數(shù)產(chǎn)品僅允許靜態(tài)檢查代碼。是唯一還執(zhí)行動態(tài)分析的產(chǎn)品。Okrey說:“Parasoft使我能夠在運行環(huán)境中分析我的內(nèi)容,而不僅僅是看紙上的代碼。”
設置并運行后,經(jīng)歷了Okrey源代碼的第一版——全部500000行。在啟動后的15秒內(nèi),發(fā)現(xiàn)了一個過時的指針錯誤。Okrey談到快速的投資回報時說:“如果我找不到,那將導致客戶提出非常苛刻的要求。”他補充說:“僅僅由于升級,從程序的正常運行版本變?yōu)榉钦_\行版本,將導致進度逆轉(zhuǎn),我甚至不愿考慮采取強制性的財政讓步。這是一個很麻煩的情況。”
提高代碼質(zhì)量、穩(wěn)定性和合規(guī)性
使Okrey能夠完全修改工具包的源代碼。特別是改善字符串處理。改進已擴展到其他項目。Okrey還為使用相同后端工具包的各種客戶提供了許多其他程序,因此所有這些程序都能從中受益。Okrey指出:“我甚至無法開始告訴您所有依賴于后端工具包的程序。由于進行了改進,使我能夠進行改進,使它們更加穩(wěn)定和合規(guī)。”
Okrey說,解決方案使他能夠?qū)嵤┖蛨?zhí)行他的高編碼標準。Okrey說:“迫使您驗證所使用的標準和做法絕對原始。”“作為項目負責人或像我這樣的管理合伙人,面臨的挑戰(zhàn)之一是確認您的團隊正在編寫符合高標準的代碼。Parasoft可以幫助我驗證我的團隊正在編寫符合我的標準的代碼,并允許我保證結(jié)果。我為此感到非常興奮。”
從的解決方案中獲取價值
Okrey對迅速融入其應用程序開發(fā)過程的質(zhì)量感到滿意。他不僅能夠為尊貴的客戶糾正問題,而且還能夠為其他客戶提高數(shù)十種程序的質(zhì)量。
Okrey說:“對于我選擇認可的產(chǎn)品,我非常嚴格。出于各種原因,世界上編寫的大多數(shù)軟件都無法正常運行。也許它的設計不正確,以至于運行緩慢,或者系統(tǒng)要求不切實際。清單繼續(xù)。
“不過,我確實很喜歡一些產(chǎn)品。其中之一是我一直依賴的系統(tǒng)軟件產(chǎn)品。我從未經(jīng)歷過GPF。決不!當我得知該產(chǎn)品的提供商是客戶時,就是這樣。這就是讓我決定嘗試的原因,對此我感到非常高興。”
獲取Parasoft資料或申請試用可加QQ:2867205852