軟件測試工作的核心技術(shù)在哪里?
測試這行,如果按照客觀(guān)規律總的來(lái)說(shuō)是:入門(mén)容易,提升難。 有些人做測試8-9年了,其針對同一個(gè)產(chǎn)品的測試思路和方法,與測試只有2-3年的人看不出有什么區別。于是行業(yè)中有了一種誤區,認為測試技術(shù)的提升主要集中在對性能測試工具的使用及腳本開(kāi)發(fā),自動(dòng)化測試開(kāi)發(fā),測試工具開(kāi)發(fā)領(lǐng)域。僅個(gè)人愚見(jiàn):測試工具開(kāi)發(fā)和自動(dòng)化測試開(kāi)發(fā) 主要還是開(kāi)發(fā)技術(shù)而不是測試技術(shù),從沒(méi)有做過(guò)測試分析,測試設計的開(kāi)發(fā)人員也能勝任。如果僅狹義地認為測試技術(shù)的發(fā)展只在自動(dòng)化測試框架開(kāi)發(fā)或測試工具開(kāi)發(fā)上,那么從邏輯上來(lái)說(shuō),任何一個(gè)開(kāi)發(fā)人員都可以成為測試技術(shù)大拿。當然我想,沒(méi)有人會(huì )真正這么認為。
開(kāi)發(fā)工作的目標從一開(kāi)始是非常明確的,要實(shí)現什么,要做什么,做到什么程度大多數情況下都是清晰的,最大的困難則是如何實(shí)現如何做到,總的來(lái)說(shuō)是一個(gè)不斷聚焦的過(guò)程。而測試工作的目標呢?其實(shí)很多時(shí)候,并不如開(kāi)發(fā)那么明確,例如同樣一個(gè)性能指標,開(kāi)發(fā)很清楚要通過(guò)實(shí)現什么算法來(lái)達到目標,而測試則需要對該性能指標先進(jìn)行測試分析,再進(jìn)行測試設計,可是測試分析做到什么程度卻是一個(gè)發(fā)散的過(guò)程, 2小時(shí)也可以,2天也不夠,這就導致了測試質(zhì)量的浮動(dòng)范圍是非常大的,由于開(kāi)發(fā)和項目經(jīng)理通常對測試設計并不了解,也無(wú)法了解(測試其實(shí)是一個(gè)專(zhuān)業(yè)度非常高的領(lǐng)域),因此會(huì )導致測試部的工作質(zhì)量很難在過(guò)程中真正去度量和監督。
從哲學(xué)上來(lái)說(shuō),確定性的規律往往難度不大,不確定性的規律往往說(shuō)明它是一個(gè)復雜系統。因此,我個(gè)人認為:測試技術(shù)領(lǐng)域最難的技術(shù)應該是測試分析和設計。從另一個(gè)角度來(lái)看,測試價(jià)值的體現最主要還是保障自己組織開(kāi)發(fā)的軟件在關(guān)鍵應用時(shí)不要出故障,給組織造成商業(yè)損失。所以,有效的測試覆蓋率是最重要的測試工作目標(而不是自動(dòng)化測試率),需要說(shuō)明的是測試覆蓋率不等于代碼覆蓋率。通過(guò)單元測試達到代碼覆蓋率100%了就能保障產(chǎn)品無(wú)bug其實(shí)是一個(gè)誤區,因為很多組織會(huì )為了達到單元覆蓋率而去開(kāi)發(fā)單元測試代碼,單元測試代碼或單元測試設計的質(zhì)量只能保障消除產(chǎn)品編碼的問(wèn)題,發(fā)現產(chǎn)品設計的問(wèn)題則往往會(huì )很困難。而發(fā)現產(chǎn)品設計問(wèn)題的最主要方法還得需要基于黑盒的測試分析和設計。
如何做好測試分析和測試設計,根據我的經(jīng)驗和體會(huì ),建議測試分析和測試設計主要通過(guò)3個(gè)維度來(lái)做,則可以大致達到一個(gè)比較高的有效測試覆蓋率:
維度一:從用戶(hù)實(shí)際使用的場(chǎng)景和習慣入手,開(kāi)發(fā)一批測試用例;
優(yōu)點(diǎn): 可以覆蓋到主要基本場(chǎng)景;
不足: 從事場(chǎng)景分析的人無(wú)法做到了解用戶(hù)所有的場(chǎng)景,必定受參與測試分析資源限制會(huì )有場(chǎng)景遺漏;
維度二:通過(guò)測試對象內部實(shí)現流程的路徑及依賴(lài)關(guān)系分析入手,開(kāi)發(fā)一批測試用例;
優(yōu)點(diǎn):可填補維度一的部分遺漏場(chǎng)景,特別是異常處理和分支交互處理的場(chǎng)景;
不足:分析階段主要精力會(huì )被局限在內部流程的熟悉和分析中,從而也會(huì )遺漏真實(shí)環(huán)境中的一些偶然小概率事件;
維度三:依賴(lài)基于經(jīng)驗的測試分析和設計,例如:錯誤猜測法或探索性測試法;
優(yōu)點(diǎn): 給維度二再做一次補充測試分析和設計;
不足: 維度三效果的質(zhì)量高低取決于組織內部經(jīng)驗的積累量及測試人員思維的發(fā)散能力和創(chuàng )造性;
總得來(lái)說(shuō):無(wú)論是功能測試還是各種專(zhuān)項測試,依次使用以上3個(gè)維度的測試分析和設計,基本上能覆蓋到被測對象的絕大部分應用場(chǎng)景,充分保障產(chǎn)品質(zhì)量,減少問(wèn)題遺漏。
因此:測試的核心技術(shù)是測試分析和測試設計的能力,它決定了后續所有測試活動(dòng)的質(zhì)量及效果。同時(shí),要做好一個(gè)測試任務(wù),掌握廣泛的測試類(lèi)型也是必要的核心技術(shù),如:如何給每個(gè)測試對象做細做深壓力測試,長(cháng)時(shí)間測試,健壯性測試也是決定項目測試質(zhì)量的關(guān)鍵所在。我本人不相信隨便做做的壓力測試設計和健壯性測試設計能夠保障產(chǎn)品實(shí)際應用表現良好。
測試活動(dòng)的質(zhì)量或者一個(gè)測試工程師技術(shù)水平如何將主要取決于:測試分析和設計的深度及系統化,以及掌握廣泛的專(zhuān)項測試類(lèi)型。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/