还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验
一、设计测试用例目标
1、掌握如何编写测试用例
2、掌握如何填写测试报告实验内容分析以下程序,掌握在白盒测试中的测试用例的设计方法,包括语句覆盖,分支覆盖,条件覆盖和路径覆盖阅读下面的一段程序voidTest1intXintYintZ1{2intk=0j=0;3ifX3Z104{5k=X*Y-1;6j=sqrtk;7}8ifX==4||Y59j=X*Y+10;10j=j%3;11}//Test1根据所给定的程序,该程序的可能路径如下路径11→2→3→5→6→8→9→10→11路径21→2→3→8→10→11路径31→2→3→8→9→10→11路径41→2→3→5→6→8→10→11编程实现
(1)设计测试用例实现分支判定覆盖,使得每个判定中的真假值至少执行一次,并在判定路径中插入一条显示输出语句(printf/cout),输出路径标号输入格式输入(XYZ)输出格式输出(kj)k=j=路径ID例如输入(XYZ)255↙(回车)输出(kj)k=0j=0路径ID路径21→2→3→8→10→11
(2)设计测试用例实现路径覆盖,使得每个可能路径至少执行一次输入格式输入(XYZ)输出格式输出(kj)k=j=路径ID例如输入(XYZ)455↙(回车)输出(kj)k=19j=0路径ID路径11→2→3→5→6→8→9→10→11
(3)设计测试用例实现语句覆盖,并在每条语句后插入一条显示输出语句(printf/cout),输出语句标号输入格式输入(XYZ)输出格式输出(kj)k=j=路径ID例如输入(XYZ)455↙(回车)输出(kj)k=19j=0路径ID路径11→2→3→5→6→8→9→10→11
(4)设计测试用例实现条件覆盖,使得每个判定中的每个条件至少执行一次输入格式输入(XYZ)输出格式输出(kj)k=j=路径ID例如输入(XYZ)2515↙(回车)输出(kj)k=0j=0路径ID路径21→2→3→8→10→11实验设备装有c语言运行环境的计算机实验步骤步骤一根据实验要求,设计如下可执行程序#includestdio.h#include__th.hvoidTest1intXintYintZ{//1intn=0;intcout
[11]={00000000000};cout[n++]=1;intk=0j=0;//2cout[n++]=2;cout[n++]=3;ifX3Z10//3{//4//cout[n++]=4;k=X*Y-1;//5cout[n++]=5;j=sqrtk;//6cout[n++]=6;//cout[n++]=7;}//7cout[n++]=8;ifX==4||Y5{//8j=X*Y+10;//9cout[n++]=9;}j=j%3;//10cout[n++]=10;printf输出k=%d\tj=%d\nkj;printf路径ID;intm=0;whilecout[m]!=0{printf%d→cout[m++];}printf11\n;}//11void__in{intxyz;printf输入xyz;scanf%d%d%dxyz;Test1xyz;}步骤二编译驱动程序,运行通过;步骤三根据实验给出路径,设计测试用例;步骤四运行程序,检验测试用例;步骤五比较实际输出结果和预期输出结果,得出测试结论;步骤六根据上述实验及结果,给出测试用例文档说明实验结果1)对于
(1)分支覆盖,共设计两个测试用例如下分支覆盖测试用例1-1实际输出结果如图1-1图1-1说明Test1在分支1→2→3→8→10→11运行正确分支覆盖测试用例1-2实际输出结果如图1-2图1-2说明Test1在分支1→2→3→5→6→8→9→10→11运行正确2)对于
(2)路径覆盖,共设计四个测试用例如下 路径覆盖测试用例2-1实际输出结果如图2-1图2-1说明Test1在给定可能路径11→2→3→5→6→8→9→10→11上运行正确路径覆盖测试用例2-2实际输出结果如图2-2图2-2说明Test1在给定可能路径21→2→3→8→10→11上运行正确路径覆盖测试用例2-3实际输出结果如图2-3图2-3说明Test1在给定可能路径31→2→3→8→9→10→11上运行正确路径覆盖测试用例2-4实际输出结果如图2-4图2-4说明Test1在给定可能路径41→2→3→5→6→8→10→11上运行正确3)对于
(3)语句覆盖,设计测试用例如下语句覆盖测试用例3-1实际输出结果如图3-1图3-1说明Test1覆盖全部语句运行正确4)对于
(4)条件覆盖,共设计三个测试用例如下条件覆盖测试用例4-1实际输出结果如图3-1图4-1说明Test1在条件X〈=
3、Y〈=
4、Z〈10上运行正确条件覆盖测试用例4-2实际输出结果如图4-2图4-2说明Test1在条件X〉
3、X!=
4、Y〉
5、Z〈10上运行正确条件覆盖测试用例4-3实际输出结果如图4-3图4-3说明Test1在条件X==
4、Y〈=
5、Z〉=10上运行正确实验总结 根据以上测试用例以及实验结果,可以得出如下结论 1)实现了语句覆盖,不能覆盖全部分支如果覆盖了所有分支,所有语句就覆盖了 例如题目中,测试用例5,6,7可以覆盖全部代码行,但还有分支!(X3Z10)与(!(X==4||Y5))没有被覆盖,即实现了语句覆盖,不能覆盖全部分支;而测试用例覆盖了全部分支后,所有语句就覆盖了2)分支覆盖不能代表条件覆盖 例如题目中判断(X3Z10)只有两个分支,但条件组合有四个如果只要满足分支覆盖,可选择两个测试用例X=4,Z=5和X=4,Z=11至少有一个条件没有得到覆盖,即X=2时3)条件全部覆盖了,也不能覆盖全部分支 例如还以题目中判断(X3Z10),X=4,Z=11和X=2,Z=5覆盖了全部的4个条件X〉
3、X〈=
3、Z〈
10、Z〉=10,但结果只覆盖了判断(X3Z10)错误的一条分支,判断(X3Z10)正确分支却没有得到覆盖 综上所述实现了分支覆盖,也就实现了语句覆盖,但不能保证条件覆盖条件覆盖,一般情况下会强于分支覆盖,但条件覆盖也不能保证分支覆盖实验报告课程名称软件测试实验题目实验
一、设计测试用例实验地点6#503时间
2011.
09.29成绩班级学号00000000姓名xxxx。