软件测试课程设计——tcas的测试脚本

背景参考

首先,选择tcas作为测试项目,下载地址:
SIR内的tcas文件

tcas的内部文件中version.alt包含了不同错误版本的待测文件,source为待执行代码存放的文件夹,outputs为执行后的结果文件夹,script为各类脚本所在文件,建议按照tcas本来的存放格式保存各种输出结果,不要随意存放,这既是为了美观,也为了减少错误。

具体tcas的内容参考:
https://blog.csdn.net/mangoer_ys/article/details/25974067

阅读作用很大,我最先也按照文中编写测试脚本,因为无法满足读取每个语句被某个版本的多少用例执行这一数据,所以决定自己编写脚本。建议先阅读这篇文章。

收集对单个版本所有用例的测试数据

如果只想收集所有用例累加的测试数据(这里的累加解释一下,t1对一个语句执行2次,t2对这个语句执行1次,那么采用如下方法只会记录3次,而项目要求是,因为有2个用例执行这语句,所以应记为2次。)如果你希望得到累加数据,采用以下语句:

gcc -fprofile-arcs -ftest-coverage -o tcas.exe tcas.c   #生成文件.exe .gcno
./runall										#运行脚本,生成.gcda
gcov -b tcas.c								#分支覆盖,生成.gcov
lcov -d . -c -o r1.info							#收集信息到一个文件
genhtml -o results r1.info					#获取HTML输出,看到语句覆盖 函数覆盖

在version.alt的每个版本内命令行执行第一句,将编译好的tcas.exe复制到source,执行tcas自带的script的runall.sh即第二句,再执行后三句,可以获得绝大部分信息,如语句覆盖率,分支覆盖率,函数覆盖率,每个语句的累加测试次数等,并以html文件展示。但与项目要求相比缺少三点:
1.测试数据矩阵
2.单个语句的非累加次数
3.正确,错误的用例个数(这简单用diff语句对输出文件进行循环判断即可)
因此,需要自己编写脚本。

使用diff判断的python3文件:

import os
VER_NUM = 3
CASE_NUM = 1608
TIMES_TRUE = 0
TIMES_FALSE = 0
for i in range(1, VER_NUM+1):
	for j in range(1, CASE_NUM +1):
		tmp = os.system("diff /home/qjm/tcas/outputs/v0/t" + str(j)+ /home/qjm/tcas/outputs/v" + str(i) + "/t" + str(j) + ">/dev/null")
		if tmp != 0:
			TIMES_FALSE = TIMES_FALSE + 1
		else:
			TIMES_TRUE = TIMES_TRUE + 1
	print("Version",i,"     True: ",TIMES_TRUE,"False: ",TIMES_FALSE)
	TIMES_FALSE = 0
	TIMES_TRUE = 0

1.Linux命令及shell语言脚本

sh语言我也是第一次使用,大概好处是可以直接运行linux命令。
原有脚本(runall.sh):

echo script type: R
echo ">>>>>>>>running test 1"
../source/tcas.exe  958 1 1 2597  574 4253 0  399  400 0 0 1     > ../outputs/t1
echo ">>>>>>>>running test 2"
../source/tcas.exe  627 0 0  621  216  382 1  400  641 1 1 0     > ../outputs/t2
echo ">>>>>>>>running test 3"
../source/tcas.exe  549 1 1 4398  133 1445 1  641  639 0 0 1     > ../outputs/t3
echo ">>>>>>>>running test 4"
../source/tcas.exe  576 0 1 3469  183  381 2  641  501 1 0 1     > ../outputs/t4
echo ">>>>>>>>running test 5"
../source/tcas.exe  992 1 0 3342   23 4657 1  640  741 0 0 0     > ../outputs/t5
echo ">>>>>>>>running test 6"
../source/tcas.exe  548 0 1   34  542 3514 2  499  401 1 1 1     
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值