论文部分内容阅读
软件测试是保证软件质量的重要手段,也是软件开发过程中的一个重要环节。随着软件设计技术的发展,软件的应用范围不断扩大,处理的问题也越来越复杂,传统手工测试已经不能满足测试要求,引入自动化测试方法成为更好选择。现有的大部分自动化测试工具是面向传统的Windows软件和Web软件,对于Linux GUI软件测试大部分仍是传统手工测试,缺少自动化测试方法。因此,Linux GUI软件的自动化测试方法具有非常重要的研究意义。本文针对Linux GUI自动化测试问题开展研究。分析了现有的自动化测试技术和软件测试模型,Linux GUI自动化测试内容以及Linux软件评估标准。对Linux GUI的控件组成及其结构进行了研究,分析了建立模型的可行性,给出了描述Linux GUI中的控件组成及其层次结构的元素树模型(Element Tree,ET),结合面向对象技术,定义了Linux GUI控件类和控件脚本类,根据Linux GUI的控件组成及其层次关系构建元素树,给出了元素树的孩子父亲链表存储表示,并给出了由控件数据集构造元素树的算法。针对Linux GUI控件的通用功能测试,给出了基于元素树模型的自动化测试脚本自动调用方法。通过对元素树的遍历,得到控件的测试序列,生成控件脚本类对象并按照遍历顺序自动调用,完成对Linux GUI软件单元/组件的通用功能的自动化测试。针对Linux GUI控件的非通用功能测试,给出了基于元素树模型的测试用例和测试脚本设计方法。该方法以元素树为基础,根据Linux GUI软件的具体测试目标,选择相应控件,设计生成控件的测试用例并编写测试脚本,执行脚本实现非通用功能的测试。为了实现对Linux GNOME桌面环境下为用户提供系统订阅服务的Subscription Manager GUI软件的自动化测试,本文基于元素树模型的自动化测试方法设计实验,构建元素树,针对此软件GUI中控件的通用功能和非通用功能分别进行测试,生成测试结果,通过与手工测试结果对比发现,该方法可以提高测试准确率和效率,更适合进行压力测试、稳定性测试等大数据量重复操作的测试。