首頁>科技>

摘要

眾包軟體測試已經被證明能夠檢測許多 bug 並模擬真實的使用場景。因此,它在移動應用程式測試中很流行。然而在手機測試中,測試報告通常只包含一些截圖和簡短的文字描述。檢查和理解大量的移動眾包測試報告是一項耗時但不可避免的任務。文字資訊的缺乏和潛在的不準確性以及移動應用程式中活動檢視的良好定義的截圖激勵我們提出一種新技術,透過自動描述截圖來幫助開發人員理解眾包測試報告。為了達到這個目標,在本文中,我們提出了一種全自動技術來為良好定義的螢幕截圖生成描述性詞彙。我們使用專業測試人員編寫的測試報告來構建語言模型。我們使用計算機視覺技術,即空間金字塔匹配(SPM),去衡量相似性,並從截圖影象提取特徵。基於 4 個工業眾包專案的 1000 多份測試報告的實驗結果表明,我們提出的技術有望讓開發者更好地理解移動眾包測試報告。

1 介紹

眾包技術已被廣泛應用於解決各種軟體工程任務,如測試、開發、設計等。尤其在軟體測試方面,與傳統方法相比,眾包測試能夠模擬真實的使用場景,並提供真實使用者的反饋。因此,它被廣泛用於測試移動應用程式,這些應用程式需要快速的開發和部署迭代,並支援多種移動平臺。

一般來說,人群在進行移動測試時,需要以測試報告的形式提交反饋,測試報告可能包含各種資訊,如文字描述、截圖、錄音、操作影片等。為了理解這些測試報告,開發人員需要診斷這些測試報告。然而,由於眾包測試經常涉及大量的人群工作者,因此,導致大量的測試報告,診斷和理解這些報告成為一個耗時但不可避免的任務。

為了提高診斷測試報告的效率,軟體工程研究人員提出了許多技術。在幾乎所有這樣的技術中,測試報告都是根據它們的文字相似性或它們的執行軌跡來被捕獲和被分析的。然而,在眾包手機測試中,這兩類資訊往往不足或不可用。雖然執行軌跡難以收集,但 Zhang 等人發現,移動應用程式 bug 報告的文字描述往往比桌面軟體短。這一事實從根本上禁用或阻礙了這些傳統的測試報告管理技術在眾包移動測試中的應用。

在本文中,我們提出了一種方法,使具有豐富的螢幕截圖和不足的文字描述的測試報告更容易理解,並支援在多個測試報告中進行文字分析,以瞭解所報告的 bug 的趨勢。該方法的目標是為眾包移動測試報告的截圖生成描述性關鍵字。這種方法是一種全自動的基於學習的技術,可以幫助開發者理解缺乏通常沒有足夠準確的文字描述,但卻有豐富的截圖的眾包手機測試報告。在截圖分析方面,我們採用空間金字塔匹配(SPM)技術測量截圖的相似性,並採用自然語言處理技術去分析編寫良好的測試報告的文字描述,以獲得加權關鍵字。進一步,利用加權關鍵字和相似度矩陣,我們對截圖進行聚類,並進一步為每個影象聚類建立語言模型。基於這些語言模型,我們可以為看不見的螢幕截圖生成描述性關鍵字,以幫助開發人員理解測試報告。

我們的本文主要貢獻如下:

1, 我們提出了一種基於影象理解的技術,為眾包測試報告中的截圖生成描述性關鍵字。據我們所知,這是第一個為截圖生成描述性關鍵字,以幫助開發者診斷和理解眾包手機測試報告的研究。

2, 為了驗證我們的技術,我們與中國最大的眾包測試平臺 Baidu Crowd Test 進行了合作。我們使用我們的技術對四個工業眾包專案進行了初步實驗。實驗結果表明,該方法對生成的描述性關鍵詞能夠達到較高的精準性和召回率。

2 動機

