惠州建設(shè)網(wǎng)站搜索引擎營(yíng)銷案例分析
軟件測(cè)試人員的工作主要是檢測(cè)軟件系統(tǒng)中的存在的BUG,但并不是毫無(wú)邏輯的盲目抓瞎。學(xué)會(huì)運(yùn)用測(cè)試思維去完成測(cè)試工作,會(huì)使你的工作事半功倍。
01 軟件測(cè)試的前提假設(shè)
測(cè)試人員進(jìn)行軟件測(cè)試的基本假設(shè)是“有罪推斷”。即:認(rèn)為被測(cè)程序一定是有bug的,而且每個(gè)功能點(diǎn)的實(shí)現(xiàn)都存在bug,而且一定存在嚴(yán)重的bug。請(qǐng)牢記這個(gè)假設(shè)。
在實(shí)際工作中,一旦在日后的工作過(guò)程中產(chǎn)生了這樣的認(rèn)識(shí):“這個(gè)功能很簡(jiǎn)單,肯定不會(huì)出現(xiàn)問(wèn)題,就不再測(cè)試了?!被蛘摺斑@個(gè)功能上一輪剛測(cè)試過(guò),當(dāng)時(shí)就沒(méi)有問(wèn)題,這一輪應(yīng)該也不會(huì)有問(wèn)題,就不用測(cè)試了?!?/p>
等等諸如此類的意識(shí),那么你就有90%的概率導(dǎo)致漏測(cè),造成線上問(wèn)題。其原因也正是這個(gè)測(cè)試工作的基本前提假設(shè)。一旦被違背,就從開端導(dǎo)致了測(cè)試工作存在問(wèn)題,所以真正出現(xiàn)問(wèn)題的可能性也就很大了。
正因?yàn)檐浖y(cè)試的這個(gè)前提假設(shè),在導(dǎo)致了如果我們同開發(fā)人員看待程序的角度和出發(fā)點(diǎn)完全不同。因?yàn)?#xff0c;通常情況下一個(gè)有自信心的開發(fā)人員不會(huì)認(rèn)為自己寫的代碼全部都有問(wèn)題,他一定是認(rèn)為自己的代碼沒(méi)有問(wèn)題了才交付測(cè)試的。
因此,如果要從事軟件測(cè)試工作,那么就必須牢記并運(yùn)用該假設(shè)。這個(gè)前提假設(shè)要求我們?cè)趯?shí)施測(cè)試的過(guò)程中不能放過(guò)任何一個(gè)細(xì)小問(wèn)題。
比如,某個(gè)程序運(yùn)行時(shí)在控制臺(tái)打印了一些錯(cuò)誤信息,但是實(shí)際上該程序的運(yùn)行和功能都沒(méi)有問(wèn)題,如果我們摒棄有罪推斷的假設(shè),從合理實(shí)現(xiàn)的角度去分析,那么就可以認(rèn)為這是開發(fā)人員對(duì)于日志打印的輸出控制沒(méi)有做好導(dǎo)致的,屬于微不足道的小問(wèn)題,不需提出即可。
于是,這就使你有90%的可能性錯(cuò)過(guò)了發(fā)現(xiàn)其編碼上的異常分支判斷錯(cuò)誤導(dǎo)致的重大問(wèn)題。
此類案例更常見與那些小概率問(wèn)題,即在測(cè)試過(guò)程中偶爾出現(xiàn),但確實(shí)很難、甚至無(wú)法復(fù)現(xiàn)的問(wèn)題,如果我們同樣摒棄有罪推斷的假設(shè),這些問(wèn)題也會(huì)從我們手邊溜走,跑到線上由用戶發(fā)現(xiàn)。相信諸如此類的教訓(xùn)在每一個(gè)測(cè)試人員那里都不是少數(shù)。所以,請(qǐng)轉(zhuǎn)變思維,牢記這個(gè)假設(shè)。
02 測(cè)試工作的開展思路
1)從需求出發(fā)
無(wú)論什么樣的軟件產(chǎn)品,其設(shè)計(jì)開發(fā)的目的必然是為了滿足一定的需求,這種需求或者是用戶提出的,或者是某個(gè)關(guān)聯(lián)系統(tǒng)提出的。因此,軟件產(chǎn)品最終是為了交付給用戶使用的,也因此可以滿足需求是對(duì)于軟件產(chǎn)品質(zhì)量的基本保證,其它如擴(kuò)展性、維護(hù)性等等其實(shí)也算是更為廣義的需求。所以,我們開展軟件測(cè)試工作必須從需求出發(fā)。
首先要全面了解需求,包括其背景、關(guān)聯(lián)性、用戶特點(diǎn)等;其次要深入挖掘隱含的需求和關(guān)聯(lián),包括某個(gè)需求隱含了對(duì)于系統(tǒng)現(xiàn)有功能的修改等等。
我們只有在全面、深入了解需求的基礎(chǔ)上,才能設(shè)計(jì)全面、有效的測(cè)試用例來(lái)進(jìn)行測(cè)試,以滿足對(duì)于軟件產(chǎn)品滿足需求的基本質(zhì)量保證。
2)測(cè)試依據(jù)是測(cè)試設(shè)計(jì)?
我們進(jìn)行測(cè)試設(shè)計(jì)的依據(jù)是對(duì)于軟件產(chǎn)品需求的全面和深入分析,但是需求決不全是軟件測(cè)試的依據(jù)。因?yàn)槲覀儾粌H要驗(yàn)證需求,而且要驗(yàn)證設(shè)計(jì)。
比如,程序?qū)崿F(xiàn)的異常(指針越界、字符串copy越界等等)判斷,是保證軟件產(chǎn)品可以正常運(yùn)行的必要實(shí)現(xiàn),但是我們?cè)谛枨笾惺菬o(wú)法描述和分析出來(lái)的。那么進(jìn)行測(cè)試的依據(jù)是軟件產(chǎn)品的設(shè)計(jì)或者是代碼嗎?
當(dāng)然也不是。因?yàn)槿绻罁?jù)開發(fā)人員的設(shè)計(jì)或代碼來(lái)進(jìn)行測(cè)試的話,設(shè)計(jì)或代碼正確,但是不符合需求邏輯的錯(cuò)誤就無(wú)法發(fā)現(xiàn)。而且,如果依據(jù)設(shè)計(jì)或代碼進(jìn)行測(cè)試的話,那么也就違背了我們進(jìn)行軟件測(cè)試的基本假設(shè)——有罪推斷。
所以,我們進(jìn)行軟件測(cè)試的依據(jù)應(yīng)該是:我們根據(jù)對(duì)需求的全面深入分析和對(duì)設(shè)計(jì)實(shí)現(xiàn)的了解,兩相綜合產(chǎn)生的測(cè)試設(shè)計(jì)。正因?yàn)槿绱?#xff0c;測(cè)試是否充分和有效的根源也是測(cè)試設(shè)計(jì)。所以,我們的工作重點(diǎn)也是測(cè)試用例設(shè)計(jì)。
3)測(cè)試人員只是驗(yàn)證質(zhì)量?
首先要明確的是,測(cè)試人員無(wú)法保證軟件產(chǎn)品的質(zhì)量,軟件產(chǎn)品的質(zhì)量是通過(guò)參與軟件過(guò)程的各方聯(lián)合共同保證的。有兩個(gè)原因:
① 由于軟件測(cè)試人員不是產(chǎn)品設(shè)計(jì)人員和開發(fā)人員,所以無(wú)法做到比他們更了解產(chǎn)品需求和產(chǎn)品設(shè)計(jì),如果他們都無(wú)法保證需求和設(shè)計(jì)沒(méi)有問(wèn)題,那么測(cè)試人員就更無(wú)法保證了;
② 軟件測(cè)試位于軟件開發(fā)生命周期的末端,如果依靠測(cè)試人員來(lái)發(fā)現(xiàn)所有的bug來(lái)保證質(zhì)量的話,那么風(fēng)險(xiǎn)就會(huì)后置,導(dǎo)致問(wèn)題修復(fù)的成本增加,同時(shí)也增加了修復(fù)問(wèn)題帶來(lái)新問(wèn)題的風(fēng)險(xiǎn),因?yàn)樵陧?xiàng)目末端是不可能投入過(guò)多的成本來(lái)進(jìn)行那怕接近全面覆蓋的測(cè)試的。
也正因?yàn)槿绱?#xff0c;我們是無(wú)法決定一個(gè)軟件產(chǎn)品質(zhì)量的好壞的,只有PM設(shè)計(jì)出產(chǎn)品需求,RD編碼完成,我們才能夠通過(guò)我們的工作,促進(jìn)PM、RD改進(jìn)他們的產(chǎn)品、系統(tǒng),從而達(dá)到產(chǎn)品、系統(tǒng)的高質(zhì)量。
所以,我們才要參與需求評(píng)審和設(shè)計(jì)評(píng)審,大家一起努力,各個(gè)階段由專業(yè)化的人員來(lái)保證階段的質(zhì)量,將問(wèn)題盡量在前期發(fā)現(xiàn)。
測(cè)試人員只能根據(jù)前期分析的結(jié)果,設(shè)計(jì)出測(cè)試用例,來(lái)驗(yàn)證軟件產(chǎn)品在事先設(shè)計(jì)或后續(xù)補(bǔ)充的測(cè)試用例上不存在問(wèn)題。但是“測(cè)試人員只是驗(yàn)證質(zhì)量”決不是指我們可以不為產(chǎn)品質(zhì)量負(fù)責(zé)。因?yàn)榇蠹?#xff08;PM、RD、QA、OP等)工作的最終目標(biāo)是產(chǎn)品質(zhì)量保證,這個(gè)目標(biāo)是大家共同的目標(biāo),所以每個(gè)人都必須為這個(gè)目標(biāo)負(fù)責(zé)。
只是由于咱們處于軟件生命周期的最后一個(gè)環(huán)節(jié),所以目前看起來(lái)產(chǎn)品質(zhì)量都是由我們來(lái)負(fù)責(zé)和把握的,實(shí)際上,如果最終發(fā)布的軟件產(chǎn)品出現(xiàn)了問(wèn)題,那么無(wú)論如何我們肯定是有責(zé)任的。
4)測(cè)試的內(nèi)容一定是確定的
軟件測(cè)試只能驗(yàn)證質(zhì)量,那么所要驗(yàn)證的內(nèi)容必然是確定的,或者說(shuō)是概率確定的,否則也就無(wú)從驗(yàn)證了。因此,模糊不確定的需求我們無(wú)法驗(yàn)證,輸出結(jié)果沒(méi)有任何規(guī)律的程序設(shè)計(jì)我們也無(wú)法驗(yàn)證,這就是軟件產(chǎn)品的可測(cè)性判斷。也因此,我們進(jìn)行需求評(píng)審和設(shè)計(jì)評(píng)審時(shí)是一定要保證這個(gè)基本點(diǎn)的。
5)測(cè)試的目標(biāo)不是沒(méi)有bug
綜上所述,進(jìn)行軟件測(cè)試的目標(biāo)不是通過(guò)測(cè)試使得軟件產(chǎn)品不存在bug(這是不可能達(dá)成的),而是我們根據(jù)確定的需求、確定的設(shè)計(jì)和確定的測(cè)試用例驗(yàn)證出的結(jié)果不存在bug。
同樣的,測(cè)試人員的目標(biāo)也不是在測(cè)試執(zhí)行過(guò)程中去找bug,而是運(yùn)用測(cè)試思維,使用一定的測(cè)試方法,盡可能早地在需求階段、設(shè)計(jì)階段將所有的bug找出來(lái),真正測(cè)試執(zhí)行階段只是驗(yàn)證不存在用例所描述的那樣的bug,而不是通過(guò)用例去發(fā)現(xiàn)bug。
03 測(cè)試人員的工作方法
通過(guò)前文的分析,我們可以總結(jié)出測(cè)試人員的工作方法是:
首先,對(duì)需求進(jìn)行全面深入地分析,接著去分析評(píng)審程序設(shè)計(jì),假定每個(gè)需求的功能點(diǎn)開發(fā)人員的實(shí)現(xiàn)都是存在問(wèn)題的;
同時(shí),也假定每一個(gè)程序設(shè)計(jì)的編碼實(shí)現(xiàn)(無(wú)論是方式還是代碼寫作)都是存在問(wèn)題的,
然后,根據(jù)這些假定設(shè)計(jì)測(cè)試用例,最后執(zhí)行這些測(cè)試用例,驗(yàn)證程序不存在那些問(wèn)題。
從中不難看出,我們同開發(fā)人員同時(shí)由需求出發(fā),開發(fā)人員產(chǎn)生詳細(xì)設(shè)計(jì)和代碼,我們產(chǎn)生方案和測(cè)試用例,然后開發(fā)人員提交被測(cè)程序,由測(cè)試人員同時(shí)運(yùn)行被測(cè)程序和測(cè)試用例,來(lái)動(dòng)態(tài)驗(yàn)證程序質(zhì)量。
所以,測(cè)試方案和測(cè)試用例設(shè)計(jì)的過(guò)程等價(jià)于開發(fā)人員進(jìn)行詳細(xì)設(shè)計(jì)和代碼開發(fā)的過(guò)程,兩相對(duì)比可以看出,測(cè)試人員最重要也是最核心的工作就是測(cè)試設(shè)計(jì)。
因此,測(cè)試人員的工作可以重點(diǎn)描述成:是一個(gè)運(yùn)用測(cè)試的思維和各種測(cè)試?yán)碚摷胺椒?#xff0c;將所測(cè)試的軟件產(chǎn)品的每一個(gè)功能都改變成一組特定的輸入和一組特定的輸出一一確定對(duì)應(yīng)的形式,形成測(cè)試用例,然后待開發(fā)人員提交測(cè)試后,在測(cè)試環(huán)境部署被測(cè)程序,根據(jù)測(cè)試用例進(jìn)行主動(dòng)測(cè)試的過(guò)程。
感謝每一個(gè)認(rèn)真閱讀我文章的人!!!
作為一位過(guò)來(lái)人也是希望大家少走一些彎路,如果你不想再體驗(yàn)一次學(xué)習(xí)時(shí)找不到資料,沒(méi)人解答問(wèn)題,堅(jiān)持幾天便放棄的感受的話,在這里我給大家分享一些自動(dòng)化測(cè)試的學(xué)習(xí)資源,希望能給你前進(jìn)的路上帶來(lái)幫助。
軟件測(cè)試面試文檔
我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來(lái)自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
?
? ? ? ? ? 視頻文檔獲取方式:
這份文檔和視頻資料,對(duì)于想從事【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過(guò)了最艱難的路程,希望也能幫助到你!以上均可以分享,點(diǎn)下方小卡片即可自行領(lǐng)取。