图形用户界面测试中相关问题研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
图形用户界面(Graphical User Interfaces, GUI)是当今软件系统中人机交互过程中不可或缺的部分,在软件系统中起着极其重要的作用。GUI基于事件驱动模式,其程序执行顺序依赖于外部输入事件的顺序,这与传统的顺序执行软件:有着本质的不同。
     软件测试在保证软件质量上有着不可替代的作用,但是因为GUI基于事件驱动致使事件处理程序之间的执行顺序不确定,传统软件的测试方法无法照搬到GUI测试上。本文以GUI事件交互关系以及事件与系统状态之间的关联关系为着眼点,研究GUI测试方法,主要的研究内容和贡献如下:
     1.GUI测试模型
     测试模型是软件测试的核心所在,GUI测试也不例外,本文通过分析GUI事件之间的变量共享,确定GUI事件之间的交互关系,提出了描述GUI事件之间交互关系的GUI事件交互架构。另外,分析GUI事件与GUI系统状态之间的关系,通过描述GUI事件对GUI系统状态的修改进而描述这两者之间的关联关系,并扩展GUI事件交互架构得到事件-状态关联模型。
     2.GUI测试用例生成
     事件之间的交互关系基于共享变量,而共享变量的实质是变量中的数据传递,即事件之间的交互关系通过变量的定值和使用关系来实现。本文提出了基于事件交互架构的GUI测试用例生成方法,该方法通过程序分析得到每个事件的事件处理程序的程序流图,然后再通过程序流图分析到达一定值数据流方程进而给出测试用例的形式化描述,提出了基于事件交互架构和事件处理程序中数据流分析的GUI测试用例生成算法。讨论了针对GUI特点的测试覆盖准则,以及根据GUI测试覆盖准则指导测试用例生成。
     3.GUI测试评判生成
     GUI测试用例数量多,且测试评判信息随测试用例变化而变化,使得GUI的测试评判信息的生成需要巨大的人员和系统开销,本文在GUI模型的研究中所提出的事件-状态关联模型描述了GUI事件对GUI系统状态的修改,通过按照测试用例中的事件序列可依次计算出针对每个测试用例的测试评判信息。
GUI, which is short for Graphical User Interfaces, plays a key role in current software systems as a necessary part of man-machine interaction. The execution orders of GUI programs depend on the order of input events based on event-driven mode, which is essentially different from the traditional orders.
     Software testing is irreplaceable in software quality assurance, but the traditional testing methods can't be applied to GUI testing due to the uncertainty of execution orders between event-handler programs caused by the event-driven GUIs. This paper studies on GUI testing methods, focusing on the interaction relations among GUI events and interaction relations between events and system states.
     1. GUI testing model
     As testing models being the core of software testing, they are also the core of GUI testing. This paper analyzes the sharing variants among the GUI events, points out their interaction relations between GUI events, and proposes an event-interactive architecture describing these relations. Besides, this paper also analyzes the relations between GUI events and GUI system states, describes these interaction relations by means of describing the GUI events modification on GUI system states, and then, extends this architecture to get event-state relation model.
     2. GUI test case generation
     The interaction relations of events are based on sharing variants, while the essence of sharing variants is the data transmission among them, in other words, the interaction relations of events are decided by the values and using relations of variants. This paper proposes a method of test case generation for GUI based on the event-interactive architecture. This method obtains the event-handler program flow charts of every event, then, gives the formal description of test cases by analyzing the arrival-value data flow equations using these flow charts, and proposes the test case generation algorithm for GUI based on this event-interactive architecture and the data flow analysis of event-handling programs. At the same time, discusses the coverage criterion according to the features of GUI.
     3. GUI test oracles generation
     There are too many GUI test cases, and the test oracle information varies with the test cases, leading to a great staff and overhead system costs. The event-state relation models proposed by this paper describe the GUI events modification on GUI system states, and the test oracle information of every test case can be calculated in turn according to the event order in them.
