看看高手怎么做到寫出沒有bug的代碼

最近參與了幾個需求開發(fā),BUG很少,有些需求沒BUG,有些才一個BUG,搞的測試人員還發(fā)牢騷說:

目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、城區(qū)網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

大佬,你負責的項目,bug都少的可憐,叫俺怎么活?

哈哈,其實測試人員要感謝我才對,因為開發(fā)人員的代碼質(zhì)量高了,會極大的提升測試人員測試的速度,因為測試過程中非常順暢,沒啥阻礙的東西。

設想一下,如果提測后,代碼BUG滿天飛,測試人員不斷的提BUG單,開發(fā)人員不斷的修復,一不小心還可能修復出其他BUG來呢,中間還穿插各種各樣不必要的討論,這些都嚴重影響了測試進度,當然也嚴重影響了測試人員和開發(fā)人員的心情。

因此:

最好是在開發(fā)階段就認真起來,把代碼寫好,以求后續(xù)流程的順暢性。

那么如何做到寫代碼的時候,盡量避免BUG呢?趁這個機會也跟大家分享一下我的做法。

看看高手怎么做到寫出沒有bug的代碼

與產(chǎn)品經(jīng)理和經(jīng)驗豐富的測試人員多溝通

需求階段

產(chǎn)品經(jīng)理正式開需求會議之前,一般都會先把需求文檔發(fā)出來,這個時候,開發(fā)人員一定要認真的看并仔細分析,每個細節(jié)都要多想想,有疑問的地方及時跟產(chǎn)品經(jīng)理溝通。

另外,看需求的時候,最好跟熟悉業(yè)務的測試人員多多溝通,測試人員是對以往需求最清楚的人,能看到其他人看不到的細節(jié)。像我自己就經(jīng)常從測試人員那里,聽到了一些要命的而我卻忽略掉的需求細節(jié)。

代碼設計階段

我一般想好方案后,第一時間就會去找技術老大和熟悉業(yè)務的測試人員。

能做到技術老大,他的思路一般都是比較廣的,多聽聽他的意見是沒錯的。另外,也要去找測試人員,有些開發(fā)可能認為,技術方案怎么會去找測試人員商量呢?

請不要忘記,部分測試人員是對整個公司的大部分應用和需求和業(yè)務都了如指掌的人,能清楚的知道系統(tǒng)與系統(tǒng)之間如何交互,整個鏈路是怎么走的,整個上下文又是怎么樣的。

當開發(fā)人員的設計方案出來后,表面上看起來,完美無瑕,其實可能存在影響上下游系統(tǒng)的隱患。而多與熟悉業(yè)務的測試人員溝通,則可以盡早把這些問題暴露出來,減少影響和損失。

代碼開發(fā)階段

必須寫單元測試

單元測試的重要性,無論怎么強調(diào)都不為過。它是用于測試自己寫的代碼是否符合預期的極好的手段。尤其是在創(chuàng)業(yè)公司,需求都非常多,經(jīng)常需要改代碼,如果沒有一套完整的單元測試來回歸驗證代碼,分分鐘由于新寫了代碼而破壞了原有的代碼功能。

單元測試可以讓開發(fā)人員放心大膽的改代碼,無需擔心影響之前的功能。

但是單元測試一定要認真負責的寫,盡量覆蓋主流程業(yè)務。那種隨便寫寫,隨便驗證的單元測試,不寫也罷,沒啥意義,還浪費時間。

寫單元測試經(jīng)常犯的另外一個錯誤是,由于急著改bug,忘記同時改單元測試了,導致之前跑過的單元測試,后面又跑不過了,這個是絕對不允許的,單元測試也必須持續(xù)維護的。

另外有一個點就是,開發(fā)人員提測后,理論上就可以接另外一個開發(fā)任務了,如果開發(fā)階段BUG太多的話,則會影響下一個開發(fā)任務的進度。這個是開發(fā)經(jīng)理不愿意看到的。

