paulwong

          我眼中的開發(fā)和測(cè)試

          摘要:在IT行業(yè),開發(fā)和測(cè)試之間的關(guān)系一直是一個(gè)大家津津樂(lè)道的話題。那在周兆熊眼中,開發(fā)和測(cè)試是什么樣的?他進(jìn)行了細(xì)致的說(shuō)明,并就兩者的關(guān)系給出了一些建議。 
          在IT行業(yè),開發(fā)和測(cè)試之間的關(guān)系一直是一個(gè)大家津津樂(lè)道的話題。在整個(gè)軟件產(chǎn)品的生命周期中,開發(fā)和測(cè)試人員所做的工作分別對(duì)應(yīng)不同的階段,如圖1所示。 


          圖1 開發(fā)和測(cè)試人員的分工

          工作內(nèi)容 

          從圖1可以看出,開發(fā)和測(cè)試是一個(gè)上下游的關(guān)系。 

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

          第一,對(duì)軟件需求說(shuō)明書進(jìn)行詳細(xì)評(píng)審,弄清楚要開發(fā)一個(gè)什么樣的軟件。 

          第二,編寫軟件詳細(xì)設(shè)計(jì)、單元測(cè)試和集成測(cè)試規(guī)程文檔。軟件詳細(xì)設(shè)計(jì)文檔是最重要的文檔,在里面,要寫清楚自己程序的流程、函數(shù)設(shè)計(jì)、異常保護(hù)考慮等。在動(dòng)手寫程序之前,一定要將軟件詳細(xì)設(shè)計(jì)文檔寫好,等評(píng)審?fù)ㄟ^(guò)了再寫代碼。 

          第三,編寫代碼,用程序?qū)崿F(xiàn)軟件的功能。很多人認(rèn)為的軟件開發(fā)就是寫代碼,其實(shí)這是一種很狹隘的理解,寫代碼在整個(gè)開發(fā)流程中,只占了很小的部分。 

          第四,程序?qū)懞弥螅_發(fā)人員要對(duì)它進(jìn)行單元測(cè)試和集成測(cè)試也叫(自測(cè)),確保程序的正確性。這里就出現(xiàn)了“測(cè)試”二字,但與軟件測(cè)試所做的“測(cè)試”是不同的,他們做的是“系統(tǒng)測(cè)試”。等自測(cè)通過(guò)之后,并且相關(guān)文檔也寫好之后,就可以提交程序版本,供測(cè)試人員進(jìn)行測(cè)試了。 

          相對(duì)開發(fā),測(cè)試人員主要做這幾件事情: 

          第一,參與軟件需求說(shuō)明書的評(píng)審,對(duì)軟件要實(shí)現(xiàn)的功能有一個(gè)大致的了解。 

          第二,搭建測(cè)試環(huán)境。這個(gè)是很重要的,也是比較難的事情。什么是“測(cè)試環(huán)境”呢?就是說(shuō),不管什么軟件,都有個(gè)運(yùn)行的條件,如操作系統(tǒng)類型、參數(shù)設(shè)置及配套軟硬件設(shè)施等,這些統(tǒng)稱為“環(huán)境”。為了保證程序功能的正確性,要在軟件發(fā)布之前,盡量模擬軟件實(shí)際的運(yùn)行環(huán)境,這就是搭建測(cè)試環(huán)境時(shí)要做的事情。很多軟件在正式商用之后出問(wèn)題,就是測(cè)試的時(shí)候沒有還原現(xiàn)場(chǎng)環(huán)境所致。 

          第三,對(duì)軟件進(jìn)行系統(tǒng)測(cè)試并輸出測(cè)試報(bào)告。所謂系統(tǒng)測(cè)試,就是指將配套的所有軟件都運(yùn)行起來(lái),看一下所有的功能是否正常。當(dāng)出現(xiàn)問(wèn)題的時(shí)候,要及時(shí)和開發(fā)人員聯(lián)系,以修正軟件缺陷。 

          第四,指導(dǎo)現(xiàn)場(chǎng)人員安裝軟件程序,并在必要的時(shí)候親自出差到現(xiàn)場(chǎng)去安裝軟件。因此,測(cè)試人員也可能會(huì)經(jīng)常出差的。 

          “三足鼎立” 

          開發(fā)人員的主要任務(wù)是用程序完成軟件需求,而測(cè)試人員的主要任務(wù)則是保證程序功能的正確性,他們做事的依據(jù)都是需求開發(fā)工程師編寫的需求說(shuō)明書。 

          在實(shí)際的軟件開發(fā)項(xiàng)目中,需求開發(fā)工程師、軟件開發(fā)工程師和軟件測(cè)試工程師之間的交流是很頻繁的,如圖2所示。 


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

          就像“三國(guó)時(shí)期”的魏蜀吳“三足鼎立”一樣,需求開發(fā)工程師、軟件開發(fā)工程師和軟件測(cè)試工程師所站的立場(chǎng)不同,對(duì)軟件的認(rèn)識(shí)也不同。大家需要相互討論、協(xié)商,挑選出一套最佳的軟件實(shí)現(xiàn)方案。 

          一些建議 

          在完成軟件研發(fā)的過(guò)程中,開發(fā)和測(cè)試之間的關(guān)系非常的“微妙”,時(shí)而合作如親人,時(shí)而爭(zhēng)論如敵人。我認(rèn)為,為了做出高質(zhì)量的軟件產(chǎn)品來(lái),開發(fā)和測(cè)試需要做到: 

          第一,共同參與軟件需求文檔的評(píng)審,對(duì)程序要實(shí)現(xiàn)的功能有一個(gè)清晰的認(rèn)識(shí)。如果對(duì)需求有疑問(wèn),一定要當(dāng)面提出來(lái)。 

          第二,在對(duì)需求達(dá)成共識(shí)之后,軟件開發(fā)人員嚴(yán)格按照軟件需求文檔上的描述來(lái)編寫程序,如果在程序?qū)崿F(xiàn)上有困難,要提出來(lái)和大家討論。軟件測(cè)試人員嚴(yán)格按照需求的描述來(lái)驗(yàn)證程序的功能,如果發(fā)現(xiàn)程序?qū)崿F(xiàn)與需求不符,要及時(shí)與軟件開發(fā)人員聯(lián)系,大家共同將程序問(wèn)題解決掉。 

          第三,如果開發(fā)時(shí)間緊張、人手不足,那么在開發(fā)人員編寫程序的時(shí)候,測(cè)試人員可以幫忙把測(cè)試環(huán)境搭建好。等程序編寫好之后,開發(fā)人員便可以立即進(jìn)行單元測(cè)試和集成測(cè)試。 

          第四,不管是需求有問(wèn)題,還是程序有缺陷,大家都可以指出來(lái)。但注意要就事論事,不可將軟件問(wèn)題上升為對(duì)特定個(gè)人的人身攻擊。 

          第五,雖然是各司其職,也許還身處不同的部門,但大家的共同目標(biāo)是一致的:做出讓客戶滿意的、高質(zhì)量的軟件產(chǎn)品。開發(fā)和測(cè)試人員要為了這個(gè)目標(biāo),一起努力。 

          結(jié)束語(yǔ) 

          一個(gè)軟件產(chǎn)品的成功需要從各個(gè)環(huán)節(jié)上去把握,因此用人的左手和右手的關(guān)系來(lái)比喻開發(fā)和測(cè)試之間的關(guān)系更為恰當(dāng)。好的軟件產(chǎn)品需要開發(fā)和測(cè)兩手抓,兩手都要硬。 

          posted on 2014-12-01 20:55 paulwong 閱讀(313) 評(píng)論(0)  編輯  收藏 所屬分類: TESTIGN

          主站蜘蛛池模板: 文山县| 永川市| 达孜县| 临武县| 南通市| 威远县| 商水县| 如东县| 广昌县| 巫山县| 汉阴县| 牡丹江市| 资中县| 永州市| 布尔津县| 手游| 聂荣县| 平谷区| 鄂伦春自治旗| 台山市| 东山县| 阜新市| 平罗县| 民丰县| 枣阳市| 达拉特旗| 油尖旺区| 遂宁市| 望江县| 大名县| 泌阳县| 肃北| 惠州市| 宁夏| 图木舒克市| 潜江市| 乳山市| 新河县| 阜南县| 霍山县| 许昌市|