軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)-創(chuàng)新互聯(lián)

穿線測試對于測試界的一個重大創(chuàng)新在于,在白盒測試理論出現(xiàn)數(shù)十年以后,上海零一拼裝信息技術(shù)有限公司結(jié)合在測試理論方面十余年的潛心研究,率先提出了第二代覆蓋率技術(shù),這絕對不是一個口號,而是ZOA真正對于白盒測試的理解以及對于標準第三方測試服務(wù)的深度理解經(jīng)過數(shù)年的基礎(chǔ)研究以及2年有余的研發(fā)而推出的達到商用標準的技術(shù)?,F(xiàn)在先讓我們溫習下經(jīng)典的測試理論:

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都做網(wǎng)站、衛(wèi)輝網(wǎng)絡(luò)推廣、微信平臺小程序開發(fā)、衛(wèi)輝網(wǎng)絡(luò)營銷、衛(wèi)輝企業(yè)策劃、衛(wèi)輝品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供衛(wèi)輝建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:muchs.cn

1、測試方法論

黑盒功能測試法:

      黑盒功能測試法, 是把要測試的軟件看成一個“黑盒子”, 不管其內(nèi)部結(jié)構(gòu)如何以及以什么算法實現(xiàn)所要求提供的功能,而是按照需求的功能化要求, 設(shè)計相應(yīng)的測試用例(包括測試的輸入數(shù)據(jù)與條件設(shè)置和所預(yù)期的軟件運行輸出結(jié)果), 通過軟件運行后所給出的輸出(包括字符形式的輸出與圖象輸出)與所預(yù)期的結(jié)果進行人工或者自動化比較, 來驗證被測試軟件是否能給出正確的結(jié)果, 從而判斷該軟件是否滿足需求, 是否與該軟件系統(tǒng)的規(guī)格說明書和用戶手冊相關(guān)部分一致。

這一方法的優(yōu)點為:

(A)  能最直觀和直接地反映出所設(shè)計的軟件是否滿足需求;

(B)  即使沒有任何測試工具支援, 也能靠人工測試的方法完成;

其不足之處是:

(A)  這種測試方法難以找出某些特殊類型的錯誤。例如: 當對應(yīng)于某組輸入該被測軟件并不提供任何輸出信息時–可能只是改變了某種工作狀態(tài),如果其中的源代碼處理部分有錯誤, 就比較難找出來;

(B)  無法確定哪些測試用例有效或者無效 (所謂無效, 并不是說單獨使用某個測試用例時不能收到任何測試效果, 而是在于它和前面已經(jīng)使用過的測試用例一起使用時, 毫無貢獻, 只是重復(fù)了前面的測試用例已經(jīng)完成的測試);

(C)  具有無可避免的盲目性: 當軟件被修改后, 由于不知道哪些測試用例能測試到被直接修改過的模塊或者受修改過的模塊影響的模塊, 于是只好將所有測試用例再從頭運行一遍, 而且是動態(tài)運行,非常費時費力。

白盒結(jié)構(gòu)測試法

      白盒結(jié)構(gòu)測試法則與黑盒子功能測試方法相反: 它不管所被測試的軟件是否滿足需求,是否實現(xiàn)了所設(shè)計的功能, 而只注重該軟件內(nèi)部的結(jié)構(gòu), 以便設(shè)計足夠多的測試用例, 使得百分百或者盡可能多的程序組成要素能被測試到最少一次, 從而盡可能地將其中的軟件錯誤暴露出來。

白盒子結(jié)構(gòu)測試方法的優(yōu)點:

(A)  能夠找出許多用功能測試方法找不出來的軟件錯誤;

(B)  可以在整個軟件系統(tǒng)還未完成之前就分別對各個單元進行測試;

(C)  可以通過測試用例的有效性分析而實現(xiàn)測試用例的最小化, 以便大大地縮短軟件修改后的回復(fù)測試時間和費用;

(D)  可以同時進行內(nèi)存泄漏分析;

(E)   可以同時進行分支執(zhí)行頻度分析;

(F)   可以同時進行軟件復(fù)雜度分析;

(G)  可以同時進行數(shù)據(jù)和變量分析;

(H)  可以同時進行性能分析;

(I)    可以同時進行動態(tài)運行錯誤定位與執(zhí)行路徑追溯等。

白盒子結(jié)構(gòu)測試方法的缺點:

