软件工程软件测试课件

PPT
  • 阅读 75 次
  • 下载 0 次
  • 页数 84 页
  • 大小 315.738 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件工程软件测试课件
可在后台配置第一页与第二页中间广告代码
软件工程软件测试课件
可在后台配置第二页与第三页中间广告代码
软件工程软件测试课件
可在后台配置第三页与第四页中间广告代码
软件工程软件测试课件
软件工程软件测试课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 84
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】软件工程软件测试课件.pptx,共(84)页,315.738 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45044.html

以下为本文档部分文字说明:

软件工程软件测试课件G.J.Myers提出软件测试及目的•软件测试是为了发现错误而执行程序的过程.•一个好的测试用例能够发现至今尚未发现的错误.•一个成功的测试是发现了至今尚未发现的错误的测试.软件测试的原则•测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。•程序员应避免检查

自己的程序。•应尽早地和不断地进行测试。•严格执行测试计划,避免测试的随意性。•应给出一组测试用例,且由输入数据和预期的输出数据两部分组成。•长期保留测试用例。测试过程测试结果分析可靠性分析排错软件配置测试配置测试工具改正的软件

测试过程•单元测试•集成测试•确认测试•系统测试测试过程单元测试单元测试单元测试集成测试确认测试系统测试被测模块被测模块被测模块已集成的软件已确认的软件可交付的软件……..•单元测试是集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实

现了规定的功能。•集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。•确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。•系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试

。测试过程需求分析设计编程单元测试集成测试确认测试需求分析说明书概要设计说明书详细设计说明书源程序代码单元测试集成测试确认测试单元测试的方法•模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。–驱动模块(dri

ver)–桩模块(stub)──存根模块单元测试环境测试结果驱动模块桩模块1被测模块测试用例桩模块3桩模块2举例:BACDE待测试模块被测模块B驱动模块(模拟模块A)桩模块(模拟模块E)测试用例测试结果举例:单元测试的内容错

误处理模块接口局部数据结构重要的执行路径边界条件模块单元测试主要对模块的五个基本特性进行评价集成测试•在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;•一个模块的功能是否会对另一个模块的功能产生不利的影响;•各个子功能组合起来,能否达到预期要求的父功能

;•全局数据结构是否有问题;•单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。两段铁轨要集成集成测试方法一次性集成方式增量式集成方式自顶向下自底向上1.自顶向下集成定义自顶向下集成(Top-downIntegration)按照系统层次结构图,以主程序模块为中心,自上而下按照深度优

先或者广度优先策略,对各个模块一边组装一边进行测试。•自顶向下集成的两种类型–广度优先–深度优先ABCDHGJEFIKLMNA、B、E、J、K、C、F、L、G、D、H、M、N、I深度优先:A、B、C、D、E、F、G、H、I、J、K、L、M、N广度优先:2

.自底向上集成定义自底向上集成(Bottom-upIntegration)从系统层次结构图的最底层模块开始进行组装和集成测试的方式。举例:ACBDFEEd1Cd3Fd4EBd2Dd5FACBDFE确认测试•确认测试又称

有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。•对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。•有效性测试是在模拟的环境(可能就是开发的环境)下

,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。•通过实施预定的测试计划和测试步骤,确定–软件的特性是否与需求相符;–所有的文档都是正确且便于使用;–同时,对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试选择测试人员构造测试用例实际运行测试软件计划

用户文档源程序文本开发文档支持环境确认测试软件配置审查管理机构裁决专家鉴定交用户运行维护确认测试系统测试•系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系

列的组装测试和确认测试。•系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。测试方法软件测试按阶段划分单元测试确认测试系统测试验收测试按测试技术灰盒测试白盒测试黑盒测试是否执行程序动态测试静态测试回归测试集成测

试黑盒测试法•定义:不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。•又称为功能测试或数据驱动测试。黑盒测试检测的错误黑盒测试方法是在程序接口上进行

测试,主要是为了发现以下错误:◦是否有不正确或遗漏了的功能?◦在接口上,输入能否正确地接受?能否输出正确的结果?◦是否有数据结构错误或外部信息(例如数据文件)访问错误?◦性能上是否能够满足要求?◦是否有初始化或终止性错误?黑盒测试•用黑盒测试时,必须在所有可能的输入条件和输出

条件中确定测试数据。是否对每个数据都进行穷举测试呢?•假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试:–可能采用的测试数据组:232×232=264–如果测试一组数据需要1毫秒,一年工作365×24小时

,完成所有测试需5亿年。白盒测试•此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。•通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒

法测试检查的错误–对程序模块的所有独立的执行路径至少测试一次;–对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;–在循环的边界和运行界限内执行循环体;–测试内部数据结构的有效性,等。白盒法存在的问

题循环20次白盒测试用例的设计•逻辑覆盖–语句覆盖–判定覆盖–条件覆盖–判定/条件覆盖–条件组合覆盖–路径覆盖•循环覆盖•基本路径测试(A>1)and(B=0)(A=2)or(X>1)X=X/AX=X+1

