軟件測試是軟件研發(fā)過程當(dāng)中必不可少的環(huán)節(jié),中培偉業(yè)《軟件自動化測試與持續(xù)集成實(shí)踐》專家陸老師指出,要做好軟件測試,首先就需要理解軟解測試的內(nèi)涵。對于軟件測試的認(rèn)識,陸老師認(rèn)為應(yīng)該從以下幾個方面著手。
首先對于軟件測試和軟件開發(fā)的關(guān)系問題,首先要說明的是測試需要懂一些軟件開發(fā)方面的知識,而這些軟件開發(fā)知識里面最重要的又是數(shù)據(jù)庫和SQL,結(jié)構(gòu)化編程和腳本語言,這些是測試人員上升到一個新高度的重要內(nèi)容。可以是軟件開發(fā)轉(zhuǎn)入測試,這個時候強(qiáng)的是軟件開發(fā)方面的知識,但是若的是對業(yè)務(wù)和需求本身的理解,同時也容易卷入程序員的固有思維而不能從客戶的角度來看待問題;也可以是先從測試和業(yè)務(wù)熟悉做起,后面逐漸需求一些開發(fā)方面的知識,包括數(shù)據(jù)庫SQL和腳本語言,但是往往沒有真正做過開發(fā)又很難理解結(jié)構(gòu)化編程的一些基本規(guī)則。這里面都存在一個轉(zhuǎn)換問題,都需要自己在這個轉(zhuǎn)換的環(huán)節(jié)多去思考,轉(zhuǎn)變思維,多多總結(jié)。
其次測試最核心的內(nèi)容是什么?做軟件測試需要時刻的提醒自己來思考這個最重要的問題。軟件工程書里面我們學(xué)過來,測試最重要的就是找出至今為止別人沒有發(fā)現(xiàn)的Bug,找出盡可能多的有價值的問題,以最大限度的降低的缺陷泄露和現(xiàn)場故障。這個回答本身沒有問題,不過我們還需要做一些更加深測試的思考,特別是做了測試一兩年后更需要不斷思考,測試的核心和關(guān)鍵點(diǎn)究竟在哪里?
在這里我想談兩個比較重要的核心內(nèi)容,一個就是拿到一個大的系統(tǒng)或復(fù)雜的業(yè)務(wù)功能后,這個時候第一個核心就是根據(jù)需求規(guī)格說明書進(jìn)行測試分析,而不是一下切入到了測試用例和測試設(shè)計,測試分析的目的是讓測試人員真正的理解需求和業(yè)務(wù)場景本身,測試有個重要的概念是測試場景,而測試場景則來源于需求場景。做測試分析的目的就是根據(jù)需求和業(yè)務(wù)流程梳理清楚我對整個測試流程的總體規(guī)劃,搞清楚對于復(fù)雜的功能如何按一定的方法系統(tǒng)性的開展測試,如何更加有效的設(shè)計測試用例,如果加強(qiáng)測試用例和測試數(shù)據(jù)的復(fù)用,測試用例對需求和業(yè)務(wù)場景的覆蓋等諸多問題。
如果你還不能去考試測試分析,說明還在測試的一種初級階段,完全照搬著需求規(guī)格說明書的測試用例是無法帶來很好的測試效果和效率的。第二個重要內(nèi)容要談的是測試用例的設(shè)計問題,一條測試用例涉及到編號,名稱,對應(yīng)的需求點(diǎn)和業(yè)務(wù)規(guī)則,前置條件,測試步驟和預(yù)期輸出和優(yōu)先級等諸多內(nèi)容,那帶來的一個重要問題就是測試用例本身的核心是什么?
其實(shí)這里我想指出的則是通過前期的測試需求分析后所規(guī)劃的測試數(shù)據(jù)的準(zhǔn)備問題,而測試數(shù)據(jù)準(zhǔn)備的方法則來源于我們常說的黑盒測試場景方法,如等價類劃分,邊界值設(shè)定,因果分析等,這些都是為測試數(shù)據(jù)準(zhǔn)備服務(wù)的,沒有準(zhǔn)備的測試數(shù)據(jù)預(yù)期的測試輸出往往是一句空話,有了預(yù)先準(zhǔn)備的測試數(shù)據(jù)測試的過程才是有計劃和有目的的,真正準(zhǔn)備了測試數(shù)據(jù)的人才談得上在真正系統(tǒng)的使用各種黑盒測試方法。系統(tǒng)的規(guī)劃和準(zhǔn)備測試數(shù)據(jù)是系統(tǒng)化的進(jìn)行測試用例的靈魂,你考慮了這點(diǎn)才會發(fā)現(xiàn)到,需求里面啰嗦了半天的內(nèi)容往往僅僅需要1-2條測試用例概括即可,而需求里面只有一句話的業(yè)務(wù)規(guī)則往往則需要準(zhǔn)備上十條甚至更多的測試用例來進(jìn)行測試。如果在測試用例的設(shè)計上考慮到了這些問題,基本表示對業(yè)務(wù)深入理解和對測試方法已經(jīng)靈活應(yīng)用了。
最后談下成為一個優(yōu)秀的測試工程師,首先你要轉(zhuǎn)變思維,你代表的是用戶,你是整個軟件產(chǎn)品或系統(tǒng)版本發(fā)布的最后一關(guān),對你的評價只有一個就是從你手出去的產(chǎn)品到了用戶現(xiàn)場的缺陷情況,這是唯一的一個有價值的目標(biāo)。如果連對自己的工作績效如何衡量都還不清楚,更談不上如何做好測試,因此對于測試我們會談到一個重要的外延就是質(zhì)量管理方面知識的學(xué)習(xí),質(zhì)量管理基礎(chǔ)理論,質(zhì)量管理七工具,6Sigma等都可能是測試中需要時常用到的方法和工具,需要去拓展這個外延知識,加深對測試工作本身意義的理解。
優(yōu)秀的測試工作師不僅僅是測試方法和各種測試工具的熟悉,更重要的一點(diǎn)需要意識到的是對某個業(yè)務(wù)領(lǐng)域業(yè)務(wù)的深入理解,沒有理解無法做好測試,理解一些可以做單個功能模塊的測試,全面理解才可能做集成測試和系統(tǒng)測試,你對業(yè)務(wù)理解的越深,就越容易測試出各種業(yè)務(wù)規(guī)則方面和數(shù)據(jù)方面的問題,到了這種層次后SQL和后臺數(shù)據(jù)的查詢就必不可少的,基于業(yè)務(wù)規(guī)則的數(shù)據(jù)校驗(yàn)測試是測試人員上一個新臺階的重要內(nèi)容。