(1)    必須通過專門的測試工具來進行, 需要在用戶的軟件的拷貝上進行插樁(插入紀錄點)記錄各分支/條件是否被執(zhí)行過或者執(zhí)行過多少次的信息;

(2)    會使被測試的軟件的運行速度減慢;

(3)    需要增加被測試軟件運行時的資源開銷等。

關(guān)于軟件質(zhì)量的誤區(qū)

      有不少軟件開發(fā)組織和應(yīng)用軟件開發(fā)部門的管理者錯誤地認為,他們已經(jīng)對他們所開發(fā)的軟件做了充分的功能測試(又稱"黑盒測試")了,認為"我們的軟件質(zhì)量沒問題!" ——但是,專家們分析了大量"經(jīng)過充分的功能測試"的軟件后發(fā)現(xiàn),這些軟件中還有大約一半的程序分支從未被執(zhí)行過!

      為什么會這樣?原來,軟件的功能描述相對來說非常容易、非常簡單、也非常粗糙,無法詳細到用軟件內(nèi)部的具體實現(xiàn)邏輯結(jié)構(gòu)來說明;而要達到同樣的功能,軟件可以有許許多多等效的實現(xiàn)方法;特別是,軟件功能的實現(xiàn),與所使用的編寫程序的語言、所運行的操作系統(tǒng)環(huán)境、所用到的數(shù)據(jù)庫以及某些第三方的軟件都有關(guān)系。事實上,一個軟件中的許許多多程序分支跟該軟件本身的功能并沒有直接的聯(lián)系,而是用來處理各種可能出現(xiàn)的運行情況的。例如,所開發(fā)的軟件在運行中突然被終止時(系統(tǒng)斷電或者用戶打斷)如何保護已經(jīng)打開的文檔;在系統(tǒng)資源用盡之前如何提出警告;在所要用到的某些文件被意外地***了時如何應(yīng)付等等。這些程序分支在編寫中同樣存在著可能的錯誤,必須加于測試。而這通常都需要通過程序的結(jié)構(gòu)測試(又稱"白盒測試")來完成,而白盒結(jié)構(gòu)測試是必須借助于軟件測試工具才能進行的。

      ThreadingTest針對上訴的質(zhì)量誤區(qū)情況在測試過程中對于一組輸入,既判斷其輸出(如果有)是否與預(yù)期值一致,又判斷其執(zhí)行路徑是否與預(yù)期值一致。這樣一來,即使測試輸出結(jié)果與預(yù)期值一致,也可能有錯誤被找出來-如果所預(yù)期的執(zhí)行路徑與實際的執(zhí)行路徑不一致。例如,當測試一個計算器程序時,如果輸入是2+2,測到的結(jié)果是4,也可能是個錯誤-如果它的執(zhí)行路徑與預(yù)期值不一致:其最終的結(jié)果可能是2×2的路徑的輸出結(jié)果。由于TT可以測試有輸入而無輸出的場合(此時僅僅測試其執(zhí)行路徑是否與所期待的路徑一致),因而可以在任何開發(fā)階段使用,實現(xiàn)名副其實的全過程測試驅(qū)動。

2、第二代白盒覆蓋率技術(shù)

      覆蓋率技術(shù)是軟件測試的基本技術(shù)手段之一,但是數(shù)十年以來雖然也出現(xiàn)過多種理論方法以及商用產(chǎn)品,但其一直未在測試界主流應(yīng)用領(lǐng)域推廣,主要原因有以下幾點點:

(1)        通常覆蓋率結(jié)果在重新發(fā)布版本以后必須重新進行累計,對于龐大的程序相當于對歷史的測試全部歸零。

(2)        軟件測試的通常場景,是需要用測試工具對代碼進行分析,而軟件測試工具,尤其是可以達到商用標準的白盒測試工具一直被國外的幾大老牌軟件測試工具所壟斷,價格高昂,并且對于航天、軍事級別的測試需求來說信息安全可靠度差。

(3)        白盒測試操作難度大,測試人員很難理解,在測試團隊中很難推廣。

(4)        白盒測試工具都是單機版,很難再大型測試團隊中推廣使用。

(5)        覆蓋率和測試用例無任何關(guān)系,通常覆蓋率是執(zhí)行一系列動作的混合結(jié)果,而通常測試人員以及開發(fā)人員在定位問題的時候需要明確知道某個功能對應(yīng)的代碼覆蓋率。而這些傳統(tǒng)的白盒測試工具都無法支持。