TTFFabdce路径1L1(ace)={(A>1)and(B=0)}and{(A=2)or(X/A>1)}={(A>1)and(B=0)and(A=2)}or{(A>1)and(B=0)and(X/A>1)}={(A=

2)and(B=0)}or{(A>1)and(B=0)and(X/A>1)}路径2L2(abd)=not{(A>1)and(B=0)}andnot{(A=2)or(X>1)}={not(A>1)ornot(B=

0)}and{not(A=2)andnot(X>1)}=not(A>1)andnot(A=2)andnot(X>1)ornot(B=0)andnot(A=2)andnot(X>1)路径3L3(abe)=not{(A>

1)and(B=0)}and{(A=2)or(X>1)}={not(A>1)ornot(B=0)}and{(A=2)or(X>1)}=not(A>1)and(A=2)ornot(A>1)an

d(X>1)ornot(B=0)and(A=2)ornot(B=0)and(X>1)路径4•L4(acd)•={(A>1)and(B=0)}and•not{(A=2)or(X/A>1)}•={(A>1)and(B=0)}and•{not(A=2)andnot(X

/A>1)}语句覆盖•语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。•在图例中,正好所有的可执行语句都在路径L1上,所以选择路径L1设计测试用例,就可以覆盖所有的可执行语句。(A>1)and

(B=0)(A=2)or(X>1)X=X/AX=X+1TTFFabdce语句覆盖测试用例•测试用例的设计格式如下【输入的(A,B,X),输出的(A,B,X)】•覆盖ace【L1】•(A=2)and(B=0)or•(A>1)and(B=0)and(

X/A>1)•为图例设计满足语句覆盖的测试用例是:【(2,0,4),(2,0,3)】判定覆盖•判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。•判定覆盖又称为分支覆盖。(A>1)and(B=0)(A=2)or(X

>1)X=X/AX=X+1TTFFabdce判定覆盖测试用例(1)•对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:•【(2,0,4),(2,0,3)】覆盖ace【L1】【(1,1,1),(1,1,1)】覆盖abd【

L2】•(A=2)and(B=0)or•(A>1)and(B=0)and(X/A>1)•not(A>1)andnot(A=2)andnot(X>1)•or•not(B=0)andnot(A=2)andn

ot(X>1)判定覆盖测试用例(2)•如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),(2,1,2)】覆盖abe【L3】【(3,0,3),(3,0,1)】覆盖acd【L4】•not(A>1)and(X>1)ornot(B=0)

and•(A=2)ornot(B=0)and(X>1)•(A>1)and(B=0)andnot(A=2)and•not(X/A>1)条件覆盖•条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。(A>1)and(B=0)X=

X/AX=X+1TTFFabdce(A=2)or(X>1)•在图例中,事先可对所有条件的取值加以标记。•对于第一个判定:–条件A>1取真为,取假为条件B=0取真为,取假为•对于第二个判定:–条件A=2

取真为,取假为条件X>1取真为,取假为T1T1T2T2T3T3T4T4条件覆盖测试用例覆盖分支条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(

2,1,2)】L3(b,e)或测试用例覆盖分支条件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)TTTT12344321TTTTTTTT1234TTTT1234TTTT123

4条件覆盖判定条件覆盖•判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个分支至少执行一次。•在实际应用中,使得设计的测试用例先满足条件覆盖,再满足判定覆

盖。判定/条件覆盖测试用例•测试用例覆盖分支条件取值•【(2,0,4),(2,0,3)】L1(c,e)•【(1,1,1),(1,1,1)】L2(b,d)•(A=2)and(B=0)or•(A>1)and(B=0)and(X/A>1)•not(A>1)andnot(

A=2)andnot(X>1)•or•not(B=0)andnot(A=2)andnot(X>1)TTTT1234TTTT1234andA>1TB=0TX=X/ATFFA=2TFX>1FX=X+1or条件组合覆盖•条件组合覆盖就是设计足够的测试用例

,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。记①A>1,B=0作②A>1,B≠0作③A<=1,B=0作④A<=1,B≠0作TT12TT12TT12TT12条件组合覆盖⑤A=2,X>1作⑥A=2,X<=1作⑦A≠2,X>1作⑧A≠2,X<=1作测试用例覆盖条件覆盖组合【(2,0

,4),(2,0,3)】(L1)①,⑤【(2,1,1),(2,1,2)】(L3)②,⑥【(1,0,3),(1,0,4)】(L3)③,TT34TT34TT34TT34TTTT1234TTTT1234TTTT1234TTTT1234路径覆盖路径测试就是设计足够的测试用例,

覆盖程序中所有可能的路径。测试用例通过路径覆盖条件【(2,0,4),(2,0,3)】ace(L1)【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3)【(3,0,3),(3,0,1)】acd(L4)TTTT1234T

TTT1234TTTT1234TTTT3412基本路径测试基本路径测试基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路

