利用有限的測試資源在項目中開(kāi)展單元測試和接口測試 軟件測試
對于單元測試和接口測試的概念,我想即便是剛剛畢業(yè)參加工作的測試工程師都能在面試的時(shí)候說(shuō)得出個(gè)一二三,市面上也有大量的書(shū)籍介紹單元測試接口測試,有些甚至還介紹了具體工具的使用方法。但是真正在項目中,對于習慣了按部就班地進(jìn)行手工黑盒測試的測試部門(mén)而言,單元測試接口測試這種牽涉到代碼的“高技術(shù)含量”的測試方式往往讓人有望而卻步的感覺(jué)。雖然主觀(guān)上非常希望能接觸和開(kāi)展這類(lèi)測試工作,但是團隊整體代碼技能,與開(kāi)發(fā)人員溝通配合的渠道經(jīng)驗,執行結果的考量等,都成為阻礙測試經(jīng)理在項目中普及單元測試和接口測試的瓶頸。以下便是結合自己的實(shí)際經(jīng)驗,談?wù)勅绾卧陧椖恐虚_(kāi)展單元測試,接口測試工作。
做為項目測試經(jīng)理,開(kāi)展單元測試和接口測試工作時(shí),需要依次做到三點(diǎn):1、分析單元測試和接口測試在實(shí)際項目中的收益和可行性。2、與項目經(jīng)理,開(kāi)發(fā)經(jīng)理溝通,使其理解單元測試接口測試的價(jià)值,并獲取相應的資源和支持。3、結合測試團隊實(shí)際能力,制定切實(shí)可行的測試策略。
一、分析單元測試和接口測試在實(shí)際項目中的作用,可行性以及收益。
在項目設計評審階段,測試經(jīng)理就應當主動(dòng)思考項目中能否進(jìn)行單元測試和接口測試,思考的角度應當是“如何通過(guò)單元/接口測試提升測試質(zhì)量,擴大測試覆蓋面,節省測試資源”,因為只有從這個(gè)角度思考才能真正做到有利于項目本身,同時(shí)也更能得到和項目經(jīng)理開(kāi)發(fā)經(jīng)理的認可。切忌不要“為了單元測試而單元測試,為了擴大部門(mén)和個(gè)人影響力而單元測試”,這樣做的結果不僅不能提高項目質(zhì)量,同時(shí)浪費大量測試資源(當然,這種情況非常普遍,不是么?)。
在分析收益時(shí)同時(shí)也需要考慮實(shí)際的可行性和資源的消耗。測試經(jīng)理首先應當考慮一個(gè)往往很容易被忽視的因素——測試工程師本人的主觀(guān)意愿。我們總是過(guò)多關(guān)注一個(gè)人現階段的“能力”,用“能力”的高低決定誰(shuí)能做什么事情,但事實(shí)上在一般互聯(lián)網(wǎng)IT企業(yè)中,不管他們面試的門(mén)檻有多高,真正在項目中做的事情,也都是一個(gè)經(jīng)歷過(guò)一般高等教育的人能學(xué)得會(huì ),做得來(lái)的事情,哪怕就是看似難度很高的單元測試和接口測試,對于沒(méi)有代碼經(jīng)驗的同學(xué),經(jīng)過(guò)一定的培訓,分工和幫助,也能參與到其中去從而逐漸積累經(jīng)驗。真正決定一個(gè)測試工程師能不能做好單元測試接口測試的因素是在于自己的主觀(guān)能動(dòng)性和學(xué)習意愿。
這話(huà)題扯遠了可能就會(huì )扯到測試人員的選拔甚至招聘上,我在面試的時(shí)候基本不會(huì )去會(huì )問(wèn)“你為什么想來(lái)阿里巴巴”,因為大多數人找工作無(wú)非是為了混口飯吃,希望自己?jiǎn)挝缓命c(diǎn)待遇高點(diǎn)是人之常情,但是我一定會(huì )問(wèn)“你為什么想來(lái)做測試”,如果說(shuō)“找工作混口飯吃”由不得我們選,那么從這么多混飯吃的行當里選擇了測試,那么多少都要對他有點(diǎn)興趣,有了興趣很多以前不會(huì )的東西自己就能學(xué)得會(huì )。其實(shí)我也見(jiàn)過(guò)很多人并不喜歡做測試,也有些人是因為開(kāi)發(fā)部門(mén)投不進(jìn)簡(jiǎn)歷就轉投測試部門(mén),這樣“人在曹營(yíng)心在漢”的同學(xué),即便有一定的技術(shù)功底,缺乏興趣和主觀(guān)能動(dòng)性,最多也只是能完成每天分配的任務(wù),很難做出超出期望的成果。
二、與項目經(jīng)理,開(kāi)發(fā)經(jīng)理溝通,使其理解單元測試接口測試的價(jià)值,并獲取相應的資源和支持。
明確了目標和可行性之后,測試經(jīng)理就需要向項目經(jīng)理,開(kāi)發(fā)經(jīng)理闡述自己的想法并獲得支持。如果說(shuō)之前的分析更多立足于測試團隊自身的角度,那么在獲取支持時(shí)就要注意站在對方的角度闡述單元測試接口測試的收益。
1、對于項目經(jīng)理而言,不僅關(guān)注項目質(zhì)量,也關(guān)注項目資源消耗,時(shí)間安排。測試經(jīng)理可以從測試資源投入產(chǎn)出比的角度向項目經(jīng)理闡述單元測試和接口測試的優(yōu)勢:進(jìn)行單元測試和接口測試可以在項目早期發(fā)現關(guān)鍵問(wèn)題,在底層發(fā)現并處理問(wèn)題可以節省開(kāi)發(fā)和測試大量的時(shí)間;進(jìn)行接口測試可以使測試提前介入,不必在等到UI等功能全部完成的情況下才倉促開(kāi)始測試,既增加測試的時(shí)間,同時(shí)不會(huì )影響項目發(fā)布時(shí)間;自動(dòng)化形式的單元測試接口測試在相同時(shí)間內的效率遠遠超過(guò)在測試工程師在UI層手動(dòng)執行,并且準確率更高。
2、對于開(kāi)發(fā)經(jīng)理而言,則更多強調在單元測試接口測試層面,開(kāi)發(fā)人員定位問(wèn)題解決問(wèn)題的難度大大降低;測試覆蓋率大大提高,實(shí)際減少后期bug數和故障數。
在得到項目經(jīng)理和開(kāi)發(fā)經(jīng)理“官方層面”的認可和支持后,千萬(wàn)不要忘記還要爭取獲得項目中每個(gè)開(kāi)發(fā)工程師的“個(gè)人層面”的支持。因為即便有官方的授權,如果開(kāi)發(fā)工程師個(gè)人并不理解單元測試和接口測試的意義,主觀(guān)上不愿意配合,那么真正運作起來(lái)執行成本會(huì )大大增加。對很多開(kāi)發(fā)工程師而言,普遍存在著(zhù)輕視測試工程師,認為測試工作沒(méi)有技術(shù)含量的觀(guān)念,對于這樣的偏見(jiàn),不要試圖用書(shū)本概念或者規章制度去與之辯駁,而是就從技術(shù)角度入手,談單元測試接口測試的重要性,解鈴還須系鈴人,用他們熟知的角度入手說(shuō)服對方,方能以理服人。除此之外,測試經(jīng)理平時(shí)也應當和開(kāi)發(fā)人員保持聯(lián)系,在關(guān)鍵時(shí)刻,規章制度的約束力比不上個(gè)人關(guān)系的影響力。
三、結合測試團隊實(shí)際能力,制定切實(shí)可行的測試策略。
在獲得各個(gè)層面的支持后,接下來(lái)測試經(jīng)理就需要針對項目,測試團隊的實(shí)際情況制定切實(shí)可行的方案了。
1、制定合理,可行的目標
在決定單元測試接口測試策略,特別是第一次實(shí)踐時(shí),目標最好是越小越細,不僅能夠實(shí)現,也能夠系統衡量產(chǎn)出。切忌不要一開(kāi)始就制定很大的目標,如在沒(méi)有相關(guān)經(jīng)驗和先例的情況下在一個(gè)項目里就要做覆蓋所有功能點(diǎn)的單元測試,一開(kāi)始就制定一大籮筐規范,或者一夜之間就要搞出像微軟那樣的每日自動(dòng)化集成體系。相反,從最小,最細的東西開(kāi)始,選定幾個(gè)具有代表性的方法和接口,用Junit等成熟的框架先寫(xiě)出一個(gè)能“跑得通”的Case,然后再在次基礎上逐漸添加完善。
2、合理分工,人盡其用
即便是大公司的測試團隊中,也不可能每個(gè)都是有開(kāi)發(fā)經(jīng)驗的代碼高手,在團隊里,根據代碼能力,工作經(jīng)驗的不同,測試經(jīng)理要制定好合理的分工。選擇代碼能力最強的同學(xué)負責和開(kāi)發(fā)溝通,搭建環(huán)境和框架,寫(xiě)出可供參考和復制的腳本模板,主持必要的培訓工作;讓熟悉業(yè)務(wù)的同學(xué)在明確方法和接口的作用后設計測試數據;同時(shí)讓開(kāi)發(fā)同學(xué)處理一些環(huán)境,代碼依賴(lài)相關(guān)技術(shù)問(wèn)題。
3、隨時(shí)跟蹤,考量產(chǎn)出
作為測試經(jīng)理認真觀(guān)察測試團隊學(xué)習和執行情況,及時(shí)發(fā)現問(wèn)題和短板。對于單元測試和接口測試發(fā)現的bug,認真分析并記錄,隨時(shí)改進(jìn)測試方法。例如被測試的方法或接口最好本身是在業(yè)務(wù)上起到重要功能的方法或接口,這樣測試工程師就可以更多發(fā)揮自身在業(yè)務(wù)熟悉度上的優(yōu)勢,相反一些涉及到開(kāi)發(fā)框架和技術(shù)細節的方法或接口,一般的測試工程師很難設計出好的用例來(lái)發(fā)現問(wèn)題,對于這樣投入產(chǎn)出過(guò)低的模塊可以果斷放棄。最后在項目結束后根據這些數據對單元測試接口測試工作進(jìn)行總結,獲取更多的認可和支持。
對于很多高深的技術(shù),我們常常被迷惑,常常被嚇唬,常常喜歡用“這不是那么簡(jiǎn)單”這樣的話(huà)來(lái)敷衍別人和自己。勇敢地去嘗試,如果成功了,就會(huì )發(fā)現這沒(méi)什么大不了的;如果失敗了,嗯,其實(shí)也沒(méi)什么大不了的。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/