《软件测试文档 .docx》由会员分享,可在线阅读,更多相关《软件测试文档 .docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结软件测试报告一、问题描述:用 Java 实现求两整数的加、减、乘、除运算结果,要求两整数的范畴都是0,100。从键盘输入数 m,数 n,判定他们的范畴,假设不在 0,100 范畴内,就输出提示语,要求重新输入, 并且在做除法运算时, 当除数为 0 时,输出提示语, 说明除数不能为 0。可编辑资料 - - - 欢迎下载精品名师归纳总结将两数的范畴定在 0,100,以更好的进行边界值分析, 等价类测试等黑盒测试方法。为充分表达白盒测试的特点,有些的方有意用了if-else 语句, while 循环。另外,加、减、乘、除运算分别用了四个函数来运算,这样既可以在主函数中调用,又可以在
2、Junit 框架中分别对这四种运算进行测试。二、程序源代码:1. importjava.util.Scanner;2. publicclassComputer 3. privateinta ;4. privateintb ;5. publicComputer intx,inty/构造函数,初始 化6.7. a=x;/留意: Juint中需要输入测试值在 0100 范畴 内8. b=y;9.10.publicdoubleadd/加法11.12.returna+b;13.14.publicdoubleminus/减法15.16.returna- b;17.18.publicdoublemultip
3、ly/乘法19.20.returna* b;21.22.publicdoubledivide/除法,要求除数不能为0 ,否就输出提示语23.24.if b .=025.returna/ b;26.else27. System.out .println 除数不能为 0 ! ;可编辑资料 - - - 欢迎下载精品名师归纳总结28. return0;29.30.publicstaticvoidmainString args31.32. Scanner scanner =null;33. scanner =new ScannerSystem.in ;34. System.out .println 请输
4、入 0100 的两个 m,n 整数 :;35. System.out .println 请输入第一个数: ;36. while true/假设输入值不在要求范畴内,就有循环直到输入正确为止37. intm = scanner.nextInt;38.ifm=0&m=0&n=0&m=0&n=10执行语句块 3出口、语句掩盖:每个可执行的语句必需至少执行一次,就测试用例:表 7语句掩盖测试用例m1=-1,m2=1测试用例。 n1=101, n2=99通过路径a,f,b,d,c条件取值F1,T1,F2,T2可编辑资料 - - - 欢迎下载精品名师归纳总结、判定分支掩盖:每个判定中的每个条件的全部可能值
5、 真/ 假至少显现一次并且每个判定本身的结果真 / 假也至少显现一次,就测试用例:表 9条件判定掩盖、路径掩盖:测试用例要求掩盖全部可能的路径:每个判定必需至少获得一次“真”值和“假”值,就测试用例: 表 8 判定分支掩盖测试用例通过路径条件取值m=1,n=99a,b,cT;Tm1=-1,m2=1,n=99a,f,b,cF1,T1;T2m=1,n1=-1,n2=99a,b,d,cT;F1,T1m1=-1,m2=1;n1=101,n2=99a,f,b,d,cF1,T1;F2,T2、条件判定掩盖:测试用例通过路径条件取值m=1,n=99a,b,cT,T表10路径掩盖m1=-1,m2=1测试用例。
6、n1=101, n2=99通过路径a,f,b,d,c条件取值F1,T1,F2,T22.基路径测试: 为简便画图,开头点从主要代码第36 行开头, 其他无分支节点用省略号表示可编辑资料 - - - 欢迎下载精品名师归纳总结1从节点 1 到节点 36.33353454445从节点 43 到 51.555555所以:圈复杂度 VG= 56可编辑资料 - - - 欢迎下载精品名师归纳总结4 个独立路径为 :P1:1,.,36,37,38.42,43.54,55,58,59,60 P2:1,.,36,37,56,57,58,59,60 P3:1,.,36,37,38.42,52,53,54,55,58,
7、59,60P4:1,.,36,37,38.42,43.54,42,52,53,54,55,58,59,60P5:1,.,36,37,56,57,58,36,37,56,57,58,59,60三、Junit动态测试:import junit.framework.TestCase; /引入 Junit 框架中全部类public class ComputerTest extends TestCase private Computer a; /定义变量private Computer b; private Computer c ; private Computer d;public ComputerT
8、est String name supername;/构造函数 , 使用super关键字直接引用父类TestCase 的构造函 数protected void setUp throws Exception super.setUp;/ 建立环境, 可以进行一些测试数据的初始化,仍可以把数据库联接写在此处 ,以削减重复性工作,提高效率a =new Computer1,99; b =new Computer101,5; c =new Computer1,2;d =new Computer1,0;protectedvoidtearDownthrowsException super.tearDown;p
9、ublicvoidtestComputer intx=1;inty=1;assertSamex,y;/assertSamepublicvoidtestAdd /加法测试assertEquals100.0,a.add;可编辑资料 - - - 欢迎下载精品名师归纳总结publicvoidtestAdd1 assertEquals106.0,b.add;/ 输入值超出要求范畴, 测试失败,由于要求 0100 范畴,所以,在构造 Computer函数时,要规定变量 x,y的范畴publicvoidtestMinus / 减法测试assertEquals-89,a.minus;/预期值和结果 不相等,测
10、试失败publicvoidtestMinus1 assertEquals-89.0,a .minus;publicvoidtestMultiply assertEquals2.0,c .multiply;publicvoidtestMultiply1 Object tx =null; tryassertEquals2.0,c .multiply;/c.multiply的正常结果是,所以在此不应抛出异 常fail should have thrown an exception ;/上面不抛出反常,不执可编辑资料 - - - 欢迎下载精品名师归纳总结行fail catchException e 可
11、编辑资料 - - - 欢迎下载精品名师归纳总结tx = e;assertNotNulltx;/断言tx 不为空, 就肯定有异 常publicvoidtestDivide assertEquals0.0,d.divide;/因divide函数中,当 d=0时,返回,所以这里 测试应当胜利,虽然期望得到“被除数不能为0!”的情形可编辑资料 - - - 欢迎下载精品名师归纳总结publicvoidtestDivide1 assertEquals0.5,c .divide;publicvoidtestEmpty tryc .divide;fail should have thrown an excep
12、tion ;catchRuntimeException ExassertTrue true;/assertTruetrue;截图:(1) 、测试testAdd1时,由于 b=newComputer101,5;assertEquals106.0,b.add;输入值范畴超出定义范畴,测试反常 ;(2) 、测试testMinus时,assertEquals-89,a.minus;预期值和实际值不相同,测试反常。(3) 、测试testMultiply时,断言不为空,抛出反常可编辑资料 - - - 欢迎下载精品名师归纳总结Junit集成测试:在Junit中, Test Case总是对全部方法进行测试,而
13、 Test Suite中可对其中的一部分方法测试,而且一个测试类中仍可以包含其他测试类。在TestCase 类中声明一个 publicstaticTestsuite方法即可完成多个测试类的集成。例如,在上例 ComputerTest类中,添加:publicstaticTest SuitTestSuite suite=new TestSuite;suite.addTestnew ComputerTesttestAdd; suite.addTestnew ComputerTesttestMultiply1;returnsuite;publicclassComputerTest1extendsTes
14、tCasepublicComputerTest1String nameSupername;publicstaticTest SuitTestSuite suite=new TestSuite;SuiteComputerTest.class;假设在另一个 ComputerTest1类中,要测试 ComputerTest中的全部测试方法,就应:returnsuite;可编辑资料 - - - 欢迎下载精品名师归纳总结四、测试用例设计体会:在这次软件测试过程中,我扮演了用户、程序员、测试员三钟角色,为了充 分表达黑盒、白盒以及 Junit动态测试的特点, 我特意设计了一个 0,100之间的整数简洁加减
15、乘除运算。对于黑盒测试, 在设计测试用例时完全没有考虑程序内部的规律结构和内部特性,只纯粹的依据功能和要求来设计测试用例进行测试。测试时使用了多种测试方法,包括边界值测试边界值分析、健壮性测试、特别值测试,等价类测试弱一般、强一般、弱健壮、强健壮等价类测试 ,基于决策表的测试等。虽然黑盒测试很简洁生成测试用例,但实际上只有一小部分可能的输入被测试到, 某些代码得不到测试, 不能直接对隐藏了很多问题的特定程序段进行测试,不易进行充分性测试。比方:在上例中,假设输入的数据是2,0 ,就输出的是 0.0, 很明显这个结果是不正确的。对于白盒测试, 在设计测试用例时第一对程序进行分析, 从程序的内部结
16、构动身设计测试用例, 涉及到程序的掌握方法、 源语句、编码细节、数据库设计等。设计测试用例时应用了白盒测试中的多种测试方法,其中包括: 测试掩盖语句掩盖、分支掩盖、分支条件掩盖等 、基路径测试等方法。白盒测试中,对代码的测试比较透彻,但不简洁生成测试用例,而且测试工作量很大,。由于白盒测试是基于代码的基础上, 所以对变量的定义、 数据的分析、 精度的度量都有严格的要求。如:上例中要求输入的值是 0,100之间的 int型,而输出的结果却要求的是 double型。对于Junit,编写了另一段代码来测试要执行的代码, 代码中的一个测试类可编辑资料 - - - 欢迎下载精品名师归纳总结TestCase包含了很多测试方法 testXXXX,每个测试方法中又有很多测试断言 assertXXXX,在方法中测试预期值是否和实际值一样。总之,在这次测试设计让我对软件测试有了一个深化明白,对于测试方法、测试过程,都有了较好的熟悉,学会了如何进行黑盒测试、白盒测试、以及一些测试工具如Junit。当然,对于以后企业上的软件测试, 仍有待很大的提高。可编辑资料 - - - 欢迎下载