基于Python的软件测试自动化平台研究
2016-03-05沈啸
沈啸
摘要:21世纪是计算机和网络技术高速发展的时代,目前我国的软件行业开发程度明显落后于欧美等发达国家,同时相对于开发工作而言,软件的测试工作更加不被重视,导致国内很多软件的测试仅包含不具备技术含量的手动操作测试。而随着现代各行各业对于计算机系统的需求,测试工作也显得更加重要,如果无法形成一套完备的测试体系,则会严重影响我国软件行业的发展速度。文章基于Python的软件测试自动化平台进行研究,探讨了软件测试平台的概念和种类,并对测试平台的需求进行说明,最后阐述了基于Python的软件测试自动化平台的设计方案,以期为相关工作提供参考。
关键词:Python脚本;软件测试平台:设计方案
在所有的软件开发过程中,软件测试工作均贯穿了整个研发过程,从系统编写、框架构建、系统编码以及整个体系的应用都需要有效的测试平台来检验其有效性。根据国外的研究显示,软件在测试阶段投入的成本量占总成本量的40%,而工作量则占总工作量的50%以上。传统的测试方法周期较长,并且在出错改动后难以进行回归测试,测试工作一旦开始就必须连贯进行,否则无法了解己测试内容的比例。因此,必须采用自动化软件测试平台才能够提高该项工作效率,减少软件的研发周期。
1.软件测试的概述
软件测试就是对一个已经研发的软件系统进行功能测试,是软件运行质量和有效性的重要检测标准。根据检测方法的不同,可以将其分为手动检测和自动检测2种。其中,手动检测主要利用鼠标对软件的运行效果进行测试;自动测试则是利用测试程序对软件进行深入检测。2种方法在软件检测工作中都非常重要,但手动检测工作技术含量较低,加之所检测的内容较多,很容易出现错漏情况,虽然很适合刚参加工作的人员,但由于单调乏味的工作内容很容易导致员工责任心降低。总而言之,手动测试的优势在于能够对软件的业务逻辑进行检测,而自动测试则是从软件的架构进行检测,二者需要同时进行。
而根据检测内容的不同,可以分为黑盒、白盒以及灰盒检测3种。其中,黑盒检测是将软件视为一个黑盒,对软件的行为能力进行检测,但无法检测其内部结构;而白盒则与黑盒完全相反,其主要是对软件的内部结构进行检测,并可以利用计算机知识对检测数据进行引导;灰盒检测是介于黑盒和白盒检测之间的技术。目前,我国检测人员最常使用的是黑盒检测,这主要是因为白盒检测对工作人员技能要求较高,需要参与编程工作多年的程序员才能够进行,因此在我国发展较慢。
2.基于Python的软件测试自动化平台的需求
首先,在该测试平台构建时需要至少一种常用的编程语言,因为在测试过程中操作平台的检测人员本身掌握的大多是比较流行的编程语言,不能为了一个测试工具而重新学习新的语言,这样会降低检测人员的工作效率。其次,测试平台必须具有支持可视化图形的操作界面,目前我国测试行业的发展仍处于起步阶段,国内很多测试人员均是非计算机专业出身,为此必须为其提供可视化的操作界面才能够简化部分测试工作,提高工作效率。第三,需要将用例的代码格式保存在.txt下。现代很多文件在运行时均需要在自己的环境下才可以,但.txt格式文件则属于通用性文件格式,其在不同的环境下均可运行,避免了再次编译导致工作量的增加。第四,需要在输出界面中包含所有的用例执行,而这一要求也是自动化检测平台的主要优势,只有充分解放人力才是自动化系统的目的所在,因此应保证结果输出的全面性。第五,支持Windows平台的操作。目前国内大多数计算机所使用的系统均为微软的“窗口”系统,根据不完全统计显示,截至2014年,我国计算机系统中Windows所占比率超过90%,因此,为了满足绝大多数计算机运行需求,必须使测试自动化平台能够支持Windows操作。第六,该平台需具有较强的扩展能力,其中包括函数库、用例库等的扩展功能,这项需求是为了满足现代日益加快的计算机发展速度,有效提升系统更新能力。
3.基于Python的软件测试自动化平台的设计方案
3.1c#模块的设计
软件测试自动化平台下的c#模块一般包括4个部分,分别是文件、执行、脚本编辑以及实时信息显示四大模块。其中,文件模块主要引用了using System.10,这样就能够保证其对多种类型的文件进行创建和读取,并且在保存时也能够为用户提供更加方便的显示界面。但需要注意的是,在控件使用过程中应该将默认状态下的.Filter格式更改为.txt格式,这样就能够保证文件的通用性和快速选择性。在打开文件后,需要采用逐行读取数据的方式,并采用StreamReader.Append的方法添加文件中的字符,同时该方法还能够在字符串连接时降低损耗。执行模块主要是控制系统的运行、暂停以及停止,并且能够将空间使用后生成的文件转化为.txt格式。脚本编辑模块同样包含3个空间,其主要在第2个分页、出现\n字符时以及新建文件时所触发的功能控件。信息显示模块共包含2个控件,其一是TabControl,主要是在第2个分页发挥作用;其二是TextBox,其属于复合型控件,能够对显示数据的输出进行逻辑判断。
3.2Python入口文件
Python的入口文件一般是TestSuiteExecutor.py文件,其主要负责为工作流当单引擎,但不负责实际工作执行指令,也就是说,该入口文件仅能够实现对接受数据参数的初始化,并按照一定顺序进行各项工作。Python的入口文件主要负责的内容包括:解析命令行的逻辑问题,建立临时目录(所创建的目录主要经由.txt格式文件编译成的.py文件),执行工作流,清除临时路径等。其中,清除的临时路径包括临时目录、临时子文件、临时文件夹等。
3.3工作流的详细设计方案
基于Python的软件测试自动化平台的工作流一般包括5种,分别为重启、编译、执行、结果、输出。其中,重启工作流是测试过程中所带动的第1个工作流,该测试的执行流程为:(1)进入临时文件;(2)重启临时文件(如果选择“否”操作则该工作流直接结束,如果选择“是”操作则工作流继续进行);(3)读取现场文件;(4)删除该现场文件;(5)在用例文件中读取该现场文件;(6)工作流结束,其主要是对OS.path包中是否具有现场文件进行检测。
编译工作流是测试中所调动的第2个内容,其执行流程包括:(1)接受参数和赋值的变化;(2)对每一个用例文件进行浏览;(3)对用例文件中的Case进行测试;(4)将Case封装到模板中;(5)对.py格式文件进行输出。在封装的过程中需要注意,应该是将.txt格式文件封装为.py文件,所使用的模板文件名为caseTemplate.pyCaseTmplate,这样就能够将模板字符串和用例的内容添加到try语句中。
执行工作流的执行流程包括:(1)接受参数和赋值的变化;(2)发送cmd命令对编译器进行控制,识别.py文件;(3)测试是否存在异常,如果存在则记录为“异常log”,如果不存在则生成结果文件;(4)对运行结果文件进行输出。在发送emd命令时需要利用os.system进行调用。
结束工作流测试流程包括:(1)读取结果文件;(2)将文件全部信息编译成.xml文件;(3)对提取失败的字符串添加.xml节点;(4)输出.xml格式文件。
输出工作流测试流程包括:(1)对.xml文件进行读取;(2)对文件数据进行全部输出;(3)显示输出失败数据详情;(4)显示每个用例的分析时间;(5)将各数据在实时信息显示模块中进行输出。
4.结语
软件测试自动化平台是一类能够有效提升软件测试效率的系统,我国应加快这类平台的研发和设计进程,并以此提升整体软件研发质量和效率。