● 摘要
GUI(Graphic User Interface,图形用户界面)作为大部分应用软件的人机交互平台,凭借其整洁美观的界面、简便灵活的操作以及丰富的信息显示吸引了大批用户的青睐。无论是像Word这样的办公软件,还是像Internet Explorer 这样的网页浏览器,都把GUI看作是与用户交流的重要渠道。如今,即便是在飞行器或者是舰艇这样的大型军事设备中,我们也能够看到大量运行着的GUI软件协助驾驶员完成各种复杂的操作。可以说,GUI软件已经成为计算机软件的主流,而GUI软件测试也成为软件工程中的一个重要课题。
与传统软件测试相比,GUI软件测试有其独特的复杂性。现阶段,对于GUI软件的测试仍以手工测试为主,人力成本非常高;与此同时,软件测试的质量也会随之严重依赖于测试人员的经验。正因如此,GUI软件测试这一课题已经逐渐引起学术界和工业界的关注,越来越多的学者开始研究如何降低GUI软件测试的成本,提高其测试效率。然而,目前关于GUI软件测试的研究还处于初级阶段,有许多实际问题仍然没有得到很好的解决。因此,我们有必要对GUI软件测试进行更加深入的探索。
GUI软件输入的随机性和随意性使得GUI软件的控制流和数据流都十分复杂,因而传统的测试覆盖准则并不适合GUI软件测试。另一方面,目前针对GUI软件测试覆盖准则的研究比较少,这一点导致我们缺乏一些理论依据来指导测试活动的进行。基于上述原因,本文将从测试覆盖准则的角度入手去研究GUI软件测试的相关技术。
与传统软件相比,GUI软件最大的不同就是它多了一层与用户进行交互的界面,这使得我们很难直接考虑底层的代码覆盖率。因此,我们必须充分利用GUI界面本身所提供给我们的信息,进而从黑盒测试的角度探求一种适合于GUI软件测试的覆盖准则。基于这一点考虑,本文以GUI界面的状态作为切入点,给出一种基于状态相似度的覆盖准则,并从测试用例生成和测试用例排序两个角度验证这种测试覆盖准则的有效性。实验结果显示,本文给出的基于状态覆盖准则的GUI软件测试方法能够有效地降低测试成本,提高测试效率。