周六項(xiàng)目發(fā)生了一起事故,一個(gè)簡單的服務(wù)器修改功能,因?yàn)殚_發(fā)過于自信,沒有通知測試,直接發(fā)布到外網(wǎng),導(dǎo)致外發(fā)版幾萬用戶的手機(jī)崩潰,造成了一場工作事故。
雖然后期查明是因?yàn)槌绦騿T的疏忽導(dǎo)致的參數(shù)錯(cuò)誤,但是依舊暴露出很多流程上的問題,特別是凸顯了測試的重要性。今天就帶大家認(rèn)識(shí)一下低調(diào)的測試工程師。
測試工程師
測試是產(chǎn)品上線環(huán)節(jié)中重要的一部分,伴隨著整個(gè)產(chǎn)品的生命周期,因此產(chǎn)品測試是很重要的一個(gè)環(huán)節(jié),需要特殊的人員從事相關(guān)測試工作,這部分人就是測試工程師。
目前所有的互聯(lián)網(wǎng)公司都有測試工程師。測試工程師是產(chǎn)品上線的最后一環(huán),對用戶負(fù)責(zé),是“上帝”的品菜師,他們的定位是產(chǎn)品把關(guān)者。
主要職責(zé):
測試工程師的主要職責(zé)分以下幾部分:
1.編寫測試計(jì)劃、規(guī)劃詳細(xì)的測試方案、編寫測試用例。
2. 根據(jù)測試計(jì)劃搭建和維護(hù)測試環(huán)境;
3. 執(zhí)行測試工作,提交測試報(bào)告。包括編寫用于測試的自動(dòng)測試腳本,完整地記錄測試結(jié)果,編寫完整的測試報(bào)告等相關(guān)的技術(shù)文檔,;
4.對測試中發(fā)現(xiàn)的問題進(jìn)行詳細(xì)分析和準(zhǔn)確定位,與開發(fā)人員討論缺陷解決方案。
5.提出對產(chǎn)品的進(jìn)一步改進(jìn)的建議,并評估改進(jìn)方案是否合理;對測試結(jié)果進(jìn)行總結(jié)與統(tǒng)計(jì)分析,對測試進(jìn)行跟蹤,并提出反饋意見。
6.為業(yè)務(wù)部門提供相應(yīng)技術(shù)支持,確保軟件質(zhì)量指標(biāo)。
從測試工程師(以下簡稱測試)的職能定義來看,優(yōu)秀的測試工程師,一定是半個(gè)產(chǎn)品+半個(gè)開發(fā)。既要求對產(chǎn)品足夠了解,包括內(nèi)部邏輯和界面顯示,這也是產(chǎn)品測試的基礎(chǔ);也要了解部分開發(fā)代碼,能夠?qū)Υa優(yōu)差做出評估,并且給開發(fā)提供優(yōu)化方案。整體來說,測試要求掌握的技能比較寬泛,從基礎(chǔ)的編寫自動(dòng)測試腳本程序,到進(jìn)一步拓展編程語言、操作系統(tǒng)、網(wǎng)絡(luò)與數(shù)據(jù)庫方面的技能。
隨著技能的提升和經(jīng)驗(yàn)的積累,測試屬于越來越吃香的職業(yè),優(yōu)秀的測試人員能夠?qū)栴}消滅在產(chǎn)品開發(fā)階段,極大的節(jié)省開發(fā)成本和后期維護(hù)成本。
測試方法
從思維出發(fā)點(diǎn)來說,測試主要可以分為兩類:黑盒測試和白盒測試。
黑盒測試(基礎(chǔ)功能測試)
黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否都能正常使用。在測試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。
具體的黑盒測試方法包括等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測法、因果圖法、判定表驅(qū)動(dòng)法、正交試驗(yàn)設(shè)計(jì)法、功能圖法、場景法等。其中常用的黑盒測試防范有等價(jià)類劃分法、錯(cuò)誤推測法和因果圖法。
1、等價(jià)類劃分法:
等價(jià)類劃分法假設(shè)各部分是獨(dú)立且同等重要,將一個(gè)產(chǎn)品拆分成若干個(gè)部分,每個(gè)部分有一名負(fù)責(zé)人進(jìn)行測試。比如我們的項(xiàng)目就是用的是此類測試方法,將產(chǎn)品分為通知提示、帳號授權(quán)、流量領(lǐng)取、高速使用和帳號解綁等流程,每一部分有一名測試同事負(fù)責(zé),保證該部分功能的正常。
2、錯(cuò)誤推測法
錯(cuò)誤推測法是基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯(cuò)誤,從而有針對性的設(shè)計(jì)測試用例的方法。
一些經(jīng)驗(yàn)豐富的測試在進(jìn)行項(xiàng)目驗(yàn)收的時(shí)候,通常采用此方法,針對容易出錯(cuò)的節(jié)點(diǎn)進(jìn)行重點(diǎn)測試。如一些支付應(yīng)用軟件的授權(quán)和支付會(huì)成為支付的關(guān)鍵節(jié)點(diǎn)。
3、因果圖法
前面的等價(jià)類劃分法和錯(cuò)誤推測法都注重節(jié)點(diǎn)的測試,未考慮條件之間的關(guān)系,各個(gè)步驟直接的結(jié)合情況。因果圖法
是按照前置條件、結(jié)果和后置條件的流程關(guān)系列出所有的條件組合,進(jìn)行測試。所有的條件組合就是因果圖法的測試用例。比如登錄—用戶名錯(cuò)誤——返回“用戶名錯(cuò)誤”提醒,就是一條因果圖法的測試用例。
值得注意的時(shí),各種不同的測試方法通常是相互交叉使用,比如在使用等價(jià)類型分法的基礎(chǔ)上,對各個(gè)部分進(jìn)行因果圖法,在各個(gè)部分的連接處做錯(cuò)誤推測法重點(diǎn)測試。
白盒測試(內(nèi)部邏輯測試)
白盒測試又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動(dòng)測試或基于代碼的測試。白盒測試是一種測試用例設(shè)計(jì)方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運(yùn)作的。"白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試。這一方法是把測試對象看作一個(gè)打開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試,通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致.白盒測試一般需要技術(shù)基礎(chǔ)支持,同時(shí)需要相關(guān)工具配合,比如日志抓去工具。
白盒測試的測試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。其中一基本路徑測試法使用最為廣泛。
1、基本路徑測試方法
基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例的方法,同黑盒測試中因果圖法類似。
測試用例
對測試工程師來說,測試用例是產(chǎn)品測試的核心。測試用例是對所有的界面顯示、交互效果和功能邏輯匯總。目的是能夠?qū)④浖y試的行為轉(zhuǎn)化成可管理的模式,同時(shí)測試用例也是將測試具體量化的方法之一,不同類別的軟件,測試用例是不同的。一些大型項(xiàng)目,測試用例能達(dá)到幾萬條的數(shù)目。
測試用例的多少和產(chǎn)品質(zhì)量的“堅(jiān)挺”程度相關(guān),一般情況下,測試用例越多越細(xì)致,對應(yīng)產(chǎn)品邏輯會(huì)越縝密,在上線之后越能經(jīng)得起各式各樣環(huán)境的考驗(yàn),對用戶來說,產(chǎn)品的可用度就越高,產(chǎn)品質(zhì)量就越堅(jiān)挺。
結(jié)語
最后,當(dāng)我們在調(diào)戲產(chǎn)品狗、程序猿的時(shí)候,不要忘記你身邊的“測試貓”,他們縝密而低調(diào),忍耐而細(xì)心,專業(yè)的扮演好產(chǎn)品上線管家的角色。毫不夸張的說,每一個(gè)成功的產(chǎn)品背后都有一名偉大的測試工程師。
------------------
作者:無邪(迅雷產(chǎn)品經(jīng)理),微信:devillnote