径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。1.程序的控制流图•结点,表示一个或多个无分支的PDL语句或源程序语句。•箭头为边,表示控制流的方向。顺序结构IF选择结构WHILE重

复结构UNTIL重复结构CASE多分支结构•在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。•边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。•如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,...)连接的复合条件表达式,则需改为一

系列只有单个条件的嵌套的判断。12,364,5789101112368754101112,364,57891011定点区域边IfaORbthenprocedurex;elseprocedurey;abxyx判定节点判定节点复合逻辑表达式(一)IfaANDbthenprocedurex;elsep

rocedurey;abyxy复合逻辑表达式(二)2.程序环路复杂性•程序的环路复杂性给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。•从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。•E为边的

条数,或控制转移次数,P为控制路径个数,N表示结点个数.•环路复杂性V(G)•V(G)=E-N+2•V(G)=P+1(判定结点的个数)•V(G)=区域数程序环路复杂性(续)12,364,57891011例如,在图示的控制流图中,一组独立的路径是path1:1-11path2:1-2-3-4-5

-10-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11路径path1,path2,path3,path4组成了控制流图的一个基本路径集。3.导出测试用例•导出测试用例,确保基本路径集中的每一条路径的执行。•根据判断结点给出的

条件,选择适当的数据以保证某一条路径可以被测试到—用逻辑覆盖方法。•每个测试用例执行之后,与预期结果进行比较。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至少被执行了一次。•必须注意,一些独立的路径(如例中的路径1),

往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。(A>1)and(B=0)(A=2)or(X>1)X=X/AX=X+1TTFFabdce黑盒测试用例的设计–等价类划

分–边界值分析–错误推测法–因果图黑盒测试用例的设计•等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。•使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。划分等价类•等价类是指某个输

入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。•等价类的划分有两种不同的情况:①有效等价类:对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。②无效等价类:对于程序的规格说明来说,是不合理的,无意义的输入数

据构成的集合。等价类划分的原则•(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。•(2)如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。•(3)如果输入条件是一个布尔量,则可以确定一个有

效等价类和一个无效等价类。•(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。则可以确定一个有效等价类和一个无效等价类。•(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。边界值分析•大量的错误是发生在输入或输

出范围的边界上,而不是在输入范围的内部。•这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。•使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类

中的典型值或任意值做为测试数据。实例•在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。标识符的最大有效字符数为80个。”并且规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至少必须有一个。”错误推测•人们也可以靠经验和直觉推测程序中

可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。•错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。软件测试工具•测试设计工具•静态分析工具•单元测试工具•功能测试工具•性能测试工具

•测试过程管理工具测试设计工具•更完整的名称应该是测试用例设计工具,是一种帮助设计测试用例的软件工具。•基于程序代码的测试用例设计工具•基于需求说明的测试用例设计工具静态分析工具•进行静态分析时,不需要运行所测试的程序,而是通过检

查程序代码,对程序的数据流和控制流信息进行分析,找出系统的缺陷,得出测试报告。•静态分析工具一般提供以下两个功能:分析软件的复杂性、检查代码的规范性。单元测试工具•典型的单元测试工具有以下几类:•动态错误检测工具•性能分析工具•覆盖率统计工具•目

前被普遍使用的单元测试工具中有Compuware公司的NuMegaDevPartnerStudio,Rational公司的RationalSuiteEnterprise。功能测试工具•功能测试自动化工具理论上可以

应用在各个测试阶段,但大多数情况下是在确认测试阶段中使用。功能测试自动化工具的测试对象是那些拥有图形用户界面的应用程序。•一个成熟的功能测试自动化工具要包括以下几个基本功能:录制和回放、检验、可编程。•现在发展的已经较为成熟

,象MercuryInteractive公司的WinRunner,Rational公司的Robot,都是被广泛使用的功能测试自动化工具。性能测试工具•性能测试用来衡量系统的响应时间、事务处理速度和其它时间敏感的需求,并能测试出与性能相关的工作负载和硬件配置条件。•对系统经常会进行的性能测试

包括:系统能承受多少用户的并发操作;系统在网络较为拥挤的情况下能否继续工作;系统在内存、处理器等资源紧张的情况下是会否发生错误,等等。测试过程管理工具•管理整个测试过程,保存在测试不同阶段产生的文档、数据,协调技术人员之间的工作

。•测试过程管理工具一般都会包括以下这些功能:管理软件需求、管理测试计划、管理测试用例、缺陷跟踪、测试过程中各类数据的统计和汇总。•市面上商用的测试管理工具有很多,基本上都是基于Web的系统,这样更利于跨地区团队之间

的协作。软件测试工具•企业级自动化测试工具WinRunner(功能)•工业标准级负载测试工具Loadrunner(行为和性能)•全球测试管理系统testdirector(基于web)•功能测试工具RationalRobot•单元测试工具xUnit系列(多种语言)•功能测试工具Si

lkTest•性能测试工具WAS•自动化白盒测试工具Jtest

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?