随着现代软件规模的逐渐增加,软件测试的工作量越来越大。同时,软件开发周期的缩短需要尽可能提高测试效率。然而,受开发资金的限制,测试资源不可能大幅增加,这使得传统的手工测试无法满足现代软件开发的要求。另一方面,很多公司已经把软件测试作为保证软件质量、提高软件可靠性的主要手段之一。软件测试中花费的资源已经占到整个软件研发成本的50~60%。软件测试能否按时完成已经成为软件能否按时交付的瓶颈。所有这些都使得软件测试自动化势在必行。
目前,市场上有许多自动化测试工具,可分为功能测试工具、性能测试工具、测试管理工具等。在实现技术原理方面,主要分为两类:一类是捕获/回放技术,另一类是编写测试脚本技术。捕获/回放技术的脚本在捕获过程中自动生成。在捕获阶段,工具记录用户的一系列鼠标点击和键盘按钮操作,并将这些操作转换为脚本。回放时,将这些脚本输入到测试程序中,根据执行后的状态信息和输出结果与原始记录的比较,确定是否存在差异。编写脚本技术要求用户用指定的脚本语言编写测试脚本。用户可以实现测试脚本的维护、测试执行的驱动和测试结果的统计,也可以使用专门的测试工具或测试框架来帮助测试人员解放大量的重复测试。
在Linux平台下的自动化测试,商业测试工具不多,但由于开源软件行业的蓬勃发展,在开源社区维护开源项目中提供了大量,针对不同类型的应用和不同类型的测试工具,这些工具可以满足基本的自动化测试需求,同时结合具体应用特点,通过进一步改造工具实现测试自动化的目的。
本文自动化测试的研究对象主要针对Linux测试类型主要包括功能测试和性能测试。
自动化测试曲研究与应用
自动化测试的前提是,无论采用何种测试技术和测试方法,组织都积累了包括完整测试输入、测试执行步骤和预期输出在内的测试用例。
由于Linux它是一个由命令行组成的操作系统。因此,使用脚本编程,按照预设的执行逻辑批量执行命令行,是实施自动化测试时首先要考虑的手段。为了实现更复杂的测试工作的自动化,您也可以选择或开发自己的测试工具或测试框架。在选择工具或框架时,通常需要考虑要素:a,测试执行人员可以选择运行哪些测试组件/测试用例b,提供定义用例执行结果的输出方式,如提供成功、失败、未执行等函数c,可以加载用户自定义的函数库d,提供用例执行的配置文件或场景文件e,提供调试机制f,提供日志输出方式g,提供结果统计输出等。
在Linux在平台下,借助工具或其他手段进行测试自动化时,应注意以下几点:
(1)各种技术应用的前提。对于在开源社区和一些开源项目中获得的测试工具,首先需要了解工具适用于哪些类型的应用程序,以及工具发布后的发布说明和FAQ。开源工具通常不像商业工具那样成熟和稳定,因此找出工具的适用范围和探索工具的实现程度是自动测试应用的前提。
(2)各种技术应用的环境要求。对于各种工具,我们需要注意编译和操作时对各种包和图书馆及其版本的依赖以及对预安装应用程序的依赖。这些都在用户手册中详细说明。
(3)服务器性能监控器。大多数测试工具不提供服务器端的性能监控功能,测试工程师需要根据实际需要编写性能监控脚本,以配合工具的使用。
下面结合以前参与过的Linux对平台下自动化测试的研究,面对不同类型测试用例自动化的需求,主要从功能测试,如功能测试,GUI测试、命令行客户端测试、性能测试等方面Linux分析说明了平台下测试工作的自动化。