在我們開始嘗試為大家描述軟件測試工作的多種可能性之前,先來看看在現(xiàn)在所知最近代的開發(fā)模式中,測試人員還會(huì)繼續(xù)存在嗎?因?yàn)槿绻B測試工作本身都不存在了,我們也沒必要進(jìn)行后續(xù)的討論了。 很多做測試的朋友問過這樣一個(gè)問題:“現(xiàn)在敏捷開發(fā)模式中,自動(dòng)化測試那么流行,而且連開發(fā)人員都開始做測試了,是不是以后就沒有測試人員了?” 其實(shí)我在這里可以肯定的告訴大家現(xiàn)實(shí)并不是這樣的。 首先我們需要討論的是分工的問題。人類的工業(yè)化生產(chǎn)最初也是不分工的,但隨著生產(chǎn)技術(shù)的復(fù)雜度提升,以及對(duì)于生產(chǎn)效率的更高要求,產(chǎn)生了分工;同樣對(duì)于軟件開發(fā)來說也是一樣,最開始并沒有測試人員和需求分析人員,而都是開發(fā)人員。也是隨著軟件項(xiàng)目的復(fù)雜度以及要求的提高,慢慢產(chǎn)生了工作種類的區(qū)別,由此產(chǎn)生了專門做測試的人員,也就是測試人員。由此看來,并不是有了測試人員這樣一個(gè)職位,才誕生了相應(yīng)的工作和職責(zé),而恰恰相反;那如果想取消這個(gè)職位,但是相應(yīng)的工作和職責(zé)并沒有消除,在我看來無非就是把這個(gè)職位換一個(gè)名稱,或者是和別的職位的工作與職責(zé)重新排列組合而已。 其次我們需要明確什么是測試的核心,是自動(dòng)化測試,還是測試報(bào)告,亦或是探索性測試呢?其實(shí)都不準(zhǔn)確,我認(rèn)為測試用例設(shè)計(jì)才是軟件測試的靈魂。沒有恰如其分的測試用例設(shè)計(jì),軟件測試很容易誤入歧途:導(dǎo)致沒有目標(biāo)的盲目測試,不考慮投入產(chǎn)出比的自動(dòng)化測試,不從全局優(yōu)化的、割裂的單元測試、集成測試和系統(tǒng)測試等。測試用例設(shè)計(jì)也是需要熟練運(yùn)用測試用例設(shè)計(jì)方法,并且結(jié)合測試人員的經(jīng)驗(yàn)和智慧才能設(shè)計(jì)出來的,這同樣是測試人員不同于軟件開發(fā)團(tuán)隊(duì)中其他角色,需要不斷積累的關(guān)鍵一點(diǎn)。如果說在敏捷開發(fā)模式中,開發(fā)人員可以完成單元測試和自動(dòng)化測試,業(yè)務(wù)分析人員也可以進(jìn)行探索性測試的話,測試人員唯一不能被取代的就是測試用例的設(shè)計(jì)。如果說描述得更全面一些,即使要讓別的角色替代測試人員,至少他們也需要具備測試用例設(shè)計(jì)的能力,而這種能力需要長時(shí)間的鍛煉和運(yùn)用才能具備。 最后,雖然測試工作并不會(huì)消失,但是測試人員也需要進(jìn)化,需要跟隨新的軟件開發(fā)模式,不斷學(xué)習(xí),不斷進(jìn)步,保持自己的必要性和特殊性。舉例來說,在敏捷開發(fā)模式中,測試人員不僅僅是根據(jù)需求編寫測試計(jì)劃和用例,并且手動(dòng)執(zhí)行,給出測試報(bào)告就好了。而是需要測試前移,在需求分析階段盡可能地發(fā)現(xiàn)和預(yù)防問題,在開發(fā)過程中避免問題的產(chǎn)生,并且通過問題分析指導(dǎo)開發(fā)方向和改進(jìn)措施;同時(shí)需要測試范圍擴(kuò)大,不僅需要覆蓋軟件開發(fā)階段,還需要覆蓋產(chǎn)品上線部署以及運(yùn)維的相關(guān)活動(dòng),甚至是通過分析用戶反饋來提高產(chǎn)品質(zhì)量??梢钥闯雒艚葜袦y試人員的任務(wù)和職責(zé)更多了,這就需要我們更加發(fā)揮自己的聰明才智,更高效地分析和解決問題,更快速地學(xué)習(xí)各項(xiàng)技能,同時(shí)注重各項(xiàng)實(shí)踐的運(yùn)用。 既然測試工作并不會(huì)消失,而且敏捷開發(fā)模式帶給我們新的機(jī)遇和挑戰(zhàn),那對(duì)于測試人員來說,職業(yè)發(fā)展的方向又有哪些呢? 首先我們需要明確想通過測試作為跳板,去做開發(fā)類和管理類等工作不在我們的探討范圍內(nèi)。很多測試人員其實(shí)在選擇軟件測試作為職業(yè)的時(shí)候,其實(shí)更優(yōu)先選擇的是軟件開發(fā)的職位,只是可能由于種種原因而與開發(fā)職位失之交臂,只好選擇了軟件測試作為自己的職業(yè)。一旦有了合適的機(jī)會(huì),他們會(huì)選擇成為開發(fā)人員,這樣的職業(yè)發(fā)展不在我們的討論之列。另一類測試人員對(duì)于軟件測試其實(shí)沒有熱情,有且僅僅把軟件測試作為養(yǎng)家糊口的工作,希望通過工作年限的增長增加自己的薪水,更多希望工作時(shí)間短,不用加班,這樣可以保證更好的家庭生活。選擇這種工作和生活方式是個(gè)人自由,但是也不是我們想進(jìn)行討論的。還有一類測試人員,希望通過短期的軟件測試工作中突出表現(xiàn),得到管理者的賞識(shí),從而進(jìn)入管理層,這樣的職業(yè)發(fā)展也不是我們討論的。 其次我們現(xiàn)在所知道的最近代也是最流行,甚至可以說最先進(jìn)的軟件開發(fā)模式是敏捷開發(fā)模式,所以我們對(duì)于測試人員的職業(yè)技能發(fā)展也是基于敏捷開發(fā)模式來分析的,如果有更新的開發(fā)模式出現(xiàn),這些分析和定義也許會(huì)失效。 在知悉這兩點(diǎn)之后,那我們認(rèn)為對(duì)于測試人員來說,在保證測試人員的獨(dú)特性,也就是做好測試用例設(shè)計(jì)的基礎(chǔ)上,職業(yè)發(fā)展大致可以分為以下幾類方向(如圖B-1): 圖B-1 測試人員職業(yè)發(fā)展方向
也許你認(rèn)為前幾種測試人員相對(duì)來說更偏向于技術(shù),容易在團(tuán)隊(duì)內(nèi)實(shí)現(xiàn),而后幾種更像是給廣大的測試人員畫餅,并不一定能實(shí)現(xiàn),只是描述一個(gè)可能性而已。其實(shí)這幾種測試人員的發(fā)展之路是根據(jù)我們實(shí)踐的測試人員的規(guī)劃得出的,也就是說我們是有真實(shí)的人物發(fā)展作為依據(jù)的。所以當(dāng)大家被自己工作中的現(xiàn)實(shí)所打擊到的時(shí)候,不要?jiǎng)訐u我們可以做更好更強(qiáng)大的測試人員的決心和目標(biāo),而是更努力的向那個(gè)方向努力。 最后,我們想告訴讀者:產(chǎn)品質(zhì)量并不只是軟件測試人員的責(zé)任,而是需要整個(gè)團(tuán)隊(duì)都關(guān)注的內(nèi)容。只有給予軟件測試人員足夠的關(guān)注和重視,我們才能充分發(fā)揮每個(gè)人的特點(diǎn),合力推動(dòng)產(chǎn)品質(zhì)量的進(jìn)一步提高。從另一方面,軟件測試人員也需要意識(shí)到自身技能的缺失,強(qiáng)化技能水平,成為團(tuán)隊(duì)可以依賴和值得信賴的一員。 轉(zhuǎn)自:CSDN(id:CSDNnews) |
|