亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于探索性測試的軟件測試研究與實踐

        2020-06-16 10:40:42蔡久濤
        計算機應(yīng)用與軟件 2020年6期
        關(guān)鍵詞:設(shè)計

        楊 燕 劉 釗 蔡久濤

        1(江西航天鄱湖云科技有限公司 江西 南昌 330096)

        2(航天恒星科技有限公司 北京 100086)

        3(金蝶軟件(中國)有限公司南昌分公司 江西 南昌 330096)

        0 引 言

        腳本化測試是先設(shè)計、再執(zhí)行,設(shè)計時就指定輸入值和預(yù)期結(jié)果,執(zhí)行時嚴(yán)格按照測試設(shè)計進行。一方面隨著軟件應(yīng)用的發(fā)展,軟件出現(xiàn)了推出快、變化頻繁、接口雜、重體驗、開放性等特點,另一方面隨著測試的積累測試人員發(fā)現(xiàn)缺陷的類型增長緩慢。為了適用這種變化,也為了解決現(xiàn)存問題,需要引入新的測試技術(shù)。探索性測試作為一種前沿的測試思維,在項目周期短、需求不明確或者需求變更頻繁的項目中發(fā)現(xiàn)缺陷的效果顯著,也能發(fā)現(xiàn)一些腳本化測試發(fā)現(xiàn)不了的缺陷,因此受到越來越多軟件測試人員的青睞。

        目前對探索性測試的研究主要集中在測試思想和方法上[1-3],近年來也有研究探索性測試在個別領(lǐng)域上的應(yīng)用。文獻[4]將探索性測試應(yīng)用到航空聲納軟件中能夠有效發(fā)掘軟件中隱藏的缺陷。文獻[5]研究表明,將探索性測試思維引入到軍用軟件中與傳統(tǒng)的軟件測試相結(jié)合,能有效提高軟件測試效率和測試覆蓋率。但是在實際工作中對實施探索性測試發(fā)現(xiàn)的缺陷特征及在不同測試階段的實施的研究甚少。本文通過對“同時進行設(shè)計、測試和學(xué)習(xí)”的探索性測試進行研究,總結(jié)出幾種可采用探索性測試的情況,并將探索性測試融入到傳統(tǒng)的測試流程體系中,再選取三個不同類型的項目進行實踐來研究如何采用探索性測試方法開展軟件測試工作。

        1 探索性測試

        探索性測試最先由Cem Kaner在1983年提出,它是一種軟件測試風(fēng)格,也是一種測試思維[6]。這種測試思維不同于傳統(tǒng)軟件測試過程中嚴(yán)格的“先設(shè)計,后執(zhí)行”,它將學(xué)習(xí)、測試設(shè)計和測試執(zhí)行整合在一起,測試人員通過不斷的學(xué)習(xí),并把學(xué)習(xí)到的關(guān)于軟件系統(tǒng)的更多信息通過綜合的整理和分析,創(chuàng)造出更多的關(guān)于測試的想法。它強調(diào)測試執(zhí)行、學(xué)習(xí)、測試設(shè)計的同時性,注重思考和學(xué)習(xí),通過思考和學(xué)習(xí)改善測試設(shè)計與測試執(zhí)行,不斷地發(fā)現(xiàn)新的缺陷。

        探索性測試在軟件生命周期的任一階段均可使用,如:集成測試、系統(tǒng)測試、驗收測試等;也適用于各種類型的測試,如:功能測試、可靠性測試、兼容性測試、易用性測試、性能測試、安全性測試等[7]。

        1.1 探索性測試與隨機測試

        不同于隨機測試,探索性測試是帶著“反思”的測試,通過對測試結(jié)果的分析和判斷,驅(qū)動下一步的測試設(shè)計和測試執(zhí)行,達到持續(xù)優(yōu)化測試價值的目的。隨機測試通常利用錯誤猜測、典型風(fēng)險來驗證軟件,可以在短時間內(nèi)發(fā)現(xiàn)許多軟件錯誤,但是它不強調(diào)測試的系統(tǒng)性和完整性,漏測風(fēng)險很高。而探索性測試會拓展測試的深度和廣度,能夠發(fā)現(xiàn)一些隱藏較深的缺陷[6]。

        1.2 探索性測試方法

        探索性測試的指導(dǎo)方法有局部探索性測試和全局探索性測試兩種[6]。

        局部探索性測試關(guān)注局部小范圍,測試時需要考慮5個部分:輸入、狀態(tài)、代碼路徑、用戶數(shù)據(jù)和執(zhí)行環(huán)境[6]。這5個部分的測試可按照傳統(tǒng)的腳本化測試用例設(shè)計方法進行設(shè)計測試,如:輸入,可采用等價類劃分法、邊界值法、錯誤推測法等方法進行測試[3]。

        全局探索性測試也叫漫游測試,把全局探索性測試和旅游進行類比,測試人員就是游客,被測軟件就是旅游地。旅游地按照功能區(qū)域劃分可劃分為:商業(yè)區(qū)、歷史區(qū)、旅游區(qū)、娛樂區(qū)、旅館區(qū)和破舊區(qū)[6]。各功能區(qū)域說明及測試要點如表1所示。

        針對不同區(qū)域選取不同的測試方法進行測試:商業(yè)區(qū)側(cè)重于測試用戶關(guān)注的核心業(yè)務(wù)和功能,可采用指南測試法、賣點測試法、地標(biāo)測試法、極限測試法、快遞測試法、深夜測試法、遍歷測試法;針對歷史區(qū)舊的功能和缺陷修復(fù)代碼可采用惡鄰測試法、博物館測試法、上一版測試法;娛樂區(qū)測試對應(yīng)到軟件上就是輔助功能,可采用配角測試法、深巷測試法、通宵測試法進行測試;類比旅游區(qū)的可快速訪問功能的測試可采用收藏家測試法、長路徑測試法、超模測試、測一送一測試法;旅館區(qū)可采用取消測試法、懶漢測試法;破舊區(qū)測試可采用破壞測試法、反叛測試法、強迫癥測試法。

        在實際測試工作中針對功能點的測試可以采用局部探索性測試,針對涉及到業(yè)務(wù)的場景及整體層面的可以采用全局探索性測試。

        1.3 探索性測試適用場景

        文獻[9]指出了采用探索性測試的情況,如:文檔資料缺乏;產(chǎn)品不穩(wěn)定、軟件版本較多;測試人員專業(yè)技能不足;沒有時間編寫測試計劃和測試腳本。根據(jù)對探索性測試的研究,結(jié)合項目測試管理經(jīng)驗,在以下情況下也可考慮采用探索性測試:

        (1) 項目組人員調(diào)整后,新成員為了能夠在短時間內(nèi)快速了解系統(tǒng),可以執(zhí)行一次探索性測試。

        (2) 在缺陷驗證時,為了確認(rèn)修復(fù)缺陷時是否引入新缺陷,可以加入適當(dāng)圍繞該被測功能點的探索性測試,及時發(fā)現(xiàn)可能由修復(fù)帶來的新缺陷。

        (3) 在完成常規(guī)測試且時間充沛的情況下進行探索性測試可以檢查測試的完整性,拓展當(dāng)前測試的覆蓋度和深度。

        (4) 出于對現(xiàn)存測試設(shè)計和結(jié)果存疑的情況下,可以執(zhí)行探索性測試來驗證。

        2 探索性測試介入與實施

        由于探索性測試不同于傳統(tǒng)的先設(shè)計、再執(zhí)行,它強調(diào)設(shè)計和測試的同時性,如果不講究方法、沒有重點地盲目進行測試,就會出現(xiàn)重復(fù)測試和漏測的情況。在實際工作中,實施探索性測試也要保證測試覆蓋率。

        文獻[10]提出將探索性測試和腳本測試的優(yōu)勢結(jié)合到混合測試過程中的方法。文獻[11]研究表明,將探索式軟件測試融入傳統(tǒng)測試模型,在每個階段測試執(zhí)行完成后進行探索式測試可以提高測試覆蓋率。目前許多國內(nèi)外專家學(xué)者也認(rèn)可這種“腳本化為主、探索性測試為輔”的二者融合方案[7]。即執(zhí)行腳本化測試用例,又邊測試邊記錄新的測試點,過程中不斷分析、不斷學(xué)習(xí),發(fā)現(xiàn)更多的腳本化測試發(fā)現(xiàn)不了的缺陷。

        2.1 探索性測試介入

        傳統(tǒng)的軟件測試一般嚴(yán)格按照測試需求分析、編寫測試計劃、測試計劃評審、編寫測試用例、測試用例評審、搭建測試環(huán)境、執(zhí)行測試、提交缺陷、修復(fù)缺陷、驗證缺陷、回歸測試等流程執(zhí)行,測試流程如圖1所示。

        圖1 傳統(tǒng)測試流程

        隨著軟件應(yīng)用的發(fā)展,軟件出現(xiàn)了推出快、變化頻繁、接口雜、重體驗、開放性等特點[12],測試也需要適當(dāng)進行調(diào)整以適應(yīng)這種變化。文獻[13]表明,不論如何測試也不能保證軟件中不存在任何錯誤,但是通過測試策略可以努力使測試盡可能完全。

        通過在傳統(tǒng)測試流程中加入探索性測試,分別分析在系統(tǒng)測試階段后和系統(tǒng)測試階段加入探索性測試發(fā)現(xiàn)的缺陷的有效性、在總?cè)毕輸?shù)中的占比及發(fā)現(xiàn)的缺陷類型,查看實施探索性測試對腳本化測試的助力到底如何。

        在測試需求分析、設(shè)計測試用例及測試用例評審階段融入探索性測試思維,融入探索性測試后測試流程如圖2所示。

        圖2 融入探索性測試后測試流程

        在測試需求分析階段加入探索性測試,通過換位思考站在包括業(yè)務(wù)領(lǐng)域?qū)<?、用戶、項目?jīng)理、開發(fā)人員、公司管理者角度分析他們對需求規(guī)格的要求,也可以參考同類軟件或以前項目經(jīng)驗等對其進行探索性測試,從而發(fā)現(xiàn)更多隱形需求,進而避免由于需求原因而埋下缺陷。

        在設(shè)計測試用例階段加入探索性測試,將通過思考學(xué)習(xí)獲得的一切與軟件系統(tǒng)相關(guān)的信息設(shè)計成測試用例,意在通過執(zhí)行測試用例發(fā)現(xiàn)更多的需求規(guī)格說明中沒有明確說明的隱形或深層業(yè)務(wù)方面的缺陷。在測試用例評審階段加入探索性測試,通過借助眾人的智慧和經(jīng)驗,豐富用例設(shè)計內(nèi)容,減少漏測率。在執(zhí)行測試階段加入探索性測試,意在將測試人員的測試經(jīng)驗和測試思想轉(zhuǎn)化為盡早發(fā)現(xiàn)的缺陷,降低后期缺陷修復(fù)成本。在驗證缺陷階段加入探索性測試意在驗證修復(fù)缺陷時是否影響到了其他模塊功能使用,是否引入新的缺陷。在回歸測試階段加入探索性測試意在確認(rèn)最終效果是否滿足用戶需要。

        2.2 探索性測試實施

        實施探索性測試的難點在于測試執(zhí)行環(huán)節(jié),執(zhí)行時面對持續(xù)變化的情況,由于測試人員的認(rèn)知不同,應(yīng)對方式也會不同。為了指導(dǎo)測試,探索性測試也需要進行測試設(shè)計,此工作可以在執(zhí)行前進行,也可在執(zhí)行測試時進行。探索性測試設(shè)計不局限于傳統(tǒng)的腳本化測試用例的設(shè)計,需要包含:唯一標(biāo)識、摘要、描述、設(shè)計方法、測試階段、測試類型、預(yù)期結(jié)果、測試步驟等。探索性測試設(shè)計可以是思維導(dǎo)圖等,意在記錄測試點及系統(tǒng)業(yè)務(wù)等,便于后期系統(tǒng)維護及回歸測試。

        結(jié)合項目實際情況基于1.3節(jié)中場景(3)和場景(4)的考慮,選擇某區(qū)實驗室管理系統(tǒng)、某任務(wù)管理軟件和某信息化平臺這三個項目為實踐對象來研究如何采用探索性測試開展軟件測試工作,并對測試結(jié)果進行分析,選取的項目基本信息如表2所示。

        表2 實踐項目信息

        這三個項目的測試過程都是按照CMMI3級標(biāo)準(zhǔn)進行管理的,對其分析的結(jié)果具有一定的可參考性,對于后期軟件管理過程改進也有一定的幫助。

        3 基于探索性測試的軟件測試應(yīng)用

        3.1 某區(qū)實驗室管理系統(tǒng)

        某區(qū)實驗室管理系統(tǒng)是一個專屬于該區(qū)環(huán)境保護檢測站實驗室內(nèi)部工作管理的管理系統(tǒng)。主要用于實驗室基礎(chǔ)信息管理、樣品報告流轉(zhuǎn)、報告數(shù)據(jù)統(tǒng)計和樣品數(shù)據(jù)統(tǒng)計。

        按照已有的測試流程完成測試后,得出該系統(tǒng)的千行代碼缺陷率為2.56,而根據(jù)2016年-2018年項目測試?yán)塾嫈?shù)據(jù)得到的平均千行代碼缺陷率分別為4.5、5.0和4.3,故在此系統(tǒng)中引入探索性測試,通過探索性測試確認(rèn)該系統(tǒng)是否測試充分,是否存在漏測的情況。

        3.2 某區(qū)實驗室管理系統(tǒng)探索性測試實施

        某區(qū)實驗室管理系統(tǒng)采用“腳本化為主、探索性測試為輔”的測試方案進行測試,在系統(tǒng)測試完成后引入探索性測試,軟件測試總體流程見圖3。

        圖3 軟件測試總體流程圖

        探索性測試的測試過程如下:

        (1) 測試負(fù)責(zé)人收集測試相關(guān)文檔,包括:需求規(guī)格說明書、需求變更申請單、測試說明等,并結(jié)合已完成系統(tǒng)獲取需要測試的內(nèi)容,然后制定測試計劃、分配測試人員和測試內(nèi)容。

        (2) 探索性測試人員與項目組測試人員進行溝通,了解更多業(yè)務(wù)信息及缺陷分布情況等,確定高風(fēng)險功能點。

        (3) 開始執(zhí)行探索性測試,在這個過程中同時進行測試執(zhí)行、思考學(xué)習(xí)、測試設(shè)計,并根據(jù)實際情況隨時更改測試策略,同時記錄軟件邏輯和發(fā)現(xiàn)的缺陷。

        (4) 項目組開發(fā)人員對缺陷進行修復(fù),測試人員再對其進行驗證,待所有缺陷閉環(huán)后,進行測試結(jié)果分析、總結(jié)。

        文獻[12]指出,不同的人實施探索性測試會有不同的效果,在制定探索性測試計劃時需要做到:給新人分配的是基本信息的增刪改查,除了希望發(fā)現(xiàn)更多缺陷外,也希望通過此次測試能夠加深對測試的理解;經(jīng)驗豐富的人,用于執(zhí)行核心的業(yè)務(wù)流程,希望通過他確認(rèn)重要的影響因素在設(shè)計中已經(jīng)都考慮到了;有開發(fā)經(jīng)驗的,期望他能夠發(fā)現(xiàn)框架等更深層次的缺陷。

        3.3 某區(qū)實驗室管理系統(tǒng)測試結(jié)果分析

        通過對腳本化測試發(fā)現(xiàn)的缺陷,及執(zhí)行完腳本化測試后加入探索性測試后探索性測試發(fā)現(xiàn)的缺陷進行統(tǒng)計分析,得到加入探索性測試后發(fā)現(xiàn)的缺陷數(shù)和測試耗時情況如表3所示。

        表3 加入探索性測試后測試結(jié)果

        由表3可知,實施探索性測試后又發(fā)現(xiàn)了92個缺陷,說明實施探索性測試是有必要的,能夠提高產(chǎn)品的質(zhì)量。分析投入與產(chǎn)出效能可知,實施探索性測試雖然耗時增加了37.5%,但是發(fā)現(xiàn)的缺陷增量也高達35.11%,實施探索性測試后該系統(tǒng)的千行代碼缺陷率也達到了4.6,參考以往測試結(jié)果說明此次探索性測試是較充分的。針對92個缺陷進行分析后可知,有90%的缺陷是有效缺陷,也是被項目組的開發(fā)人員所認(rèn)可的缺陷,探索性測試發(fā)現(xiàn)的缺陷分類如圖4所示。

        圖4 探索性測試缺陷分類

        探索性測試發(fā)現(xiàn)的有效缺陷的類別如圖5所示。

        圖5 有效缺陷類別

        由圖5可知,探索性測試發(fā)現(xiàn)的缺陷主要集中在功能性和易用性這兩個方面,同時也能發(fā)現(xiàn)安全性、維護性、兼容性和可靠性方面的缺陷。

        3.4 探索性測試在其他項目中應(yīng)用結(jié)果分析

        參考文獻[14-15]后,將探索性測試思維應(yīng)用到傳統(tǒng)軟件測試中,應(yīng)用后測試流程如圖6所示。

        圖6 加入探索性測試后測試流程

        將探索性測試應(yīng)用于某任務(wù)管理軟件和某信息化平臺的執(zhí)行測試、缺陷驗證和回歸測試階段中,對測試數(shù)據(jù)進行整理分析后得到表4和表5所示測試結(jié)果。

        表4 某任務(wù)管理軟件實施了探索性測試后測試結(jié)果

        表5 某信息化平臺實施了探索性測試后測試結(jié)果

        將實施探索性測試后發(fā)現(xiàn)的缺陷進行整理后,得到實施探索性測試發(fā)現(xiàn)的缺陷分布情況如圖7所示。

        圖7 探索性測試發(fā)現(xiàn)缺陷分布

        從測試結(jié)果可以看出,探索性測試發(fā)現(xiàn)的缺陷分布主要集中在功能性和易用性兩個方面。

        4 結(jié) 語

        將探索性測試應(yīng)用到三個不同類型的項目中,發(fā)現(xiàn)均能夠助力腳本化測試使發(fā)現(xiàn)缺陷的總量增長至少25%以上。由此可知,探索性測試對于腳本測試是一種非常有益有效的補充。

        探索性測試作為一種新的測試?yán)碚摚藢⑻剿餍詼y試思維融入到軟件測試的各個階段外,后期還可從以下兩個方面繼續(xù)進行研究:(1) 目前已有腳本化測試的公共測試用例庫,隨著開展探索性測試的項目越來越多,通過探索性測試方法分析出一些測試點,抽取可以復(fù)用的探索性測試的測試用例也是一種需要;(2) 針對已經(jīng)出了原型需要進行測試的項目,及采購類產(chǎn)品和設(shè)備構(gòu)建以探索性測試為主的測試過程也是一種可嘗試的方向。

        猜你喜歡
        設(shè)計
        二十四節(jié)氣在平面廣告設(shè)計中的應(yīng)用
        河北畫報(2020年8期)2020-10-27 02:54:06
        何為設(shè)計的守護之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        基于PWM的伺服控制系統(tǒng)設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:36
        基于89C52的32只三色LED搖搖棒設(shè)計
        電子制作(2019年15期)2019-08-27 01:11:50
        基于ICL8038的波形發(fā)生器仿真設(shè)計
        電子制作(2019年7期)2019-04-25 13:18:16
        瞞天過?!律O(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        從平面設(shè)計到“設(shè)計健康”
        商周刊(2017年26期)2017-04-25 08:13:04
        亚洲AV永久天堂在线观看| 亚洲视频专区一区二区三区| 免费国产自拍在线观看| 色综合色狠狠天天综合色| 另类免费视频在线视频二区 | 亚洲精品字幕| 欧洲亚洲第一区久久久| 91国语对白在线观看| 91精品国产综合久久熟女| 无码人妻av免费一区二区三区 | 四虎成人精品国产永久免费无码| 国产乱妇乱子视频在播放| 日韩精品网| 日韩三级一区二区三区四区| 国产aⅴ激情无码久久久无码| 国产福利一区二区三区在线观看| 连续高潮喷水无码| 日本一区二区三区免费| 日本办公室三级在线观看| 国产猛烈高潮尖叫视频免费| 真实国产老熟女粗口对白| 亚洲成av人在线观看无堂无码| 亚洲一区二区三区自拍麻豆| 欧洲美熟女乱又伦av影片| 欧美性性性性性色大片免费的| 91福利国产在线观看网站| 男人天堂亚洲一区二区| 医院人妻闷声隔着帘子被中出 | 免费美女黄网站久久久| 日本av亚洲中文字幕| 伊人久久大香线蕉亚洲五月天 | 国产大陆亚洲精品国产| 国产一区二区三区爆白浆| 一本色道加勒比精品一区二区| 五月av综合av国产av| 亚洲av中文无码字幕色三| 久久久99久久久国产自输拍| 精品国产黄一区二区三区| 老太脱裤子让老头玩xxxxx| 亚洲综合国产精品一区二区99| 少妇又紧又色又爽又刺|