,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件测试概述,-3,软件测试概述-3,1,复习,软件缺陷的定义,软件缺陷产生的原因,作业:查找一个软件缺陷的案例,复习软件缺陷的定义,2,内容提纲,软件测试的定义,软件测试的目的,软件测试的关键问题,内容提纲软件测试的定义,3,1.,软件测试的定义,软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。,定义,1,:软件测试是为了发现错误而执行程序的过程。,1979,年,Myers,定义,2,:使用人工或自动手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。,1983,年,IEEE(,Institute of Electrical and Electronics Engineers,),国际电子电气工程师协会,1.软件测试的定义软件测试就是在软件投入运行前,对软件需求分,4,常见的一些概念,保证程序和相应的规范说明一致。,发现软件中的缺陷。,确保软件不做不必要的事情。,确保系统合理地执行。,确保系统失败前可以让系统运行到何种程度,确保发布给用户的系统中有哪些风险。,ISO9000,定义:测试是一种基于机器的,对代码执行测试,确认测试的活动。,【ISO9000,是由,ISO,(国际标准化组织)和,IAF,(国际认可论坛)共同制定的一个质量管理体系标准,】,常见的一些概念,5,6,发现问题,记录问题,跟踪问题,再现问题,历史数据,经典定义:软件测试是为了发现错误而执行程序的过程,6发现问题记录问题跟踪问题再现问题历史数据经典定义:软件测试,6,2.,软件测试的目的,要证明程序中有故障存在,并且是最大可能的找出最多的错误。,力求设计出最能暴露出问题的测试用例。,测试不是为了证明程序是正确的,而是应从软件包含有缺陷和故障这个假定去进行测试活动。,2.软件测试的目的要证明程序中有故障存在,并且是最大可能的找,7,Myers,就软件测试的目的三个重要观点,:,测试,是为了证明程序有错,而不是证明程序无错误,;,一个好的,测试用例,是在于它能发现至今未发现的错误,;,一个成功的,测试,是发现了至今未发现的错误的,测试,;,Bill Hetzel,提出,:,软件测试的目的不仅仅是发现软件中的缺陷与错误,也是对软件质量进行度量和评估,以提高软件质量,.,好测试的核心原则是巧妙利用有限的时间得到最有效的测试覆盖。,Myers就软件测试的目的三个重要观点:,8,3.,软件测试的关键问题,测试由谁来执行?,测试什么?,什么时候进行测试?,怎样进行测试?,测试停止的依据是什么?,3.软件测试的关键问题测试由谁来执行?,9,1,)测试由谁来执行,开发方测试,也叫,“,验证测试,”,或,“,测试,”,,在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。,用户测试,在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。,第三方测试,介于软件开发和用户方之间的测试组织的测试,也称为独立测试。,1)测试由谁来执行开发方测试也叫“验证测试”或“测试,10,2,)测试什么,软件,是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中:,程序是按事先设计的功能和性能要求执行的指令序列;,数据是使程序能正常操纵信息的数据结构;,文档是与程序开发,维护和使用有关的图文材料。,测试,软件开发过程中所产生的,需求规格说明,、,概要设计规格说明、详细设计规格说明,以及,源程序,,甚至于,测试本身,都是软件测试的对象。,2)测试什么软件是计算机系统中与硬件相互依存的另一部分,它是,11,3,)什么时候进行测试,可以与开发并行进行;,可以在开发完成某个阶段任务之后;,开发结束后。,测试过程模型,需求,分析,说明书,详细,设计,说明书,源程序,代码,单元,测试,集成,测试,确认,测试,概要,设计,说明书,3)什么时候进行测试可以与开发并行进行;需求详细概要,12,4,)怎样进行测试,根据软件的功能规范说明和程序实现,利用各种测试方法,生成有效的测试用例,对软件进行测试。,黑盒测试方法,等价类划分法、边界值分析法、因果图法、决策表格法、场景法等,白盒测试方法,逻辑覆盖法,语句覆盖、判定覆盖、条件覆盖、判定,/,条件覆盖、组合条件覆盖、路径覆盖、修正判定条件覆盖,基本路径法,4)怎样进行测试根据软件的功能规范说明和程序实现,利用各种测,13,5,)测试停止的依据,第一类标准:测试超过了预定时间,则停止测试。,第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。,第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。,第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。,第五类标准:根据单位时间内查出故障的数量决定是否停止测试。,5)测试停止的依据第一类标准:测试超过了预定时间,则停止测试,14,案例分析,提出疑问,4,个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过,,4,个人的过桥速度分别为,1,分钟、,2,分钟、,5,分钟、,10,分钟,试问最少需要多长时间,4,人才可以全部通过小桥?,案例分析提出疑问4个人在晚上过一座小桥,过桥时必须要用到,15,参考答案,答案一,:10,分钟,把桥的一边砍断,四个人一起抓住断的一边荡到桥的另一边,然后一点点爬上去,不过此解限于桥的高度大于桥长。,答案二:,12,分钟,前面两个人过后,在对面拿手电照着桥面,另两个人通过,答案三:,2,分钟,为什么一次只能过两个人?桥只不过是窄,不是承受不了,所以,1,和,2,分别把,5,和,10,背在肩上,谁打电筒都成,咚咚咚,两分钟过去了,还要来回走干啥子?,参考答案答案一:10分钟,16,这,4,个人为什么要在晚上过这座桥,他们是在正常回家的路上还是野外探险迷路还是被人追杀?如果是被人追杀会不会有,2,人过去后独自逃走不回来接剩下的,2,人?,这四个人过桥的时间为什么差距这么大,最大最小时间差了,10,倍?进而可以提出疑问,这,4,个人到底是什么样的人?他们的年龄分别多大?他们是否有人是残疾人或是小孩?如果有小孩或残疾人的话,那么是不是残疾人和小孩不能同时过桥?(也就是说,5,和,10,不能同时过桥),既然最多只有,2,人可以同时过桥,那么桥的最大承重能力是多少?是不是两个最重的人也可以同时过桥?,手电筒是不是好的,手电筒里的电是不是用完了,或者手电筒的电还能用多久?或者过桥的过程中手电筒会不会掉到桥下去或摔坏?,当时的天气是什么样的?有没有刮风下雨、打雷或下暴雪,会不会有人在过桥过程中被风刮下桥去,或者被打雷声吓得掉下桥去。或者过桥时天气变坏使得他们过桥需要的时间增加了。,这4个人为什么要在晚上过这座桥,他们是在正常回家的路上还是野,17,当时的气温是多少度?如果温度低于,0,度的话,桥上是不是结冰了,过桥时会不会滑下去。,过桥的过程中对面是不是有救援人员来了,比如,1,、,2,过去后就碰到救援人员等在对岸,那么,1,也许可以拿救援人员的电筒过去接剩下的两个人,这样最少只要,14,分钟就可以过桥了。,过桥的过程中是否有山洪爆发或水突然涨高将桥淹没?,会不会在过桥过程中有野兽嚎叫等因素影响他们的过桥速度?,桥下面是什么?是水溪还是无水的沟谷还是很深的悬崖?人掉下去后能不能爬上来?,桥旁边有没有其他的捷径可以过去。,1,分钟的人是否可以背上,10,分钟的人过桥?如果可以的话需要多长时间?,有多长?手电筒能照多远?是否过去的人在桥的另外一头就可以用手电筒照亮桥让未过去的人过桥?,当时的气温是多少度?如果温度低于0度的话,桥上是不是结冰了,,18,在不同的情况下过桥所需要的最短时间是不同的,如果能在上面的基础上再发掘出2个以上的新问题的话,那么相信你已经具备了测试人员全面分析问题的素养了。,不过即使你不能发现新的问题,并且上面的那些问题你很多都没有想到,也没有任何关系,当学完后面第二篇方法篇的测试用例设计方法后再来重新分析这个问题,也许你会惊喜地发现你已经有能力发现很多新的问题了。,在不同的情况下过桥所需要的最短时间是不同的,19,