摘要:当今时代,人们的生活生产方式发生了巨大改变,软件的出现提高了工作效率,被广泛的应用于各个工作领域。为了确保软件能够平稳高效的运行,就要对其进行系统全面的测试,排除其中存在的问题。为了满足软件测试工作的需求,就要将自动化测试方法有效的运用于软件测试工作中,进而提高测试的工作效率,为软件的质量提供可靠保障。
关键词:网口;自动化测试软件;设计与实现
引言
软件自动化测试主要是为了保证软件在运行过程中的质量,从而提高其自身的实用性。随着科学技术的发展,软件自动化测试技术受到广泛的关注,在软件开发的过程中,采取有效的措施加强软件自动化测试技术是至关重要的,有利于提高软件测试效率。
1软件自动化测试方法
(1)脚本编写方法一般需要人为现对软件的各个板块功能进行研究,并且相关设计人员要对照软件实操功能和说明,各方面审核之后再以此为标准编写软件自动化脚本。经过编写脚本的方式对软件操作自动化测试,该方式优点有很高的准确性和很好的活动性,但由于编写脚本需要人工,并且大多数脚本都不可复制,所以该方式存在的最大缺点就是造成软件测试资金耗费较大。
(2)录制回放方法与脚本编写方法基本类似,录制回放方法以编写的录制回放脚本为依据参照,通过脚本对软件用户操作记忆的模仿再现功能,达到对软件自动化测试的多次重复试验,通过该方式可以达到基本的测试要求。
(3)数据驱动方法以有关变量的数据化为标准,将测试结果标记在测试脚本上,使文件记录与脚本记录相对照,此情况下测试脚本与测试数据分开后,测试脚本也可单独再次使用。
(4)关键词驱动方法以数据驱动测试技术为参照,经过一系列改革、创新而创造的。关键词驱动方法在使用时,需要有关人员先成立关键词结构,再以此为依据成立数据库,通过读取关键词、调用测试项目来操作软件自动化测试。关键词驱动方法有强大的更改性,可以广泛用于软件自动化测试的每个步骤,其优势在于以关键词为核心的数据库、数据表,可以独立测试自动化工具。
2基于网口的自动化测试软件的设计与实现
2.1读取数据文件
文件信息填写的内容包括文件的数据类型(十六进制、八进制或者十进制),数据的间隔(逗号或者空格),数据发送间隔(0到10秒),是否循环发送,使用库函数GetCtrlVal()获取控件的当前值。用户选择“打开”按钮,浏览并打开测试计算机要导入发送的文件名。用户选择“预期输出”按钮,浏览并打开被测软件预期输出的数据文件。用户选择“保存”按钮,选择测试计算机保存被测软件实际输出的数据的文件名。打开文件使用OpenFile()函数,使用ReadLine(filesucc1,Binarydata[countline],-1)按行读取文件的字符串内容,filesucc1是打开文件的句柄,Binarydata[countline]数组保存每一行的内容,-1表示读取到文件的结束。保存数据使用库函数WriteLine(filesucc2,msg,-1)对接收的数据按行进行保存,filesucc2是保存文件的句柄,msg是需要保存的字符串。函数strtodata(char*SourceString,intStyle,intMark,intLen,int
*DestData)实现的功能是将特定字符为间隔的字符串转换为数值,其中SourceString为源字符串指针,Style为数据的类型样式(其中8表示源字符串为八进制,10表示源字符串为十进制,16表示源字符串为十六进制),Mark表示间隔标识符,Len表示需要转换的字符串长度,DestData为源字符串转换成数值后的指针,strtodata()函数的伪代码如下:
1 for(j=0;j<len;j++)
2 if(SourceString[j]==Mark)//从字符串中以指定字符为间
隔提取数值
3 switch(Style)
4 case8:
5 temp=sscanf(&SourceString[k],"%o,",&DestData[i]);
6 break;
7 case10:
8 temp=sscanf(&SourceString[k],"%d,",&DestData[i]);
9 break;
10 case16:
11 temp=sscanf(&SourceString[k],"%x,",&DestData[i]);
12 break;
13 default:
14 break;
15 if(temp==0)
16 DestData[i]=0;//未获取数据,将目标数置零
17 end if
18 k=j+1;//将当前读取指针移动到当前间隔符之后
19 i++;//目标数据指针移动一格
20 retVal=i;
21 if(temp<0)
22 retVal=-1;//转换出错,返回值
23 break;
24 end if
25 end if
26 end for
2.2数据发送和接收
使用LabWindows/CVI进行网络通信时,测试驱动软件通过UDP协议与被测软件建立链路连接,测试驱动软件直接调用库函数CreateUDPChannel(unsignedintlocalPort,unsignedint*channel),建立发送和接收数据的链路,退出程序时调用DisposeUDPChannel(unsignedintchannel)释放通信链路。填写地址信息的界面如图1所示(IP选择Sring控件,PORT选择Numeric控件),包括IP地址和端口号(PORT)。使用定时器(Timer)每隔特定时间间隔触发回调函数,回调函数中调用库函数UDPRead()和UDPWrite()进行数据的收发操作,库函数的具体使用方法可查看LabWindows/CVI的帮助文件。
图1地址界面
2.3结果判定
测试驱动软件的结果显示如图2所示,采用Table控件,增加行和列的名称,下图中的输入列为测试驱动软件发送的数据,预期输出列是被测软件的预期输出,实际输出列是被测软件的实际输出,程序根据预期输出和实际输出的值进行比较,从而得到软件测试结果合格或者不合格。
图2结果判定
图2打印输出的是字符串,测试驱动软件收到是数据数组,测试驱动软件需要将一组数据转换成字符串,采用语句p+=sprintf(targetstring+p,"%#04x,",numdata[j])实现,p为sprintf()函数一共转换的字符个数,numdata[]为数据数组,targetstring为转换后的字符串指针,根据不同的数据类型和显示格式的需要,增加判定条件,同时修改sprintf()的格式类型即可。
结语
通过该测试驱动软件,可以向被测软件定时发送特定格式的数据文件,同时接收被测软件的实际输出值,通过对比预期输出和实际输出值,得到软件的测试结果。通过采用该测试驱动软件测试航迹软件,克服了串口调试助手读取数据的局限性,同时节约了人力和时间资源,提高了效率,在实际的软件测试中具有较好的应用价值。
参考文献:
[1]邓绍伟.软件自动化测试方法的应用[J].电子技术与软件工程,2019(21):32.
[2]张蓝图.软件自动化测试方法的应用[J].电子技术与软件工程,2019(18):30-31.
论文作者:尹文杰
论文发表刊物:《基层建设》2020年第2期
论文发表时间:2020/4/29
标签:测试论文; 软件论文; 数据论文; 字符串论文; 脚本论文; 方法论文; 文件论文; 《基层建设》2020年第2期论文;