1、检查所写文档,有需要进行修改2.2、测试环境下表列出了测试的系统环境机器环境工作计算机软件环境(相关软件、操作系统等)Windows XP SP3jdk1.6.0_06Eclipse Platform Version: 3.3.3硬件环境(设备、网络等)笔记本电脑2.3、测试工具用途工具名称生产厂商版本单元测试JUNITJUnit.org4.7/3.8三、测试3.1、greatCircleDistance ()函数greatCircleDistance ()方法计算球面距离,输入的分别为两个点的经度和纬度以及球的半径,以下为其源码: public static double greatCirc
2、leDistance(double latitudeS, double longitudeS, double latitudeF, double longitudeF, double r) if (latitudeS = 90 | latitudeF longitudeS = 180 | longitudeF = 180 | r 0) throw new IllegalArgumentException(); latitudeS = Math.toRadians(latitudeS); latitudeF = Math.toRadians(latitudeF); longitudeS = Ma
3、th.toRadians(longitudeS); longitudeF = Math.toRadians(longitudeF); double deltaLongitude = longitudeF - longitudeS; double a = Math.cos(latitudeF) * Math.sin(deltaLongitude); double b = Math.cos(latitudeS) * Math.sin(latitudeF); b -= Math.sin(latitudeS) * Math.cos(latitudeF) * Math.cos(deltaLongitud
4、e); double c = Math.sin(latitudeS) * Math.sin(latitudeF); c += Math.cos(latitudeS) * Math.cos(latitudeF) if (c 0) c = -c; return Math.atan(Math.sqrt(a * a + b * b) / c) * r; 一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出25个用例,等价类分别是: 对latitudeS划分:-90到0,0到90以及不合法输入; 对longitudeS划分:-180到0,0到180以及不合法输入; 对latitud
5、eF划分: 对longitudeF划分: 对半径r的划分:大于0以及不合法的输入;以下为具体的测试用例:latitudeSlongitudeSlatitudeFlongitudeFr预期结果实际测试结果30100通过-120115.98-60157.0863.003131.81289.566112.296135.256100.80772.27350.53612060抛出异常-210210-1003.2、compareBytes()函数compareBytes()方法实现了数组的比较,将数组a的内容与数组b的内容比较,比较时将数组中数据视为无符号数。当a小于b时返回-1,a大于b时返回1,相等时
6、返回0。以下为源代码:public static int compareBytes(byte a, int aOff, byte b, int bOff, int len) if (a = null | b = null) throw new IllegalArgumentException(Illegal array); if (aOff 0 | bOff Illegal offset if (len a.length - aOff | len b.length - bOff) Not enough bytes left to compare! for (int i = 0; i bb) r
7、eturn 1; else if (ab return -1; return 0;一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出22个用例,分别是: 数组a:可划分为合法输入与不合法输入(具体为null); aOff:可以划分为=a.length; 数组b:可划分为合法输入与不合法输入(具体为null); bOff:=b.length; len:可以划分为合法与不合法(具体包括len b.length bOff; 此外,数组a,b还需考虑符号扩展问题。对于数组中元素,需分别考虑其大于0、小于0的情况(此时,其对应的无符号数大于或等于0x80)。数组aaOff数组bb
8、Offlennull15,6,2,321,2,3-13-241,2,3,45,6,3,35,6,0xf0,31,0xf0,35,6, 0xf1,31,3,31,0xff,31,0xf1,31,3,21,3,0xf05,6,3,0xf15,6,3,21,3,0xf15,6,3,0xf03.3、getHue ()函数getHue()方法是计算HSL颜色模型中的Hue参数,以下为其源码:public static float getHue(float red, float green, float blue, float max, float min) float hue = max - min;
9、if (hue 0.0f) if (max = red) hue = (green - blue) / hue; if (hue hue += 6.0f; else if (max = green) hue = 2.0f + (blue - red) / hue; else if (max = blue) hue = 4.0f + (red - green) / hue; else throw new IllegalArgumentException(invalid max hue *= 60f; else if (hue 0.0f)max min return hue;一、 针对此函数我们运
10、用了等价类划分的方法生成JUnit测试用例总共划分出6个用例,分别是: 对max参数进行划分:max=blue,max=red, max=red,max=green,max不等于以上三种参数中的任何一种,maxblue,green=blueredgreenbluemaxmin0.20.60.820040320800.53.4、arraycopy ()函数Arraycopy()方法实现了数组的复制,将源数组src的内容复制到数组dst中,以下为源代码:public static void arraycopy(byte src, int src_position, byte dst, int ds
11、t_position, int length) if (src = null)src was null if (dst = null)dst was null if (length length was less than 0 if (src_position src.length)src_position + length would overrun the src array. Expected end at + (src_position + length) + actual end at + src.length); if (dst_position dst.length)dst_po
12、sition + length would overrun the dst array. Expected end at + (dst_position + length) + + dst.length); System.arraycopy( src, src_position, dst, dst_position, length);一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出15个用例,分别是: 数组Src: src_position:可分为合法输入以及不合法输入,其中不合法输入包括:小于0,src_position+length=src.length,其中合法
13、输入又可分为等于0和大于0; 数组dst:可划分为合法输入与不合法输入(具体为null),其中合法输入可分为和src是同一数组以及不是同一数组的情况; dst_position: 可分为合法输入以及不合法输入,其中不合法输入包括:小于0,dst_position+length=dst.length,其中合法输入又可分为等于0和大于0; length:可划分为合法输入以及不合法输入(具体指length0);数组srcsrc_position数组dstdst_positionlength1,23, 43,4,5,63,4,50,1,2,3, 4,5,6,7,8,9,10,11,12, 13,14,
14、15,16与src为同一数组5同上0,1,0,1,2,3,4,7,8,9,10,11,12,13,14,15,162,3,4,5,6,5,6,7,8,9,10,11,12,13,14,15,16100,1,2,10,11,12,13,14,8,9,10,11,12, 13,14,15,160,1,2,3, 4,5,6,7,8,9,10,11,12,13,14,15,16数组dst不变2,3,4,5,6,5,6,7,8,9,10,11,12, 13,14,15,160,1,2, 10,11,12, 13,14,8,9,10,11,12, 13,14,15,163.5、computeInterse
15、ction ()函数computeIntersection()方法计算两个矩形相交部分所形成的矩形的坐标,以下为其源码:public static Rectangle computeIntersection(int x,int y,int width,int height,Rectangle dest) if (dest = null) return null; if (x 0 | y 0 | width 0 | height dest.x) ? x : dest.x; int x2 = (x+width) dest.y) ? y : dest.y; int y2 = (y + height)
16、 (dest.y + dest.height) ? (y+height) : (dest.y + dest.height); dest.x = x1; dest.y = y1; dest.width = x2 - x1; dest.height = y2 - y1; / If rectangles dont intersect, return zerod intersection. if (dest.width 0 | dest.height dest.x = dest.y = dest.width = dest.height = 0; return dest;一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出41个用例,分别是: 针对第一个矩形的属性坐标(x,y),宽width以及高height大体分为合法输入和不合法输入(具体为输入小于0的数)。 合法输入中有根据两个矩形的位置的不同情况又进行了划分,具体而言,设第一个矩形的左上角顶点坐标为(x1,y1),右下角顶点坐标为(x2,y2),x1、x2与第二个矩形横坐标的关系有:小于其左边横坐标,在二边中间,大于右边横坐标。y1、y2与第二个矩形纵坐标的关系也可做类似划分。 dest:分为null和合法输入;xywidthheightdest-10(10, 10, 100, 100)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1