引文
[1]Paul C.Jorgensen,软件测试(韩柯等译)第二版:机械工业出版社,2007.
    [2]单锦辉,姜瑛,孙萍,软件测试研究进展[J].北京大学学报(自然科学版),2005.
    [3]Antonia Bertolino, Software testing research:achievements, challenges, dreams,[C] Future of software engineering,2007.
    [4]David Kung, Jerry Gao, Pei Hsia, Yasufumi Toyoshima et al., Developing an object-oriented software testing and maintenance environment [J]. Communication of theACM,1995.
    [5]郑人杰,计算机软件测试技术:清华大学出版社,1992.
    [6]William Perry, Effective methods for software testing, third edition:John Wiley & Sons, Inc,2006.
    [7]金凌紫,面向对象软件测试技术进展[J].计算机研究与发展,1998.
    [8]Atif M. Memon, A comprehensive framework for testing graphical user interfaces[PhD thesis][D]. University of pittsburgh,2001.
    [9]Brad Myers, Jim Hollan, Isabel Cruz, Steve Bryson et al., Strategic directions in human-computer interaction[J].ACM Computing Surveys,1996.
    [10]Atif M. Memon, GUI testing:pitfalls and process[J]. IEEE Computer,2002.
    [11]Atif M. Memon, An event-flow model of GUI-based applications for testing [J]. Software Testing, Verification & Reliability,2007.
    [12]Malte Finsterwalder, Automating acceptance tests for GUI applications in an extreme programming enviroment [C] the 2nd international conference on eXtreme programming and flexible processes in software engineering,2001.
    [13]陈翔宇,马丰宁,郑远挺,具有图形界面的面向对象软件测试研究[J].天津大学学报(社会科学版),2003.
    [14]Qing Xie, Developing cost-effective model-based techniques for GUI testing,[C] ICSE' 06,2006.
    [15]Atif M. Memon, martha E. Pollack, Mary Lou Soffa, Automated test oracles for GUIs,[C] The 8th ACM SIGSOFT international symposium on Foundations of software engineering:twenty-first century applications,2000.
    [16]Kanglin Li, Mengqi Wu, Effective GUI test automation:developing an automated GUI testing tool:Sybex Inc,2004.
    [17]Monty L. Hammontree, Jeffrey J. Hendrickson, Billy W. Hensley, Integrated data capture and analysis tools for research and testing on graphical user interfaces,[C] ACM CHI' 92 conference on human factors in computing systems,1992.
    [18]Fevzi Belli, Finite State Testing and Analysis of Graphical User Interfaces,[C] The 12th International Symposium on Software Reliability Engineering,2001.
    [19]Tsun S. Chow, Testing software design modeled by finite-state machines[J]. IEEE transactions on Software Engineering,1978.
    [20]Jessica Chen, Suganthan Subramaniam, GUI environment to Manipulate FSMs for Testing GUI-based Application in Java,[C] The 34th Annual Hawaii International Conference on System Sciences,2001.
    [21]Anneliese A. Andrews, Jeff Offutt, Roger T. Alexander, Testing Web applications by modeling with FSMs[J]. Software and Systems Modeling,2005.
    [22]Richard K. Shehady, Daniel P. Siewiorek, A method to automate user interface testing using variable finite state machines,[C] The 27th Annual International Symposium on Fault-Tolerant Computing,1997.
    [23]Lee White, Husain Almezen, Generating test cases for GUI responsibilities using complete interaction sequence,[C] The international symposium on software reliability engineering,2000.
    [24]Lee White, Husain Almezen, Nasser Alzeidi, User-Based Testing of GUI Sequences and Their Interactions,[C] The international symposium on software reliability engineering, 2001.
    [25]Jeff Offutt, Shaoying Liu, Aynur Abdurazik, Paul Ammann, Generating test data from state-based specifications[J]. Software Testing, Verification & Reliability,2003.
    [26]David J. Kasik, Harry G. George, Toward automatic generation of novice user test scripts,[C] SIGCHI conference on Human factors in computing systems,1996.
    [27]Atif M. Memon, Ishan Banerjee, Adithya Nagarajan, GUI ripping:reverse engineering of graphical user interfaces for testing,[C] The 10th working conference on reverse engineering,2003.
    [28]Atif M. Memon, Martha E. Pollack, Mary Lou Soffa, Hierarchical GUI test case generation using automated planning[J]. IEEE transactions on Software Engineering, VOL.27,2001.
    [29]Atif M. Memon, Qing Xie, Studying the fault-detection effectiveness of GUI test cases for rapidly evolving software[J]. IEEE transaction on software engineering,2005.
    [30]Qing Xie, Atif M. Memon, Designing and comparing automated test oracles for GUI-based software applications[J]. ACM transactions on software engineering and methodology,2007.
    1311 Atif Memon, Adithya Nagarajan, Qing Xie, Automating regression testing for evolving GUI software[J]. Software maintenance and evolution,2005.
    [32]Atif M. Memon, Automatically repairing event sequence-based GUI test suites for regression testing[J]. ACM transactions on software engineering and methodology, 2008.
    [33]Atif Memon, Ishan Banerjee, Nada Hashmi, Adithya Nagarajan, DART:A framework for regression testing "nightly/daily builds" of GUI application,[C] the 2003 International conference on software maintenance,2003.
    [34]李翔,高建华,一种基于事件关系的图形用户界面程序测试方法[J].小型微型计算机系统,2005.
    [35]杜栓柱,谭建荣,陆国栋.基于界面构件关联图的软件功能测试技术[J].计算机研究与发展,2002.
    [36]王钊,白晓颖,戴桂兰,基于有色Petri王模型的GUI测试用例自动生成技术[J].清华大学学报(自然科学版),2008.
    [37]颜炯,王戟,陈火旺,基于模型的软件测试综述[J].计算机科学,2004.
    [38]Mark Utting, Alexander Pretschner, Bruno Legeard, A taxonomy of model-based testing:Working paper series 4, Department of computer science, University of Waikato, New Zealand,2006.
    [39]Fevzi Belli, Christof Budnik, Lee White, Event-based modelling, analysis and testing of user interactions:approach and case study[J]. Software Testing, Verification and Reliability,2005.
    [40]Ana C.R. Paiva, Joao C.P. Faria, Nikolai Tillmann, Raul A.M. Vidal, A model-to-implementation mapping tool for automated model-based GUI testing [J]. Formal methods and software engineering,2005.
    [41]Woei Kae Chen, Tung Hung Tsai, Hung Hsing Chao, Integration of sepcification-based CR-based approaches for GUI testing,[C] 19th international conference on advanced information networking and applications,2005.
    [42]Jessica Chen, Suganthan Subramaniam, Specification-based testing for GUI-based applications[J]. Software quality journal 2002.
    [43]Yanhong Sun, Edward L. Jones, Specification-driven automated testing of GUI-based Java programs,[C] the 42nd annual Southeast regional cofernce,2004.
    [44]王立峰,基于模型的GUI测试工具的实现研究[硕士学位论文][D].南京航天航空大学,2007.
    [45]Xun Yuan, Atif M. Memon, Alternating GUI test generation and execution,[C] The IEEE testing:academic and industrial conference,2008.
    [46]Siyou Qian, Fan Jiang, An event interaction structure for GUI test case generation,[C] 2nd IEEE international conference on computer science and information technology, 2009.
    [47]周泽鹏,金瓯,基于有限状态机的自动售货机控制器[J].单片机与嵌入式系统应用,2009.
    [48]古天龙,蔡国永,网络协议的形式化分析与设计,2003.
    [49]Xun Yuan, Atif M. Memon, Using GUI run-time state as feedback to generate test cases,[C] 29th international conference on software engineering,2007.
    [50]Atif M. Memon, Automated test oracles for GUIs,[C] The 8th ACM SIGSOFT international symposium on Foundations of software engineering:twenty-first century applications,2000.
    [51]Antti Jaaskelinen, Mika Katara, Antti Kervinen, Mika Maunumaa, Automatic GUI test generation for smartphone applications-an evaluation[J]. The International Conference on Software Engineering,2009.
    [52]Antti Kervinen, Mika Maunumaa, Tuula Paakkonen, Mika Katara, Model-based testing through a GUI[J]. Lecture notes in computer science, pages 16-31, Springer, 2006.
    [53]陈英.陈朔鹰,编译原理:清华大学出版社,2009.
    [54]梁婕,张淼,徐国爱,杨义先,基于静态分析技术的源代码安全检测模型[J].计算机应用研究,2008.
    [55]李淑宁,数据流分析在程序测试中的应用[J].小型微型计算机系统,1988.
    [56]Scott McMaster, Atif Memon, Call stack coverage for GUI test-suite reduction,[C] the 17th IEEE International symposium on software reliality engineering,2006.
    [57]Renee C. Bryce, Charles J. Colbourn, Test Prioritization for pairwise interaction coverage,[C] the 1st international workshop on advances in model-based testing,2005.
    [58]刘玲,缪淮扣,对逻辑覆盖软件测试准则的公理化评估[J].软件学报,2004.
    [59]Srinivasan Desikan, Gopalaswamy Ramesh,软件测试原理与实践(韩柯等译) :机械 工业出版社,2009.
    [60]Hong Zhu, Patrick A. V. Hall, John H. R. May, Software unit test coverage and adequacy[J]. ACm Computing Surveys,1997.
    [61]赵保华,陈波,屈玉贵,一种改进的转换可执行分析测试序列生成算法[J].中国科学技术大学学报,2007.
    [62]Atif M. Memon, Mary Lou Soffa, Mayrtha E.Pollack, Coverage criteria for GUI testing,[C] The 8th European software engineering conference,2001.
    [63]Renee C. Bryce, Atif M. Memon, Test suite prioritization by interaction coverage,[C] Domain specific approaches to software test automation:in conjunction with the 6th ESEC/FSE joint meeting,2007.
    [64]Luciano Baresi, Michal Young, Test oracles,[C] Technical report, Dept. of Comp. and information science, Univ. of Oregon,2001.
    [65]Debra J. Richardson, TAOS:Testing with analysis and oracle support,[C] the 1994 ACM SIGSOFT international symposium on software testing and analysis,1994.
    [66]Debra J. Richardson, Stephanie Leif Aha, T. Owen O'Malley, Specification-based test oracles for reactive systems,[C] the 14th international conference on software engineering,1992.
    [67]Richard H. Carver, Kuo-Chung Tai, Use of sequencing constraints for specification-based testing of concurrent programs [J]. IEEE transaction on software engineering,1998.
    [68]Svetoslav Ganov, Chip Killmar, Sarfraz Khurshid, Dewayne E Perry, Test generation for graphical user interfaces based on symbolic execution,[C] the 3rd international workshop on Automation of software test,2008.
    [69]Atif Memon, Ishan Banerjee, Adithya Nagarajan, What test oracle should I use for effective GUI testing,[C] the 18th IEEE International Conference on Automated Software Engineering, 2003.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700