ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:454.70KB ,
资源ID:9607087      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9607087.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件测试报告Junit白盒测试测试用例pairwise等价类覆盖率EMMA.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件测试报告Junit白盒测试测试用例pairwise等价类覆盖率EMMA.docx

1、软件测试报告Junit白盒测试测试用例pairwise等价类覆盖率EMMA软件测试报告目 录一、简介 31.1、编写目的 31.2、测试范围 3二、测试资源 32.1、人力资源 32.2、测试环境 32.3、测试工具 4三、测试 43.1、greatCircleDistance ()函数 43.2、compareBytes()函数 73.3、getHue ()函数 93.4、arraycopy ()函数 113.5、computeIntersection ()函数 15四、遇到的困难及解决方法 18一、简介1.1、编写目的使用等价类划分方法对于所选的五个功能模块进行测试,并使用pair-wis

2、e方法减少测试用例,并且比较两种测试方法的代码覆盖率。1.2、测试范围本次测试主要测试五个模块的功能,使用等价类划分的方法生成JUnit测试用例,并使用pair-wise方法减少测试用例,比较两种方法的覆盖率。二、测试资源2.1、人力资源姓名角色具体职责和注释*方案设计人、测试技术设计人策划总体规模,测试内容,规划测试方案;测试并记录测试情况。*测试人、记录人、文档整理人制定测试方案,确定测试深度,测试技术设计;测试并记录测试情况,编写软件测试报告。2.2、测试环境下表列出了测试的系统环境机器环境工作计算机软件环境(相关软件、操作系统等)Windows XP SP3jdk1.6.0_06Ecl

3、ipse Platform Version: 3.3.3硬件环境(设备、网络等)笔记本电脑2.3、测试工具用途工具名称生产厂商版本单元测试JUNITJUnit.org4.8.2覆盖率测试EMMAEclEmma.org1.4.3三、测试3.1、greatCircleDistance ()函数greatCircleDistance ()方法计算球面距离,输入的分别为两个点的经度和纬度以及球的半径,以下为其源码: public static double greatCircleDistance(double latitudeS, double longitudeS, double latitudeF

4、, 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(lon

5、gitudeF); 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);

6、 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个用例,等价类分别是: 对latitudeS划分:-90到0,0到90以及不合法输入; 对longitudeS划分:-180到0,0到180以及不合法输入; 对latitudeF划分:-90到0,0到90以及不合法输入; 对long

7、itudeF划分:-180到0,0到180以及不合法输入; 对半径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通过-603

8、030-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抛出

9、异常通过303060120-100抛出异常通过使用EMMA来测量这些测试的代码覆盖率结果如下:二、 使用pair-wise减少测试用例,此次测试总共有13个用例,比原来减少12个用例,此时的代码覆盖率为:三、 对greatCircleDistance()方法测试的结论:综合一和二可以看出,直接使用等价类划分的方法对此模块进行测试需要25个用例,而使用pair-wise后用例数减少一半,但是测试时其代码的覆盖率仍然保持100%,从此可以看出使用pair-wise方法的有效性。3.2、compareBytes()函数 compareBytes()方法实现了数组的比较,将数组a的内容与数组b的内容比

10、较,比较时将数组中数据视为无符号数。当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

11、| 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个用例,分别是: 数组a:可划分为合法输入与不合法输入(具体为null); aOff:可以划分为=a.length; 数组b:可划分为合法输入与不合法输入(具体为null); bOff:可以划分为=

12、b.length; len:可以划分为合法与不合法(具体包括len a.length - aOff | len b.length bOff; 此外,数组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

13、,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,0xf0

14、220通过使用EMMA来测量这些测试的代码覆盖率结果如下:二、 使用pair-wise减少测试用例,此次测试总共用例数为13个,而未使用之前测试用例数为22个,此时代码的覆盖率为:三、 对compareBytes()方法测试的结论综合一和二可以看出,直接使用等价类划分的方法对此模块进行测试需要22个用例,而使用pair-wise后用例数减少一半,但是测试时其代码的覆盖率仍然保持100%,从此可以看出使用pair-wise方法的有效性。3.3、getHue ()函数getHue()方法是计算HSL颜色模型中的Hue参数,以下为其源码:public static float getHue(floa

15、t 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 IllegalArgumen

16、tException(invalid max); hue *= 60f; else if (hue 0.0f) throw new IllegalArgumentException(max min); return hue; 一、 针对此函数我们运用了等价类划分的方法生成JUnit测试用例总共划分出6个用例,分别是: 对max参数进行划分:max=blue,max=red, max=red,max=green,max不等于以上三种参数中的任何一种,maxblue,green=blue以下为具体的测试用例:redgreenbluemaxmin预期结果实际测试结果0.20.60.80.80.220

17、0通过0.80.60.20.80.240通过0.80.20.60.80.2320通过0.60.80.20.80.280通过0.60.80.20.50.2抛出异常通过0.60.80.20.20.8抛出异常通过使用EMMA来测量这些测试的代码覆盖率结果如下:二、 使用pair-wise减少测试用例,此次测试用例数为4个,未使用之前的测试用例数为6个,此次测试的代码覆盖率为:三、 对getHue()方法测试的结论:综合一和二可以看出,直接使用等价类划分的方法对此模块进行测试需要6个用例,而使用pair-wise后用例数减少三分之一,但是测试时其代码的覆盖率仍然保持100%,从此可以看出使用pair-

18、wise方法的有效性。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

19、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) th

20、row 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个用例,分别是: 数组Src:可划分为合法输入与不合法输入(具体为null);

21、 src_position:可分为合法输入以及不合法输入,其中不合法输入包括:小于0,src_position+length=src.length,其中合法输入又可分为等于0和大于0; 数组dst:可划分为合法输入与不合法输入(具体为null),其中合法输入可分为和src是同一数组以及不是同一数组的情况; dst_position: 可分为合法输入以及不合法输入,其中不合法输入包括:小于0,dst_position+length=dst.length,其中合法输入又可分为等于0和大于0; length:可划分为合法输入以及不合法输入(具体指length0);以下为具体的测试用例:数组srcsr

22、c_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为同一数组05数组dst最终结果0,1,2,3, 4,5,6,7,8,9,10,11,12, 13,14,15,16通过同上0同上25数组dst最终结果0,1,0,1,2

23、,3,4,7,8,9,10,11,12,13,14,15,16通过同上2同上05数组dst的最终结果2,3,4,5,6,5,6,7,8,9,10,11,12, 13,14,15,16通过同上10同上35数组dst的最终结果0,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同上25数组dst的最终结果0,1,0,1,2,3,4,7,8,9,10,11,12,13,14,15,16通过同上2同上05数组dst的最终结果2,3,4,5

24、,6,5,6,7,8,9,10,11,12, 13,14,15,16通过同上10同上35数组dst的最终结果0,1,2, 10,11,12, 13,14,8,9,10,11,12, 13,14,15,16通过使用EMMA来测量这些测试的代码覆盖率结果如下:二、 使用pair-wise减少测试用例,此次测试用例数为11个,而未使用之前的测试用例总数为15个,此次测试的覆盖率:三、 对arraycopy()方法测试的结论:综合一和二可以看出,直接使用等价类划分的方法对此模块进行测试需要15个用例,而使用pair-wise后用例数减少到11个,但是测试时其代码的覆盖率仍然保持100%,从此可以看出使用pair-wise方法的有效性。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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1