第11章-软件测试课件.ppt
《第11章-软件测试课件.ppt》由会员分享,可在线阅读,更多相关《第11章-软件测试课件.ppt(72页珍藏版)》请在三一办公上搜索。
1、内容摘要,软件测试基础白盒测试黑盒测试测试策略面向对象测试测试完成标准调试,内容摘要,软件测试基础白盒测试黑盒测试测试策略面向对象测试测试完成标准调试,软件测试基础,软件测试的目的软件测试的基本原则白盒测试和黑盒测试,有关软件测试的错误观点,“软件测试是为了证明程序是正确的,即测试能发现程序中所有的错误”。事实上这是不可能的。要通过测试发现程序中的所有错误,就要穷举所有可能的输入数据。例如:(1)对于一个输入三个16位字长的整型数据的程序,输入数据的所有组合情况有2*48,如果测试一个数据需1ms,则即使一年365天一天24小时不停地测试,也需要约1万年。(2)对一个具有多重选择和循环嵌套的程
2、序,不同的路径数目可能是天文数字。例如一个小程序的流程图,它包括了一个执行20次的循环,其循环体有五个分支。这个循环的不同执行路径数达5*20条,如果对每一条路径进行测试需要1毫秒,那么即使一年工作365 24小时,要想把所有路径测试完,大约需3170年。,“程序测试是证明程序正确地执行了预期的功能”。实际上,一个程序不仅要完成它所需完成的功能,而且不应完成它不该做的事。例:三条边相等的三角形是等边三角形。如不能把边长为0、0、0的三条边判断为等边三角形。,有关软件测试的错误观点,软件测试的目的,Glen Myers给出的软件测试目的:测试是一个为了发现错误而执行程序的过程一个好的测试用例是指
3、很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试 根据这个测试目的,我们应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。,软件测试的原则,Davis提出了一组指导软件测试的基本原则:1.所有的测试都应可追溯到客户需求2.应该在测试工作真正开始前的较长时间就进行测试计划3.Pareto原则:测试中发现的80%的错误可能来自于20%的程序代码4.测试应从“小规模”开始,逐步转向“大规模”5.穷举测试是不可能的6.为了达到最有效的测试,应由独立的第三方来承担测试,其他的测试原则:1.在设计测试用例时,应包括合
4、理的输入条件和不合理的输入条件2.严格执行测试计划,排除测试的随意性3.应当对每一个测试结果做全面检查4.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便5.检查程序是否做了应做的事,仅仅是成功的一半,而成功的另一半是检查程序是否做了不该做的事6.在规划测试时不要设想程序中不会查出错误,软件测试的原则,测试用例测试用例的设计是软件测试的关键所在设计尽可能少的测试用例来发现尽可能多的错误设计最有可能发现软件错误的测试用例,同时避免使用发现错误效果相同的测试用例测试用例的设计方法大体可分为两类:白盒测试和黑盒测试,也称白箱测试和黑箱测试,软件测试的原则,白盒测试(又称为结构测试)
5、把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次对所有逻辑判定的取值(“真”与“假”)都至少测试一次在上下边界及可操作范围内运行所有循环测试内部数据结构的有效性等,白盒测试与黑盒测试,黑盒测试(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能接口错误,如输入/输出参数
6、的个数、类型等数据结构错误或外部信息(如外部数据库)访问错误性能错误初始化和中止错误,白盒测试与黑盒测试,内容摘要,软件测试基础白盒测试黑盒测试测试策略面向对象测试测试完成标准调试,白盒测试,常用的白盒测试方法有:逻辑覆盖测试基本路径覆盖测试数据流测试循环测试,逻辑覆盖测试,语句覆盖 判定覆盖 条件覆盖,判定条件覆盖 条件组合覆盖 路径覆盖,逻辑覆盖主要考察使用测试数据运行被测程序时对程序逻辑的覆盖程度。通常希望选择最少的测试用例来满足所需的覆盖标准。主要的覆盖标准有:,逻辑表达式错误敏感的测试,逻辑覆盖测试依赖于程序中的逻辑条件,这些逻辑条件由逻辑表达式组成。对于一个含有n个逻辑变量,或n个
7、关系表达式的逻辑表达式,通常需要2n个测试用例来覆盖其所有可能的条件组合。当n较大时,我们可以选择对发现逻辑表达式错误比较敏感的组合条件进行测试,以较少的测试用例来发现逻辑表达式中的绝大多数错误。,基本路径测试,在实际问题中,一个不太复杂的程序,特别是包含循环的程序,其路径数可能非常大。因此测试常常难以做到覆盖程序中的所有路径,为此,我们希望把测试的程序路径数压缩到一定的范围内。基本路径测试是Tom McCabe提出的一种白盒测试技术,这种方法首先根据程序或设计图画出控制流图,并计算其区域数,然后确定一组独立的程序执行路径(称为基本路径),最后为每一条基本路径设计一个测试用例。,数据流测试,数
8、据流测试是根据程序中变量的定义(赋值)和引用位置来选择测试用例假定s为语句的标号(每个语句有唯一的标号),x为变量名。定义:DEF(s)=x|语句s中含有对x的定义USE(s)=x|语句s中含有对x的引用 当s为分支或循环语句时,DEF(s)=设变量x在语句s中被定义,如果存在一条从语句s到语句s 的路径,并且在这条路径上不存在对x的其它定义,则称变量x在s处定义在s处仍有效。,循环测试,循环分为4种不同类型:简单循环、嵌套循环、串接循环和非结构循环。,循环测试,(1)简单循环 按照下列规则设计测试用例:零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:检查多次循环 m次循环:检
9、查多次循环 最大次数循环 比最大次数多一次的循环 比最大次数少一次的循环,按照下列规则设计测试用例:先测试最内层循环:所有外层的循环变量置为最小值,最内层按简单循环测试;由里向外,测试上一层循环:测试时此层以外的所有外层循环的循环变量取最小值,此层以内的所有嵌套内层循环的循环变量取“典型”值,该层按简单循环测试;重复上一条规则,直到所有各层循环测试完毕;对全部各层循环同时取最小循环次数,同时取最大循环次数,(2)嵌套循环,循环测试,(3)串接循环如果串接的各个循环互相独立,则可以分别用简单循环的方法进行测试;但如果第一个循环的循环变量与第二个循环控制相关,则两个循环不独立,此时,把第一个循环看
10、作外循环,第二个循环看作内循环,然后用测试嵌套循环的办法来处理。(4)非结构循环这一类循环应该先将其结构化,然后再测试。,循环测试,内容摘要,软件测试基础白盒测试黑盒测试测试策略面向对象测试测试完成标准调试,黑盒测试,黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求规约的要求。主要的黑盒测试方法有:等价类划分边界值分析比较测试错误猜测因果图,等价类划分,由于不能穷举所有可能的输入数据来进行测试,所以只能选择少量有代表性的输入数据,来揭露尽可能多的程序错误等价类划分方法将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试用例,等价类划分方法把输入数据分为
11、有效输入数据和无效输入数据有效输入数据指符合规格说明要求的合理的输入数据,主要用来检验程序是否实现了规格说明中的功能无效输入数据指不符合规格说明要求的不合理或非法的输入数据,主要用来检验程序是否做了规格说明以外的事在确定输入数据等价类时,常常还要分析输出数据的等价类,以便根据输出数据等价类导出输入数据等价类。,等价类划分,等价类划分设计测试用例的步骤,确定等价类根据软件的规格说明,对每一个输入条件(通常是规格说明中的一句话或一个短语)确定若干个有效等价类和若干个无效等价类。可使用如下表格,确定等价类的规则:如果输入条件规定了取值范围,则可以确定一个有效等价类(输入值在此范围内)和两个无效等价类
12、(输入值小于最小值及大于最大值),等价类划分设计测试用例的步骤,设计测试用例在确定了等价类之后,建立等价类表,列出所有划分出的等价类。并为每个有效等价类和无效等价类编号。,等价类划分设计测试用例的步骤,边界值分析,边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,其揭露程序中错误的可能性就更大。,边界值分析方法选择测试用例的规则如下:1如果输入条件规定了值的范围,则选择刚刚达到这个范围的边界的值以及刚刚超出这个范围的边界的值作为测试输入数据。2如果输入条件规
13、定了值的个数,则分别选择最大个数、最小个数、比最大个数多1、比最小个数少1的数据作为测试输入数据。3对每个输出条件使用第1条。4对每个输出条件使用第2条。5如果程序的输入或输出是个有序集合,例如,顺序文件、表格,则应把注意力集中在有序集的第1个元素和最后一个元素上。6如果程序中定义的内部数据结构有预定义的边界,则应选择使得正好达到该数据结构边界以及刚好超出该数据结构边界的输入数据作为测试数据。7发挥你的智慧,找出其他可能的边界条件。,边界值分析,比较测试(back to back),在现实中,有些软件有很高的可靠性要求,特别是那些可能危及人的生命安全的软件系统,如航空航天控制软件、核电厂控制软
14、件等,其软件可靠性绝对重要。此时,需要冗余的硬件和软件来减少错误发生的可能性。通常,可由二支软件开发队伍,根据相同的需求规格说明分别开发二个软件版本,然后,用相同的测试用例对二个版本的软件分别进行测试,比较二个版本软件的测试结果,如果测试结果相同,则可认为二个版本的软件都是正确的,如果测试结果不同,则要分析各个版本,以发现错误的所在。这种测试称为比较测试或称为背靠背测试(backtoback testing)。大多数情况下,可用自动化工具来进行比较测试。,值得注意的是,比较测试并不能保证软件没有错误,如果规格说明本身有错,那么所有的版本都可能反映这种错误。另外,如果各个版本产生相同的,但都不正
15、确的结果,那么比较测试也无法发现这种错误。,比较测试(back to back),错误推测法,错误猜测是一种凭直觉和经验推测某些可能存在的错误,从而针对这些可能存在的错误设计测试用例的方法。这种方法没有机械的执行步骤,主要依靠直觉和经验。错误猜测法的基本思想是:列举出程序中所有可能的错误和容易发生错误的特殊情况,然后根据这些猜测设计测试用例。,内容摘要,软件测试基础白盒测试黑盒测试测试策略面向对象测试测试完成标准调试,测试策略,一种测试策略就是将测试分为单元测试、集成测试、确认测试和系统测试。单元测试是针对程序中的模块或构件,主要揭露编码阶段产生的错误。集成测试针对集成的软件系统,主要揭露设计
16、阶段产生的错误。确认测试是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误。对于基于计算机系统中的软件,还需将它集成到基于计算机系统中,并进行系统测试,以揭露不符合系统工程中对软件要求的错误。,V模型:描述软件开发各阶段与测试策略之间的对应关系。,测试策略,Tom Gilb指出实现一个成功的软件测试策略必须涉及的问题:在着手开始测试之前的较长时间,就要以量化的形式确定产品的需求。显式地陈述测试目标。了解软件的用户并为每一类用户建立剖面(profile)图建立一个强调“快速循环(rapid cycle)测试”的测试计划。构造“健壮”的软件,它被设计成可测试自身。使用有效的正式技
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 软件 测试 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3307890.html