劉語(yǔ)嬋 姚奕 黃松 駱潤(rùn)
摘 要:合理的評(píng)估機(jī)制能幫助眾包測(cè)試商業(yè)平臺(tái)客觀衡量眾包測(cè)試工作者測(cè)試任務(wù)完成質(zhì)量,對(duì)眾包測(cè)試平臺(tái)有重要商業(yè)意義。眾包測(cè)試的在線自由任務(wù)模式,使得如何識(shí)別欺騙類型工作者,有效評(píng)價(jià)任務(wù)完成質(zhì)量成為目前眾包研究中急需解決的問(wèn)題。鑒于此,提出一種對(duì)移動(dòng)應(yīng)用眾包測(cè)試報(bào)告自動(dòng)化評(píng)分的CTRAEA算法,利用過(guò)濾規(guī)則對(duì)無(wú)效測(cè)試報(bào)告進(jìn)行剔除,通過(guò)MMDBK聚類算法,結(jié)合報(bào)告提交者歷史可信度,按權(quán)重計(jì)算確定缺陷等級(jí),再對(duì)報(bào)告描述規(guī)范性構(gòu)建度量指標(biāo)及離散型度量函數(shù),并計(jì)算出測(cè)試報(bào)告規(guī)范性評(píng)分,最終加權(quán)求和兩方面評(píng)分以衡量工作者任務(wù)完成質(zhì)量。實(shí)驗(yàn)結(jié)果平均相對(duì)誤差為9.24%,證明評(píng)估算法準(zhǔn)確性較高。
關(guān)鍵詞:眾包測(cè)試報(bào)告;CTRAEA算法;缺陷等級(jí);MMDBK聚類算法;規(guī)范性度量
DOI:10. 11907/rjdk. 192488
中圖分類號(hào):TP312 ? 文獻(xiàn)標(biāo)識(shí)碼:A ??????????????? 文章編號(hào):1672-7800(2020)003-0104-07
Design of Automated Evaluation Algorithm for Mobile Application
Crowdsourcing Test Report
LIU Yu-chan, YAO Yi, HUANG Song, LUO Run
(Command & Control Engineering College, Army Engineering University of PLA, Nanjing 210000, China)
Abstract: A reasonable evaluation mechanism can help the crowdsourcing test business platform objectively measure the quality of the completion of test tasks by the crowdsourcing test workers, which is of great commercial significance to the platform. Due to the online free task mode of crowdsourcing test, how to identify cheat workers and evaluate task completion quality effectively has become an urgent problem to be solved in crowdsourcing research. Aiming at the problem in the mobile applications crowdsourcing test, this paper proposes a CTRAEA algorithm for scoring the crowdsourcing test report. Firstly, the filtering rule is used to eliminate the invalid test report.? The defect level was determined by weight calculation through MMDBK clustering algorithm combined with the credibility of the report submitter. And then the normative metrics of report description and the discrete metric function are put forward to calculate the normative score of test report. Finally, the quality of the task completion of the worker is measured by making weighted summation of the two score. The average absolute error of the experimental results is 0.836 90, which proves the accuracy of the evaluation algorithm.
Key Words: crowdsourced test reports; CTRAEA algorithm; defect grade; MMDBK clustering algorithm; normative measure
0 引言
軟件測(cè)試作為一項(xiàng)勞動(dòng)密集型工作,需要大量測(cè)試者參與,不僅僅是專業(yè)測(cè)試人員,還包括軟件面向的用戶群,只有這樣,軟件開(kāi)發(fā)人員才能獲得對(duì)功能、通信、交互等方面的反饋[1]。移動(dòng)應(yīng)用眾包測(cè)試通過(guò)互聯(lián)網(wǎng)將移動(dòng)應(yīng)用軟件的測(cè)試任務(wù)分配給大眾進(jìn)行測(cè)試,它將過(guò)去由員工執(zhí)行的測(cè)試任務(wù)以自由自愿的方式外包給匿名網(wǎng)絡(luò)用戶[2]。其因在線招募測(cè)試人員、無(wú)需準(zhǔn)備測(cè)試環(huán)境以及設(shè)備成本低等優(yōu)點(diǎn)而被移動(dòng)應(yīng)用開(kāi)發(fā)商及個(gè)人采用,可以幫助任務(wù)需求者尋到大量自由工作者,并利用這些工作者的智慧解決實(shí)際問(wèn)題。但在測(cè)試過(guò)程中有些惡意工作者為了追求自身利益最大化而不認(rèn)真工作,提交的測(cè)試結(jié)果質(zhì)量低下,測(cè)試質(zhì)量難以得到有效保障,可能給任務(wù)需求者造成嚴(yán)重?fù)p失。因此,對(duì)工作者提交的測(cè)試結(jié)果進(jìn)行充分評(píng)價(jià)至關(guān)重要。
眾包質(zhì)量評(píng)估的常用方法是專家評(píng)審法[3],將整個(gè)測(cè)試任務(wù)分給多個(gè)工作者,然后將工作者提交的答案交給專家進(jìn)行人工判斷并投票,將專家評(píng)審意見(jiàn)作為最終正確結(jié)果。由于專家評(píng)審法需耗費(fèi)大量人力、財(cái)力和時(shí)間,且評(píng)審專家的主觀性很大程度地影響了評(píng)審結(jié)果的準(zhǔn)確性,因此采用這種方式往往效率極低。針對(duì)該問(wèn)題,有研究者[4]采用一種擁有黃金標(biāo)準(zhǔn)數(shù)據(jù)的評(píng)估標(biāo)準(zhǔn),黃金標(biāo)準(zhǔn)數(shù)據(jù)指擁有標(biāo)準(zhǔn)答案的一類數(shù)據(jù),在執(zhí)行測(cè)試任務(wù)前,讓測(cè)試工作者首先回答黃金標(biāo)準(zhǔn)數(shù)據(jù)問(wèn)題,通過(guò)將工作者提交的結(jié)果與標(biāo)準(zhǔn)答案進(jìn)行比較可以快速檢測(cè)出惡意工作者,并拒絕他們提交的結(jié)果;Bernstrin等[5]將該方法進(jìn)一步擴(kuò)展,在工作者完成實(shí)際問(wèn)題時(shí)插入黃金標(biāo)準(zhǔn)數(shù)據(jù)問(wèn)題,對(duì)工作者的質(zhì)量進(jìn)行動(dòng)態(tài)評(píng)估;Ipeirotis等[6]指出受個(gè)人偏好影響,直接用EM算法[7]得到的誤差率評(píng)估工作者結(jié)果質(zhì)量不合理,進(jìn)而提出了一種消除個(gè)人偏好,恢復(fù)固有誤差率的方法,從而獲得更可靠的質(zhì)量評(píng)估結(jié)果;Huang等[8]提出一種在Amazon Mturk中自動(dòng)生成任務(wù)的方法,通過(guò)工作者的表現(xiàn)訓(xùn)練生成質(zhì)量評(píng)估模型,并應(yīng)用該模型實(shí)現(xiàn)任務(wù)設(shè)計(jì)最優(yōu)化,該方法可以精確預(yù)測(cè)任務(wù)輸出精確度。
目前已經(jīng)存在一些眾包測(cè)試評(píng)估方法,但是質(zhì)量評(píng)估方法仍受到如下幾個(gè)因素的限制:任務(wù)類型、時(shí)間、經(jīng)濟(jì)花費(fèi)和工作者,但這些策略并不能排除掉所有欺騙類型工作者,尚缺乏一種比較客觀的眾包測(cè)試質(zhì)量評(píng)估策略。對(duì)于任務(wù)需求者而言,其最終關(guān)心的是結(jié)果質(zhì)量,想要很好地解決眾包測(cè)試結(jié)果質(zhì)量問(wèn)題,還需要從提交結(jié)果本身的正確性和可靠性入手。因此,本文基于測(cè)試報(bào)告分析,提出了一種合理、客觀的評(píng)價(jià)算法CTRAEA(Crowdsourced Test Reporting Automated Evaluation Algorithm),從報(bào)告內(nèi)容缺陷嚴(yán)重性和測(cè)試報(bào)告規(guī)范性兩方面對(duì)工作者表現(xiàn)進(jìn)行綜合評(píng)價(jià),以期通過(guò)這種評(píng)估算法正確衡量工作者的任務(wù)完成質(zhì)量,剔除態(tài)度散漫或者惡意掘金的工作者,激勵(lì)理性優(yōu)秀工作者高質(zhì)量完成任務(wù),并提高眾包測(cè)試平臺(tái)整體性能。
1 眾包測(cè)試平臺(tái)介紹
隨著眾測(cè)模式下由人員多樣性、互補(bǔ)性等帶來(lái)的缺陷發(fā)現(xiàn)效率提升,眾測(cè)得到了業(yè)界廣泛關(guān)注,出現(xiàn)了很多眾測(cè)商業(yè)平臺(tái)(例如Applause、BaiduMTC、MoocTest、Testin 等)。任務(wù)請(qǐng)求者能夠在這些平臺(tái)上提交測(cè)試任務(wù),并招聘眾包測(cè)試工人執(zhí)行測(cè)試。這些眾包測(cè)試平臺(tái)采用不同的績(jī)效考核和獎(jiǎng)勵(lì)機(jī)制,能夠提供不同類型的測(cè)試服務(wù),涵蓋不同的測(cè)試對(duì)象,按照不同的方式召集工人。
現(xiàn)有眾包測(cè)試平臺(tái)工作流程如圖1所示[9],眾包測(cè)試發(fā)包方(軟件開(kāi)發(fā)方)將軟件發(fā)布到平臺(tái)并提交任務(wù)需求,眾包測(cè)試平臺(tái)根據(jù)任務(wù)需求將任務(wù)發(fā)布給眾包測(cè)試接包方(測(cè)試工作者),接包方接受任務(wù)并對(duì)軟件進(jìn)行測(cè)試,一旦測(cè)試人員檢測(cè)到缺陷,就根據(jù)設(shè)計(jì)好的測(cè)試報(bào)告格式填寫(xiě),并提交測(cè)試報(bào)告。測(cè)試報(bào)告內(nèi)容主要包括設(shè)備(版本)、網(wǎng)絡(luò)、缺陷等級(jí)、Bug描述以及測(cè)試步驟等,平臺(tái)再對(duì)測(cè)試報(bào)告進(jìn)行融合和評(píng)價(jià),最后將最終報(bào)告提交給發(fā)包方。平臺(tái)技術(shù)人員與專家根據(jù)用戶測(cè)試缺陷報(bào)告對(duì)缺陷進(jìn)行驗(yàn)證,并根據(jù)缺陷嚴(yán)重等級(jí)及測(cè)試報(bào)告質(zhì)量給出一個(gè)評(píng)分,平臺(tái)給予工作者相應(yīng)獎(jiǎng)勵(lì)。平臺(tái)將有效的測(cè)試報(bào)告歸納融合后提交給眾包測(cè)試發(fā)包方,收取一定費(fèi)用。
眾包測(cè)試報(bào)告通常以簡(jiǎn)短文字描述程序行為,并輔助截圖等信息??傮w而言,眾包測(cè)試報(bào)告相比傳統(tǒng)測(cè)試報(bào)告具有文字描述簡(jiǎn)略、截圖信息豐富等特點(diǎn)[10]。由圖1的眾包測(cè)試流程可以看出,眾包測(cè)試平臺(tái)對(duì)于接包方的評(píng)定主要來(lái)源于測(cè)試報(bào)告評(píng)價(jià),因此深入分析接包方工作者提交的測(cè)試報(bào)告有很大價(jià)值,測(cè)試報(bào)告能很大程度上反映出工作者的測(cè)試能力與測(cè)試態(tài)度。因此,本文從測(cè)試報(bào)告分析入手,提出了一種客觀的眾包測(cè)試報(bào)告評(píng)價(jià)算法,對(duì)工作者表現(xiàn)進(jìn)行評(píng)價(jià)。
2 測(cè)試報(bào)告自動(dòng)化評(píng)估算法設(shè)計(jì)
基于測(cè)試報(bào)告的自動(dòng)化評(píng)估算法CTRAEA,能夠識(shí)別欺騙類型工作者,有效地評(píng)價(jià)任務(wù)完成質(zhì)量。考慮到有的工作者為了利益隨意填寫(xiě)或者不填寫(xiě)測(cè)試報(bào)告,首先對(duì)眾包測(cè)試報(bào)告進(jìn)行深入研究,剔除無(wú)效測(cè)試報(bào)告,然后從報(bào)告內(nèi)容缺陷嚴(yán)重性和測(cè)試報(bào)告規(guī)范性兩方面予以評(píng)估。一方面通過(guò)測(cè)試報(bào)告MMDBK算法聚類確定發(fā)現(xiàn)缺陷類型數(shù)量,并按工作者歷史可信度權(quán)重評(píng)估各類型嚴(yán)重等級(jí);另一方面構(gòu)建報(bào)告描述規(guī)范性度量指標(biāo)及離散型度量函數(shù),并計(jì)算各測(cè)試報(bào)告的規(guī)范性得分。最后綜合兩者計(jì)算出每個(gè)測(cè)試報(bào)告最終評(píng)分。算法思路如圖2所示。
2.1 數(shù)據(jù)預(yù)處理
移動(dòng)應(yīng)用眾包測(cè)試報(bào)告有固定格式,一個(gè)報(bào)告只描述一個(gè)缺陷,工作者通過(guò)提交多個(gè)測(cè)試報(bào)告以報(bào)告發(fā)現(xiàn)的多個(gè)缺陷。對(duì)多個(gè)測(cè)試報(bào)告數(shù)據(jù)集進(jìn)行分析發(fā)現(xiàn),測(cè)試報(bào)告集中存在一些特殊測(cè)試報(bào)告。Bug的描述信息字段存在以下兩種特殊語(yǔ)句:
(1)短語(yǔ)句。Bug描述一欄為空或者僅僅包含幾個(gè)字,無(wú)任何可讀性描述,僅有一些測(cè)試步驟描述。
(2)偽語(yǔ)句。在Bug描述一欄中,主要說(shuō)明測(cè)試用例被成功執(zhí)行,不存在缺陷,測(cè)試通過(guò)。
包含以上兩條之一的測(cè)試報(bào)告屬于無(wú)效測(cè)試報(bào)告,它們沒(méi)有包含任何與軟件缺陷有關(guān)的信息。例如Bug描述字段為空或者Bug描述字段長(zhǎng)度為1,都意味著此測(cè)試報(bào)告無(wú)意義。測(cè)試報(bào)告Bug描述字段為“沒(méi)有發(fā)現(xiàn)Bug”,則說(shuō)明測(cè)試通過(guò)。因此,為了提高測(cè)試報(bào)告數(shù)據(jù)集處理效率,在對(duì)其進(jìn)行處理之前,需要過(guò)濾掉這些無(wú)效測(cè)試報(bào)告。
經(jīng)過(guò)分析歸納發(fā)現(xiàn),測(cè)試報(bào)告描述信息過(guò)少,能夠直接過(guò)濾,包含偽語(yǔ)句測(cè)試報(bào)告的描述信息多由陳述語(yǔ)句構(gòu)成。經(jīng)過(guò)隨機(jī)抽樣10%,發(fā)現(xiàn)描述信息普遍包含特殊字符串,例如,“測(cè)試通過(guò)”“執(zhí)行成功”“未發(fā)現(xiàn)”“無(wú)Bug”“沒(méi)有發(fā)現(xiàn)一個(gè)缺陷”等。由此可以總結(jié)出以下兩條過(guò)濾規(guī)則:①如果Bug描述的文本長(zhǎng)度小于等于4,則過(guò)濾測(cè)試報(bào)告;②如果Bug的描述信息正則匹配能夠包含([A][P])|([N][O])|([N][D]?[Q]?[O]),則過(guò)濾測(cè)試報(bào)告。其中,A為行為詞,P為肯定詞,N為否定詞,O為對(duì)象詞,D為動(dòng)作詞,Q為數(shù)量詞,它們分別包含特定詞語(yǔ),如表1所示。
過(guò)濾掉無(wú)效測(cè)試報(bào)告后,需進(jìn)一步對(duì)測(cè)試報(bào)告進(jìn)行預(yù)處理。由于測(cè)試報(bào)告由中文自然語(yǔ)言構(gòu)成,因此需要采用NLP技術(shù)對(duì)測(cè)試報(bào)告進(jìn)行處理,主要包括單詞分割和停用詞移除??紤]到中文漢字分詞艱難,本文借助NLPIR分詞工具進(jìn)行實(shí)行處理,這是一款開(kāi)源的中文NLP工具,分詞效果較好。
2.2 MMDBK聚類算法與等級(jí)確定
不同的軟件缺陷對(duì)軟件質(zhì)量有不同影響,有的僅僅是用戶體驗(yàn)差,有的則可能是災(zāi)難性的。影響大小可定義為軟件缺陷的嚴(yán)重性,可以概括為以下4種級(jí)別[11]:
(1)較輕。一些小缺陷如有錯(cuò)別字、文字排版差等,對(duì)功能幾乎沒(méi)有影響,可正常使用。
(2)一般。不太嚴(yán)重的錯(cuò)誤,如部分次要功能沒(méi)有實(shí)現(xiàn)、用戶界面差和響應(yīng)時(shí)間長(zhǎng)等。
(3)嚴(yán)重。主要功能模塊沒(méi)有實(shí)現(xiàn),部分主要功能喪失,次要功能全部喪失。
(4)致命。能夠造成系統(tǒng)崩潰、死機(jī),或造成數(shù)據(jù)丟失、主要功能完全喪失等。
針對(duì)發(fā)現(xiàn)缺陷的不同等級(jí),測(cè)試工作者對(duì)軟件質(zhì)量測(cè)試的貢獻(xiàn)也不一樣,通常認(rèn)為其能力越強(qiáng),任務(wù)完成質(zhì)量越高。因此,本文主要工作是通過(guò)聚類測(cè)試報(bào)告確定Bug等級(jí)。
由于測(cè)試報(bào)告和發(fā)現(xiàn)的缺陷一一對(duì)應(yīng),因此采取直接對(duì)測(cè)試報(bào)告聚類的方法。算法主要思想是:通過(guò)TF-IDF算法計(jì)算預(yù)處理后的測(cè)試報(bào)告[tf-idf]值[12],再綜合算法設(shè)計(jì)思路,將所有測(cè)試報(bào)告的[tf-idf]值作為聚類數(shù)據(jù)對(duì)象[On=x1,x2,,xn],每個(gè)測(cè)試報(bào)告的一組[tf-idf]值就是其中一個(gè)數(shù)據(jù)對(duì)象[xi],然后利用MMDBK算法對(duì)測(cè)試報(bào)告進(jìn)行聚類。
2.2.1 MMDBK聚類算法
MMDBK(Max-Min and Davies-Bouldin Index based K-means)算法是針對(duì)K-means算法缺陷而改進(jìn)的聚類算法[13],它對(duì)K-means算法中聚類個(gè)數(shù)[K]的確定以及[K]個(gè)聚類中心的選定作出改進(jìn),通過(guò)使用Davies-Bouldin Index(縮寫(xiě)為DBI)聚類指標(biāo)[14]和最大最小距離法[15],確定最佳聚類個(gè)數(shù)并選取新的聚類中心,以保證各類之間具有較小相似度。
MMDBK總體聚類算法步驟為:
Step1:從[n]個(gè)數(shù)據(jù)對(duì)象[On=x1,x2,,xn]中選出距離最遠(yuǎn)的兩個(gè)對(duì)象[x1]和[x2]。
Step2:通過(guò)近鄰查找找出與聚類中心距離小于閾值[d]的所有對(duì)象,將其加入此中心的臨近類中,重新計(jì)算此臨近類的中心。
Step3:判斷計(jì)算的DBI值是否比上一輪小,若比上一輪小則符合循環(huán)條件。
Step4:若符合條件,則尋找新的聚類中心,重復(fù)Step2和Step3。
Step5:若不符合條件,則停止循環(huán),將剩余數(shù)據(jù)對(duì)象歸類到最鄰近的類中。
Step6:輸出聚類結(jié)果。
算法設(shè)計(jì)具體涉及以下3個(gè)部分:
(1)使用SFC算法[13],以避免K-means算法在選取聚類中心時(shí)過(guò)于鄰近而導(dǎo)致聚類邊界模糊的問(wèn)題。提出一種復(fù)雜度為[O(n)]的兩個(gè)距離最遠(yuǎn)的對(duì)象,形成兩個(gè)初始聚類,以保證后續(xù)計(jì)算中不同類之間有較低相似度。
(2)通過(guò)SFC算法找到初始的兩個(gè)聚類中心并更新類中心后,再確定聚類個(gè)數(shù)并找到剩下的[K-2]個(gè)聚類中心,使得各聚類中心之間的相似度盡量低是算法的關(guān)鍵。
MMDBK算法提出改進(jìn)的最大最小距離法解決問(wèn)題,設(shè)計(jì)思想如下:
已知[c1]、[c2]兩個(gè)初始聚類中心,分別計(jì)算出剩余對(duì)象到[c1]、[c2]的距離[Dj1]和[Dj2],若[Dk=maxmin(Dj1,Dj2),][j=1,2,?,n],并且[Dk>θ?D12], [D12]為[c1]和[c2]的距離,則取[xj]為第3個(gè)聚類中心,[c3=xj]。
如果[c3]存在,則計(jì)算[Dk=maxmin(Dj1,Dj2,Dj3),][j=1,2,?,n],若[Dk>θ?D12],則找到了第4個(gè)聚類中心。以此類推,直到[Dk>θ?D12]不滿足時(shí),則結(jié)束聚類中心尋找。
(3)算法基于Davies-Bouldin Index(DBI)聚類指標(biāo)實(shí)現(xiàn)聚類結(jié)果評(píng)估。DBI聚類指標(biāo)是一種非模糊型的集群評(píng)估指標(biāo),主要以類間分離度和類內(nèi)的內(nèi)聚度兩種因素為依據(jù),即不同類之間相異性高,而同類之中數(shù)據(jù)對(duì)象相似性高。當(dāng)類內(nèi)各數(shù)據(jù)對(duì)象間距離越小而類間距離越大,DBI值也就越小,表明此聚類數(shù)目下的聚類結(jié)果最佳。其類間距離和類內(nèi)距離計(jì)算分別如式(1)、式(2)所示。
其中,[x]表示第i個(gè)類內(nèi)的數(shù)據(jù)對(duì)象,[vi]表示第i個(gè)類的質(zhì)心,[Ci]表示第i個(gè)類內(nèi)的數(shù)據(jù)對(duì)象數(shù)目,[Si]表示第i個(gè)類內(nèi)各數(shù)據(jù)對(duì)象與質(zhì)心[vi]的標(biāo)準(zhǔn)誤差。
Davies-Bouldin Index公式如式(3)所示。
其中,[Si]表示第i個(gè)類的類內(nèi)距離,[Sj]表示第j個(gè)類的類內(nèi)距離,[di,j]表示第i個(gè)類與第j個(gè)類質(zhì)心之間的歐式距離,[K]表示聚類個(gè)數(shù)。
好的聚類結(jié)果應(yīng)該是同一類間的類內(nèi)距離小、類間距離大,能夠滿足該條件,即分子越小、分母越大時(shí),DBI值越小,即通過(guò)該值可得到最佳聚類數(shù)目。
2.2.2 缺陷等級(jí)評(píng)估
聚類完成后,每一類都可以被看作是待測(cè)軟件某一個(gè)缺陷的測(cè)試報(bào)告集,針對(duì)一種缺陷,可以根據(jù)工作者填寫(xiě)的測(cè)試報(bào)告等級(jí)進(jìn)行評(píng)估[16-17]。優(yōu)先考慮測(cè)試歷史可信度高的工作者測(cè)試報(bào)告,根據(jù)平臺(tái)參與工作者的歷史可信度進(jìn)行歸一化處理,作為權(quán)重系數(shù)分別計(jì)算出測(cè)試報(bào)告集中此類缺陷較輕、一般、嚴(yán)重、致命的比例系數(shù),選取比例最高的一種缺陷等級(jí)作為此類缺陷的最終等級(jí)。
整個(gè)測(cè)試報(bào)告數(shù)據(jù)集被聚類成[N]類缺陷,分別為測(cè)試報(bào)告集合[Cla1]、[Cla2]、…、[ClaN],每一類中又包含4個(gè)等級(jí)的測(cè)試報(bào)告,其中每一類每個(gè)等級(jí)的集合中包含[mi,j](j=1,2,3,4分別表示較輕、一般、嚴(yán)重、崩潰)個(gè)測(cè)試報(bào)告。[Clai,j,k]表示第i缺陷中第j級(jí)的第k測(cè)試報(bào)告,對(duì)應(yīng)提交測(cè)試報(bào)告的工作者歷史可信度用[Ui,j,k]表示,指第i第j級(jí)的第k測(cè)試報(bào)告提交者的貢獻(xiàn)度,[TR]為所有測(cè)試報(bào)告數(shù)量,即對(duì)應(yīng)的工作者數(shù)量。對(duì)貢獻(xiàn)度進(jìn)行標(biāo)準(zhǔn)歸一化,求得所有用戶歷史可信度的均值如式(4)所示。
用戶歷史貢獻(xiàn)值方差如式(5)所示。
歸一化后如式(6)所示。
針對(duì)每一類缺陷,分別計(jì)算較輕、一般、嚴(yán)重、致命的比例系數(shù)。
其中,[δ]是測(cè)試報(bào)告系數(shù),一般設(shè)置為0.8。
選擇[Bi=max(Bi,1,Bi,2,Bi,3Bi,4)]所屬的等級(jí)作為第[i]類缺陷的等級(jí)。
同時(shí)設(shè)定每種等級(jí)價(jià)值比例,等級(jí)為致命、嚴(yán)重、一般、較輕的權(quán)限等級(jí)評(píng)分分別為10分、7.5分、5分、2.5分。
2.3 報(bào)告規(guī)范性度量
測(cè)試報(bào)告規(guī)范性反映了眾包測(cè)試工作者完成任務(wù)的能力與態(tài)度,是工作者測(cè)試報(bào)告評(píng)價(jià)的因素之一。因此,為了更準(zhǔn)確地評(píng)價(jià)測(cè)試報(bào)告的規(guī)范性,選取多個(gè)度量指標(biāo)構(gòu)建度量函數(shù),從不同角度對(duì)測(cè)試報(bào)告規(guī)范進(jìn)行評(píng)估。
2.3.1 度量指標(biāo)選擇
依據(jù)已有需求規(guī)格說(shuō)明書(shū)和缺陷報(bào)告質(zhì)量評(píng)估相關(guān)研究[18],本文定義了7個(gè)可量化的指標(biāo)用以度量測(cè)試報(bào)告質(zhì)量,主要對(duì)缺陷描述信息或測(cè)試步驟作評(píng)估:
(1)文本長(zhǎng)度。文本長(zhǎng)度指測(cè)試報(bào)告中缺陷描述信息中包含的漢字?jǐn)?shù)量,文本長(zhǎng)度保持在合適數(shù)值范圍的測(cè)試報(bào)告質(zhì)量較好。
(2)可讀性??梢远攘课谋镜拈喿x難度,度量公式為[Y=14.959 6X1+39.077 46X2-2.48X3],其中,[X1]表示難詞的比例,[X2]表示句子數(shù)量,[X3]表示漢字平均筆畫(huà)數(shù)。
(3)動(dòng)作詞。在描述缺陷時(shí),往往會(huì)在測(cè)試步驟中描述動(dòng)作序列,這些動(dòng)作是測(cè)試工作者觸發(fā)軟件界面或接口事件的關(guān)鍵。因此,需要關(guān)注測(cè)試報(bào)告中的動(dòng)作詞,如“打開(kāi)”“點(diǎn)擊”“退出”等。
(4)對(duì)象詞。當(dāng)測(cè)試工作者發(fā)現(xiàn)軟件缺陷時(shí),他們會(huì)用一些能體現(xiàn)系統(tǒng)錯(cuò)誤的詞語(yǔ)描述這種行為,比如“問(wèn)題”“缺陷”“Bug”等。
(5)否定詞。當(dāng)測(cè)試工作者發(fā)現(xiàn)軟件缺陷時(shí),他們會(huì)用一些否定的詞語(yǔ)描述系統(tǒng)功能缺失,比如“缺失”“失敗”“失效”等。
(6)模糊詞。在測(cè)試過(guò)程中,測(cè)試工作者如果遇到不明確或者不確定的缺陷時(shí),更傾向于使用一些模糊詞匯進(jìn)行描述,這些描述可能會(huì)給測(cè)試報(bào)告的理解帶來(lái)困難。模糊詞有“幾乎”“少數(shù)”“可能”“一般”等。
(7)界面元素。移動(dòng)應(yīng)用軟件界面由許多交互組件組成,軟件測(cè)試時(shí)需要對(duì)相應(yīng)組件進(jìn)行點(diǎn)擊、輸入、滑動(dòng)等操作,描述動(dòng)作序列時(shí),必定會(huì)包含這些界面元素,如“按鈕”“滑動(dòng)條”等。
測(cè)試步驟長(zhǎng)度是根據(jù)軟件復(fù)雜程度而定,無(wú)法用一個(gè)合適的文本長(zhǎng)度進(jìn)行度量。于是,針對(duì)已經(jīng)預(yù)處理完的分詞文本,對(duì)缺陷描述信息用文本長(zhǎng)度進(jìn)行單獨(dú)量化,對(duì)缺陷描述信息和測(cè)試步驟用剩余6個(gè)指標(biāo)共同量化,最后針對(duì)每個(gè)測(cè)試報(bào)告都生成一個(gè)7維的指標(biāo)向量。
2.3.2 度量函數(shù)建立
對(duì)測(cè)試報(bào)告指標(biāo)化后,每個(gè)測(cè)試報(bào)告都可以用一個(gè)7維向量表示。為了將指標(biāo)的數(shù)值轉(zhuǎn)化成評(píng)估質(zhì)量值,比如“好評(píng)”“中評(píng)”“差評(píng)”,引用Xin Chen[19]提出的度量函數(shù)將連續(xù)值轉(zhuǎn)化為離散值。
度量函數(shù)被分為4種:增長(zhǎng)型度量函數(shù)、下降型度量函數(shù)、凸型度量函數(shù)、凹型度量函數(shù),如圖3所示。
圖3含義如下:
(1)增長(zhǎng)型度量函數(shù)。當(dāng)指標(biāo)小于[x1]時(shí),該指標(biāo)為差評(píng),當(dāng)指標(biāo)大于[x1]時(shí),該指標(biāo)為好評(píng)。
(2)下降型度量函數(shù)。當(dāng)指標(biāo)小于[x1]時(shí),該指標(biāo)為好評(píng),當(dāng)指標(biāo)大于[x1]時(shí),該指標(biāo)為差評(píng)。
(3)凸型度量函數(shù)。當(dāng)指標(biāo)處于[x1]和[x2]之間時(shí),該指標(biāo)為好評(píng),當(dāng)指標(biāo)小于[x1]或大于[x2]時(shí),該指標(biāo)為差評(píng)。
(4)凹型度量函數(shù)。當(dāng)指標(biāo)處于[x1]和[x2]之間時(shí),該指標(biāo)為差評(píng),當(dāng)指標(biāo)小于[x1]或大于[x2]時(shí),該指標(biāo)為好評(píng)。
但是上述度量函數(shù)只能劃分出好與差兩種離散值,為此,本文需要再對(duì)度量函數(shù)進(jìn)行擴(kuò)展,增加分界參數(shù)[x2]、[x3]、[x4],使得擴(kuò)展的度量函數(shù)能劃分出好、中、差3種離散值,如圖4所示。
表2總結(jié)了7個(gè)指標(biāo)對(duì)應(yīng)的度量函數(shù)類型及函數(shù)參數(shù)設(shè)置,對(duì)于增長(zhǎng)型和下降型度量函數(shù),使用[0-a-b-∞]形式表示參數(shù)區(qū)間,為3個(gè)區(qū)間。對(duì)于凸型和凹型度量函數(shù),使用[0-a-b-c-d-∞]形式表示參數(shù)區(qū)間,為5個(gè)區(qū)間。
對(duì)測(cè)試報(bào)告進(jìn)行深入分析可知,文本最適合長(zhǎng)度是15~30,太長(zhǎng)或太短的文本都會(huì)影響測(cè)試報(bào)告質(zhì)量。因此,用凸型擴(kuò)展度量函數(shù)進(jìn)行評(píng)估,可讀性同樣如此,具體參數(shù)會(huì)通過(guò)實(shí)驗(yàn)調(diào)試獲得。對(duì)象詞和否定詞指標(biāo)用明確的數(shù)字表示,如果文本中包含0個(gè)或2個(gè)以上的對(duì)象詞或者否定詞,則認(rèn)為測(cè)試報(bào)告質(zhì)量低,如果只有1個(gè)對(duì)象詞或者否定詞,則認(rèn)為其質(zhì)量高。動(dòng)作詞和界面元素使用增加型擴(kuò)展度量函數(shù),即如果包含這些詞越多,則認(rèn)為該指標(biāo)上測(cè)試報(bào)告質(zhì)量越好。只有模糊詞指標(biāo)屬于下降型擴(kuò)展度量函數(shù),模糊詞越多,則測(cè)試報(bào)告質(zhì)量越差。
2.3.3 報(bào)告規(guī)范性評(píng)分
經(jīng)過(guò)度量函數(shù)設(shè)置參數(shù)進(jìn)行分類,可以按指標(biāo)得到測(cè)試報(bào)告的“好評(píng)”“中評(píng)”“差評(píng)”,為了將多個(gè)指標(biāo)評(píng)價(jià)匯總,3種不同評(píng)價(jià)對(duì)應(yīng)不同分?jǐn)?shù)等級(jí),無(wú)效測(cè)試報(bào)告都設(shè)定為0分;對(duì)其它有效測(cè)試報(bào)告按照好評(píng)、中評(píng)、差評(píng)的數(shù)量順序進(jìn)行排序,7個(gè)指標(biāo)全部好評(píng)的規(guī)范性得分為max=10,7個(gè)指標(biāo)全部差評(píng)的規(guī)范性得分為min=1,從低到高排序第i位測(cè)試報(bào)告的規(guī)范性得分為(max-min)*i/(結(jié)果數(shù)-1)+min。具體分?jǐn)?shù)如表3所示,針對(duì)測(cè)試報(bào)告的向量指標(biāo)得到“好評(píng)”“中評(píng)”“差評(píng)”數(shù)量,對(duì)照表3進(jìn)行查詢,最后可以得到測(cè)試報(bào)告規(guī)范性的質(zhì)量得分。
2.4 評(píng)估算法設(shè)計(jì)
根據(jù)缺陷等級(jí)得分和規(guī)范性得分,通過(guò)加權(quán)得到最終得分,其評(píng)分如式(8)所示。
最終得分=[a]*缺陷等級(jí)得分+[1-a]*規(guī)范性得分?? (8)
其中,[a]表示缺陷等級(jí)分?jǐn)?shù)權(quán)重,一般為0.7,規(guī)范性得分權(quán)重為0.3。
CTRAEA算法偽代碼如下:
輸入:測(cè)試報(bào)告集[TR],工作者歷史可信度[GU]
CTRAEA ([TR],[GU])
1?? for i in range(n) //預(yù)處理階段
2???? if [TRi]符合匹配規(guī)則
3?????? [mTRi=0],delete [TRi]//無(wú)效報(bào)告記為0分,并剔除
4?? 統(tǒng)計(jì)無(wú)效報(bào)告數(shù)量//此數(shù)值評(píng)估過(guò)濾規(guī)則的準(zhǔn)確性
5?? [newTR=split(TR)]//對(duì)所有有效報(bào)告分詞,去停用詞
6?? [CN=Cluster(newTR)]//聚類評(píng)價(jià)缺陷等級(jí)
7?? for i in range(N)遍歷每一類缺陷
8???? for j in range(4) //遍歷此類缺陷的每一等級(jí)
9?????? for k in range([mi,j]) //遍歷此等級(jí)的所有測(cè)試報(bào)告
10??????? [Bi,j=k=1mi,j(GUi,j,k×δ)]
11??????? [Bi=max(Bi,1,Bi,2,Bi,3Bi,4)]//確定缺陷等級(jí)
12???? [DGi=ratio (Bi)]//確定缺陷等級(jí)分?jǐn)?shù)
13?? for i in range(m) //測(cè)試報(bào)告規(guī)范性度量
14???? [ZBi=newTERQAF(newTRi)]
15???? [QGi=search(ZBi)]
16???? [Rwi=a*DGi+(1-a)*QGi]//將缺陷等級(jí)分?jǐn)?shù)與規(guī)范性分?jǐn)?shù)加權(quán)求和,[a]一般為0.7
17?? 輸出[mTRi] 和[Rwi]
在算法中,1~5行都是對(duì)測(cè)試報(bào)告進(jìn)行預(yù)處理,6行是通過(guò)調(diào)用MMDBK算法進(jìn)行聚類,7~12行是利用式(7)計(jì)算各類缺陷各等級(jí)比重[Bi,j],并確定最終缺陷等級(jí)及分?jǐn)?shù)[DGi],14行是調(diào)用度量算法得到各指標(biāo)度量的質(zhì)量值,查表后得到具體分?jǐn)?shù)[QGi],最后加權(quán)求和[DGi]和[DGi]得到最終得分?jǐn)?shù)值[Rwi]。
3 實(shí)驗(yàn)驗(yàn)證
3.1 測(cè)試報(bào)告數(shù)據(jù)集
本文實(shí)驗(yàn)數(shù)據(jù)集從Kibug眾包測(cè)試平臺(tái)獲取得到[20],該平臺(tái)成立于 2012 年,是一個(gè)眾包任務(wù)的分發(fā)、收集和分析平臺(tái)。共收集了4個(gè)測(cè)試任務(wù),分別是圖個(gè)樂(lè)、愛(ài)逛街、網(wǎng)易云、優(yōu)播客。
主要摘取屬性為“設(shè)備版本”“網(wǎng)絡(luò)”“等級(jí)”“Bug描述”“測(cè)試步驟”的幾列作為研究關(guān)鍵詞。以上4個(gè)眾包測(cè)試任務(wù)結(jié)束時(shí),絕大部分缺陷都被檢出,每個(gè)提交的測(cè)試報(bào)告也已被管理人員審核,并且標(biāo)上“有效”“無(wú)效”標(biāo)簽,標(biāo)注人員還記錄了每個(gè)移動(dòng)應(yīng)用軟件的缺陷數(shù)量,標(biāo)注結(jié)果統(tǒng)計(jì)如表4所示。
本文總計(jì)收集到1 380個(gè)測(cè)試報(bào)告,其中包含圖個(gè)樂(lè)291個(gè),愛(ài)逛街408個(gè),網(wǎng)易云238個(gè),優(yōu)播客443個(gè)。表1記錄了標(biāo)注結(jié)果,4個(gè)測(cè)試報(bào)告集中無(wú)限測(cè)試報(bào)告數(shù)量分別是61、193、149和238。
3.2 算法計(jì)算結(jié)果評(píng)價(jià)
CTRAEA算法預(yù)處理階段將所有測(cè)試報(bào)告作為過(guò)濾器的輸入數(shù)據(jù)并運(yùn)行,篩選出有效和無(wú)效測(cè)試報(bào)告。已知標(biāo)注的無(wú)效測(cè)試報(bào)告分別是61、193、149、238個(gè),經(jīng)過(guò)兩條規(guī)則過(guò)濾后,正確過(guò)濾了61、189、147和232個(gè)無(wú)效測(cè)試報(bào)告,過(guò)濾準(zhǔn)確率為97.48%~100%,說(shuō)明過(guò)濾規(guī)則有效,但是錯(cuò)誤過(guò)濾的報(bào)告數(shù)量比未正確過(guò)濾的報(bào)告數(shù)量多。經(jīng)人工檢查發(fā)現(xiàn),有效測(cè)試報(bào)告語(yǔ)句中包含“無(wú)”字,能夠被正則匹配到,因此被過(guò)濾。
預(yù)處理完成后,利用MMDBK算法對(duì)測(cè)試報(bào)告聚類并確定每類缺陷等級(jí),評(píng)估結(jié)果如表5所示。
表5中缺陷等級(jí)評(píng)估結(jié)果準(zhǔn)確性都在90%左右,最高達(dá)93.65%,說(shuō)明聚類后對(duì)提交者能力和缺陷等級(jí)參數(shù)進(jìn)行評(píng)估,準(zhǔn)確性較高。
在質(zhì)量性評(píng)估的文本長(zhǎng)度指標(biāo)中,為了確定參數(shù)[x1]、[x2]、[x3]和[x4]的具體數(shù)值,采用控制變量法,固定3個(gè)參數(shù)值,逐漸增加一個(gè)參數(shù)值,利用相對(duì)誤差評(píng)價(jià)指標(biāo)比較預(yù)測(cè)結(jié)果精度,得到文本長(zhǎng)度的4個(gè)參數(shù)最佳取值分別為9、15、23、32,同樣得到可讀性參數(shù)最佳取值為-5、-1、6、12。用上文得到的參數(shù)進(jìn)行最終評(píng)分,得到測(cè)試報(bào)告重要性和規(guī)范性綜合得分。計(jì)算每個(gè)測(cè)試報(bào)告得分的相對(duì)誤差,取平均值作為該算法對(duì)軟件評(píng)估的相對(duì)誤差,最終結(jié)果如表6所示。
從實(shí)驗(yàn)數(shù)據(jù)可以看出,CTRAEA自動(dòng)化評(píng)估算法評(píng)估測(cè)試報(bào)告的分?jǐn)?shù)與標(biāo)注得分平均相對(duì)誤差為9.24%,4個(gè)軟件的平均相對(duì)誤差皆不超過(guò)10%,由此可見(jiàn)CTRAEA算法準(zhǔn)確高效。
4 結(jié)語(yǔ)
本文針對(duì)移動(dòng)應(yīng)用眾包測(cè)試質(zhì)量評(píng)估問(wèn)題進(jìn)行了探索,對(duì)眾包測(cè)試報(bào)告展開(kāi)了深入研究,提出了CTRAEA自動(dòng)化評(píng)估算法。該算法一方面通過(guò)測(cè)試報(bào)告MMDBK算法聚類確定發(fā)現(xiàn)缺陷類型數(shù)量,并按提交者歷史可信度權(quán)重評(píng)估各缺陷類型嚴(yán)重等級(jí),另一方面通過(guò)規(guī)范性度量指標(biāo)和離散型度量函數(shù)評(píng)價(jià)各測(cè)試報(bào)告的規(guī)范性,并綜合兩者計(jì)算出每個(gè)測(cè)試報(bào)告最終得分。整個(gè)算法無(wú)需人工評(píng)判,只需周期性地對(duì)部分報(bào)告進(jìn)行復(fù)審檢驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)也證明測(cè)試報(bào)告得分的評(píng)估方案準(zhǔn)確、高效。
本文方法也存在待改進(jìn)之處。由于只對(duì)測(cè)試報(bào)告質(zhì)量進(jìn)行度量,忽略了提交速度也是對(duì)工作者能力評(píng)價(jià)的重要影響因素,重復(fù)的測(cè)試報(bào)告根據(jù)提交速度不同可能存在抄襲現(xiàn)象,這些可能會(huì)造成評(píng)估結(jié)果偏差。因此,后續(xù)研究中將加入此因素進(jìn)行算法設(shè)計(jì)。
參考文獻(xiàn):
[1]王艷青,于海洋. 計(jì)算機(jī)軟件測(cè)試技術(shù)綜述[J]. 電子技術(shù)與軟件工程,2017(22):47-48.
[2]劉瑩,張濤,李坤,李楠. 移動(dòng)應(yīng)用眾包測(cè)試人員評(píng)價(jià)模型[J]. 計(jì)算機(jī)應(yīng)用,2017,37(12):3569-3573,3596.
[3]徐瀛,程廣明. 眾包測(cè)試模式現(xiàn)狀概述及生態(tài)效益分析[J]. 科技創(chuàng)新導(dǎo)報(bào),2018,15(29):60-62.
[4]云測(cè). 專家報(bào)告審核標(biāo)準(zhǔn)[EB/OL]. https://new.ztestin.com/help/helpinfo/index?id=69.
[5]LE,EDMONDS A,HESTER,et al. Ensuring quality in crowdsourced search relevance[C]. Workshop on crowdsourcing for search evaluation at SIGIR10,2010:21-26.
[6]BERNSTEIN M,BRANDT J,MILLER R,et al. Crowds in two sconds: enabling realtime crowd-powered interfaces[C]. UIST11,2011, 33-42.
[7]IPEIROTIS P G,PROVOST F,WANG J. Quality management on Amazon mechanical turk[C]. Proceedings of the SIGKDD Workshop on Human Computation,2010: 64-67.
[8]DAWID A P, SKENE A M. Maximum likelihood estimation of Observer error-rates using the EM algorithm[J]. Applied Statistics,1979,28(1):20-28.
[9]路津. 常用軟件功能性測(cè)試方法及缺陷分類[C]. 全國(guó)軟件測(cè)試能力驗(yàn)證總結(jié)會(huì)暨中國(guó)宇航學(xué)會(huì)計(jì)算機(jī)應(yīng)用專業(yè)委員會(huì)2006年學(xué)術(shù)年會(huì)論文集,2006:113-116.
[10]何曉靜. 對(duì)TF-IDF算法的改進(jìn)及實(shí)驗(yàn)研究[D]. 長(zhǎng)春:吉林大學(xué),2017.
[11]仲逸秋. 安全漏洞眾包驗(yàn)證平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 南京:南京大學(xué),2018.
[12]崔強(qiáng). 眾包測(cè)試中工作者選擇和測(cè)試報(bào)告分類方法研究[D]. 北京:中國(guó)科學(xué)院研究生院,2017.
[13]馮超. K-means聚類算法的研究[D]. 大連:大連理工大學(xué),2007.
[14]COELHO G P,BARBANTE C C,BOCCATO L,et al. Automatic feature selection for BCI: an analysis using the davies-bouldin index and extreme learning machines[C]. The 2012 International Joint Conference on Neural Networks(IJCNN),2012.
[15]劉燕. 基于抽樣和最大最小距離法的并行K-means聚類算法[J]. 智能計(jì)算機(jī)與應(yīng)用,2018,8(6):37-39,43.
[16]肖靜. 基于軟件測(cè)試中缺陷等級(jí)的可靠性評(píng)估方法[C]. 中國(guó)國(guó)防科技質(zhì)量與可靠性高峰論壇論文集,2010:236-238.
[17]呂林濤,安存召,李翠. 面向軟件質(zhì)量的Bug等級(jí)評(píng)價(jià)算法[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2008,29(23):6033-6036.
[18]成靜,葛璐琦,張濤,等. 移動(dòng)應(yīng)用眾包測(cè)試質(zhì)量影響因素分析[J]. 計(jì)算機(jī)應(yīng)用,2018,38(9):2626-2630.
[19]XIN CHEN,HE JIANG,XIAOCHEN LI,et al.Automated quality assessment for crowdsourced test reports of mobile applications[C]. 2018 IEEE 25th International Conference on Software Analysis,Evolution and Reengi-neering,2018:368-379.
[20]陳信. 眾包測(cè)試報(bào)告的挖掘與評(píng)估[D]. 大連:大連理工大學(xué),2018.
(責(zé)任編輯:孫 娟)
收稿日期:2019-11-11
基金項(xiàng)目:國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2018YFB1403400)
作者簡(jiǎn)介:劉語(yǔ)嬋(1996-),女,陸軍工程大學(xué)指揮控制工程學(xué)院碩士研究生,研究方向?yàn)檐浖y(cè)試、眾包測(cè)試;姚奕(1981-),男,博士,陸軍工程大學(xué)指揮控制工程學(xué)院副教授、碩士生導(dǎo)師,研究方向?yàn)檐浖y(cè)試、軟件工程;黃松(1970-),男,博士,陸軍工程大學(xué)指揮控制工程學(xué)院教授、博士生導(dǎo)師,研究方向?yàn)檐浖y(cè)試、軟件工程;駱潤(rùn)(1996-),男,陸軍工程大學(xué)指揮控制工程學(xué)院碩士研究生,研究方向?yàn)檐浖y(cè)試、軟件工程。本文通訊作者:姚奕。