# 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类似) ```