您好,欢迎访问三七文档
当前位置:首页 > 中学教育 > 高中教育 > 软件测试三角形问题(覆盖测试)
辽宁工程技术大学上机实验报告课程名称软件测试与评估实验题目基于覆盖测试技术院系软件学院专业软件工程班级软件13-9班姓名王朝晖学号1320010920实验日期2016.5.13实验目的1.了解软件覆盖测试的相关知识。2.能根据三角形案例分析问题。3.掌握软件覆盖测试的基本方法。4.针对案例,能够运用覆盖测试技术中的具体方法进行测试用例的设计。实验准备1.计算机一台,有c与c++程序设计学习与实验系统的软件。2.了解至少一门程序设计语言,并能熟练应用。能够编写并运行有关实验的相关代码。3.了解覆盖测试的基本方法。主要是判定覆盖。4.了解测试用例的方法,并进行适当的测试用例。实验进度本次共有1个练习,完成1个。实验内容1.根据三角形问题进行编程,分为等腰三角形,等边三角形,普通三角形以及不能构成三角形。2.对程序进行语句覆盖测试。3.对程序进行判定覆盖测试。绘制出程序流程图,分支覆盖要求测试每个判定的结果。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支和取假分支至少均经历一次。4.对程序进行分支条件测试5.对程序进行分支条件组合测试6.选用基于覆盖测试的方法对三角形问题设计测试用例。成绩2实验分析一.实验步骤1.打开c与c++程序系统平台,编写有关三角形问题的相关程序。2.对程序进行语句覆盖测试。3.对程序进行判定覆盖测试。4.对程序进行分支条件测试。5.对程序进行分支条件组合测试。6.进行用例设计。选择分支覆盖测试的方法进行测试。二.程序分析1.程序代码1)#includestdio.h2)main()3){4)intA,B,C;5)printf(请输入三角形的三条边:);6)scanf(%d%d%d,&A,&B,&C);7)if((A0&&B0&&C0)&&((A+B)C&&(A+C)B&&(B+C)A))8){9)if(A==B&&A==C)10)printf(该三角形是等边三角形!\n);11)else12)if((A==B&&B!=C)||(B==C&&B!=A)||(A==C&&A!=B))13)printf(该三角形是等腰三角形!\n);14)else15)printf(该三角形是普通三角形!\n);16)}17)else18){19)printf(ERROR!\n);20)returnmain();21)}22)}2.程序流程图根据代码绘制程序流程图,各边编号为a,b,c,d,e,f。如图1。图1程序流程图3.分析程序主要是根据三个整数a,b,c,构成一个三角形判定三角形的类型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。要求输入的三个整数都是正数,三边都是大于等于1,小于等于100,且a+bc,a+cb,b+ca,才能进行以后的判断。否则输出“ERROR!”,返回主程序。重新输入三个整数a,b,c。然后判断三角形的类型。如果a=b且开始a+bc&&b+ca&&a+cba=b&&b=ca=b||b=c||a=cYYNN等腰三角形等边三角形普通三角形YN结束ERRORaedcbf4a=c,输出“该三角形是等边三角形!”。如果a=b,b不等于c,或b=c,b不等于a,或a=c,a不等于b,输出“该三角形是等腰三角形!”。如果不是以上这两种情况,输出“该三角形是普通三角形!”。三.语句覆盖测试分析运行若干测试用例,使被测试的程序的每一条可执行语句至少执行一次。根据控制流图得出测试用例。如表1。表1语句覆盖测试用例测试用例abc执行路径预期结果1567acf普通三角形2556ad等腰三角形3555ace等边三角形4347bERROR四.判定测试覆盖分析执行足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都经历一次。1.条件条件11≤a≤100条件21≤b≤100条件31≤c≤100条件4ab+c条件5ba+c条件6ca+b2.分析如果输入值a、b、c不满足条件1、条件2和条件3,输出ERROR。如果输入值a、b、c满足条件1、条件2和条件3:(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为ERROR;(2)如果三条边相等,则程序输出为“等边三角形”;(3)如果恰好有两条边相等,则程序输出为等腰三角形;(4)如果三条边都不相等,则程序输出为普通三角形。3.根据以上分析及流程图得出测试用例,如表2。表2判定覆盖测试用例测试用例abca+bc&&b+ca&&a+cba=b&&b=ca=b||b=c||a=c预期结果1347假--ERROR2555真真真等边三角形3556真假-等腰三角形4567真真假普通三角形五.分支条件测试分析设计足够的测试用例,运行被测程序,使程序中的每个判定的每个条件的所有可能值至少执行一次,并且每个可能的判定结果也至少执行一次,即要求各个判定的所有可能的条件取值组合至少执行一次。根据流程图得出测试用例,如表3。表3分支条件测试用例测试用例abc覆盖条件a+bc&&b+ca&&a+cba=b&&b=ca=b||b=c||a=c预期结果1121T1,T2,-T3假--ERROR2211T1,-T2,T3假--ERROR3112-T1,T2,T3假--ERROR4555T1,T2,T3,T4,T5,T6真真真等边三角形5556T1,T2,T3,-T4,-T5真假-等腰三角形6567T1,T2,T3,T4,T5,-T6真真假普通三角形六.分支条件组合测试分析设计的测试用例,需要将原子条件的所有true-false组合至少执行一遍。6并且满足分支条件组合测试包括语句覆盖和分支覆盖。根据流程图得出测试用例,如表4。表4分支条件组合测试分析测试用例abc覆盖条件a+bc&&b+ca&&a+cba=b&&b=ca=b||b=c||a=c预期结果1121T1,T2,-T3假--ERROR2211T1,-T2,T3假--ERROR3112-T1,T2,T3假--ERROR4666T1,T2,T3,T4,T5,T6真真真等边三角形5556T1,T2,T3,-T4,-T5真假-等腰三角形6567T1,T2,T3,T4,T5,-T6真真假普通三角形七.测试用例截图使用判定覆盖进行用例测试,参见表2。1.测试用例1,如图1。图1测试用例12.测试用例2,如图2。图2测试用例23.测试用例3,如图3。图3测试用例34.测试用例4,如图4。图4测试用例48心得体会本次实验是关于覆盖测试方面的知识。这方面的内容很少,主要靠自己的理解。在做实验之前,我复习了关于覆盖测试相关的内容,在做实验的时候更加熟练。有清晰的思路,使实验更简单。在做语句覆盖的时候,觉得三角形问题没有语句覆盖,一直以为语句覆盖只能测试一次。如果测试一次,不管怎样都不能将所有的语句都覆盖到,通过进一步的更深入的查阅资料,才明白,可以进行多次测试使被测试的程序的每一条可执行语句至少执行一次。判定覆盖和分支条件覆盖是很容易弄混的知识点。刚开始学习这两种覆盖的时候,我就很难分清。在实验之前复习之后,有了很深的印象。判定覆盖要求测试每个判定的结果,是IF,CASE语句中的所有可能。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支和取假分支至少均经历一次。在本次的实验中,只要测试三个IF语句就行。分支条件测试是将IF,CASE这种语句的原子条件的所有真分支和取假分支至少均经历一次。一个条件包含多个原子条件。就是将分支语句分解。较判定覆盖较麻烦,但测试的更加细致,具体。分支条件组合测试和分支条件测试差不多。只是在分支条件测试的基础上,加入了判定测试。条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。不同的判断语句内的条件取值之间无需组合。对于但条件的判断语句,只需要满足自己的所有取值即可。在以后的学习中,我会更加仔细认真。在做实验之前,一定要做好复习,这次在实验之前准备的很充分,实验做的也很顺利。在做实验的时候发现不懂的不会的,不太清楚的,不能就这样过去了。要把模糊的知识点弄清楚,在做实验。这样越拖越多,越欠越多,对自己的学习是一种敷衍,对以后的发展造成了阻碍。及时进行总结归纳,将相似的问题放在一起。找出共性。找出不同的地方,方便记忆。避免弄混知识点。相信在以后的学习中,我能更好的学好每一科,为以后步入社会打下坚实的基础。
本文标题:软件测试三角形问题(覆盖测试)
链接地址:https://www.777doc.com/doc-1731162 .html