6第7章-测试详解优秀PPT.ppt
《6第7章-测试详解优秀PPT.ppt》由会员分享,可在线阅读,更多相关《6第7章-测试详解优秀PPT.ppt(61页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第7 7章章 编码与测试编码与测试2编码编码编码就是把软件设计结果翻译成用某种程序设编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。计语言书写的程序。(1 1)源程序风格源程序风格 标识符的命名标识符的命名 支配注释支配注释 程序的视觉组织程序的视觉组织 构造语句时应当遵循的原则是,每个语句都应当简构造语句时应当遵循的原则是,每个语句都应当简洁而干脆,不能为了提高效率而使程序变得过分困洁而干脆,不能为了提高效率而使程序变得过分困难;也不要刻意追求技巧性,使程序编写得过于紧难;也不要刻意追求技巧性,使程序编写得过于紧凑。凑。例如:例如:AI=AIAT;AT=AIAT;AI=AIAT;
2、WORK=ATWORK=AT;AT=AIAT=AI;AI=WORKAI=WORK;(2 2)语句构造)语句构造)语句构造)语句构造 对全部的输入数据都要进行检验,识别错误的输入,以对全部的输入数据都要进行检验,识别错误的输入,以保证每个数据的有效性;保证每个数据的有效性;(3 3)输入输出)输入输出)输入输出)输入输出为什么要对软件进行测试(生命损失的事故)为什么要对软件进行测试(生命损失的事故)l2005年年初,巴拿马国家癌症探讨中心,自年年初,巴拿马国家癌症探讨中心,自2001年年3月起月起,有有27个病人接受了超量伽马射线的照射。在之后的个病人接受了超量伽马射线的照射。在之后的个月里,有
3、个病人相继去世,而其中有人的死因个月里,有个病人相继去世,而其中有人的死因与接受了超量伽马射线的照射有干脆的关系;另外与接受了超量伽马射线的照射有干脆的关系;另外人因受到伽马射线的照射而引发了严峻的并发症。人因受到伽马射线的照射而引发了严峻的并发症。l这台放射仪器是由软件来限制的;经探讨,这起医疗事这台放射仪器是由软件来限制的;经探讨,这起医疗事故是由限制软件的缺陷引起的。放射量的计算有故是由限制软件的缺陷引起的。放射量的计算有的误差。的误差。l2004年,媒体报道过北美银行由于一个新安装的软件的缺年,媒体报道过北美银行由于一个新安装的软件的缺陷,使得数以万计的客户受到影响,该缺陷的修复花费了
4、陷,使得数以万计的客户受到影响,该缺陷的修复花费了整整两个星期的时间,造成数亿元损失;整整两个星期的时间,造成数亿元损失;l2003年年10月,美国的一个主要零售企业被政府重罚,缘由月,美国的一个主要零售企业被政府重罚,缘由是其网站软件的缺陷使得客户相互间可以查看他人在该网是其网站软件的缺陷使得客户相互间可以查看他人在该网站的订单;站的订单;l2003年年4月,美国一个特地为学生供应贷款的公司由于软月,美国一个特地为学生供应贷款的公司由于软件出错,错误计算件出错,错误计算80万名学生贷款利率,导致了万名学生贷款利率,导致了800万美万美元的利率损失;元的利率损失;为什么要对软件进行测试(经济损
5、失的事故)为什么要对软件进行测试(经济损失的事故)E.W.Dijkstra 指出:“程序测试能证明错误的存在,但不能证明错误不存在.”测试的目的是发觉程序中的错误,是为了证明程序有错,而不是证明程序无错.测试的测试的“成功成功”与与“失败失败”软件测试的目标软件测试的目标软件测试的目标软件测试的目标难以说清的软件缺陷难以说清的软件缺陷古谚:古谚:“一片树叶飘落在森林中没有人听见,一片树叶飘落在森林中没有人听见,谁能说它发出了声音?谁能说它发出了声音?”由于不能报告没有望见的问题,因此,由于不能报告没有望见的问题,因此,没有望见就不能说存在软件缺陷没有望见就不能说存在软件缺陷假如软件中的问题没有
6、人发觉,那么它算不算软假如软件中的问题没有人发觉,那么它算不算软件缺陷?件缺陷?”只有看到了,才能断言软件缺陷,尚未只有看到了,才能断言软件缺陷,尚未发觉的软件缺陷只能说是未知软件缺陷。发觉的软件缺陷只能说是未知软件缺陷。眼见为实11软件测试的问题软件测试的问题测试什么?测试什么?谁执行测试?谁执行测试?怎样达到测试目的?怎样达到测试目的?什么时候测试?什么时候测试?怎样测试?怎样测试?测试应进行到什么程度?测试应进行到什么程度?测试什么测试什么功能和性能是否存在错误、偏差和缺少功能和性能是否存在错误、偏差和缺少软件测试人员软件测试人员谁执行测试谁执行测试怎样达到测试目的怎样达到测试目的-软件
7、测试准则软件测试准则(1 1)全部测试都应当能追溯到用户需求。全部测试都应当能追溯到用户需求。软件中的问题根源可能在开发前期的各阶段,软件中的问题根源可能在开发前期的各阶段,解决、订正错误也必需追解决、订正错误也必需追 溯到前期工作。溯到前期工作。16 软件测试准则软件测试准则(2)(2)应当把应当把“尽早地和不断地进行软件测试尽早地和不断地进行软件测试”作作为软件开发者的座右铭。为软件开发者的座右铭。软件测试不等于程序测试。软件测试不等于程序测试。据美国一家公司统计,查出的软件错误中,属于据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占需求分析和软件设计的错误约占 64
8、%64%,属于,属于程序编写的错误仅占程序编写的错误仅占 36%36%。程序编写的很多。程序编写的很多错误是错误是“先天的先天的”。17测测试试与与开开发发前前期期工工作作的的关关系系需求分析需求分析概要设计概要设计具体设计具体设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试18软件测试准则软件测试准则(3)pareto原则:测试发觉的错误中的80%很可能是由程序中20%的模块造成的。(4)应当从“小规模”测试起先,并逐步进行“大规模”测试。19软件测试准则软件测试准则(5 5)测试用例应由输入数据和预期的输出结果两部分组成,)测试用例应由输入数据和预期的输出结
9、果两部分组成,并且输入要包括合理的输入和不合理的输入数据并且输入要包括合理的输入和不合理的输入数据(6 6)穷举测试是不行能的。)穷举测试是不行能的。所谓穷举测试就是把程序全部可能的执行路径都检查一遍所谓穷举测试就是把程序全部可能的执行路径都检查一遍的测试。的测试。设程序含5个分支,循环次数20,从A到B的可能路径 执行时间:设测试一次需2ms 穷举测试需5亿年.=5+5+.+5+5=5+5+.+5+5 101020201 12 219191414A AB B穷举测试实例穷举测试实例穷举测试实例穷举测试实例软件测试准则软件测试准则(7 7)为了达到最佳的测试效果,应当由独立)为了达到最佳的测试
10、效果,应当由独立的第三方从事测试工作。的第三方从事测试工作。(8 8)程序修改后要回来测试。)程序修改后要回来测试。(9 9)应长期保留测试用例,直至系统废弃。)应长期保留测试用例,直至系统废弃。测试步骤测试步骤大型软件系统的测试过程基本上由下述几个步骤大型软件系统的测试过程基本上由下述几个步骤组成:组成:1.模块测试模块测试 -单元单元2.子系统测试子系统测试 -局部局部3.系统测试系统测试 -集成集成4.验收测试验收测试 -用户参与用户参与5.平行运行平行运行 -新旧共存新旧共存 23测试方法测试方法软件测试软件测试的策略和的策略和方法方法静态测试方法静态测试方法动态测试方法动态测试方法
11、人工测试方法人工测试方法计算机帮助静计算机帮助静态分析方法态分析方法白盒测试方法白盒测试方法黑盒测试方法黑盒测试方法24静态测试:静态测试:基本特征是在对软件进行分析、检查和批基本特征是在对软件进行分析、检查和批阅,不实际运行被测试的软件。阅,不实际运行被测试的软件。静态测试约可找出静态测试约可找出303070%70%的逻辑设计错的逻辑设计错误误.通过运行软件来检验软件的动态行为和运行结果的通过运行软件来检验软件的动态行为和运行结果的正确性。正确性。动态测试的两个基本要素:动态测试的两个基本要素:被测试程序被测试程序测试数据(测试用例)测试数据(测试用例)测试用例ID目的输入预期输出日期 版本
12、 执行人动态测试动态测试动态测试动态测试26n白盒测试:假如知道产品的内部工作过程,可白盒测试:假如知道产品的内部工作过程,可以通过测试来检验产品内部动作是否依据规格以通过测试来检验产品内部动作是否依据规格说明书的规定正常进行说明书的规定正常进行n黑盒测试:假如已经知道了产品应当具有的功黑盒测试:假如已经知道了产品应当具有的功能,可以通过测试来检验是否每个功能都能正能,可以通过测试来检验是否每个功能都能正常运用常运用动态测试动态测试逻辑覆盖测试逻辑覆盖测试逻辑覆盖是对一系列测试过程的总称,它测逻辑覆盖是对一系列测试过程的总称,它测的是的是程序的逻辑路径程序的逻辑路径1:start input(
13、A,B,x)2:if(A1)3:and(B=0)4:then X=X/A5:end6:if(A=2)7:or(X1)8:then X=X+19:end例(A1)and(B=0)(A=2)or(X1)X=X/AX=X+1T TT TF FF Fabdce1.1.语句覆盖语句覆盖语句覆盖就是设计若干个测试用例,运行被语句覆盖就是设计若干个测试用例,运行被测程序,使得测程序,使得每一条语句至少执行一次每一条语句至少执行一次。语句覆盖的缺点语句覆盖的缺点语句覆盖是很弱的逻辑覆盖标准。语句覆盖是很弱的逻辑覆盖标准。判定覆盖就是设计若干个测试用例,在满判定覆盖就是设计若干个测试用例,在满判定覆盖就是设计若
14、干个测试用例,在满判定覆盖就是设计若干个测试用例,在满足语句覆盖的基础上,运行被测程序,使足语句覆盖的基础上,运行被测程序,使足语句覆盖的基础上,运行被测程序,使足语句覆盖的基础上,运行被测程序,使得程序中每个推断的取真分支和取假分支得程序中每个推断的取真分支和取假分支得程序中每个推断的取真分支和取假分支得程序中每个推断的取真分支和取假分支至少阅历测试一次。至少阅历测试一次。至少阅历测试一次。至少阅历测试一次。2.2.判定覆盖(分支覆盖)判定覆盖(分支覆盖)判定覆盖缺点判定覆盖缺点 没有对每一个条件进行检查,只关注结果,没关注条没有对每一个条件进行检查,只关注结果,没关注条没有对每一个条件进行
15、检查,只关注结果,没关注条没有对每一个条件进行检查,只关注结果,没关注条件本身,较弱。件本身,较弱。件本身,较弱。件本身,较弱。3.3.条件覆盖条件覆盖 条件覆盖就是设计若干个测试用例,在满足语句覆条件覆盖就是设计若干个测试用例,在满足语句覆条件覆盖就是设计若干个测试用例,在满足语句覆条件覆盖就是设计若干个测试用例,在满足语句覆盖的基础上,运行被测程序,使得程序中每个推断盖的基础上,运行被测程序,使得程序中每个推断盖的基础上,运行被测程序,使得程序中每个推断盖的基础上,运行被测程序,使得程序中每个推断的每个条件的可能取值至少执行一次。的每个条件的可能取值至少执行一次。的每个条件的可能取值至少执
16、行一次。的每个条件的可能取值至少执行一次。在图例中,事先可对全部条件的取值加以标记。在图例中,事先可对全部条件的取值加以标记。在图例中,事先可对全部条件的取值加以标记。在图例中,事先可对全部条件的取值加以标记。对于第一个推断:对于第一个推断:对于第一个推断:对于第一个推断:条件条件条件条件 A A1 1 取真,取假取真,取假取真,取假取真,取假 条件条件条件条件 B B0 0 取真,取假取真,取假取真,取假取真,取假 对于其次个推断:对于其次个推断:对于其次个推断:对于其次个推断:条件条件条件条件A A2 2 取真,取假取真,取假取真,取假取真,取假 条件条件条件条件X X1 1 取真,取假取
17、真,取假取真,取假取真,取假满足条件覆盖,却不确定满足判定覆盖。满足条件覆盖,却不确定满足判定覆盖。满足条件覆盖,却不确定满足判定覆盖。满足条件覆盖,却不确定满足判定覆盖。条件覆盖条件覆盖判定条件覆盖就是设计足够的测试用例,使得推断中判定条件覆盖就是设计足够的测试用例,使得推断中每个条件的全部可能取值至少执行一次,每个推断中的每个条件的全部可能取值至少执行一次,每个推断中的每个分支至少执行一次。每个分支至少执行一次。4 4、判定、判定/条件覆盖条件覆盖5 5、条件组合覆盖、条件组合覆盖条件组合覆盖就是设计足够的测试用例,运条件组合覆盖就是设计足够的测试用例,运条件组合覆盖就是设计足够的测试用例
18、,运条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个推断的全部可能的条行被测程序,使得每个推断的全部可能的条行被测程序,使得每个推断的全部可能的条行被测程序,使得每个推断的全部可能的条件取值组合至少执行一次。件取值组合至少执行一次。件取值组合至少执行一次。件取值组合至少执行一次。记记记记 A A1,B1,B0 0 作作作作 A A1,B0 1,B0 作作作作 A1,B A1,B0 0 作作作作 A1,B0 A1,B0 作作作作 A A2,X2,X1 1 作作作作 A A2,X1 2,X1 作作作作 A2,X A2,X1 1 作作作作 A2,X1 A2,X1 作作作作 是前述几种覆盖标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 详解 优秀 PPT
限制150内