java白盒测试用例_白盒测试之单元测试用例设计入门
packageex3;importorg.junit.Test;import static org.junit.Assert.*;public classWhiteBoxUnitTestCases {private ServiceForTesting service = newServiceForTestingImpl();
@Testpublic voidstatementCoverage() {
decisionCoverageOrBranchCoverage();
}
@Testpublic voiddecisionCoverageOrBranchCoverage() {float output1 = service.getCommission(0, 1, 1); //数量不合法
float output2 = service.getCommission(1, 2, 3); //< 1000
float output3 = service.getCommission(10, 20, 20); //< 1800
float output4 = service.getCommission(20, 40, 40); //>= 1800
assertEquals(-1, output1, 0.01);
assertEquals(12.4, output2, 0.01); //actual:12.400001
assertEquals(124.0, output3, 0.01);
assertEquals(324.0, output4, 0.01);
}
@Testpublic voidconditionCoverage() {/*确保每个判定中的每个条件都获得可能的取值,
即每个条件至少有一次真值、有一次假值。*/decisionConditionCoverage();
}
@Testpublic void decisionConditionCoverage() { //Decision/Condition Coverage
/*Decision/Condition Coverage
保证每个Decision取一次真假,并且每个Condition也取一次真和假*/
/*条件(共5个):①headphones <= 0 ②shells < 0
③protectors < 0 ④total < 1000 ⑤total < 1800
取值1:1 (后续判定不会执行)
取值2:0 1 (后续判定不会执行)
取值3:0 0 1(后续判定不会执行)
取值4:0 0 0 1(最后一个判定不会执行)
取值5:0 0 0 0 1
取值6:0 0 0 0 0*/assertEquals(-1, service.getCommission(-1, 1, 1), 0.01);
assertEquals(-1, service.getCommission(1, -1, 1), 0.01);
assertEquals(-1, service.getCommission(1, 1, -1), 0.01);
assertEquals(81.8, service.getCommission(10, 1, 1), 0.01); //total=818.0
assertEquals(192.7, service.getCommission(20, 1, 1), 0.01); //total=1618.0
assertEquals(343.6, service.getCommission(30, 1, 1), 0.01); //total=2418.0
}
@Testpublic void multipleConditionCoverage() { //Branch Condition Combination Coverage//略。由 0 0 0 0 0 列举到 1 1 1 1 1 共 2^5 组测试用例
}
@Testpublic void MC_DC() { //Modified Condition/Decision Coverage//multipleConditionCoverage的子集//核心意思是每个条件都要独立影响判定结果。//对于一般企业来说,建议用MC/DC作为统一的覆盖标准。
decisionConditionCoverage();
}
@Testpublic voidpathCoverage() {//覆盖从开始到结束的所有路径
decisionConditionCoverage();
}
}
更多推荐
所有评论(0)