隨著移動裝置的日益普及,確保移動應用程式的質量已成為一項至關重要的軟體工程任務。在移動裝置上,影象在資訊的分享、表達和交換中扮演著至關重要的角色。在軟體測試方面,Zhang 等人發現,與桌面軟體的測試報告相比,移動應用的測試報告包含更短的文字描述和更多的截圖。報告者更喜歡對這些應用程式良好定義的活動檢視進行截圖,而不是輸入很長的段落來描述 bug。

對於流行的手機測試方法,眾包測試,截圖雖然簡化了提交測試報告的過程,但是缺少文字描述給開發者理解這些報告帶來了困難。在診斷這些移動眾包測試報告時,為了理解 bug 並重現它們,開發人員通常需要人工閱讀和分析內容,包括 bug 描述、操作、截圖和環境資訊等。在這個過程中,這些截圖有助於開發人員在活動級別上快速定位 bug,但是在描述性詞彙不夠的情況下很難重現錯誤。此外,眾包軟體測試的一個主要目標是從不同的使用設定中獲得反饋。因此,人群工作者可能有不同的知識、背景、使用習慣和軟硬體配置。這一事實使得眾包測試報告的描述質量差異很大。寫得不好和不準確的描述對篩選者可能很難理解或誤導。開發人員和 bug 報告者之間的認知差距給修復軟體 bug 帶來了困難。因此,從這些螢幕截圖中自動檢索資訊,並生成描述性的單詞來表示對 bug 的高層次理解,對於幫助開發人員處理這些測試報告和降低成本是很有幫助的。

3 方法

A. 初步

在眾包軟體測試中,測試報告中存在各種形式的多媒體資訊,如語音資訊、運營影片等。在這些資訊中,文字描述和截圖是兩種應用最廣泛的資訊。在本文中,我們關注於分析螢幕截圖的內容,為它們生成描述,以幫助軟體開發人員理解測試報告。我們只使用和分析測試報告的這兩個部分,即文字描述還有一組截圖。換句話說,測試報告集 ,這裡的 S 代表截圖,T 代表對 bug 的文字描述和操作步驟。注意到每個文字報告常常包含超過一個截圖,即對測試報告 的截圖集合 。 這裡 表示第 i 個測試報告 的第 j 個截圖。在本文中,我們的目標是從編寫良好的測試報告中訓練語言模型,為截圖生成描述性關鍵字。

B. 技術框架

該技術框架包含兩個主要階段:模型構建階段和應用程式階段。在模型構建階段,我們的目標是使用訓練測試報告的文字描述,併為訓練截圖構建語言模型;在應用階段,主要目標是使用這些語言模型為新截圖生成合適的描述性詞彙。在本節中,我們將介紹我們的技術框架的細節。

1. 模型構建階段:

模型構建階段分為以下幾個步驟:(1)分析編寫良好的測試報告的文字描述;(2)從截圖中提取特徵,並對相似截圖進行聚類;(3)為每個影象聚類建立語言模型。圖 1 描述了這個模型構建階段。

文字處理:

在軟體工程研究中,自然語言處理技術被用來輔助各種任務。在我們的技術中,我們利用編寫良好的測試報告的文字描述來構建描述性詞彙的語料庫。文字處理包括以下步驟:(1)標記化,(2)過濾,(3)建立關鍵詞向量機。

在我們的技術中,我們使用了 ,一個基於 python 的分割系統,來標記文字描述。我們將包含每個移動眾包測試報告的 bug 和操作描述的文字資訊輸入到 Jieba 中,獲取標記列表和相應的詞性標註。然而,這個初步的原始輸出也包含噪音,例如拼寫錯誤和不常見的單詞。為了構建能夠生成關鍵字的語言模型來描述操作和情況,我們需要從原始輸出中識別關鍵字。先前的研究表明,動詞和名詞對於反映文件的內容是最重要的。因此,我們只保留動詞和名詞作為測試報告的候選關鍵詞,並過濾其他單詞。為了減少由停止詞引起的 bias,我們還要根據 ICTCLAS 停止詞列表過濾掉它們。在這兩個步驟之後,我們可以為每個訓練測試報告獲得一個單詞序列。

