基于二分查找的Junit测试实验

来源:互联网 发布:淘宝佣金插件 编辑:程序博客网 时间:2024/05/17 04:24

1.二分查找函数
注:本测试中代码有Java语言编写,测试用Junit进行,Junit和CPPUNIT同为Xunit旗下的产品。

 public int BinarySearch(int sorted[],int key){        int left = 0;        int right = sorted.length - 1;        // 这里必须是 <=        while (left < right) {            //计算中间位置            int mid = (left + right) / 2;            if (sorted[mid] == key) {                return mid;            }            else if (sorted[mid] < key) {                left = mid + 1;            }            else {                right = mid - 1;            }        }        return -1;    }

(BinarySearch函数)

这里写图片描述

2.流程控制图

这里写图片描述

3.控制流图

这里写图片描述

4.实际测试

    @Testpublic void Test1(){    System.out.println("100%语句覆盖");    int sorted[]=new int[]{1,2,3};    int key1=0;    int key2=1;    int key3=3;    BinarySearch(sorted,key1);    BinarySearch(sorted,key2);    BinarySearch(sorted,key3);}@Testpublic void Test2(){    System.out.println("完全分支覆盖");    int sorted[]=new int[]{1,2,3,4,5,6,7,8,9};    int key1=0;    int key2=6;    BinarySearch(sorted,key1);    BinarySearch(sorted,key2);}@Testpublic void Test3(){    System.out.println("完全谓词覆盖");    int sorted[]=new int[]{1,2,3,4,5,6,7,8,9};    int key1=0;    int key2=6;    BinarySearch(sorted,key1);    BinarySearch(sorted,key2);}(测试代码)
①路径谓词表达式: 1).left>right2). {left<=right,sorted[mid]!=key, sorted[mid]>key, left<=right ,sorted[mid]==key}3). {left<=right,sorted[mid]!=key, sorted[mid]<key, left<=right ,sorted[mid]==key}② 路径谓词表达式:1).left>right2). {left<=right,sorted[mid]!=key, sorted[mid]>key, left<=right ,sorted[mid]==key}3). {left<=right,sorted[mid]!=key, sorted[mid]<key, left<=right ,sorted[mid]==key}③ 路径谓词表达式:1).left>right2). {left<=right,sorted[mid]!=key, sorted[mid]>key, left<=right ,sorted[mid]==key}3). {left<=right,sorted[mid]!=key, sorted[mid]<key, left<=right ,sorted[mid]==key}不知道正确与否

4.引入缺陷 第15行left

@Testpublic void Test4(){    System.out.println("缺陷");    int sorted[]=new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};    int key1=11;    System.out.println(BinarySearch(sorted,key1));}

5.解决缺陷,查找缺陷

@Testpublic void Test5(){    System.out.println("缺陷");    int sorted[]=new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};    System.out.println(BinarySearch(sorted,0));    for (int i: sorted) {        System.out.println(BinarySearch(sorted,i));    }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 3岁宝宝突然吐了怎么办 宝宝撑着了吐拉怎么办 2岁宝宝体温37.5怎么办 宝宝2岁乳牙烂了怎么办 孕40周还没入盆怎么办 孕妇脸上长斑了怎么办 七个月宝宝大便干怎么办 两月大婴儿不拉大便怎么办 周岁宝宝大便出血了怎么办 十一个月宝宝大便干燥怎么办 8个月宝宝大便干燥怎么办 7个月宝宝大便干燥怎么办 11个月宝宝大便干燥怎么办 9个月宝宝大便干燥怎么办 10个月宝宝大便干燥怎么办 宝宝两天没拉粑粑了怎么办 小学闺蜜嫉妒我怎么办 三年级孩子对应用题理解很差怎么办 我嫉妒我的朋友怎么办 嫉妒同学比我好怎么办 宝宝生在家里了怎么办 在家不小心生了怎么办 葫芦干了有黑点怎么办 单位费用发票丢失了怎么办 1岁宝宝太调皮了怎么办 孩子和同学打架家长该怎么办 孩子被大人打了怎么办 小孩不跟大人沟通怎么办 2岁小朋友爱动手怎么办 小班爱动手的小朋友怎么办 宝宝对小朋友不友好爱动手怎么办 小孩子上幼儿园爱打人怎么办 小孩被别人打了怎么办 1岁幼儿爱打人怎么办 作为幼小朋友打人老师怎么办 2岁半小朋友喜欢打人怎么办 2岁宝宝脾气大怎么办 4月小孩爱动怎么办 一岁宝宝老打人怎么办 1岁宝宝爱打人怎么办 3岁宝宝喜欢抓人怎么办