# Schedule-Test
**Repository Path**: FJFJ-SoftwareTest/Schedule-Test
## Basic Information
- **Project Name**: Schedule-Test
- **Description**: 测试demo
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-03-17
- **Last Updated**: 2021-04-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Schedule-Test
#### 介绍
测试demo
#### 说明
所有脚本都位于`scripts`文件夹下,我们小组完成了包括语句覆盖,分支覆盖,以及随机生成用例测试。
1. 测试`schedule`项目中`v1-v9`的语句覆盖和分支覆盖,并记录结果,请使用`test.sh`脚本
2. 即使`schedule`项目中`v1-v9`的随机生成测试,并记录结果,请使用`rtest.sh`脚本
使用方法见下文
#### 使用方法
### `test.sh`
使用此脚本完成语句覆盖率,分支覆盖率等测试,并记录结果。
首先,请在`scripts`文件夹下执行命令:`sh ./test.sh` ,运行该脚本。
此脚本在运行过程中会自己调用`scripts`文件夹下的`runall.sh`脚本,完成测试。
同时,我们会将结果放在`traces`文件夹下。`traces`文件夹下有下列文件夹和文件:`v1-v9`9个文件夹,分别记录每个缺陷版本的代码的测试结果;一个`correct`文件夹,这里面记录的是正确版本代码的测试结果。一个`Result`文件。这里是缺陷版本的代码测试结果的总和。查看`Result`文件即可知道9个缺陷版本代码的测试结果。
同时在`v1-v9`下又分为下列文件:一个`v*.gcov`文件,及是`gcov`命令的结果;一个`diffRes`文件,使用`diff`记录该缺陷代码的输出与正确版本代码的输出的不同;一个`v*res`文件,记录各自的缺陷版本的`gcov`结果。
以上即是使用`test.sh`后的输出,老师可直接在`traces`文件夹下查看到所有这些结果。
实现细节见`test.sh`
### `rtest.sh`
使用此脚本来完成随机生成测试。
使用方法:在`scripts`文件夹下执行`bash ./rtest.sh 2650`(注意,是使用`bash`来执行脚本,2650是参数,代表要随机生成的测试用例的数量,用户可随意控制)。
其输出的结果的内容和位置与使用`test.sh`一致,这里就不赘述了。
值得注意的是,使用该脚本会在`scripts`文件夹下生成一个新的测试脚本,名为`values.sh`。该脚本的内容和功能都与`runall.sh`一样,都是用来进行测试的。同时,我们随机生成出来的测试用例文件位于`inputs/myinput`下。
`rtest.sh`会自己调用生成的`values.sh`来进行测试。
测试计划位于`testplans`文件夹下。
实现细节见脚本`rtest.sh`
### `scripts`下的其他脚本
同时,出去项目自带的脚本,`scripts`文件夹下还存在一下其他小脚本。
这些脚本是用于配合`test.sh`和`rtest.sh`的工作的,他们会在`test.sh`或者`rtest.sh`中自动被调用,所以用户大可不必关心这些脚本,也不需自行调用,以免出现未知问题。
### traces/Result下的内容格式
`traces/Result`中记录执行结果,内部结构如下:
```
-----------------v1-----------------
----------basic information---------
`*******`
'./versions.alt/versions.orig/v1'
'schedule.c'
'****'
'****'
-----------test information---------
1.test cases:
-tatal number:****
-passing number:****
-failure number:****
2.coverage:
-statement coverage:
-branch coverage:
-function coverage:
-----------------------------------
-----------------v2-----------------
(后面的格式与v1类似)
```