我眼中的開發和測試

edithfang發表於2014-12-02
在IT行業,開發和測試之間的關係一直是一個大家津津樂道的話題。在整個軟體產品的生命週期中,開發和測試人員所做的工作分別對應不同的階段,如圖1所示。

圖1 開發和測試人員的分工


工作內容

從圖1可以看出,開發和測試是一個上下游的關係。

具體而言,開發人員主要做這幾件事情:

第一,對軟體需求說明書進行詳細評審,弄清楚要開發一個什麼樣的軟體。

第二,編寫軟體詳細設計、單元測試和整合測試規程文件。軟體詳細設計文件是最重要的文件,在裡面,要寫清楚自己程式的流程、函式設計、異常保護考慮等。在動手寫程式之前,一定要將軟體詳細設計文件寫好,等評審通過了再寫程式碼。

第三,編寫程式碼,用程式實現軟體的功能。很多人認為的軟體開發就是寫程式碼,其實這是一種很狹隘的理解,寫程式碼在整個開發流程中,只佔了很小的部分。

第四,程式寫好之後,開發人員要對它進行單元測試和整合測試也叫(自測),確保程式的正確性。這裡就出現了“測試”二字,但與軟體測試所做的“測試”是不同的,他們做的是“系統測試”。等自測通過之後,並且相關文件也寫好之後,就可以提交程式版本,供測試人員進行測試了。

相對開發,測試人員主要做這幾件事情:

第一,參與軟體需求說明書的評審,對軟體要實現的功能有一個大致的瞭解。

第二,搭建測試環境。這個是很重要的,也是比較難的事情。什麼是“測試環境”呢?就是說,不管什麼軟體,都有個執行的條件,如作業系統型別、引數設定及配套軟硬體設施等,這些統稱為“環境”。為了保證程式功能的正確性,要在軟體釋出之前,儘量模擬軟體實際的執行環境,這就是搭建測試環境時要做的事情。很多軟體在正式商用之後出問題,就是測試的時候沒有還原現場環境所致。

第三,對軟體進行系統測試並輸出測試報告。所謂系統測試,就是指將配套的所有軟體都執行起來,看一下所有的功能是否正常。當出現問題的時候,要及時和開發人員聯絡,以修正軟體缺陷。

第四,指導現場人員安裝軟體程式,並在必要的時候親自出差到現場去安裝軟體。因此,測試人員也可能會經常出差的。

“三足鼎立”

開發人員的主要任務是用程式完成軟體需求,而測試人員的主要任務則是保證程式功能的正確性,他們做事的依據都是需求開發工程師編寫的需求說明書。

在實際的軟體開發專案中,需求開發工程師、軟體開發工程師和軟體測試工程師之間的交流是很頻繁的,如圖2所示。

圖2 三類角色的“三足鼎立”



就像“三國時期”的魏蜀吳“三足鼎立”一樣,需求開發工程師、軟體開發工程師和軟體測試工程師所站的立場不同,對軟體的認識也不同。大家需要相互討論、協商,挑選出一套最佳的軟體實現方案。

一些建議

在完成軟體研發的過程中,開發和測試之間的關係非常的“微妙”,時而合作如親人,時而爭論如敵人。我認為,為了做出高質量的軟體產品來,開發和測試需要做到:

第一,共同參與軟體需求文件的評審,對程式要實現的功能有一個清晰的認識。如果對需求有疑問,一定要當面提出來。

第二,在對需求達成共識之後,軟體開發人員嚴格按照軟體需求文件上的描述來編寫程式,如果在程式實現上有困難,要提出來和大家討論。軟體測試人員嚴格按照需求的描述來驗證程式的功能,如果發現程式實現與需求不符,要及時與軟體開發人員聯絡,大家共同將程式問題解決掉。

第三,如果開發時間緊張、人手不足,那麼在開發人員編寫程式的時候,測試人員可以幫忙把測試環境搭建好。等程式編寫好之後,開發人員便可以立即進行單元測試和整合測試。

第四,不管是需求有問題,還是程式有缺陷,大家都可以指出來。但注意要就事論事,不可將軟體問題上升為對特定個人的人身攻擊。

第五,雖然是各司其職,也許還身處不同的部門,但大家的共同目標是一致的:做出讓客戶滿意的、高質量的軟體產品。開發和測試人員要為了這個目標,一起努力。

結束語

一個軟體產品的成功需要從各個環節上去把握,因此用人的左手和右手的關係來比喻開發和測試之間的關係更為恰當。好的軟體產品需要開發和測兩手抓,兩手都要硬。
相關閱讀
評論(1)

相關文章