已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SDWU Version: 软件测试报告 Date: 软件测试报告目 录一、简介21.1、编写目的21.2、测试范围2二、测试资源22.1、人力资源22.2、测试环境22.3、测试工具3三、测试33.1、greatCircleDistance ()函数33.2、compareBytes()函数33.3、getHue ()函数33.4、arraycopy ()函数33.5、computeIntersection ()函数3四、遇到的困难及解决方法3一、简介1.1、编写目的使用等价类划分方法对于所选的五个功能模块进行测试,并使用Junit方法设计测试用例。1.2、测试范围使用等价类划分方法对于所选的五个功能模块进行测试,并使用Junit方法设计测试用例。二、测试资源2.1、人力资源姓名角色具体职责和注释夏玉娜方案设计人、测试技术设计人策划总体规模,测试内容,规划测试方案;测试并记录测试情况。赵秀秀测试人、记录人、文档整理人制定测试方案,确定测试深度,测试技术设计;测试并记录测试情况,编写软件测试报告。陈玉霞检查人员检查所写文档,有需要进行修改2.2、测试环境下表列出了测试的系统环境机器环境工作计算机软件环境(相关软件、操作系统等)Windows XP SP3jdk1.6.0_06Eclipse Platform Version: 3.3.3硬件环境(设备、网络等)笔记本电脑2.3、测试工具用途工具名称生产厂商版本单元测试JUNITJU4.7/3.8三、测试3.1、greatCircleDistance ()函数greatCircleDistance ()方法计算球面距离,输入的分别为两个点的经度和纬度以及球的半径,以下为其源码:public static double greatCircleDistance(double latitudeS,double longitudeS, double latitudeF, double longitudeF, double r) if (latitudeS = 90 | latitudeF = 90 | longitudeS = 180|longitudeF = 180 | r 0) throw new IllegalArgumentException();latitudeS = Math.toRadians(latitudeS);latitudeF = Math.toRadians(latitudeF);longitudeS = Math.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(deltaLongitude);double c = Math.sin(latitudeS) * Math.sin(latitudeF);c += Math.cos(latitudeS) * Math.cos(latitudeF)* Math.cos(deltaLongitude);if (c 0)c = -c;return Math.atan(Math.sqrt(a * a + b * b) / c) * r;一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出25个用例,等价类分别是:l 对latitudeS划分:-90到0,0到90以及不合法输入;l 对longitudeS划分:-180到0,0到180以及不合法输入;l 对latitudeF划分:-90到0,0到90以及不合法输入;l 对longitudeF划分:-180到0,0到180以及不合法输入;l 对半径r的划分:大于0以及不合法的输入;以下为具体的测试用例:latitudeSlongitudeSlatitudeFlongitudeFr预期结果实际测试结果303030301000通过303030-120100115.98通过3030-6030100157.08通过3030-60-12010063.003通过30-603030100131.812通过30-6030-12010089.566通过30-60-6030100112.296通过30-60-60-120100135.256通过-60303030100157.08通过-603030-12010063.003通过-6030-60301000通过-6030-60-120100100.807通过-60-603030100112.296通过-60-6030-120100135.256通过-60-60-603010072.273通过-60-60-60-12010050.536通过1203060120100抛出异常通过-1203060120100抛出异常通过6030120120100抛出异常通过6030-120120100抛出异常通过30-21060120100抛出异常通过3021060120100抛出异常通过303060-210100抛出异常通过303060210100抛出异常通过303060120-100抛出异常通过3.2、compareBytes()函数compareBytes()方法实现了数组的比较,将数组a的内容与数组b的内容比较,比较时将数组中数据视为无符号数。当a小于b时返回-1,a大于b时返回1,相等时返回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 0) throw new IllegalArgumentException(Illegal offset);if (len a.length - aOff | len b.length - bOff) throw new IllegalArgumentException(Not enough bytes left to compare!);for (int i = 0; i bb) return 1; else if (ab bb) return -1;return 0;一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出22个用例,分别是:l 数组a:可划分为合法输入与不合法输入(具体为null);l aOff:可以划分为=a.length;l 数组b:可划分为合法输入与不合法输入(具体为null);l bOff:可以划分为=b.length;l len:可以划分为合法与不合法(具体包括len a.length - aOff | len b.length bOff;l 此外,数组a,b还需考虑符号扩展问题。对于数组中元素,需分别考虑其大于0、小于0的情况(此时,其对应的无符号数大于或等于0x80)。以下为具体的测试用例:数组aaOff数组bbOfflen预期结果实际测试结果null15,6,2,322抛出异常通过1,2,3-15,6,2,322抛出异常通过1,2,335,6,2,322抛出异常通过1,2,31null22抛出异常通过1,2,315,6,2,3-22抛出异常通过1,2,315,6,2,342抛出异常通过1,2,315,6,2,32-1抛出异常通过1,2,3,415,6,2,323抛出异常通过1,2,315,6,3,322-1通过1,2,315,6,0xf0,322-1通过1,0xf0,315,6, 0xf1,322-1通过1,3,315,6,2,3221通过1,0xff,315,6,2,3221通过1,0xf1,315,6,0xf0,3221通过1,3,215,6,3,322-1通过1,3,0xf015,6,3,0xf122-1通过1,3,315,6,3,2221通过1,3,0xf115,6,3,3221通过1,3,0xf115,6,3,0xf0221通过1,3,0xf015,6,3,0xf0220通过3.3、getHue ()函数getHue()方法是计算HSL颜色模型中的Hue参数,以下为其源码:public static float getHue(float red, float green, float blue, float max, float min) float hue = max - min; if (hue 0.0f) if (max = red) hue = (green - blue) / hue; if (hue 0.0f) 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) throw new IllegalArgumentException(max min); return hue; 一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出6个用例,分别是:l 对max参数进行划分:max=blue,max=red, max=red,max=green,max不等于以上三种参数中的任何一种,maxblue,green=blue以下为具体的测试用例:redgreenbluemaxmin预期结果实际测试结果0.80.2200通过0.80.240通过0.80.2320通过0.80.280通过0.50.2抛出异常通过0.20.8抛出异常通过3.4、arraycopy ()函数Arraycopy()方法实现了数组的复制,将源数组src的内容复制到数组dst中,以下为源代码:public static void arraycopy(byte src, int src_position, byte dst, int dst_position, int length) if (src = null) throw new IllegalArgumentException(src was null); if (dst = null) throw new IllegalArgumentException(dst was null); if (length 0) throw new IllegalArgumentException(length was less than 0); if (src_position src.length) throw new IllegalArgumentException(src_position + length would overrun the src array. Expected end at + (src_position + length) + actual end at + src.length); if (dst_position dst.length) throw new IllegalArgumentException(dst_position + length would overrun the dst array. Expected end at + (dst_position + length) + actual end at + dst.length); System.arraycopy( src, src_position, dst, dst_position, length); 一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出15个用例,分别是:l 数组Src:可划分为合法输入与不合法输入(具体为null);l src_position:可分为合法输入以及不合法输入,其中不合法输入包括:小于0,src_position+length=src.length,其中合法输入又可分为等于0和大于0;l 数组dst:可划分为合法输入与不合法输入(具体为null),其中合法输入可分为和src是同一数组以及不是同一数组的情况;l dst_position: 可分为合法输入以及不合法输入,其中不合法输入包括:小于0,dst_position+length=dst.length,其中合法输入又可分为等于0和大于0;l length:可划分为合法输入以及不合法输入(具体指length0);以下为具体的测试用例:数组srcsrc_position数组dstdst_positionlength预期结果实际测试结果null01,202抛出异常通过1,20null02抛出异常通过1,2-13, 402抛出异常通过1,203, 4-12抛出异常通过1,203, 40-1抛出异常通过1,2,313,4,5,613抛出异常通过1,2,3,413,4,513抛出异常通过0,1,2,3, 4,5,6,7,8,9,10,11,12, 13,14,15,160与src为同一数组050,1,2,3, 4,5,6,7,8,9,10,11,12, 13,14,15,16通过同上0同上250,1,0,1,2,3,4,7,8,9,10,11,12,13,14,15,16通过同上2同上052,3,4,5,6,5,6,7,8,9,10,11,12,13,14,15,16通过同上10同上350,1,2,10,11,12,13,14,8,9,10,11,12, 13,14,15,16通过同上00,1,2,3, 4,5,6,7,8,9,10,11,12,13,14,15,1605数组dst不变通过同上0同上250,1,0,1,2,3,4,7,8,9,10,11,12,13,14,15,16通过同上2同上052,3,4,5,6,5,6,7,8,9,10,11,12, 13,14,15,16通过同上10同上350,1,2, 10,11,12, 13,14,8,9,10,11,12, 13,14,15,16通过3.5、computeIntersection ()函数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) (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 0) dest.x = dest.y = dest.width = dest.height = 0; return dest; 一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出41个用例,分别是:l 针对第一个矩形的属性坐标(x,y),宽width以及高height大体分为合法输入和不合法输入(具体为输入小于0的数)。l 合法输入中有根据两个矩形的位置的不同情况又进行了划分,具体而言,设第一个矩形的左上角顶点坐标为(x1,y1),右下角顶点坐标为(x2,y2),x1、x2与第二个矩形横坐标的关系有:小于其左边横坐标,在二边中间,大于右边横坐标。y1、y2与第二个矩形纵坐标的关系也可做类似划分。l dest:分为null和合法输入;以下为具体的测试用例:xywidthheightdest预期结果实际测试结果00100100nullnull通过-100100100(10, 10, 100, 100)null通过10-10100100(10, 10, 100, 100)null通过1010-100100(10, 10, 100, 100)null通过1010100-100(10, 10, 100, 100)null通过001010(20, 20, 100, 100)(0, 0, 0, 0)通过001030(20, 20, 100, 100)(0, 0, 0, 0)通过0010130(20, 20, 100, 100)(0, 0, 0, 0)通过0301010(20, 20, 100, 100)(0, 0, 0, 0)通过03010100(20, 20, 100, 100)(0, 0, 0, 0)通过01301010(20, 20, 100, 100)(0, 0, 0, 0)通过003010(20, 20, 100, 100)(0, 0, 0, 0)通过003030(20, 20, 100, 100)(20, 20, 10, 10)通过0030130(20, 20, 100, 100)(20, 0, 10, 100)通过0303030(20, 20, 100, 100)(20, 30, 10, 30)通过03030130(20, 20, 100, 100)(20, 30, 10, 90)通过01303030(20, 20, 100, 100)(0, 0, 0, 0)通过0013010(20, 20, 100, 100)(0, 0, 0, 0)通过0013030(20, 20, 100, 100)(20, 20, 100, 10)通过00130130(20, 20, 100, 100)(20, 20, 100, 100)通过03013030(20, 20, 100, 100)(20, 30, 100, 30)通过030130130(20, 20, 100, 100)(20, 30, 100, 90)通过0130130130(20, 20, 100, 100)(0, 0, 0, 0)通过3003010(20, 20, 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第19课内容概览课件
- 初中政治思想课件
- 初中政治法治课件
- 船制作教学课件
- 初中综合实践报告课件
- 船政英语介绍课件
- 小学三年级心理健康《情绪小主人》教学设计
- 2027年高一生物细胞糖类与脂质教学设计
- 九年级化学《化学方程式》单元教学设计
- 高二物理教学设计:电磁感应定律的实验建模与核心素养培育
- GB/T 34630.1-2026搅拌摩擦焊铝及铝合金第1部分:术语及定义
- 《半导体制备装置用超高纯净不锈钢管》
- 2026语文新教材 第19课 航天员写给孩子的信 教学课件
- 2026年《三级物业管理师》考试模拟试题含答案
- 2026年咨询工程师《决策分析与评价》真题及答案
- 2022-2023学年高中化学鲁科版(2019)选修一第二章试卷3
- 重庆市2025年高考真题化学试卷(含答案)
- 少儿脊柱健康课件
- JG/T 182-2008住宅轻钢装配式构件
- 消防监督中级评审考试题库-多选题库
- 气象遥感完整版本
评论
0/150
提交评论