截圖處理:

對於移動應用程式,每個活動檢視都是為了滿足某些功能需求而設計的,幾乎所有的截圖都來自移動應用程式的活動檢視。這一事實促使我們將所有這些截圖分組到幾個聚類中,並進一步為每個影象聚類構建語言模型。為了達到這個目標,截圖處理過程包括三個基本步驟:(1)構建特徵直方圖,(2)構建距離矩陣,(3)聚類類似的截圖。

首先,因為截圖不僅提供了 bug 症狀,還提供了特定於應用程式的視覺外觀、可變的解析度和複雜的背景,所以僅僅基於樸素的 RGB 值對特徵進行建模對於我們的任務來說不是一個合適的解決方法。因此,為了解決這些挑戰,我們採用空間金字塔匹配(SPM)演算法,從截圖中提取尺度不變特徵變換(SIFT),眾所周知,SIFT 在匹配影象特徵方面具有很高的精度。基於 SIFT,我們的技術可以從截圖中識別出相似的佈局和小部件。在得到特徵直方圖後,我們在影象集上建立一個距離矩陣。在我們的技術中,我們使用輪廓距離度量來度量每對影象之間的不相似性。

為了將截圖進行聚類,我們在影象集上進行了凝聚層次聚類。影響該演算法聚類結果的兩個基本引數是:連結型別,它定義了聚類之間距離的計算方法,以及確定聚類停止點的閾值。我們將閾值稱為 α。值得注意的是,凝聚層次聚類演算法在所有聚類之間的距離大於 α 時可以自動停止聚類。這樣,我們可以得到滿足距離條件的聚類,而不是預先指定聚類的數量。

建立語言模型:

我們介紹了為圖 2 中的一個截圖聚類構建一個語言模型的過程。對於每個叢集,我們確定包含聚類中的螢幕截圖的測試報告,然後將從這些測試報告的文字描述中獲取關鍵字列表作為 n-gram 模型的輸入,。n-gram 模型是一種預測連續序列中下一項的機率語言模型,其形式為(N−1)階馬爾可夫模型。給定關鍵字列表(這些關鍵字列表來自包含類似螢幕截圖的測試報告),n-gram 模型可以構建生成具有不同上下文的單詞的機率語言模型。

此外,所有的語言模型都必須處理詞彙表外(OOV)單詞,這些單詞指的是在模型構建階段在字典或資料庫中出現頻率很低的單詞。在我們的技術中,我們設定一個閾值 X 來識別 OOV 單詞。我們將訓練集中出現次數少於 X 次的單詞替換為特殊符號 unk,然後將 unk 視為常規單詞。

1. 應用階段:

對於測試資料集的每個報告,我們的目標是僅根據截圖從語言模型中生成單詞。首先,對於測試報告中的每個截圖,我們提取它們的 SIFT 特徵,並在訓練截圖集中計算其 K 個最近的鄰居。將投票策略應用於這 K 個最近的鄰居的聚類上,我們就可以識別出測試截圖所屬的聚類。因此,對於每個測試報告,我們可以根據螢幕截圖列表來識別聚類序列和相應的語言模型序列。

由於 n-gram 語言模型是一種由之前的狀態決定當前狀態的馬爾可夫模型,因此我們使用前一個語言模型的輸出作為序列中每個語言模型的輸入;我們輸入開始符號來開始生成過程。從每個語言模型中,我們連續生成最多 20 個單詞。

4 評估