不斷的重復的看自己的代碼

代碼提測前,要多看幾次,有時候能看出一些隱藏的代碼BUG的,有時候也會覺得,昨天寫的代碼,真垃圾,還是有蠻多代碼要優(yōu)化的。

在看代碼的時候,最好順便做到下面幾點:

代碼收攏性要強,不要存在那種類似的代碼滿天飛,能封裝起來的就封裝;

業(yè)務代碼一定要有必要的準確的注釋,千萬別信那套方法名命名好了就能解釋清楚的鬼話;

變量名要起好;Google 出品的 Java 編碼規(guī)范,這篇推薦你看下。

代碼抽象層次要一致,不要跳躍,例如,你的業(yè)務方法,操作其他模塊業(yè)務表的時候,都是調(diào)用Service類的,就不要突然冒出個直接使用xxxxxMapper去操作數(shù)據(jù)庫表了;

流程性比較強,最好用 //1、 //2、 //3、 標注一下,這樣會更加清晰。

必須做開發(fā)聯(lián)調(diào)

當你的業(yè)務接口開發(fā)完成后,一定要做開發(fā)者之間的聯(lián)調(diào)。聯(lián)調(diào)是端對端的,就算其中一方做的再好,沒有聯(lián)調(diào),還是會出問題。

開發(fā)聯(lián)調(diào)通過后,建議叫產(chǎn)品過來提前驗收

一般來說,功能測試通過后,上線前,會讓產(chǎn)品先驗收一下。但是我則喜歡開發(fā)聯(lián)調(diào)完后,就先拉上產(chǎn)品經(jīng)理,先大概驗收一下。不要小看這一步,經(jīng)常能提早發(fā)現(xiàn)一些問題的。

開發(fā)人員列出改動了哪些已有接口

列出改動細節(jié)有個好處:

讓測試人員更加有針對性的做回歸測試。雖說每次項目上線前,測試人員會做回歸測試,但是很難做到全面回歸,而沒有回歸到的場景,到線上可能就會造成bug。如果開發(fā)人員能列出改動點,則測試人員可以重點且認真的回歸。

已有接口已經(jīng)是在線上驗證過的接口,如果改動了,是一定要做兼容性測試的,既要保證新功能可用,也要保證不影響舊功能。

盡最大努力,保證開發(fā)提測不delay

對于那種上線日期已經(jīng)定了,一般會采用倒排的方式,推導出,開發(fā)哪個時間點提測,測試人員什么時候介入測試,測試多少天等,都會安排好。

如果開發(fā)提測delay了,留給測試人員的測試時間就縮短了,會給測試人員造成很大的壓力,壓力一大,則更容易出錯,直接影響測試質(zhì)量,也就影響了上線質(zhì)量。

當出現(xiàn)了提測delay的苗頭,開發(fā)人員一定要及時反饋出來,由組長或者經(jīng)理協(xié)調(diào)資源,進行補救。

這里要重點強調(diào)的是,一個功能的提測,是涉及到前端、后端的,你想自己加班到深夜趕進度也是沒用的,一定要以最快的速度,將問題暴露出來,由上級去協(xié)調(diào)一下,留下相關的人一起奮斗一下,盡量保證按時提測。

測試人員測試階段-看日志

不要以為提測后,就沒自己啥事了,最好還是抽少許時間,去測試機器上看看日志,觀察和分析一下入?yún)⒑统鰠⒌?,看看有沒有什么異常或者不合理的數(shù)據(jù)。

你們有什么好的想法?一起來分享一下,評論區(qū)見!

分享名稱:看看高手怎么做到寫出沒有bug的代碼
網(wǎng)站網(wǎng)址:http://muchs.cn/article48/gephep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名移動網(wǎng)站建設、手機網(wǎng)站建設、動態(tài)網(wǎng)站網(wǎng)站策劃、網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司