姜 文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)軟件的使用范圍越來(lái)越廣泛,迭代開(kāi)發(fā)模式在軟件開(kāi)發(fā)與測(cè)試過(guò)程中獲得廣泛應(yīng)用。軟件測(cè)試[1-2]過(guò)程中大量采用自動(dòng)化測(cè)試,通過(guò)自動(dòng)化測(cè)試腳本連跑的方式對(duì)軟件產(chǎn)品進(jìn)行測(cè)試。
使用自動(dòng)化連跑進(jìn)行軟件測(cè)試,不僅能覆蓋到當(dāng)前版本的新特性,也能夠覆蓋版本的歷史特性,測(cè)試覆蓋率高。這樣可以節(jié)省大量的測(cè)試人力、物力,也提升了測(cè)試效率。
在測(cè)試環(huán)境上連跑測(cè)試腳本,通常會(huì)有一定數(shù)量的測(cè)試腳本失敗,對(duì)這些腳本進(jìn)行失敗分析是一項(xiàng)十分重要的工作,否則軟件產(chǎn)品無(wú)法繼續(xù)開(kāi)發(fā),也無(wú)法保證軟件產(chǎn)品的質(zhì)量。
軟件缺陷問(wèn)題是測(cè)試腳本失敗的原因之一,但是還有其他原因?qū)е聹y(cè)試腳本失敗,需要進(jìn)行細(xì)致的定位、分析和處理。對(duì)于軟件自動(dòng)化測(cè)試而言,測(cè)試腳本的失敗分析是重要的核心環(huán)節(jié)。
迭代開(kāi)發(fā)[3-10]也被稱作迭代增量式開(kāi)發(fā),將整個(gè)軟件項(xiàng)目開(kāi)發(fā)分成多個(gè)小的迭代(一般2至4周),每一次迭代都由需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試在內(nèi)的多個(gè)活動(dòng)組成,每一次迭代都可以生成一個(gè)穩(wěn)定和被驗(yàn)證過(guò)的軟件版本。迭代開(kāi)發(fā)可以及時(shí)應(yīng)對(duì)軟件開(kāi)發(fā)過(guò)程中的各種技術(shù)變更;有助于早期發(fā)現(xiàn)各種技術(shù)問(wèn)題,及時(shí)消除風(fēng)險(xiǎn);持續(xù)從客戶獲得反饋,使產(chǎn)品更加符合客戶的需求;有利于人力資源的調(diào)度安排,提高工作效率。
自動(dòng)化測(cè)試,簡(jiǎn)而言之就是將手工測(cè)試執(zhí)行的工作改為自動(dòng)執(zhí)行。它通過(guò)使用某一自動(dòng)化測(cè)試工具和自動(dòng)化測(cè)試腳本來(lái)執(zhí)行測(cè)試工作。自動(dòng)化測(cè)試適合執(zhí)行各種頻繁的測(cè)試,使測(cè)試任務(wù)的執(zhí)行比手動(dòng)方式更高效。自動(dòng)化測(cè)試可以避免因人為而造成的疏忽和錯(cuò)誤。
自動(dòng)化測(cè)試用例運(yùn)行結(jié)束后,會(huì)出現(xiàn)兩種可能情況:正常結(jié)束(Passed)、異常結(jié)束(Failed)。Passed說(shuō)明測(cè)試結(jié)果和預(yù)期結(jié)果相吻合,軟件特性通過(guò)了測(cè)試;Failed則說(shuō)明測(cè)試失敗,相關(guān)檢查點(diǎn)出現(xiàn)錯(cuò)誤或者測(cè)試腳本拋出異常而終止測(cè)試。
在測(cè)試環(huán)境上執(zhí)行自動(dòng)化測(cè)試腳本連跑,通常會(huì)有一定數(shù)量的測(cè)試腳本失敗(Failed)。自動(dòng)化測(cè)試用例失敗分析就是對(duì)失敗的腳本進(jìn)行失敗定位、分析和處理,查找測(cè)試腳本失敗的原因。
依據(jù)軟件迭代開(kāi)發(fā)和測(cè)試實(shí)踐,歸納總結(jié)出自動(dòng)化測(cè)試用例失敗類型。通常測(cè)試腳本失敗類型分為五類,如表1所示。
以下是自動(dòng)化測(cè)試工作中遇到的一些測(cè)試腳本失敗實(shí)例。
2.2.1 測(cè)試環(huán)境問(wèn)題
某軟件產(chǎn)品在迭代5結(jié)束時(shí),自動(dòng)化工廠擴(kuò)充了部分新的測(cè)試執(zhí)行機(jī),在新執(zhí)行機(jī)上執(zhí)行腳本連跑任務(wù)。由于自動(dòng)化工廠測(cè)試工程師的疏漏,將一個(gè)通用變量的值刪除之后,沒(méi)有賦值,導(dǎo)致大量使用該變量的軟件S特性腳本運(yùn)行失敗,處理了該問(wèn)題后,所有腳本運(yùn)行通過(guò)。
2.2.2 軟件版本包問(wèn)題
某軟件產(chǎn)品在迭代1結(jié)束之后,連跑新增特性S的腳本,結(jié)果所有腳本均運(yùn)行失敗。測(cè)試工程師定位之后發(fā)現(xiàn),測(cè)試環(huán)境上安裝的版本包,并不支持特性S,連跑失敗是由于沒(méi)有使用正確的版本包。自動(dòng)化工廠測(cè)試工程師獲取最新出的版本包,重新安裝在測(cè)試環(huán)境中,所有腳本運(yùn)行通過(guò)。
2.2.3 腳本存在配置殘留問(wèn)題
某軟件產(chǎn)品在迭代3結(jié)束時(shí),對(duì)軟件T特性進(jìn)行自動(dòng)化安全測(cè)試,由于某個(gè)腳本存在配置殘留問(wèn)題,腳本執(zhí)行之后未恢復(fù)環(huán)境,導(dǎo)致連跑過(guò)程中一系列腳本運(yùn)行失敗。測(cè)試工程師通過(guò)分析發(fā)現(xiàn)了存在配置殘留的腳本,修改了存在配置殘留的腳本;排查這一批腳本,如果有配置殘留問(wèn)題全部修改;之后腳本連跑通過(guò),腳本全部合入腳本庫(kù)。
2.2.4 腳本概率性失敗問(wèn)題
某軟件產(chǎn)品在迭代6結(jié)束之后,軟件Q特性部分腳本,會(huì)出現(xiàn)概率性失敗的問(wèn)題。測(cè)試工程師分析發(fā)現(xiàn),某個(gè)腳本連跑過(guò)程中調(diào)用了一個(gè)自研工具,腳本運(yùn)行結(jié)束之后,已經(jīng)調(diào)用的自研工具進(jìn)程不一定會(huì)自動(dòng)釋放,從而導(dǎo)致腳本概率性失敗。修改該腳本,在腳本中添加自動(dòng)殺死自研工具進(jìn)程的功能。之后腳本連跑通過(guò),再?zèng)]發(fā)生概率性失敗問(wèn)題。
2.2.5 軟件代碼缺陷導(dǎo)致腳本失敗
某軟件產(chǎn)品在迭代6結(jié)束之后,測(cè)試軟件歷史特性H時(shí),某些測(cè)試腳本在連跑過(guò)程中失敗。測(cè)試工程師分析發(fā)現(xiàn)不是環(huán)境問(wèn)題或者腳本問(wèn)題導(dǎo)致的失敗。將該問(wèn)題反饋給軟件開(kāi)發(fā)工程師,軟件開(kāi)發(fā)工程師定位發(fā)現(xiàn)是由于迭代6新開(kāi)發(fā)的特性Q中新合入的代碼影響了原有特性H的功能,屬于新引入的軟件缺陷。測(cè)試工程師提交問(wèn)題單,軟件開(kāi)發(fā)工程師修改軟件代碼,完成驗(yàn)證之后將已修改的源代碼提交到版本庫(kù)中。持續(xù)集成工程師提交新的版本包之后,測(cè)試工程師完成問(wèn)題單回歸測(cè)試,關(guān)閉該問(wèn)題單。
自動(dòng)化測(cè)試連跑失敗分析過(guò)程中,參與的人員包括:軟件測(cè)試架構(gòu)師、軟件測(cè)試工程師、持續(xù)集成工程師、自動(dòng)化工廠測(cè)試工程師、軟件系統(tǒng)工程師、軟件開(kāi)發(fā)工程師。各角色分工協(xié)作共同完成自動(dòng)化測(cè)試用例失敗分析,如圖1所示。
圖1 自動(dòng)化測(cè)試用例失敗分析涉及的角色
3.1.1 軟件測(cè)試架構(gòu)師
測(cè)試架構(gòu)師(TSE)編寫(xiě)軟件產(chǎn)品測(cè)試策略和軟件測(cè)試用例。軟件測(cè)試架構(gòu)師與測(cè)試經(jīng)理將軟件產(chǎn)品根據(jù)功能劃分若干個(gè)特性責(zé)任田,分配測(cè)試工程師擔(dān)任責(zé)任田主。與軟件測(cè)試工程師共同處理軟件自動(dòng)化測(cè)試過(guò)程中存在的各種問(wèn)題。
3.1.2 軟件測(cè)試工程師(責(zé)任田主)
軟件測(cè)試工程師根據(jù)設(shè)計(jì)場(chǎng)景文檔、測(cè)試策略和測(cè)試用例編寫(xiě)自動(dòng)化測(cè)試腳本。搭建測(cè)試環(huán)境,安裝軟件版本包,進(jìn)行軟件測(cè)試。軟件測(cè)試工程擔(dān)任某個(gè)軟件特性責(zé)任田主,在自動(dòng)化腳本連跑完成之后,對(duì)失敗的腳本進(jìn)行失敗分析,處理相關(guān)技術(shù)問(wèn)題。對(duì)檢測(cè)到的軟件缺陷,提交問(wèn)題單,跟蹤問(wèn)題單,直到問(wèn)題單處理完畢。
3.1.3 持續(xù)集成工程師
軟件迭代開(kāi)期間,持續(xù)集成工程師從版本庫(kù)更新源代碼,搭建集成構(gòu)建工程;進(jìn)行靜態(tài)檢查、軟件產(chǎn)品模塊編譯、軟件版本包出包;向自動(dòng)化工廠提交冒煙測(cè)試任務(wù)。與相關(guān)人員共同處理腳本失敗問(wèn)題,主要關(guān)注軟件版本包相關(guān)問(wèn)題。
3.1.4 自動(dòng)化工廠測(cè)試工程師
管理自動(dòng)化工廠,在自動(dòng)化工廠中搭建軟件測(cè)試環(huán)境,安裝持續(xù)集成工程師提供的版本包,從版本庫(kù)下載相關(guān)的自動(dòng)化測(cè)試用例腳本;執(zhí)行自動(dòng)化腳本連跑。連跑結(jié)束之后,匯總測(cè)試結(jié)果,將失敗腳本推送給測(cè)試工程師進(jìn)行失敗分析,參與腳本失敗原因分析定位,關(guān)注測(cè)試環(huán)境的搭建和配置存在的問(wèn)題。
3.2.1 軟件系統(tǒng)工程師
系統(tǒng)工程師(SE)給出可行的設(shè)計(jì)方案;完成軟件需求設(shè)計(jì)、架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì);提供給軟件開(kāi)發(fā)工程師進(jìn)行軟件編碼。在軟件迭代開(kāi)發(fā)過(guò)程中,和軟件開(kāi)發(fā)工程師共同處理軟件缺陷問(wèn)題。
3.2.2 軟件開(kāi)發(fā)工程師
軟件開(kāi)發(fā)工程師根據(jù)軟件產(chǎn)品設(shè)計(jì)場(chǎng)景文檔編寫(xiě)代碼。源代碼調(diào)試、自驗(yàn)之后,將源代碼合入版本庫(kù)。處理持續(xù)集成工程師和測(cè)試工程師提交的軟件缺陷問(wèn)題,定位問(wèn)題產(chǎn)生的原因,修改代碼,重新將代碼合入版本庫(kù)。對(duì)于一些復(fù)雜的問(wèn)題需要軟件系統(tǒng)工程師參與定位處理。
冒煙測(cè)試[11]是對(duì)軟件版本包進(jìn)行詳細(xì)測(cè)試之前的預(yù)測(cè)試,執(zhí)行冒煙測(cè)試可以快速驗(yàn)證軟件基本功能是否有缺陷。如果冒煙測(cè)試不能通過(guò),則不必做進(jìn)一步的測(cè)試。
持續(xù)集成中的冒煙測(cè)試是每日構(gòu)建的一部分,通過(guò)自動(dòng)化工廠執(zhí)行自動(dòng)化腳本連跑任務(wù)完成軟件版本包預(yù)測(cè)試。
迭代開(kāi)發(fā)期間,持續(xù)集成中的冒煙測(cè)試任務(wù)調(diào)用測(cè)試用例腳本數(shù)量需要不斷增加,從而保證測(cè)試用例對(duì)新增代碼覆蓋率[12]要求。通常要求測(cè)試用例對(duì)新增代碼覆蓋率大于65%,對(duì)于整體的代碼覆蓋率,各軟件產(chǎn)品根據(jù)產(chǎn)品自身情況可以靈活處理。
通常每周進(jìn)行一次基于持續(xù)集成的軟件覆蓋率測(cè)試,可以快速完成軟件代碼覆蓋率檢查。測(cè)試架構(gòu)師根據(jù)代碼覆蓋率及時(shí)補(bǔ)充測(cè)試用例。
每次迭代完成之后,需要對(duì)軟件進(jìn)行全面測(cè)試[13-14],執(zhí)行全部自動(dòng)化腳本連跑(預(yù)測(cè)試)。
軟件全部迭代開(kāi)發(fā)完成之后,軟件進(jìn)入驗(yàn)收交付階段,需要對(duì)軟件進(jìn)行全面測(cè)試,首先執(zhí)行全部自動(dòng)化腳本連跑(預(yù)測(cè)試)。
軟件交付后,通常需要處理軟件的各種問(wèn)題,有時(shí)還需要給軟件制作補(bǔ)丁,問(wèn)題處理之后,需要對(duì)軟件進(jìn)行全面測(cè)試,首先執(zhí)行全部自動(dòng)化腳本連跑(預(yù)測(cè)試)。
回歸測(cè)試(Regression Testing)是指軟件修改之后,重新執(zhí)行先前的測(cè)試,以保證軟件修改的正確性。在前五種測(cè)試中,出現(xiàn)測(cè)試用例失敗,需要處理出現(xiàn)的問(wèn)題,問(wèn)題處理完成之后,進(jìn)行回歸測(cè)試,需要執(zhí)行全部自動(dòng)化腳本連跑。
DAC(Data Analysis Center)是一款軟件缺陷跟蹤、缺陷管理、數(shù)據(jù)分析的管理工具[15]。通過(guò)DAC的智能分析中心可以查看日志的歷史版本,查看任務(wù)列表,查看分析報(bào)告,查看測(cè)試用例詳細(xì)信息。
可以和自動(dòng)化工廠的軟件模塊相互關(guān)聯(lián),通過(guò)跳轉(zhuǎn)到測(cè)試信息管理中心TMSS(Test Management Service System),查看TMSS中測(cè)試用例的相關(guān)信息。自動(dòng)化工廠測(cè)試工程師也可以通過(guò)DAC工具,處理自動(dòng)化測(cè)試中出現(xiàn)的缺陷問(wèn)題。
測(cè)試工程師可以登錄DAC工具,通過(guò)特性過(guò)濾出自己需要分析的失敗腳本,查看各種相關(guān)信息,處理腳本失敗問(wèn)題。
軟件產(chǎn)品根據(jù)功能劃分為若干個(gè)特性責(zé)任田,測(cè)試用例根據(jù)軟件產(chǎn)品特性歸屬某個(gè)責(zé)任田。測(cè)試架構(gòu)師梳理出產(chǎn)品特性列表,劃分特性責(zé)任田。測(cè)試經(jīng)理和測(cè)試架構(gòu)師根據(jù)目前測(cè)試工程師的人數(shù)、能力將特性責(zé)任田劃分給測(cè)試工程師。測(cè)試工程師擔(dān)任這些特性的責(zé)任田主,并以交叉方式將確定每個(gè)腳本所屬責(zé)任田的備份分析田主,以保證責(zé)任田在每次分析時(shí)均不會(huì)落空。自動(dòng)化腳本的責(zé)任田主名單由測(cè)試經(jīng)理提交給自動(dòng)化工廠測(cè)試工程師,連跑之后的失敗腳本分析就按照這個(gè)名單進(jìn)行腳本推送。
自動(dòng)化測(cè)試用例連跑失敗分析的流程通常分為以下幾個(gè)步驟:搭建測(cè)試環(huán)境、自動(dòng)化測(cè)試腳本連跑、將失敗腳本提交相關(guān)人員、腳本失敗原因的定位分析、處理存在的問(wèn)題、提交腳本失敗分析報(bào)告。自動(dòng)化測(cè)試用例失敗分析流程如圖2所示。
5.3.1 搭建測(cè)試環(huán)境
軟件測(cè)試環(huán)境通常在云環(huán)境中搭建,首先需要申請(qǐng)相關(guān)的虛擬網(wǎng)絡(luò)資源,自動(dòng)化工廠測(cè)試工程師負(fù)責(zé)測(cè)試環(huán)境的搭建、配置和管理;持續(xù)集成工程師提交軟件測(cè)試版本包。
5.3.2 自動(dòng)化測(cè)試腳本連跑
自動(dòng)化工廠測(cè)試工程師,回收由測(cè)試工程師和開(kāi)發(fā)工程師在TICC(Test Integration Control Center,集成測(cè)試控制中心)上占用的環(huán)境,清理測(cè)試環(huán)境,卸載原有版本包。安裝從指定路徑下獲取的新版本包,加上業(yè)務(wù)配置之后下發(fā)測(cè)試任務(wù),在自動(dòng)化工廠的測(cè)試環(huán)境上執(zhí)行測(cè)試腳本連跑。
圖2 自動(dòng)化測(cè)試用例失敗分析流程
5.3.3 將失敗的腳本提交相關(guān)人員
自動(dòng)化腳本連跑完成后,自動(dòng)化工廠的測(cè)試工程師匯總自動(dòng)化腳本的運(yùn)行結(jié)果,根據(jù)產(chǎn)品特性責(zé)任田田主名單,將失敗腳本通過(guò)DAC工具推送給測(cè)試工程師(腳本的責(zé)任田主),通過(guò)郵件方式將連跑失敗的測(cè)試腳本運(yùn)行結(jié)果、運(yùn)行日志以及運(yùn)行腳本的執(zhí)行機(jī)所在DAC網(wǎng)頁(yè)地址發(fā)送給各責(zé)任田主進(jìn)行分析。基于持續(xù)集成的自動(dòng)化測(cè)試,需要同時(shí)將測(cè)試腳本運(yùn)行結(jié)果通知持續(xù)集成工程師。同時(shí)將相關(guān)信息通知測(cè)試經(jīng)理。
5.3.4 自動(dòng)化腳本失敗原因的定位分析
測(cè)試工程師收到推送過(guò)來(lái)的失敗腳本,通過(guò)特性過(guò)濾出自己需要分析的失敗腳本,在DAC工具上查看已收集到的連跑失敗日志。通過(guò)日志確認(rèn)腳本失敗問(wèn)題點(diǎn),將腳本放到運(yùn)行失敗的執(zhí)行機(jī)上,再次運(yùn)行確認(rèn)腳本失敗的問(wèn)題點(diǎn)。
(a)環(huán)境問(wèn)題導(dǎo)致的失敗,將環(huán)境問(wèn)題導(dǎo)致失敗的理由寫(xiě)在分析結(jié)論中。
(b)腳本問(wèn)題導(dǎo)致的失敗,測(cè)試工程師修改腳本后將腳本重新提交到Git的腳本庫(kù)中。
(c)產(chǎn)品缺陷問(wèn)題導(dǎo)致的腳本失敗,測(cè)試工程師將腳本失敗問(wèn)題提交給軟件開(kāi)發(fā)工程師進(jìn)行定位,如果開(kāi)發(fā)工程師確認(rèn)是由產(chǎn)品缺陷導(dǎo)致的失敗,測(cè)試工程師提交問(wèn)題單,在DAC工具的對(duì)應(yīng)失敗腳本中補(bǔ)充問(wèn)題單號(hào)。
(d)軟件版本包問(wèn)題導(dǎo)致的失敗,聯(lián)系持續(xù)集成工程師與軟件開(kāi)發(fā)工程師共同處理該問(wèn)題。
(e)概率性失敗的腳本通常表現(xiàn)為有時(shí)測(cè)試成功,有時(shí)測(cè)試成功。通常是測(cè)試腳本中存在某種隱藏的問(wèn)題,在一定的外部條件下觸發(fā),導(dǎo)致的測(cè)試腳本失敗。測(cè)試工程師通過(guò)在腳本失敗的執(zhí)行機(jī)上多次連續(xù)運(yùn)行,查找問(wèn)題的根源。最后將處理結(jié)果反饋給自動(dòng)化工廠測(cè)試工程師,并繼續(xù)對(duì)該腳本持續(xù)跟蹤,分析錯(cuò)誤根因。
各責(zé)任田主將腳本失敗的原因,分析結(jié)論填寫(xiě)到DAC中失敗腳本的分析結(jié)論中,反饋給自動(dòng)化工廠測(cè)試工程師。每個(gè)責(zé)任田主需要在規(guī)定的時(shí)間內(nèi)閉環(huán)腳本失敗分析。
5.3.5 處理存在的問(wèn)題
根據(jù)測(cè)試腳本失敗的原因,相關(guān)人員處理各種測(cè)試腳本失敗問(wèn)題。
5.3.6 提交腳本失敗分析報(bào)告
將腳本失敗的原因,定位分析過(guò)程,解決問(wèn)題方案,處理結(jié)果寫(xiě)入腳本失敗分析報(bào)告,提交DAC備案,為以后的測(cè)試工作提供借鑒和幫助案例。
自動(dòng)化腳本連跑與失敗分析結(jié)束之后,自動(dòng)化工廠測(cè)試工程師對(duì)各責(zé)任田主反饋的腳本失敗分析報(bào)告,進(jìn)行分析匯總。改進(jìn)自動(dòng)化工廠工作,提升自動(dòng)化腳本連跑成功率。對(duì)于環(huán)境問(wèn)題導(dǎo)致的失敗,自動(dòng)化工廠需要重點(diǎn)關(guān)注以下問(wèn)題:
(a)關(guān)注腳本對(duì)應(yīng)的環(huán)境組網(wǎng)類型標(biāo)簽,修改自動(dòng)化腳本給出的環(huán)境組網(wǎng)類型錯(cuò)誤。
(b)測(cè)試執(zhí)行機(jī)由于網(wǎng)絡(luò)問(wèn)題導(dǎo)致腳本失敗,需要確認(rèn)執(zhí)行機(jī)與測(cè)試環(huán)境上業(yè)務(wù)網(wǎng)絡(luò)是否相通。如果網(wǎng)絡(luò)不通,先排查實(shí)驗(yàn)室網(wǎng)絡(luò)環(huán)境是否正常,僅是單個(gè)執(zhí)行機(jī)出現(xiàn)網(wǎng)絡(luò)不通的情況,可以通過(guò)在執(zhí)行機(jī)上添加路由的方式使執(zhí)行機(jī)上的網(wǎng)絡(luò)與測(cè)試環(huán)境的業(yè)務(wù)網(wǎng)絡(luò)互通。
(c)對(duì)于腳本配置殘留問(wèn)題,自動(dòng)化工廠測(cè)試工程師可以在每個(gè)腳本運(yùn)行之前加上配置殘留檢測(cè),發(fā)現(xiàn)有配置殘留的腳本之后,知會(huì)責(zé)任田主或分析田主確認(rèn)和處理配置殘留問(wèn)題。
(d)對(duì)于概率性失敗的自動(dòng)化測(cè)試腳本,自動(dòng)化工廠的測(cè)試工程師與腳本責(zé)任田主在后續(xù)的腳本連跑中持續(xù)關(guān)注腳本的運(yùn)行情況,對(duì)能夠復(fù)現(xiàn)的失敗及時(shí)定位腳本運(yùn)行失敗的原因。
每一輪迭代完成之后,測(cè)試經(jīng)理與測(cè)試架構(gòu)師對(duì)自動(dòng)化腳本連跑發(fā)現(xiàn)的問(wèn)題進(jìn)行匯總分析。對(duì)于問(wèn)題較多的產(chǎn)品特性,測(cè)試架構(gòu)師需要和該特性責(zé)任田主,一起分析腳本失敗較多,問(wèn)題較多的原因。責(zé)任田主完成質(zhì)量補(bǔ)充測(cè)試和腳本優(yōu)化重構(gòu)整改。對(duì)于新開(kāi)發(fā)特性及時(shí)補(bǔ)充測(cè)試用例,測(cè)試工程師測(cè)編寫(xiě)腳本,腳本評(píng)審?fù)ㄟ^(guò)之后完成腳本入廠。
6.2.1 測(cè)試環(huán)境中添加業(yè)務(wù)配置提升測(cè)試效率
軟件產(chǎn)品M進(jìn)行自動(dòng)化連跑測(cè)試時(shí),出現(xiàn)大量的K特性測(cè)試腳本失敗。K特性責(zé)任田進(jìn)行失敗分析后,發(fā)現(xiàn)測(cè)試環(huán)境需要增加部分業(yè)務(wù)配置。自動(dòng)化工廠測(cè)試工程師在測(cè)試環(huán)境中添加了相關(guān)的業(yè)務(wù)配置后,K特性的自動(dòng)化測(cè)試腳本連跑成功率顯著提升。
6.2.2 通過(guò)問(wèn)題單分析提升測(cè)試效率
測(cè)試經(jīng)理與測(cè)試架構(gòu)師對(duì)M產(chǎn)品的所有問(wèn)題單進(jìn)行匯總分析,發(fā)現(xiàn)這一段時(shí)間的問(wèn)題單中,有55張問(wèn)題單來(lái)自自動(dòng)化腳本失敗分析。進(jìn)一步深入分析發(fā)現(xiàn),軟件新特性的自動(dòng)化腳本連跑出現(xiàn)的問(wèn)題,多來(lái)自于軟件特性交互。測(cè)試架構(gòu)師為特性交互部分補(bǔ)充了測(cè)試用例。測(cè)試工程師為補(bǔ)充的測(cè)試用例編寫(xiě)測(cè)試腳本。再次進(jìn)行測(cè)試腳本連跑,軟件交互部分通過(guò)了測(cè)試腳本連跑,從而提高了M產(chǎn)品的自動(dòng)化測(cè)試效率。
在軟件產(chǎn)品的迭代過(guò)程中,自動(dòng)化測(cè)試的應(yīng)用場(chǎng)景比較多,在案例中僅提供軟件迭代開(kāi)發(fā)完成之后,對(duì)軟件進(jìn)行驗(yàn)收前,執(zhí)行測(cè)試腳本連跑的統(tǒng)計(jì)數(shù)據(jù)。
W產(chǎn)品與S產(chǎn)品在迭代開(kāi)發(fā)結(jié)束之后,自動(dòng)化測(cè)試腳本連跑結(jié)果如表2所示。
表2 自動(dòng)化測(cè)試腳本連跑結(jié)果
從表中可以看出,S產(chǎn)品的自動(dòng)化腳本數(shù)量比W產(chǎn)品多,失敗腳本數(shù)量卻比較少。由此可見(jiàn)S產(chǎn)品的自動(dòng)化測(cè)試腳本與腳本執(zhí)行機(jī)環(huán)境穩(wěn)定性更高。
對(duì)S產(chǎn)品與W產(chǎn)品的失敗腳本進(jìn)行分類統(tǒng)計(jì),分類統(tǒng)計(jì)數(shù)據(jù)如表3所示。
表3 測(cè)試腳本失敗的分類統(tǒng)計(jì)
注:對(duì)于軟件驗(yàn)收的自動(dòng)化測(cè)試通常不存在版本包問(wèn)題。
從表3中的數(shù)據(jù),分析結(jié)論如下:
(a)自動(dòng)化腳本測(cè)試環(huán)境需要加強(qiáng)配置管理工作,提升自動(dòng)化腳本連跑的成功率。
(b)對(duì)于腳本問(wèn)題,責(zé)任田主需要及時(shí)將修改后的腳本合入腳本庫(kù)。
(c)對(duì)于概率性失敗的腳本,需要責(zé)任田主和自動(dòng)化工廠測(cè)試工程師跟蹤這些失敗問(wèn)題,逐步發(fā)現(xiàn)概率性失敗的原因,解決腳本失敗問(wèn)題。
(d)對(duì)于軟件缺陷問(wèn)題,測(cè)試工程師均已提單跟蹤,由開(kāi)發(fā)工程師處理軟件缺陷問(wèn)題。
軟件自動(dòng)化測(cè)試在軟件開(kāi)發(fā)過(guò)程中獲得廣泛應(yīng)用,自動(dòng)化測(cè)試通過(guò)測(cè)試腳本連跑來(lái)實(shí)現(xiàn)。自動(dòng)化腳本連跑提升了軟件測(cè)試效率,為軟件迭代開(kāi)發(fā)和測(cè)試提供了良好的基礎(chǔ)。自動(dòng)化測(cè)試腳本連跑過(guò)程中必然有某些測(cè)試腳本失敗,需要對(duì)這些測(cè)試腳本進(jìn)行失敗分析。對(duì)于軟件自動(dòng)化測(cè)試而言,測(cè)試腳本的失敗分析是其中重要的核心環(huán)節(jié)。長(zhǎng)期的工作實(shí)踐表明做好軟件自動(dòng)化測(cè)試用例失敗分析,有助于提高軟件產(chǎn)品迭代開(kāi)發(fā)的效率和提升軟件產(chǎn)品的質(zhì)量。