# LogicalCoverageCaseStudy **Repository Path**: ysygMhdxw/LogicalCoverageCaseStudy ## Basic Information - **Project Name**: LogicalCoverageCaseStudy - **Description**: 第4周作业代码库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 67 - **Created**: 2021-10-08 - **Last Updated**: 2021-10-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LogicalCoverageCaseStudy #### 功能说明 ![代码功能说明](https://images.gitee.com/uploads/images/2021/0928/083245_989fa19b_8499634.png "CoverageCaseStudy.PNG") #### 作业要求 针对该功能说明请设计测试用例,并满足 1、 100%语句覆盖(Statement Coverage)的测试用例集合并基于附件给出的LogicalCoverageCaseStudy,编写RepayStatementCoverageTest 测试类并采用jacoco衡量Line Coverage和Branch Coverage 2、 100%判定覆盖(Decision Coverage)的测试用例集合 并基于附件给出的LogicalCoverageCaseStudy,编写RepayDecisionCoverageTest 测试类并采用jacoco衡量Line Coverage和Branch Coverage 3、 100%条件覆盖(Condition Coverage)的测试用例集合 并基于附件给出的LogicalCoverageCaseStudy,编写RepayConditionCoverageTest 测试类并采用jacoco衡量Line Coverage和Branch Coverage 4、 100%修正的判定/条件覆盖(Modified Decision/Condition Coverage)的测试用例集合 并基于附件给出的LogicalCoverageCaseStudy,编写RepayMCDCCoverageTest 测试类并采用jacoco衡量Line Coverage和Branch Coverage 5、 使用变异测试工具Pitest评估上述4个测试集合的揭错能力,提交分析报告到PiTestReport中 #### 作业分析 ![img.png](img.png) * 首先,根据代码的结构对各个条件和分支清晰的划分,画出简要的流程图 * 进而,从四个角度分析,构造`语句覆盖`,`判定覆盖`,`条件覆盖`,`判定/条件覆盖`的测试样例 * 分析jacoco生成的测试覆盖率报告 1. 语句覆盖 | 语句 | isValid | isNameValid | balance | isTotal | isPart | payment | return | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | AB | T | T | 0 | N/A | N/A | N/A | card invalid… | |ACD | T | T | 10.0 | F | F | N/A | return | |ACEF | T | T | 10.0 | T | N/A | 1 | not enough… | |ACEG | T | T | 10.0 | T | N/A | 10 | success | 2. 判定覆盖 | 语句 | isValid | isNameValid | balance | isTotal | isPart | payment | return | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | AB | T | T | 0 | N/A | N/A | N/A | card invalid… | |ACD | T | T | 10.0 | F | F | N/A | return | |ACEF | T | T | 10.0 | T | N/A | 1 | not enough… | |ACEG | T | T | 10.0 | T | N/A | 10 | success | 3. 条件覆盖 isCardValid | isNameValid | balance>0 | isTotal | isPart | payment>=10.0 | 路径| | ---- | ---- | ---- | ---- | ---- | ---- | ----| | 真 | 真 | 真 | 真 | - | 真 | ACEG | |假 | - | - | - | - | - | AB | |真 | 假 | - | - | - | - | AB | |真 | 真 | 假 | - | - | - | AB | |真 | 真 | 真 | 假 | 真 | 假 | ACEF | |真 | 真 | 真 | 假 | 假 | - | ACD | 4. 条件判定覆盖 isCardValid | isNameValid | balance>0 | isTotal | isPart | payment>=10.0 | 路径| | ---- | ---- | ---- | ---- | ---- | ---- | ----| | 真 | 真 | 真 | 真 | - | 真 | ACEG | |假 | - | - | - | - | - | AB | |真 | 假 | - | - | - | - | AB | |真 | 真 | 假 | - | - | - | AB | |真 | 真 | 真 | 假 | 真 | 假 | ACEF | |真 | 真 | 真 | 假 | 假 | - | ACD |