為了驗證我們的技術,我們與中國最大的眾包測試平臺 BaiduCrowd Test 進行了合作。該平臺僱傭了大量的人群工作者來測試應用程式,並收集移動眾包測試報告。它為我們提供了四個真實移動應用的眾包測試報告。這些報告已經被手工檢查過,專業的測試人員已經根據原始的描述和截圖為它們編寫了操作步驟和描述。值得注意的是,在實踐中,專業測試人員投入精力診斷每個測試報告,因為他們需要獲得對眾包測試結果的充分理解。我們技術的主要目標是基於一些編寫良好的測試報告,自動為所有這些移動眾包測試報告的截圖生成關鍵字列表,並進一步提高診斷單個報告的效率。因此,為了評估我們的技術框架,我們對由專業測試人員編寫的文字描述的測試報告進行了十倍的交叉驗證。

表一顯示了這些應用程式的詳細資訊。所有這些主題都是 Android 市場上的熱門應用。#TR 表示測試報告數量,#S 表示截圖數量, 表示有一個以上的螢幕截圖的測試報告的數量。

在我們的實驗中,我們使用三元組,並應用平均連結,定義距離為一個聚類中的每個例項到另一個叢集中的每個例項之間的平均距離。進一步,我們設定距離閾值 α = 0.1,最低頻率閾值 X = 2,最近鄰居數 K = 3。我們進行了 30 次實驗,實驗結果如圖 3a 和 3b 所示。這兩個箱線圖表明,對於所有四個專案,我們得到的平均精度值大於 0.41,平均召回值大於 0.35。

在分析這些資料時,應該考慮到一個重要的現象,人們使用相同的詞來指代相同的概念的可能性非常低。這一現象已經被語言學和自然語言處理研究者所認識和研究。對於描述生成技術,基於詞比較的指標的實驗結果可能會因來自不同人的地面真值而有所不同。因此,儘管與經典基於分類技術的報告結果相比,平均精度和召回價值不是很高,這些基於分類技術報告結果的這些值通常高於 0.8,但是我們的技術可以自動生成 40%手工編寫的關鍵詞描述來改善眾包測試報告的可理解性。

5 相關工作

自然語言處理(natural language processing, NLP)以分析文字資訊為目的,已廣泛應用於協助各種軟體工程任務,與之相比,影象分析與理解技術在軟體工程領域的研究較少。Cai 等人提出了 VIPS 演算法,該演算法將網頁截圖分割成視覺塊,從視覺佈局而不是從 DOM 中推斷出層次結構。Choudhary 等人提出了一個叫做 WEBDIFF 的工具來比較網頁頁面的截圖外觀,來去自動識別出跨瀏覽器頁面。Michail 等人提出了一種靜態方法,GUISearch,透過使用應用程式的 GUI 來指導搜尋和瀏覽原始碼。他們進一步提出了一種動態方法,透過識別由使用者操作觸發的執行,並從顯示在應用程式片段中視覺化地描述操作,來獲得從高階操作到低階實現的顯式對映。雖然所有這些工作都採用影象理解技術來檢測軟體 bug,但我們的方法旨在提高測試報告截圖的可理解性。Feng 等人,提出了一種基於影象理解的優先順序技術,為開發人員處理測試報告提供了一個有效的診斷順序。然而,即使這種方法使開發人員能夠更早地識別 bug,它也不能幫助開發人員提高診斷單個只包含簡短的文字描述和螢幕截圖的測試報告的效率。

6 總結

在本文中,我們提出了一個分析截圖內容的框架,去生成對截圖的描述,進一步幫助軟體開發人員理解眾包測試報告。據我們所知,這是第一個提出使用影象理解和 n-gram 技術來幫助提高理解眾包測試報告效率的工作。我們給出了基於四個真實工業移動眾包專案的初步實驗結果。實驗結果表明,我們的技術在對影象生成描述方面能夠達到較高的準確率和召回率。

為了進一步提高效能,使該技術更加成熟,我們將對語言模型進行改進,並設計新的語言模型。此外,需要進一步的使用者研究和實證實驗來調查開發人員在理解眾包測試報告方面的改進。

5
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 勱微機器人|柔性智慧物流解決方案助力第三方物流整倉自動化升級