測(cè)試萬能公式
y1,y2,y3,…,yn= f(x1,x2,x3,…,xn)

須理清“SUT的功能”,“SUT的所有輸入”,“每一個(gè)輸入的取值范圍”,“SUT的所有輸出”,“根據(jù)功能推出每一個(gè)輸出的預(yù)期值”。
想要找齊所有的x和y,就必須要求你對(duì)系統(tǒng)非常熟悉,對(duì)流程非常熟悉。系統(tǒng)依賴如何?流程調(diào)用,系統(tǒng)如何處理、交互?產(chǎn)生哪些反應(yīng)?
典型的輸入有:調(diào)用請(qǐng)求,讀DB數(shù)據(jù),讀緩存數(shù)據(jù),被依賴系統(tǒng)的返回?cái)?shù)據(jù),收到的異步消息等;典型的輸出有:寫DB,寫緩存,寫日志,調(diào)用依賴系統(tǒng)的請(qǐng)求,發(fā)出的異步消息等。所以這個(gè)需要你對(duì)你的被測(cè)系統(tǒng)和流程必須非常非常的熟悉。
一切測(cè)試都算黑盒,只是這個(gè)“盒子”的大小不同而已。(如果,你擴(kuò)展到從源碼編譯到字節(jié)碼,機(jī)器碼,到CPU指令集,到OS硬件驅(qū)動(dòng),到半導(dǎo)體電路的話)
單元測(cè)試中“盒子”比較小,就是一個(gè)或者若干個(gè)方法;接口測(cè)試的“盒子”就會(huì)擴(kuò)大到應(yīng)用級(jí)別;集成測(cè)試的“盒子”就會(huì)擴(kuò)大到系統(tǒng)級(jí)別。
自動(dòng)化測(cè)試
機(jī)器可以幫助我們完成幾乎任何的單一形態(tài)的、重復(fù)性的、非智能的測(cè)試方面,這樣我們才能夠?qū)r(shí)間和精力集中在多形態(tài)的、可變的、智能的測(cè)試方面。
自動(dòng)化測(cè)試分層

自動(dòng)化測(cè)試框架
自動(dòng)化測(cè)試框架的出現(xiàn),根本原因是為了復(fù)用代碼,提高自動(dòng)化測(cè)試的效率。同時(shí)一個(gè)設(shè)計(jì)良好的測(cè)試框架,也能通過開放給用戶的接口,指導(dǎo)用戶編寫出風(fēng)格統(tǒng)一,便于維護(hù)擴(kuò)展的測(cè)試代碼。
衡量一個(gè)自動(dòng)化框架的品質(zhì),就看它在多大程度上起到上面兩個(gè)作用。
工具平臺(tái)
實(shí)踐出真知,多一些傾聽、多一些嘗試、多一些溝通、多一些思考,多走進(jìn)業(yè)務(wù),多尋求業(yè)務(wù)的痛點(diǎn),沒有業(yè)務(wù)支撐的工具平臺(tái)也許只是空中樓閣。
數(shù)據(jù)準(zhǔn)備服務(wù)
基本上每個(gè)產(chǎn)品線都有自己的數(shù)據(jù)準(zhǔn)備工具(造數(shù)據(jù)),如,數(shù)據(jù)工廠。
Bug
什么是Bug?只要不能滿足預(yù)期的東西都可以稱之為Bug。所以,Bug也是廣義的Bug,可以分為功能Bug,性能Bug,安全Bug,甚至流程Bug。對(duì)于一個(gè)Bug,優(yōu)秀的測(cè)試工程師要能夠定位Bug原因,并給出解決方案。
對(duì)于功能性Bug,沒什么好說的,測(cè)試工程師的大部分時(shí)間都花在了這里。Bug定位的方法,主要的手段就是看日志,Debug。
對(duì)于非功能性Bug,就有點(diǎn)復(fù)雜了,不能一概而論,但還是有方法的。如性能測(cè)試中,發(fā)現(xiàn)程序卡住了,你會(huì)猜測(cè)是否出現(xiàn)了線程死鎖,對(duì)于java應(yīng)用,你需要使用一些jvm工具去查看線程堆棧,根據(jù)線程狀態(tài)做出判斷。只要掌握了一些非功能性Bug的定位方法,定位起來也是有跡可循,最后做到游刃有余的。Bug的定位和解決考驗(yàn)的不僅是測(cè)試人員的技術(shù)深度,更是知識(shí)的廣度,所以這一點(diǎn)也是判斷一個(gè)測(cè)試工程師能力水平的重要方面。
另外,對(duì)于一些流程上面的問題,考驗(yàn)的又是測(cè)試工程師的溝通、協(xié)調(diào)能力。因?yàn)檎娴暮茈y,主導(dǎo)權(quán)在PD、開發(fā),作為最后一個(gè)環(huán)節(jié)的測(cè)試,有時(shí)候真的需要用一些溝通技巧,和修煉出的人格魅力去說服和推進(jìn)。