IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> SIR记录 -> 正文阅读

[开发测试]SIR记录

SIR收集覆盖矩阵全记录(new version)

本文旨在记录对SIR中的目标程序进行编译、测试、收集测试信息的全流程。

总体步骤

下载数据

下载数据链接:SIR官网
下载数据需要注册,这里注册需要使用者有很纯的动机,而且要将目的说得详细一点。

生成测试用例

阅读探索

本段内容来自C Object Handbook.
总体思路
包含两种方式:

  1. 将TSL文件转换成test frames,这里这个frames目前不知道具体含义,暂不翻译,然后由test frames生成相应的真实测试用例;
  2. 用Expect工具(暂时不了解)

所以这里我们使用方式1。
C程序的文件夹里面提供了STImpL(由于历史原因,这里的STImpL为universe文件),这个文件编码了如何将test frames转换成实际测试用例的描述,而且提供了测试用例所需的输入。
mts这个程序提供了将STImpL转换成测试脚本的的功能。
很重要的一点是,对于不同版本的程序,操作方法不一样(Siemens和space程序为旧版程序)

配置mts

读了handbook,以我理解的意思,当前的目标就是通过mst工具生成测试脚本。
下载mts工具,链接:mst

配置探索

本节内容来自于mst工具目录下的README。
这个README只是outline,如何使用还得看doc目录下的MANUAL

MANUAL

mts是MakeTestScript的简写。

安装mts
  1. 在mts目录下,有bin文件夹下的mts.jar和lib文件夹下antlr-2.7.6.jar,将这两个jar包添加到CLASSPATH。这个链接解释了CLASSPATH和PATH的区别https://blog.csdn.net/weixin_30383279/article/details/95001768
# for test_scripts
export CLASSPATH="/home/yuanxixing/Documents/FL/mts/lib/antlr-2.7.6.jar":$CLASSPATH
export CLASSPATH="/home/yuanxixing/Documents/FL/mts/bin":$CLASSPATH
  1. 将bin目录下的bsh或csh加入到PATH
export PATH=/home/yuanxixing/Documents/FL/mts/bin/bsh:$PATH
  1. 这是很重要的一步。将bin/bash下的两个脚本文件中的MTS_PATH设为自己路径,比如我的设置为:MTS_PATH="/home/yuanxixing/Documents/FL/mts"
使用mts

java sir.mts.MakeTestScript --stimple-file|-sf --script-name|-sn
–exe-name|-en [–experiment-dir|-ed
[–compare-outputs|-c <comp_dir> [comp_cmd>]] [–compare-type|-ct D|d]
[–trace|-t] [–trace-source-dir|-ts ] [–trace-name|-tn ]
[–invoke-prefix|-ip ] [–invoke-suffix|-is ]
[–exe-prefix|-ep ] [–exe-suffix|-es [D]] [–java|-j]
[–target|-tg <script_gen_class>] [–no-escapes|-nesc] [–legacy-macros|-lm]
[–print-config|-pc] [–version]
具体命令参数见manual。

这里以flex为例,按照以下步骤进行

  1. 选择版本,这里我选择flex/v1版本作为我们的研究对象。
  2. versions.alt/version.orig/v1下的所有文件(包括.c,.h等文件)复制到flex/source文件夹下。
  3. 生成测试脚本,下面的脚本会在./source文件夹下生成origin_v1.sh测试脚本文件:
cd ./source
java sir.mts.MakeTestScript -sf ../testplans.alt/v1/v0.tsl.universe -sn ./origin_v1.sh -en ./flex -ed ../
  1. 脚本文件如下,大概解释一下,就是执行flex的可执行文件,将输出移动到outputs文件夹下面。
    在这里插入图片描述
  2. 有了测试脚本,就可以开始测试啦。

# 编译源代码:
gcc -fprofile-arcs -ftest-coverage -o flex flex.c
# 运行测试脚本:
bash ./origin_v1,sh

  1. 运行过程及结果
    在这里插入图片描述
    在这里插入图片描述
    到这里,只是完成了第一步。后续工作感觉还挺多的。

覆盖测试

用.cov.universe为后缀的文件,是为了分支覆盖而生成的测试用例。这个模块应该不需要在意,和我们的主要目的不相关。

生成fault_matrix

全记录(old version)

old version好像就很随意了,就只有一个c源文件,里面注释写了如何work。
开发者非常有趣,ugly but works。
这里就不多说啦,自己看源代码就可以了。

创作开始时间:2021-7-9 17:00
创作结束时间:2021-

番外:
old version的C程序的注释。有趣,越来越向往做一名有趣的科研人员了。
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:47:30  更:2021-07-13 17:49:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 10:10:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码