软件工程第七章(3-3) 软件测试,方海光 首都师范大学教育技术系 2006年10月,2,Contents,7.4 测试用例设计(7.4.3),软件危机 (1.2),7.5 调试技术和策略,7.6 软件测试工具,3,例:程序Triangle读入三个整数值,这三个整数代表同一个三角形三条边的长度,程序
软件工程第七章软件测试3-3Tag内容描述:
1、c,Triangle,a,b,c,三角形的类型?,5,start,ab+c?,ba+c?,ca+b?,a=b?,b=c?,印出 “不是三角形”,印出 “等边三角形”,印出 “等腰三角形”,印出 “不等边三角形”,a=c?,b=c?,F,T,F,F,T,T,T,T,F,F,F,F,T,T,stop,程序流程图,程序图,6,黑盒测试(等价划分),7,黑盒测试(等价划分),8,黑盒测试(等价划分),9,黑盒测试(边界值分析),10,黑盒测试(错误推测),11,调试(Debug),软件调试是在进行了成功的测试之后才开始的工作。
它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。
调试活动由两部分组成:确定程序中可疑错误的确切性质和位置。
对程序(设计,编码)进行修改,排除这个错误。
,12,调试工作是一个具有很强技巧性的工作。
软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系。
如果要找出真正的原。
2、测试所花费的时间往往是其它软件工程活动时间之和的三到五倍,3,4,一、软件测试的目的,基于不同的立场,存在着两种完全不同的测试目的。
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
,4,5,Myers软件测试目的,(1) 测试是程序的执行过程,目的在于发现错误; (2) 一个好的测试用例在于能发现至今未发现的错误; (3) 一个成功的测试是发现了至今未发现的错误的测试。
,5,6,换言之,测试的目的是想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
如果我们成功地实施了测试,我们就能够发现软件中的错误。
测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。
实施测试收集到的测试结果数据为可靠性分析提供了依据。
测试不能表明软件中不存在错误,它只能说明软件中存在错误而没有发现。
,6,7,二、软件测试的原则,1. 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
2. 测试用例应由测试输入。
3、上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受? 能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?,6,用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。
但这是不可能的。
,7,假设一个程序P有输入量X和Y及输出量Z。
在字长为32位的计算机上运行。
若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的测试数据组:232232264 如果测试一组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。
,8,白盒测试,此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
因此白盒测试又称为结构测试或逻辑驱动测试。
,9,软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定。
4、 那么,为什么要花这么多代价进行测试? 其目的何在? 它是“说明程序能正确地执行它应有的功能”,还是“表明程序没有错误”。
如果是这样一个目的,就要朝着“证明程序正确”这个目标靠拢,无意识地选择一些不易暴露错误的例子。
因此G.J.Myers对软件测试的目的提出了以下观点: ,5,(1) 软件测试是为了发现错误而执行程序的过程。
(2) 好的测试用例能够发现至今尚未发现的错误。
(3) 成功的测试是发现至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些用例执行程序,找出软件中潜在的各种错误和缺陷。
,6,软件测试的目的,基于不同的立场,存在着两种完全不同的测试目的。
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
,7,换言之,测试的目的是想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
如果我们成功地。
5、c,Triangle,a,b,c,三角形的类型?,5,start,ab+c?,ba+c?,ca+b?,a=b?,b=c?,印出 “不是三角形”,印出 “等边三角形”,印出 “等腰三角形”,印出 “不等边三角形”,a=c?,b=c?,F,T,F,F,T,T,T,T,F,F,F,F,T,T,stop,程序流程图,程序图,6,黑盒测试(等价划分),7,黑盒测试(等价划分),8,黑盒测试(等价划分),9,黑盒测试(边界值分析),10,黑盒测试(错误推测),11,调试(Debug),软件调试是在进行了成功的测试之后才开始的工作。
它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。
调试活动由两部分组成:确定程序中可疑错误的确切性质和位置。
对程序(设计,编码)进行修改,排除这个错误。
,12,调试工作是一个具有很强技巧性的工作。
软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系。
如果要找出真正的原。
6、start,ab+c?,ba+c?,ca+b?,a=b?,b=c?,印出 “不是三角形”,印出 “等边三角形”,印出 “等腰三角形”,印出 “不等边三角形”,a=c?,b=c?,F,T,F,F,T,T,T,T,F,F,F,F,T,T,stop,程序流程图,程序图,6,黑盒测试(等价划分),7,黑盒测试(等价划分),8,黑盒测试(等价划分),9,黑盒测试(边界值分析),10,黑盒测试(错误推测),11,调试(Debug),软件调试是在进行了成功的测试之后才开始的工作。
它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。
调试活动由两部分组成:确定程序中可疑错误的确切性质和位置。
对程序(设计,编码)进行修改,排除这个错误。
,12,调试工作是一个具有很强技巧性的工作。
软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系。
如果要找出真正的原因,排除潜在的错误,不是一件易事。
可以说,调试是通过现象,。