# Software-Test **Repository Path**: wangqianfang2024/software-test ## Basic Information - **Project Name**: Software-Test - **Description**: 软件测试课程实验 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-07 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Software-Test ## 实验一:构建软件测试实验环境 ### 实验目标 * 掌握 git 协作式管理工具; * 掌握 gradle / maven 项目构建基本操作 * 锻炼基本代码编程能力 #### 需求 **输入3个整数a、b和c分别作为三角形的三条边,要求a、b和c必须满足以下条件:** 1. 整数 2. 3个数 3. 边长大于等于1,小于等于100 4. 任意两边之和大于第三边 **输出为5种情况之一:** * 如果不满足条件1、2、3,则程序输出为“输入错误”。 * 如果不满足条件4,则程序输出为“非三角形”。 * 如果三条边相等,则程序输出为“等边三角形”。 * 如果恰好有两条边相等,则程序输出为“等腰三角形”。 * 如果三条边都不相等,则程序输出为“一般三角形”。 >详细代码实现见`AngleTest\src\main\java\com\ctgu\test\Triangle.java`和`AngleTest\src\test\java\com\ctgu\test\TriangleTest.java` --- ## 实验二:边界值测试方法 ### 实验目标 (1)巩固 git 协作式管理工具的使用,锻炼基本的编程能力; (2)巩固 gradle 项目构建 Java 应用的基本操作 (3)掌握边界值分析方法设计测试用例的方法 (4)掌握JUnit自动测试框架,掌握参数化测试方法。 ### 实验要求 * 学习Junit5 参数化测试方法 * 针对实验一实现判断三角形类型程序Triangle,采用边界值分析方法设计测试用例,并采用Junit5 编写完成三角形类型程序测试用例。 #### 实验总结 * 常用gradle命令 ``` gradle init # 选择application gradle build gradle clean gradle run gradle test gradle classes ``` * 资源文件的引入 >a,b,c,String 对应文件中每一列的值 -> (参数化测试方法)。资源放在test/resource/下 ```java @ParameterizedTest @DisplayName("一般边界值测试用例") @CsvFileSource(resources = "/general_values.csv", encoding = "UTF-8") void general_test(int a, int b, int c, String expected) throws ParseException { Triangle triangle = new Triangle(); assertEquals(expected, triangle.classify(a,b,c)); } ``` * 乱码问题 >在build.gradle 中添加编码设置,gradle默认为系统编码(GBK) > >参考:https://star.jmhui.com.cn/p1/585.html ``` tasks.withType(JavaCompile){ options.encoding("utf-8") } ``` ## 实验三:等价类分析方法 #### 需求 **电话账单计费** 对于电话账单来说,当春季和秋季标准时间与夏令时时间进行转换时会产生一个很有意思的问题: 春季,这种转换发生在(3月某个)星期日凌晨2:00点,这时要将时钟设置为凌晨3:00点;秋季, 转换通常在11月的第一个星期日,时钟要从2:59:59调回2:00:00。 请为长途电话服务函数开发计费类,使用等价类分析方法构建测试用例并使用Junit5测试。 **采用如下计费规则计算通话费**: 1. 通话时间小于等于20分钟时,每分钟收费0.05美元,通话时间不足1分钟按1分钟计算; 2. 通话时间大于20分钟时,收费1.00美元,外加超过20分钟的部分每分钟0.10美元; 3. 不到1分钟按1分钟计算。 **假设**: 1. 通话计费时间从被叫方应答开始计算,到呼叫方挂机时结束; 2. 通话时间的秒数向上进位到分钟; 3. 没有超过30个小时的通话。 #### 实验总结 执行check任务和jacocoTestReport任务 ``` gradlew clean check gradlew test jacocoTestReport ``` >不要随便使用魔法数字😅