高秀慧,高建華
(上海師范大學計算機科學與技術系,上海200234)
基于事件交互圖的算法與研究
高秀慧,高建華
(上海師范大學計算機科學與技術系,上海200234)
圖形用戶界面的質(zhì)量直接影響整個軟件系統(tǒng)的有效性和實用性,一般采用提取模型的方法對圖形用戶界面進行測試,目前常用的模型為事件流圖和事件交互圖,但是事件流圖轉(zhuǎn)換成事件交互圖的算法較為復雜,為此,提出一種轉(zhuǎn)換算法,對圖形用戶界面事件進行明確劃分,利用模態(tài)窗口事件的特殊性優(yōu)化原有算法。測試實例結果表明,該算法可用于圖形用戶界面,且與Memon算法相比,能更高效地獲得更準確的數(shù)據(jù)。
圖形用戶界面;事件交互分類;事件流圖;事件交互圖;測試實例
圖形用戶界面(Graphical User Interface,GUI)的質(zhì)量直接影響了整個軟件系統(tǒng)的有效性和實用性,所以圖形用戶界面的測試一直是研究熱點[1], GUI測試最大的難點在于生成正確的事件序列(一個事件序列代表一個用戶交互,即用戶的一個行為——例如點擊鼠標按鈕、觸發(fā)應用程序的事件、應用程序通過執(zhí)行對應代碼響應事件),因此用戶的交互空間是無限的。解決此問題最有效的方法是通過算法自動從GUI上提取模型,該模型可運用圖遍歷算法枚舉訪問過的事件,生成測試集(一個測試對應于一組事件序列,路徑即事件序列,測試長度即該模型的事件數(shù)目)。當然,模型的提取并不是精確提取,生成的測試集還會存在不可行的問題,可以通過定義新的測試覆蓋準則和優(yōu)化測試集[2]來提高測試有效性。GUI測試可以通過基于模型的方法系統(tǒng)生成事件序列,再對測試集進行優(yōu)化。基于模型的算法是將代表事件的節(jié)點和代表事件序列的路徑模擬成流程圖,路徑上的事件序列可以用于生成GUI測試集。到目前為止,對于GUI應用程序的測試,國內(nèi)外的一些研究學者已取得了一些成果,這些學者利用GUI應用程序基于事件的特點來開發(fā)GUI測試模型。其中,最具有影響力的是Atif M.Memon,長期以來在GUI測試用例生成策略方面做了諸多研究[3-4],開發(fā)出最簡單有效的基于事件的GUI測試方法是事件流圖(Event Flow Graph,EFG)[5]和事件序列圖[6](Event Sequence Graph,ESG)。這2個方法都以事件為中心[7],EFG 可 以 使 用 GUI抓 取 技 術 (GUI ripping)[8]和逆向工程技術[9](reverse engineering)自動構建。在提取后EFG轉(zhuǎn)換成EIG的過程中,文獻[10]算法對事件類型的分類不夠明確,文獻[11]算法適用于只有單個模態(tài)窗口的GUI應用程序,并且生成的事件交互圖還不夠精簡。
本文為了優(yōu)化EFG轉(zhuǎn)換成EIG的轉(zhuǎn)換算法,以及分類GUI事件的交互關系,通過為圖形用戶界面建立一個事件交互模型的方法,對原有算法獲得的數(shù)據(jù)結果及轉(zhuǎn)換原理進行分析,通過對模態(tài)窗口中的事件進行分類選擇來優(yōu)化算法,提出一種事件流圖轉(zhuǎn)換成事件交互圖的算法,并且利用事件之間的交互關系,總結6種可能會引起測試集終止的事件交互類型。
用戶通過執(zhí)行某些部件上的事件,例如點擊按鈕、打開菜單項或者填充數(shù)據(jù)等行為與GUI交互。圖1(a)為簡單例舉的GUI應用程序,GUI應用程序共有10個事件。點擊按鈕“編輯”,打開下拉菜單選項共有 3個事件,分別為“保存”、“另存為”、“替換”;點擊“替換”,彈出替換窗口,共有3個事件,分別為“文件名為”、“確定”、“取消”,此時Demo窗口仍能使用;點擊“另存為”,彈出相應對話框窗口,共有3個事件,分別為“查找內(nèi)容”、“替換為”、“關閉”,此時隱藏了Demo窗口(即Demo窗口內(nèi)4個事件不能使用),點擊“取消”,退出對話框并恢復到Demo窗口,箭頭表示2張圖之間的轉(zhuǎn)換。
圖1 圖形用戶界面實例和對應的模型
2.1 GUI模型
在許多復雜的以事件為中心的模型中,改進EFG可以得到更多模型:(1)事件交互模型[10](Event Interaction Graph,EIG)代表了系統(tǒng)中的一組事件更實用、更具擴展性;(2)事件語義交互模型[12](Event Semantic Interaction Graph,ESIG)模擬了一組“事件語義交互”關系,代表在語義層面上的一組相互影響的事件。本文主要介紹EFG模型和EIG模型,提出一種EFG到EIG的改進算法,通過實驗證明算法的優(yōu)越性。
2.1.1 事件流圖
事件流圖(Event Flow Graph,EFG)是一個有向圖,模擬所有在GUI上可能被執(zhí)行的(大量)事件交互,它被直接用于快速測試,抽象地模擬事件序列。在EFG中,節(jié)點表示GUI中的事件,邊代表事件間的關系。圖1(b)為實例對應的事件流圖(EFG),即GUI上用戶可能執(zhí)行的所有交互的描述,可以用于生成GUI測試集。從節(jié)點nx到節(jié)點ny的一條邊意味著ny代表的事件可能直接在nx代表的事件之后被執(zhí)行,這種關系稱之為“跟蹤”。事件流圖中共有10個事件組成,10個節(jié)點代表10個事件,每條邊代表“跟蹤”關系。舉例,事件“另存為”跟蹤“編輯”,“編輯”為初始事件,即用戶最初的行為。
事件流圖是一個有向圖,箭頭對應的路徑不可逆,對事件流圖定義如下:
定義1 EFG代表GUI上事件節(jié)點的集合N和邊的一組有序?qū)?(ex,ey)的集合E,其中, {ex,ey}?N,表示EFG中的有向邊,當且僅當ey在ex之后執(zhí)行,則(ex,ey)∈E。
舉例:(編輯,保存),(另存為,文件名為),(替換為,替換為)。
事件流路徑代表GUI上可以執(zhí)行的事件序列,對事件流路徑定義如下:
定義2 當且僅當存在一條(可能為空的)節(jié)點序列(nj,nj+1,…,nj+k),{(nx,nj),(nj+k,ny)}?E, {(nj+i,nj+i+1),0≤i≤(k-1)}?E,則從節(jié)點nx到節(jié)點ny存在一條事件流路徑。
舉例:<保存;編輯;另存為;取消>和<文件名為(1);取消;編輯;保存;編輯;替換>。
EFG的節(jié)點由不同的語義和語法用于構建GUI,對GUI事件類型的定義如下:
定義3 可達事件(reachability event),代表用于打開窗口或菜單的事件。打開菜單事件用菱形表示,如圖1(b)中的{編輯};打開窗口事件用雙圈節(jié)點表示,如{另存為,替換}。其中,打開窗口事件可分為模態(tài)窗口的限制性聚焦事件和非模態(tài)窗口的非限制性聚焦事件。
定義4 模態(tài)窗口(modal window),代表限制性聚焦事件。當打開窗口時,用戶的交互限制在本窗口內(nèi),必須先操作窗口內(nèi)的事件,直至關閉當前窗口方可操作其他事件。模態(tài)窗口事件用雙圈表示,如圖1(b)中{另存為}打開的窗口。
定義5 非模態(tài)窗口(modeless window),代表非限制性聚焦事件。當打開窗口時,用戶的交互沒有限制在本窗口內(nèi),仍可以操作其他事件。非模態(tài)窗口事件用雙圈,內(nèi)圈為虛線表示,如圖1(b)中{替換}打開的窗口。
定義6 終止事件(termination event),代表操作GUI結構的事件,一般指用于關閉窗口的事件。終止事件用矩形表示,如圖1(b)中{確定,取消,關閉}事件。
定義7 系統(tǒng)交互事件(system-interaction event),代表不會操作GUI結構的事件,一般指與底層代碼進行交互,除可達事件和終止事件之外的事件。系統(tǒng)交互事件用圓圈表示,如圖1(b)中{保存,文件名為,查找內(nèi)容,替換為}事件。
2.1.2 事件交互圖
在一個典型的GUI中,20%~25%的事件被用來操作GUI結構,包括打開和關閉窗口或菜單,大部分事件與底層代碼進行交互。打開和關閉窗口或菜單的事件代碼較為直觀,不與其他事件代碼進行交互,因此,發(fā)現(xiàn)故障的幾率較低。事件交互圖(Event Interaction Graph,EIG)模型通過移除這些不常用的事件從而簡化EFG模型,一般移除的事件類型為打開和關閉菜單事件、打開和關閉非模態(tài)窗口事件、打開模態(tài)窗口事件。
圖2為實例對應的事件交互圖(EIG),雙向箭頭表示事件之間可以互相“跟蹤”,虛線代表僅單向“跟蹤”。EIG模型中不包含可達事件和非模態(tài)窗口的終止事件。舉例,EIG中不包含“編輯”、“另存為”、“替換”、“關閉”4個節(jié)點,簡化后的模型更簡單更具有效性。所以EIG模型是由終止事件和系統(tǒng)交互事件組成,其中終止事件僅為關閉模態(tài)窗口事件。
圖2 圖形用戶界面實例對應的事件交互圖
EFG可以通過算法自動轉(zhuǎn)換成 EIG。Atif Memon提出的EFG到EIG的算法利用了圖重構規(guī)則:(1)移除代表打開菜單事件“編輯”;(2)用(ex,ey)取代每一條與節(jié)點“編輯”相關的邊(ex,編輯)和(編輯,ey);(3)對于所有ey,刪除所有邊(編輯,ey)并儲存映射“ey→(編輯,ey)”用于測試,最后通過圖遍歷算法枚舉訪問過的節(jié)點,生成測試集。豐凱提出的EFG到EIG的算法[11]步驟如下:(1)移除EFG中所有的邊(ex,ey);(2)刪除所有可以打開窗口或菜單的節(jié)點ex;(3)對剩余的節(jié)點任意選擇其中2個進行有序排列,重新生成邊(ex,ey);(4)對于所有生成的邊,判斷假如ex的事件類型是模態(tài)窗口中的系統(tǒng)交互事件,ey不是模態(tài)窗口中的系統(tǒng)交互事件或終止事件,則去掉這條邊。
2.1.3 事件語義交互圖
在GUI上使用自動化測試集回放工具可以執(zhí)行冒煙測試[13]。在執(zhí)行測試集時,收集GUI部件運行時的狀態(tài),用于自動識別成對事件間的“事件語義交互”關系(Event Semantic Interaction,ESI)。這種關系捕捉了一個GUI事件如何改變軟件的狀態(tài),從而導致影響其他事件的執(zhí)行。ESI關系被用于自動構建新的GUI模型,稱之為事件語義交互圖(Event Semantic Interaction Graph,ESIG)。ESIG中的節(jié)點代表事件,從節(jié)點nx到節(jié)點ny的有向邊表示nx代表的事件與ny代表的事件之間有ESI關系。ESIG被用于自動生成測試集,這些測試集有一個重要特性——每個事件與后續(xù)的事件是ESI關系。
本文提出了一種新的EFG到EIG的算法,文獻[10]算法轉(zhuǎn)換中對事件類型的分類不夠明確,算法較為復雜。文獻[11]算法適用于只有單個模態(tài)窗口的GUI應用程序,因為當ex事件類型為模態(tài)窗口中的系統(tǒng)交互事件時,沒有考慮到多個模態(tài)窗口之間也需要移除ey是模態(tài)窗口中的系統(tǒng)交互事件或終止事件所對應的邊;另外,對于非模態(tài)窗口中的終止事件也應該刪去,這些事件在檢測系統(tǒng)故障時發(fā)現(xiàn)故障的概率較低。所以,本文算法由終止事件和系統(tǒng)交互事件組成,其中終止事件僅為關閉模態(tài)窗口事件,此算法更高效地將EFG轉(zhuǎn)換成EIG。
本文算法主要從 EIG的定義出發(fā),從節(jié)點 nx(代表ex)到節(jié)點ny(代表ey)的一條邊意味著ex與ey交互,根據(jù)事件間的交互關系創(chuàng)建模型。從EFG轉(zhuǎn)換成EIG的算法如下:
本文算法的描述如下:
第1~3行:初始化階段,由之前生成的EFG模型作為輸入值,N作為一組節(jié)點。N為EIG節(jié)點集合,初始值為N;E為EIG邊的集合,初始值為空集。
第4~6行:遍歷EFG中的所有節(jié)點,從節(jié)點集合中去掉可達事件和非模態(tài)窗口中的終止事件(打開(關閉)窗口或菜單的事件)。
第7~12行:遍歷EIG中的所有節(jié)點,假如nx的事件類型不是模態(tài)窗口中的系統(tǒng)交互事件,則將所有新的邊(nx,ny)添加至EIG的邊集合。
第8~11行:假如nx的事件類型是模態(tài)窗口中的系統(tǒng)交互事件,則判斷ny事件類型是否是同一個模態(tài)窗口中的事件,即判斷ny事件類型是否是同一模態(tài)窗口中的系統(tǒng)交互事件或終止事件,如果判斷為同一個模態(tài)窗口的事件,則將所有新的邊(nx,ny)添加至EIG的邊集合;如果判斷不符合添加要求,則會退到for循環(huán),進行下一個ny判斷。由于模態(tài)窗口的聚焦性定義,模態(tài)窗口中的系統(tǒng)交互事件只能和同一個窗口的事件交互,不能和其他窗口及其他菜單內(nèi)的事件進行交互。
最后(N,E)為EIG的節(jié)點集合和邊集合,從算法描述中可以發(fā)現(xiàn)EIG的事件比EFG事件少,但是模型的路徑不一定會減少,主要原因在于系統(tǒng)交互事件之間的交互沒有減少。
算法步驟如下:
步驟1 遍歷EFG中所有節(jié)點,去掉可達事件和非模態(tài)窗口中的終止事件;
步驟2 判斷nx的事件類型,若不是模態(tài)窗口中的系統(tǒng)交互事件,則生成(nx,ny);
步驟3 若nx是模態(tài)窗口中的系統(tǒng)交互事件,則判斷ny的事件類型;
步驟4 若ny是同一個模態(tài)窗口中的事件,則生成(nx,ny);否則,繼續(xù)循環(huán);
步驟5 對步驟1中去掉的可達事件和非模態(tài)窗口中的終止事件進行映射,(可達事件,ny)、(終止事件,ny)用于測試階段執(zhí)行。
本文的優(yōu)越性體現(xiàn)在:(1)文獻[10]算法較為復雜,本文通過對GUI事件更詳細的劃分進行算法改進,過程更簡單,不容易出錯;(2)對于文獻[11]算法而言,本文算法可以適用于多個模態(tài)窗口的情況;不用移除EFG和算法中生成的不正確的邊;去掉非模態(tài)窗口中的終止事件,不影響測試集的生成但轉(zhuǎn)換的EIG圖更簡單。所以,本文算法比之前提出的算法更高效。
實驗選用了《一體化信用卡業(yè)務系統(tǒng)軟件》系統(tǒng),這款系統(tǒng)由上海師范大學與上海華騰軟件系統(tǒng)有限公司共同合作設計,采用模塊化設計思想,每項任務用一個功能模塊支持,功能模塊間相互獨立。實驗選用了其中最重要的客戶管理模塊,簡化功能模塊,提取重要功能點作為實驗部分。
4.1 實驗準備
圖3為一個簡單的圖形用戶界面,“客戶管理模塊”事件共有4個子事件,分別為“客余額查詢”、“客戶資料更新”、“客戶添加賬戶”、“下一步”。 “客戶余額查詢”為非模態(tài)窗口,共有3個子事件,分別為“輸入密碼”、“查看”、“更新”。 “客戶資料更新”為模態(tài)窗口,共有4個子事件,分別為“身份證號”、“出生日期”、“更新”、“取消”。 “客戶添加賬戶”為模態(tài)窗口,共有3個子事件,分別為“添加賬戶”、“添加”、“關閉”。
圖3 客戶管理模塊簡單舉例
4.2 事件流圖實例
圖4為客戶管理模塊對應的事件流圖(EFG),表1為事件流圖的實驗數(shù)據(jù),可以看出,實例中的可達事件共有4個,系統(tǒng)交互事件共有5個,終止事件共有6個。在事件交互圖中,將去掉這4個可達事件和2個終止事件(“查看”、“返回”),分析系統(tǒng)交互事件和終止事件之間的關系。
圖4 客戶管理模塊的事件流圖
表1 事件流圖的實驗數(shù)據(jù)
4.3 事件交互圖實例
圖5為客戶管理模塊的事件交互圖(EIG),可以明顯看出,事件交互圖中的路徑數(shù)遠高于事件流圖中的路徑數(shù),因為實例中的系統(tǒng)交互較多,所以生成的事件交互圖較為復雜。圖中共9個事件,“輸入密碼”為非模態(tài)窗口事件“客戶余額查詢”的系統(tǒng)交互事件,(其中,“查看”、“返回”為非模態(tài)窗口事件“客戶余額查詢”的系統(tǒng)終止事件,已被刪除);“出生日期”、“身份證號”為模態(tài)窗口事件“客戶資料更新”的系統(tǒng)交互事件,“更新”、“取消”為模態(tài)窗口事件“客戶資料更新”的系統(tǒng)終止事件;“添加賬戶”為模態(tài)窗口事件“客戶添加賬戶”的系統(tǒng)交互事件,“關閉”、“添加”為模態(tài)窗口事件“客戶添加賬戶”的系統(tǒng)終止事件。
圖5 客戶管理模塊的事件交互圖
表2為事件交互圖的實驗數(shù)據(jù),由于模態(tài)窗口事件中的系統(tǒng)交互事件只和當前窗口中的事件交互,因此可以分析得出:模態(tài)窗口事件“客戶資料更新”的系統(tǒng)交互數(shù)為2個,模態(tài)窗口事件“客戶添加賬戶”的系統(tǒng)交互數(shù)為1個,總共3個。對于表2中第1~2行,事件的出度為9,代表所有的事件都可以作為它們下一個事件,入度為6是因為3個模態(tài)窗口中的系統(tǒng)交互事件執(zhí)行后,不能直接執(zhí)行這些事件。對于第3~4行,它們是模態(tài)窗口中的系統(tǒng)交互事件,所以它們下一個事件僅為該窗口中的所有事件,入度為8是因為不能在“添加賬戶”事件的下一個事件被執(zhí)行。依此類推,所有的出度之和等于所有的入度之和。
表2 事件交互圖實驗數(shù)據(jù)
為了更好地說明算法的適用性,根據(jù)表1和表2的數(shù)據(jù),分析得出表3事件交互圖中沒有連接的路徑。表3數(shù)據(jù)與事件交互圖的定義吻合,說明算法可以運用于圖形用戶界面。組合才會引起測試集終止。若將這些事件交互類型與EFG相結合,對EFG中的事件進行分類,是否屬于會引起測試集終止的事件交互類型,判斷屬于哪一種類型。由于生成的測試集是根據(jù)EIG圖的遍歷及轉(zhuǎn)換算法中的映射相結合,因此獲得的事件及事件間的關系確保了足夠的覆蓋率。對于生成的測試集進行分析,判斷該測試集中是否包含會引起測試集終止的事件交互類型,從而提高測試集的有效性和實用性,減少不可行測試集的輸出。
表3 事件交互圖中沒有連接的路徑
表4 事件交互類型分類情況
4.4 數(shù)據(jù)分析
GUI測試中常用的模型可以指導測試生成,并確保足夠的覆蓋率。但是通過多次實驗證明,EFG模型的提取并不是精確提取,部分提取的信息可能只是為了特殊的執(zhí)行路徑,所以并不完整,生成的測試集因此會存在不可行的問題;另外,一個意外的窗口或者部件、按鈕被禁用,事件不能觸發(fā)等情況都會導致生成的測試集變得不可行,因為在基于模型的測試方法中,自動化測試缺少人類的認知能力,無法注意到一些會導致測試集失敗的問題。這類問題是由于違反了事件交互序列的臨時約束[13]。在GUI測試生成中,缺少這些約束意味著部分事件的交互會丟失,降低了故障檢測率。為解決上述問題,必須提高從GUI中提取模型的精確度,改進所需的信息,以及測試有效性,優(yōu)化測試集以獲得更多可執(zhí)行的測試序列。
本文研究并定義了6種可能會引起測試集終止的事件交互類型情況:禁用,連續(xù),強依賴,弱依賴,排除,混合。表4為6種交互類型的情況說明及舉例。
對常用的Office軟件進行分析,禁用與強依賴2種事件的交互類型較多,因為它們僅需1個事件或2個事件便可引起測試集終止;弱依賴與排除2種事件的交互類型較少,因為它們通常是根據(jù)多個事件
本文通過事件流圖和事件分類,提出了一種新的EFG轉(zhuǎn)變成EIG的算法,經(jīng)過實驗證明,該方法可以適用于圖形用戶界面,并且獲得的數(shù)據(jù)更準確、更高效。但EFG模型的提取并不是精確提取,生成的測試集會存在不可行的問題,本文通過實驗部分的數(shù)據(jù)分析,總結了6種可能會引起測試集終止的事件交互類型情況分類,作為今后研究的方向,通過優(yōu)化測試集從而提高測試的有效性。
[1] Arlt S,Podelski A,Bertolini C,et al.Lightweight Static Analysis for GUI Testing[C]//Proc.of the 23rd IEEE International Symposium on Software Reliability Engineering.Dallas,USA:[s.n.],2012:301-310.
[2] Huang Si,Memon A.Repairing GUI Test Suites Using a Genetic Algorithm[C]//Proc.of the 3rd International Conference on Software Testing,Verification and Validation.Paris,France:[s.n.],2010:245-254.
[3] Yuan Xun,Myra B C,Memon A M.GUI Interaction Testing:Incorporating Event Context[J].IEEE Transaction on Software Engineering,2011,27(4):559-574.
[4] Xie Qing,Memon A M.Using a Pilot Study to Derive a GUIModelfor Automated Testing[J].ACM Transactions on Software Engineering And Methodology, 2008,18(2):1-35.
[5] Memon A M,Soffa M L,PollackM E.Coverage Criteria for GUI Testing[C]//Proc.of the 8th European Software Engineering Conference Held Jointly with the 9th ACM SIGSOFT InternationalSymposium on Foundations of Software Engineering.New York,USA: ACM Press,2001:256-267.
[6] Belli F.Finite-state Testing and Analysis of Graphical User Interfaces[C]//Proc.of the 12th International Symposium on Software Reliability Engineering. [S.l.]:IEEE Press,2001:34-43.
[7] Belli F,Beyazit M,Memon A.Testing is an Eventcentric Activity[C]//Proc.of the 6th International Conference on Software Security and Reliability Companion.Gaithersburg,USA:IEEE Press,2012: 198-206.
[8] Memon A.GUIRipping:Reverse Engineering of Graphical User Interfaces for Testing[C]//Proc.of the 10th Working Conference on ReverseEngineering. [S.l.]:IEEE Press,2003:260-269.
[9] Memon A,Banerjee I,Nagarajan A.Reverse Engineering of Graphical User Interfaces Using Static Analyses [C]//Proc.of the 14th Working Conference on Reverse Engineering.Vancouver,Canada:[s.n.],2007:189-198.
[10] Memon A M,Qing Xie.Studying the Fault-detection Effectiveness of GUI Test Cases for Rapidly Evolving Software[J]. IEEE Transactions on Software Engineering,2005,31(10):884-896.
[11] 豐 凱,高建華.基于模型的圖形用戶界面事件交互圖生成方法[J].計算機科學,2013,40(6A):184-187.
[12] Yuan Xun,Memon A M.Using GUI Run-time State as Feedback to Generate Test Cases[C]//Proc.of the 29th InternationalConference on Software Engineering. Minneapolis,USA:IEEE Press,2007:396-405.
[13] Cohen M B,Huang Si,Memon A M.AutoInSpec:Using Missing Test Coverage to Improve Specifications in GUIs[C]//Proc.of the 23rd International Symposium on Software Reliability Engineering.Dallas,USA:IEEE Press,2012:251-260.
編輯 任吉慧
Algorithm and Research Based on Event Interaction Graph
GAO Xiu-hui,GAO Jian-hua
(Department of Computer Science and Technology,Shanghai Normal University,Shanghai 200234,China)
The quality of Graphical User Interface(GUI)directly affects the reliability and usability of the entire software system.When testing the graphical user interface,it generally adopts the method of extracting model,and the frequently models based on the graphical user interface are Event Flow Graph(EFG)and Event Interaction Graph(EIG). However,the algorithm of EFG into EIG is complex,this paper proposes an algorithm.In this paper,the GUI events with a specific division and the use of the special nature of the modal window event optimize the original algorithm.It indicates the new algorithm can be used for GUI and the obtained data is more accurate and more efficient with the real cases than Memon in GUI.
Graphical User Interface(GUI);event-interaction classification;Event Flow Graph(EFG);Event Interaction Graph(EIG);test case
1000-3428(2014)10-0086-06
A
TP311.5
10.3969/j.issn.1000-3428.2014.10.017
國家自然科學基金資助項目(61073163);上海市引進技術的吸收與創(chuàng)新計劃基金資助項目(2010CH-014)。
高秀慧(1989-),女,碩士研究生,主研方向:軟件可靠性設計,軟件測試技術;高建華,教授、博士。
2013-10-21
2013-12-20E-mail:veronica_gxh@hotmail.com
中文引用格式:高秀慧,高建華.基于事件交互圖的算法與研究[J].計算機工程,2014,40(10):86-91,97.
英文引用格式:Gao Xiuhui,Gao Jianhua.Algorithm and Research Based on Event Interaction Graph[J].Computer Engineering,2014,40(10):86-91,97.