怎么樣能讓程序員少寫B(tài)UG

1 評論 5650 瀏覽 14 收藏 7 分鐘

編輯導語:作為一名產(chǎn)品經(jīng)理,除了要關注你的產(chǎn)品需求和用戶需求,還要參與到每一個步驟里;比如開發(fā)測試,參與到其中,才能更好的做到結(jié)合,完成項目的開發(fā)。本文作者介紹了在程序員寫代碼時如何避免出錯。

有沒有覺得,有時候程序員哥哥的腦回路不同凡響,能自己想出一套邏輯,甚至寫一些讓你哭笑不得的BUG。

那有沒有思考過,怎么樣讓他們少些BUG呢?

其實,我為此是操碎了心,在公司之前各方面都不不成熟,且沒有測試人員的時候,我是兼任測試的。

我在測試的時候,主要有以下三個問題。

  1. 我們以為達成共識的公共組件,開發(fā)哥哥們很容易因為文檔需求沒有明確說明而進行自己新的一套東西;還美其名曰:我比你們產(chǎn)品想的多,我讓我們系統(tǒng)更加完美。但其實是他們美好的yy,很多東西的實現(xiàn)效果讓你覺得很反人類。
  2. 需求理解不一致,未真正達成共識,各自在各自的頻道,天馬行空;你以為你跟他說清楚了,他以為自己理解了,實際上就是雞同鴨講,誰也沒理解誰,最后導致開發(fā)出來的東西,用戶根本不能用。
  3. 粗心大意,考慮不全面,寫出了真正的BUG;這類BUG要么很明顯,要么就會藏得很深。

這三個問題,在我經(jīng)歷了許多項目開發(fā)后發(fā)現(xiàn),其實是能夠通過完善的文檔和充足的軟件設計去避免的。

第一個問題,其實不止是組件,還有很多文檔中并不明確的東西,這些都是能夠通過我們詳細需求文檔描述或者詳細的原型設計去避免;如果是通用的東西,我們可以形成一套通用的規(guī)范說明,或者讓開發(fā)形成一套公共功能庫,通用或者公共的東西,不需要每次都單獨寫,只要按規(guī)范去做就好。

第二個問題,我們可以讓書面的描述,落成更直觀的邏輯圖、流程圖或是直接舉例的數(shù)據(jù)計算過程,讓程序員哥哥們可以多角度深刻的去理解;這樣做,不僅可以讓繁瑣復雜的文字表述文檔變成更通俗易懂的圖形和數(shù)據(jù),還可以檢查需求和邏輯的完整性。

也就是說這兩個問題,其實我們都可以通過詳細的軟件設計和規(guī)范的開發(fā)流程,盡量去避免。

那么第三個問題呢?

第三個問題,則要從測試上入手。

在《人月神話》一書中,曾提到過“易除BUG 的設計”。

這所謂的“易除BUG 的設計”其實是通過三塊內(nèi)容:測試規(guī)格說明、自下而上的設計和結(jié)構(gòu)化編程。

一、測試規(guī)格說明

在編寫代碼之前提交測試規(guī)格說明,也就是我們常說的測試用例;以詳細的檢查和說明的完整性和明確性的文檔,并組織項目組全體成員進行測試用例評審,以達到項目需求的真正共識。

這個過程中,也是對需求文檔和原型的檢查,其中不免會對原需求文檔和原型進行進一步的需求細化和存疑點的修改。

這一點非??简灉y試用例編寫人員對業(yè)務理解的能力和逆向思維能力,測試想要覆蓋全面,則需要深刻理解業(yè)務需求,且能對異常操作場景進行細化設計;數(shù)據(jù)類的測試,還需要數(shù)據(jù)用例去驗證邏輯。

因此,測試人員編寫測試用例只是第一步,想要測試用例覆蓋全面,做到大家真正達成共識,則需要大家群策群力,一起去完善;這一過程,可能是系統(tǒng)開發(fā)正確最關鍵的一步。

二、自下而上的設計

將系統(tǒng)開發(fā)分為體系結(jié)構(gòu)設計、設計實現(xiàn)和物理編碼實現(xiàn),即精化步驟、細化任務。

這一點,其實就是在開發(fā)上入手,讓系統(tǒng)開發(fā)分步設計,這樣做,則有以下優(yōu)點:

  • 清晰的結(jié)構(gòu)和表達方式,更容易對需求和模塊功能進行精確的描述;
  • 模塊分割和模塊獨立性,則避免系統(tǒng)級的BUG;
  • 細節(jié)的抑制使結(jié)構(gòu)上的缺陷更加容易識別;
  • 設計在每個精化步驟上都是可以測試的,所以測試可以盡早開始,并且每個步驟的重點樂于放在合適的級別上。

三、結(jié)構(gòu)化編程

將系統(tǒng)分為單元調(diào)試和集成調(diào)試。將相同的組件們作為某個單元,可以減少重復工作,也能控制變更;這樣不僅能夠方便測試,也可以階段化的迭代。

四、總結(jié)

軟件的開發(fā)是所有參與人員共同朝著一個目標前進,每一個人都在為項目辛勤付出,都希望項目做到有結(jié)果,所以每個人都要為項目的質(zhì)量、結(jié)果進行負責。

過程中大家要各司其職,也要互相幫助,盡量避免走歪路和出錯。

我們都要對整個軟件開發(fā)過程負責,因此,我們產(chǎn)品經(jīng)理不僅僅只是把需求做得完美,還要協(xié)助開發(fā)測試,更好的完成項目開發(fā)目標,達成真正可用的系統(tǒng)。

 

本文由 @阿虛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 寫bug根本原因缺乏思考,作為執(zhí)行者,不會往深層次去想一層,所以導致改好了A,b出現(xiàn)了bug。日復一日,有個詞叫懶政,也適用于這行。

    來自陜西 回復