(6)        隨著移動應(yīng)用在消費級、企業(yè)級的市場所占比重越來越大,一些老牌的測試工具針對移動環(huán)境(android、iOS)的測試明顯支持乏力甚至不提供支持。

上述原因讓第一代的覆蓋率技術(shù)很難真正的得到推廣。ThreadingTest針對第一代的覆蓋率技術(shù)的缺陷提出了全新的第二代覆蓋率技術(shù),并在覆蓋率方法的基礎(chǔ)上,設(shè)計了全新的應(yīng)用功能:

(1)        無需監(jiān)管測試場景:覆蓋率的統(tǒng)計完全可以由后臺程序運行收集,對測試人員實現(xiàn)透明化,測試人員只需要運行插樁后的程序,開啟程序的自動收集功能,即可無需監(jiān)管的進行常規(guī)測試,TT會自動將程序的測試執(zhí)行情況收集、分析、存入數(shù)據(jù)庫,配合TT就可以輕松的查看程序的實時覆蓋率。

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 實時監(jiān)控界面自動收集被測程序執(zhí)行情況并統(tǒng)計

(2)        雙向追溯是TT實現(xiàn)覆蓋率到達100%的重要工具,通過雙向追溯功能測試人員運行完所有用例可以發(fā)現(xiàn)所有未測試分支,并且和開發(fā)確認如何才能覆蓋,并增補用例。直到達到關(guān)鍵模塊的100%覆蓋的測試。對于較難覆蓋程序邏輯,開發(fā)以及測試人員可以作為重點進行代碼走查及聯(lián)合用例設(shè)計。圍繞覆蓋率結(jié)果,開發(fā)和測試人員可以充分的互動,而在穿線測試工具出現(xiàn)之前,由于沒有覆蓋率這個共享數(shù)據(jù),開發(fā)和測試人員之間很難充分的互動和協(xié)作,因為開發(fā)人員并不清楚測試用例具體對應(yīng)的程序執(zhí)行邏輯,而測試人員也不清楚如何完成充分的測試。

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 雙向追溯界面測試用例和代碼之前通過圍繞覆蓋率進行互動

(3)       支持基于Java語言開發(fā)的android移動應(yīng)用測試。

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖手機上進行操作,與之相連的電腦上TT實時收集測試信息

(4)        累計覆蓋率技術(shù):如果存在多個被測程序版本的覆蓋率結(jié)果,TT可以實現(xiàn)對多個版本的覆蓋率進行合并,并且在一個視圖中展示

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 主界面CallGraph圖中選擇多個版本的累積覆蓋率展示

(5)        支持在程序結(jié)構(gòu)圖、控制流程圖等多種圖形上顯示覆蓋率,測試以及開發(fā)人員可以從多個視角清晰的看到程序的覆蓋率情況,可以查看整體的覆蓋率,也可以查看單獨某一個函數(shù)的覆蓋率,甚至可以查看某一個分支的覆蓋執(zhí)行情況。

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 覆蓋率展示

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 覆蓋率展示

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 覆蓋率展示

軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)

圖 覆蓋率展示

(6)        支持分布式測試,多個測試人員測試產(chǎn)生的覆蓋率,可以在統(tǒng)一視圖中顯示。

(7)        實現(xiàn)美軍標DO-178B MC/DC白盒結(jié)構(gòu)測試技術(shù),實現(xiàn)100%覆蓋率,可視化復(fù)雜條件組合,使產(chǎn)品質(zhì)量大幅提升。

      通過第二代覆蓋率技術(shù),整個測試可以在充分量化的環(huán)境下運行,整個開發(fā)以及測試團隊可以實時看到每個用例的覆蓋率對整體測試的貢獻程度。根據(jù)覆蓋率的生長等指標對整個測試進程進行動態(tài)調(diào)整,同時可以引導(dǎo)對于累計覆蓋率偏低的關(guān)鍵模塊補充用例。我們希望,國產(chǎn)專業(yè)級白盒測試工具TT,能夠真正的將白盒測試技術(shù)做系統(tǒng)的升級,并且為測試人員所掌握和喜好,并進而將中國的軟件測試提升到一個新的境界。

文章題目:軟件測試不再黑盒—threadingtest帶來第二代白盒覆蓋率技術(shù)-創(chuàng)新互聯(lián)
地址分享:http://muchs.cn/article48/degchp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、營銷型網(wǎng)站建設(shè)、App設(shè)計網(wǎng)站制作、網(wǎng)站導(dǎo)航、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作