我是靠谱客的博主 留胡子御姐,最近开发中收集的这篇文章主要介绍白盒测试——称重3次找到假球(基本路径测试)问题描述程序代码程序控制流图计算环形复杂度基本路径测试用例测试代码测试结果参考文章,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
问题描述
使用白盒测试用例设计方法为下面的程序设计测试用例(基本路径测试)并Junit下测试:
程序要求
10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球。
程序设计思路
第一次使用天平分别称5个球,判断轻的一边有假球;
拿出轻的5个球,取出其中4个第二次称,两边分别放2个球:
如果两边同重,则剩下的球为假球;
若两边不同重,拿出轻的两个球称第三次,轻的为假球。
程序代码
package com.softtest.baihe;
public class SearchBall {
private static int x[]=new int[10];
public SearchBall(){}
public void setBWeight(int w[]){
for(int i=0;i<w.length;i++){
x[i]=w[i];
}
}
public String BeginSearch(){
if(x[0]+x[1]+x[2]+x[3]+x[4]<x[5]+x[6]+x[7]+x[8]+x[9]){
if(x[1]+x[2]==x[3]+x[4]){
return "1号是假球";
}
if(x[1]+x[2]<x[3]+x[4]){
if (x[1]<x[2]) {
return "2号是假球";
}else {
return "3号是假球";
}
}else {
if (x[3]<x[4]){
return "4号是假球";
}
else{
return "5号是假球";
}
}
}else {
if(x[6]+x[7]==x[8]+x[9]){
return "6号是假球";
}
if(x[6]+x[7]<x[8]+x[9]) {
if (x[6]<x[7]) {
return "7号是假球";
}else {
return "8号是假球";
}
}else {
if (x[8]<x[9]) {
return "9号是假球";
}else {
return "10号是假球";
}
}
}
}
}
程序控制流图
Y代表判定结果为真,N代表判定结果为假。
简化后的控制流图
计算环形复杂度
控制流图G的环形复杂度计算公式:$ V(G)=E−N+2 $,其中E为控制流图中边的数量,N是控制流图中的结点数量。
函数BeginSearch()
的控制流图的环形复杂度为
V
(
G
)
=
18
−
19
+
2
=
1
V(G)=18−19+2=1
V(G)=18−19+2=1
基本路径
从程序流图中可知,共有10条基本路径,具体如下
路径编号 | 经过结点 |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 |
测试用例
路径 | 测试用例 | 预期结果 | 测试结果 |
---|---|---|---|
1 | 1,2,2,2,2,2,2,2,2,2 | 1号是假球 | 1号是假球 |
2 | 2,1,2,2,2,2,2,2,2,2 | 2号是假球 | 2号是假球 |
3 | 2,2,1,2,2,2,2,2,2,2 | 3号是假球 | 3号是假球 |
4 | 2,2,2,1,2,2,2,2,2,2 | 4号是假球 | 4号是假球 |
5 | 2,2,2,2,1,2,2,2,2,2 | 5号是假球 | 5号是假球 |
6 | 2,2,2,2,2,1,2,2,2,2 | 6号是假球 | 6号是假球 |
7 | 2,2,2,2,2,2,1,2,2,2 | 7号是假球 | 7号是假球 |
8 | 2,2,2,2,2,2,2,1,2,2 | 8号是假球 | 8号是假球 |
9 | 2,2,2,2,2,2,2,2,1,2 | 9号是假球 | 9号是假球 |
10 | 2,2,2,2,2,2,2,2,2,1 | 10号是假球 | 10号是假球 |
测试代码
public class SearchBallTests {
@Test
public void test1() {
SearchBall obj = new SearchBall();
int[] input;
int ballIndex;
// 遍历测试各个基本路径
for (int i = 0; i < 10; ++i) {
// 生成用例输入
input = new int[]{2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
input[i] = 1;
obj.setBWeight(input);
// 测试用例输出
ballIndex = i + 1;
assertEquals(ballIndex + "号是假球", obj.BeginSearch());
}
}
}
测试结果
参考文章
JUnit白盒测试之基本路径测试:称重3次找到假球
使用基本路径测试设计测试用例并使用junit测试程序
最后
以上就是留胡子御姐为你收集整理的白盒测试——称重3次找到假球(基本路径测试)问题描述程序代码程序控制流图计算环形复杂度基本路径测试用例测试代码测试结果参考文章的全部内容,希望文章能够帮你解决白盒测试——称重3次找到假球(基本路径测试)问题描述程序代码程序控制流图计算环形复杂度基本路径测试用例测试代码测试结果参考文章所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复