【转】测试人员的思想理念和工作方法
測試人員的思想理念和工作方法
軟件測試的前提假設(shè)
測試人員進(jìn)行軟件測試的基本假設(shè)是“有罪推斷” ,即認(rèn)為被測程序一定是有bug的,而且每個功能點(diǎn)的實(shí)現(xiàn)都存在bug,而且一定存在嚴(yán)重的bug。 請牢記這個假設(shè) ,一旦在日后的工作過程中產(chǎn)生了這樣的認(rèn)識:“這個功能很簡單,肯定不會出現(xiàn)問題,就不再測試了。”或者“這個功能上一輪剛測試過,當(dāng)時就沒有問題,這一輪應(yīng)該也不會有問題,就不用測試了。”等等諸如此類的意識,那么 你就有90%的概率導(dǎo)致漏測 ,造成線上問題。其原因也正是這個測試工作的基本前提假設(shè),一旦被違背就從開端導(dǎo)致了測試工作存在問題,所以真正出現(xiàn)問題的可能性也就很大了。 正因?yàn)檐浖y試的這個前提假設(shè),在導(dǎo)致了如果我們同開發(fā)人員看待程序的角度和出發(fā)點(diǎn)完全不同。因?yàn)?#xff0c;通常情況下一個有自信心的開發(fā)人員不會認(rèn)為自己寫的代碼全部都有問題,他一定是認(rèn)為自己的代碼沒有問題了才交付測試的。因此,如果要從事軟件測試工作,那么就必須牢記并運(yùn)用該假設(shè)。 這個前提假設(shè)要求我們在實(shí)施測試的過程中不能放過任何一個細(xì)小問題。比如,某個程序運(yùn)行時在控制臺打印了一些錯誤信息,但是實(shí)際上該程序的運(yùn)行和功能都沒有問題,如果我們摒棄有罪推斷的假設(shè),從合理實(shí)現(xiàn)的角度去分析,那么就可以認(rèn)為這是開發(fā)人員對于日志打印的輸出控制沒有做好導(dǎo)致的,屬于微不足道的小問題,不需提出即可。于是,這就使你有90%的可能性錯過了發(fā)現(xiàn)其編碼上的異常分支判斷錯誤導(dǎo)致的重大問題。此類案例更常見與那些小概率問題,即在測試過程中偶爾出現(xiàn),但確實(shí)很難、甚至無法復(fù)現(xiàn)的問題,如果我們同樣摒棄有罪推斷的假設(shè),這些問題也會從我們手邊溜走,跑到線上由用戶發(fā)現(xiàn)。相信諸如此類的教訓(xùn)在每一個測試人員那里都不是少數(shù)。 所以, 請轉(zhuǎn)變思維,牢記這個假設(shè) 。
測試工作的開展思路
從需求出發(fā)
無論什么樣的軟件產(chǎn)品,其設(shè)計開發(fā)的目的必然是為了滿足一定的需求,這種需求或者是用戶提出的,或者是某個關(guān)聯(lián)系統(tǒng)提出的。因此,軟件產(chǎn)品最終是為了交付給用戶使用的,也因此可以滿足需求是對于軟件產(chǎn)品質(zhì)量的基本保證,其它如擴(kuò)展性、維護(hù)性等等其實(shí)也算是更為廣義的需求。 所以,我們開展軟件測試工作必須從需求出發(fā)。首先要全面了解需求,包括其背景、關(guān)聯(lián)性、用戶特點(diǎn)等;其次要深入挖掘隱含的需求和關(guān)聯(lián),包括某個需求隱含了對于系統(tǒng)現(xiàn)有功能的修改等等。 我們只有在全面、深入了解需求的基礎(chǔ)上,才能設(shè)計全面、有效的測試用例來進(jìn)行測試,以滿足對于軟件產(chǎn)品滿足需求的基本質(zhì)量保證。
測試依據(jù)是測試設(shè)計
我們進(jìn)行測試設(shè)計的依據(jù)是對于軟件產(chǎn)品需求的全面和深入分析,但是需求決不全是軟件測試的依據(jù)。因?yàn)槲覀儾粌H要驗(yàn)證需求,而且要驗(yàn)證設(shè)計。比如程序?qū)崿F(xiàn)的異常(指針越界、字符串copy越界等等)判斷,是保證軟件產(chǎn)品可以正常運(yùn)行的必要實(shí)現(xiàn),但是我們在需求中是無法描述和分析出來的。 那么進(jìn)行測試的依據(jù)是軟件產(chǎn)品的設(shè)計或者是代碼嗎?當(dāng)然也不是,因?yàn)槿绻罁?jù)開發(fā)人員的設(shè)計或代碼來進(jìn)行測試的話,設(shè)計或代碼正確,但是不符合需求邏輯的錯誤就無法發(fā)現(xiàn)。而且,如果依據(jù)設(shè)計或代碼進(jìn)行測試的話,那么也就違背了我們進(jìn)行軟件測試的基本假設(shè)——有罪推斷。 所以,我們進(jìn)行軟件測試的依據(jù)應(yīng)該是我們根據(jù)對需求的全面深入分析和對設(shè)計實(shí)現(xiàn)的了解,兩相綜合產(chǎn)生的測試設(shè)計。 正因?yàn)槿绱?#xff0c;測試是否充分和有效的根源也是測試設(shè)計。所以,我們的工作重點(diǎn)也是測試用例設(shè)計。
測試人員只是驗(yàn)證質(zhì)量
首先要明確的是測試人員無法保證軟件產(chǎn)品的質(zhì)量,軟件產(chǎn)品的質(zhì)量是通過參與軟件過程的各方聯(lián)合共同保證的。 有兩個原因:一、由于軟件測試人員不是產(chǎn)品設(shè)計人員和開發(fā)人員,所以無法做到比他們更了解產(chǎn)品需求和產(chǎn)品設(shè)計,如果他們都無法保證需求和設(shè)計沒有問題,那么測試人員就更無法保證了;二、軟件測試位于軟件開發(fā)生命周期的末端,如果依靠測試人員來發(fā)現(xiàn)所有的bug來保證質(zhì)量的話,那么風(fēng)險就會后置,導(dǎo)致問題修復(fù)的成本增加,同時也增加了修復(fù)問題帶來新問題的風(fēng)險,因?yàn)樵陧?xiàng)目末端是不可能投入過多的成本來進(jìn)行那怕接近全面覆蓋的測試的。 也正因?yàn)槿绱?#xff0c;我們是無法決定一個軟件產(chǎn)品質(zhì)量的好壞的,只有PM設(shè)計出產(chǎn)品需求,RD編碼完成,我們才能夠通過我們的工作,促進(jìn)PM、RD改進(jìn)他們的產(chǎn)品、系統(tǒng),從而達(dá)到產(chǎn)品、系統(tǒng)的高質(zhì)量。 所以,我們才要參與需求評審和設(shè)計評審,大家一起努力,各個階段由專業(yè)化的人員來保證階段的質(zhì)量,將問題盡量在前期發(fā)現(xiàn)。而測試人員只能根據(jù)前期分析的結(jié)果,設(shè)計出測試用例,來驗(yàn)證軟件產(chǎn)品在事先設(shè)計或后續(xù)補(bǔ)充的測試用例上不存在問題。 但是“測試人員只是驗(yàn)證質(zhì)量”決不是指我們可以不為產(chǎn)品質(zhì)量負(fù)責(zé)。 因?yàn)榇蠹?#xff08;PM、RD、QA、OP等)工作的最終目標(biāo)是產(chǎn)品質(zhì)量保證,這個目標(biāo)是大家共同的目標(biāo),所以每個人都必須為這個目標(biāo)負(fù)責(zé)。只是由于咱們處于軟件生命周期的最后一個環(huán)節(jié),所以目前看起來產(chǎn)品質(zhì)量都是由我們來負(fù)責(zé)和把握的,實(shí)際上,如果最終發(fā)布的軟件產(chǎn)品出現(xiàn)了問題,那么無論如何我們肯定是有責(zé)任的。
測試的內(nèi)容一定是確定的
既然軟件測試只能驗(yàn)證質(zhì)量,那么所要驗(yàn)證的內(nèi)容必然是確定的,或者說是概率確定的。否則也就無從驗(yàn)證了。 因此,模糊不確定的需求我們無法驗(yàn)證,輸出結(jié)果沒有任何規(guī)律的程序設(shè)計我們也無法驗(yàn)證,這就是軟件產(chǎn)品的可測性判斷。也因此,我們進(jìn)行需求評審和設(shè)計評審時是一定要保證這個基本點(diǎn)的。
測試的目標(biāo)不是沒有bug
綜上所述,進(jìn)行軟件測試的目標(biāo)不是通過測試使得軟件產(chǎn)品不存在bug(這是不可能達(dá)成的),而是我們根據(jù)確定的需求、確定的設(shè)計和確定的測試用例驗(yàn)證出的結(jié)果不存在bug。 同樣的,測試人員的目標(biāo)也不是在測試執(zhí)行過程中去找bug,而是運(yùn)用測試思維,使用一定的測試方法,盡可能早地在需求階段、設(shè)計階段將所有的bug找出來,真正測試執(zhí)行階段只是驗(yàn)證不存在用例所描述的那樣的bug,而不是通過用例去發(fā)現(xiàn)bug。
測試人員的工作方法
通過前文的分析,我么可以總結(jié)出測試人員的工作方法是這樣的: 首先對需求進(jìn)行全面深入地分析,接著去分析評審程序設(shè)計,假定每個需求的功能點(diǎn)開發(fā)人員的實(shí)現(xiàn)都是存在問題的,同時也假定每一個程序設(shè)計的編碼實(shí)現(xiàn)(無論是方式還是代碼寫作)都是存在問題的,然后根據(jù)這些假定設(shè)計測試用例,最后執(zhí)行這些測試用例,驗(yàn)證程序不存在那些問題。 從中不難看出,我們同開發(fā)人員同時由需求出發(fā),開發(fā)人員產(chǎn)生詳細(xì)設(shè)計和代碼,我們產(chǎn)生方案和測試用例,然后開發(fā)人員提交被測程序,由測試人員同時運(yùn)行被測程序和測試用例,來動態(tài)驗(yàn)證程序質(zhì)量。所以,測試方案和測試用例設(shè)計的過程等價于開發(fā)人員進(jìn)行詳細(xì)設(shè)計和代碼開發(fā)的過程,兩相對比可以看出,測試人員最重要也是最核心的工作就是測試設(shè)計。 因此,測試人員的工作可以重點(diǎn)描述成:是一個運(yùn)用測試的思維和各種測試?yán)碚摷胺椒?#xff0c;將所測試的軟件產(chǎn)品的每一個功能都改變成一組特定的輸入和一組特定的輸出一一確定對應(yīng)的形式,形成測試用例,然后待開發(fā)人員提交測試后,在測試環(huán)境部署被測程序,根據(jù)測試用例進(jìn)行主動測試的過程。
原文地址:http://www.51testing.com/html/40/n-807640.html
轉(zhuǎn)載于:https://www.cnblogs.com/xinyuxin912/p/3511420.html
總結(jié)
以上是生活随笔為你收集整理的【转】测试人员的思想理念和工作方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归与非递归法实现链表相加 CC150
- 下一篇: php配置问题汇总