黄 蔚
(厦门理工学院,厦门,361000)
进行软件测试的过程中其测试的核心是一个以关键字驱动为基础的自动化回归测试系统。在测试的过程中通过关键字驱动以及数据驱动开发上传脚本。在这个过程中根据商业需求,要自动进行多场测试,最后生成测试结果,这在极大程度上丰富了软件测试的手段。
通常人们用于软件测试的主要方法有白盒测试法以及黑盒测试法两种;进行软件测试的策略可以分为单元测试、集成测试等几种;从软件的运行状态可以具体分为静态测试和动态测试两种[1]。
软件自动化测试主要指的是通过对软件编写和指导性测试脚本,而且使用自动化测试工具对测试结果进行分析的过程。在这个过程中一个良好的软件测试脚本可以极大的节省测试时间提高软件测试速度。
在进行软件测试的过程中关键字驱动技术主要任务是把数据文件转化为测试用例的描述,在这个过程中使用关键字来制定需要执行的任务,这些关键字就存在于将要被测试的文件之中。但是,解释这些关键字时需要用到其他的脚本。利用脚本来解读存在与测试文件之中的关键字,在此基础之上选择相关的支持脚本,这样就会使测试软件和特殊应用对控制脚本的约束大大降低。
在进行软件测试的过程中关键字驱动脚本是一种结构化的脚本,在实用的过程中其控制脚本主要采用IF语句或者采用循环语句在被测试的文件之中读取各种数据,相关被测试内容的所有信息都包括在了信息数据表之中,因此测试信息与实现的分离是这种技术的最大特点[2]。
捕获/回放测试框架的主要优点体现在,测试过程中十分简便,在使用的过程中只要通过录制就可以获得所学要的脚本。其缺点主要体现在没有逻辑判断力,同时该框架的维护性比较差、工作效率比较低。
关键字自动化测试框架的特点可以简要的概括为三个分离,其主要指的是:界面元素名与测试内部对象名的分离;测试描述与具体实现细节的分离;脚本与数据的分离;这三个分离互相独立,最大程度地减少相互之间的影响。
在进行软件测试的过程中,前面的测试步骤是容易出现错误的环节,其主要原因在于测试工作人员没有记清楚进行测试的环节,导致了很多测试步骤不能够进行重复。除此之外,在进行软件开发的过程中,为了避免开发软件的故障,以改善开发软件的总体性能,需要对代码进行修改。对软件代码进行手动修改的效率十分低,在这个过程中使用软件测试工具,则必须要提供捕获用户操作的能力以及代码被修改后自动重播用户的操作的功能。
在进行操作的过程中捕获/回放功能可以及时将用户的鼠标和键盘输入的信息记录下来,当然在这个过程之中软件的具体响应也在记录事项之内。当对修改后的软件进行测试之时,就可以利用回放功能将之前所做的输入操作应用到被修改的软件之中,通过前后测试响应的比较就可以得出修改后的软件有没有发生新的错误[3]。
捕获/回放工具是通过窗口组件的标题来识别窗口。它能有效回放基于测试覆盖分析和测试用例最小化基础上最小测试用例集合 。
包括记录器和回放器。捕获和回放工具可以将所有的GUI输入进行捕获。
在进行测试之时,记录器被类装载器装入被测试的Java程序之中。在此之后,通过对应用程序事件队列的监视,就录下所有的用户输入事件。在此基础之上按照事件发生不同顺序将时间相关信息存储到记录文本文件中。对于用户输入事件,需要保存基本信息和时间间隔,用于同步控制回放。
事件生成器从记录文件中依次读出所有的事件。根据事件记录文件还原鼠标或键盘事件。
在进行事件的回放时通过对截获的系统事件与系统记录的事件之间的对比,可以判断出在进行回放的过程中是否出现以外,并决定是否进行下一个事件的回放。
捕获/回放工具除了可以对用户的输入时间进行捕获之外,其更大的作用是能够对用户的输入事件进行回放。回放的必要条件是记录下连续两个输入事件的间隔时间。回放时,保证发生的系统事件都按捕获时的顺序出现过。比如某个窗体/容器没有出现。在进行事件回放时,必须要保证回放的事件是真实有效的[4]。
软件测试自动化工具对提高软件测试的效率起到很大的作用。本文在分析自动化测试技术的基础上,描述了基于关键字驱动的自动化测试实现流程,并根据工作流程设计软件的自动化测试用户事件的捕获和回放工具。
[1]舒智勇.软件测试自动化技术与实例详解[M].北京:电子工业出版社.
[2]王莉,殷锋,李奇.软件自动化测试脚本设计研究.西南民族大学学报(自然科学版).2006,32(2):357-360
[3]侯勇.关键字驱动的自动化测试系统的研究:(硕士学位论文).西安电子科技大学,2006.
[4]张湘辉.软件开发的过程与管理[M].北京:清华大学出版社,2005.