软件工程系统测试.ppt

上传人:PIYPING 文档编号:13272098 上传时间:2021-12-21 格式:PPT 页数:85 大小:672KB
返回 下载 相关 举报
软件工程系统测试.ppt_第1页
第1页 / 共85页
软件工程系统测试.ppt_第2页
第2页 / 共85页
软件工程系统测试.ppt_第3页
第3页 / 共85页
软件工程系统测试.ppt_第4页
第4页 / 共85页
软件工程系统测试.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《软件工程系统测试.ppt》由会员分享,可在线阅读,更多相关《软件工程系统测试.ppt(85页珍藏版)》请在三一文库上搜索。

1、软件实现1软件测试软件测试基本概念软件测试基本概念软件测试技术软件测试技术实例实例2软件测试基本概念什么是软件测试?目标是什么?测试步骤测试阶段信息流3软件测试的概念4.软件测试的工作量一般占软件开发总工作量的40%以上,有的测试成本占到其它步骤总成本的35倍。1.软件测试是按照特定的规则,发现软件错误的过程;2.软件测试是对软件规格说明、设计和编码的最后复审;3.软件测试在软件生存周期中横跨两个阶段:模块和单元测试在编码阶段,综合测试在独立的测试阶段;4软件测试的目标n软件测试是为了发现错误而执行程序的过程; n测试是程序的执行过程,目的在于发现错误;n软件测试中需要数据,即为测试而精心设计

2、的测试用例,利用测试用例去运行程序,帮助发现程序错误;n一个好的测试用例在于能发现至今未发现的错误;n一个成功的测试是发现了至今未发现的错误的测试。n软件测试绝对不是要证明程序的正确性, 也证明不了程序的正确性.5软件测试与软件调试的区别内容软件测试软件调试目的从一个侧面证明程序员的失败;证明程序员的正确;方法从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;从不可知内部条件开始,除统计性调试外,结果是不可预见的;约束有计划并且要进行测试设计;不受时间约束;过程发现错误、改正错误、重新测试的过程;是一个推理的过程;方式执行是有规程的;执行要求程序员进行必要的推

3、理;测试人员由独立的测试组在不了解软件设计的条件下完成;由了解详细设计的程序员完成;工具大多数测试的执行和设计可由工具支持。程序员能用的工具主要是调试器。6软件测试的原则(1)3.进行回归测试,对程序的任何修改,使用以前测试用例,重新进行测试,有助于发现修改程序引起的新错误。1.设计测试用例,要给出测试的预期结果。一个测试用例,必须由两部分组成:对输入数据的描述及其这些输入数据所产生的程序预期结果的精确描述。2.设计非法输入用例。当有非法输入时,测试程序是否能够拒绝接受那些非法输入并给出提示信息。7软件测试的原则(2)4.集中测试容易出错的程序段。测试统计结果表明:一段程序中发现的错误越多,则

4、其中存在错误的概率也就越大。为了提高测试效率,在深入测试时,要集中测试那些容易出错的程序段。5.开发小组与测试小组应分离,二者在思想上、方法上是不一样的,前者是建设性的,后者是“破坏性”的。因此二者分离是成立测试小组的基本要求。8软件测试方法和技术软件测试人工测试(代码复审)机器测试(动态测试)代码会审走查和排练办公桌检查黑盒测试技术白盒测试技术9软件测试方法和技术1.人工测试 代码复审采用人工方式进行,目的在于检查程序的静态错误。2.机器测试(1)在设定的测试数据上执行被测程序的过程,也称为动态测试;(2)动态测试包括:测试用例、执行被测程序和分析执行结果并发现错误的过程。10软件测试步骤步

5、骤测试内容时间单元测试 将每一个模块作为一个单独的测试单元,保证每个模块作为一个单元能正确运行。编码阶段子系统测试 将经过单元测试的模块放在一起形成一个子系统来测试,以测试模块间的接口正确性作为主要任务。集中测试阶段系统测试 将经过测试的子系统装配成一个完整的系统来测试,检验系统是否确实能实现需求规格说明书中的功能,以及系统的动态特征是否符合预定要求。系统测试是指整个计算机系统(包括软硬件)的测试,可与系统的安装和验收相结合进行。验收测试 在用户的参与下,把软件系统作为单一的实体进行测试,使软件系统能满足用户的需要。测试内容与系统测试基本相同。验收阶段平行测试 新旧两个系统同时运行进行比较,避

6、免风险的同时给用户对新系统一段熟悉的时间。运行阶段11单元测试 在单元测试期间着重从下述5个方面对模块进行测试。1. 模块接口 主要检查下述几个方面:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。2. 局部数据结构3. 重要的执行通路124. 出错处理通路 当评价出错处理通路时,应该着重测试下述一些可能发生的错误:(1) 对错误的描述是难以理解的;(2) 记下的错误与实际遇到的错误不同;(3) 在对错误进行处理之前,错误条件已经引起系统干预;(4) 对错误的处理不正确;(5) 描述错误的信息不足以帮助确定造成错误的位置。5

7、. 边界条件13集成测试n不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。n由模块组装成程序时有两种方法: 1、非渐增式测试方法 2、渐增式测试方法: a.自顶向下 b.自底向上。14自顶向下集成n方法: 从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于(及最终附属于)主控制模块的那些模块组装到程序结构中去时,或者使用深度优先的策略,或者使用宽度优先的策略。15自顶向下集成把模块结合进软件结构的具体过程由下述4个步骤完成:第一步,对主控制模块进行测试,测试时用存根程序代替所有直接附属于主控制模块的模块;第二步,根据选定的结合策略(深度优

8、先或宽度优先),每次用一个实际模块代换一个存根程序(新结合进来的模块往往又需要新的存根程序);第三步,在结合进一个模块的同时进行测试;第四步,为了保证加入模块没有引进新的错误,可能需要进行回归测试(即,全部或部分地重复以前做过的测试)。16自顶向下结合17自底向上集成实现自底向上结合策略的步骤:第二步,写一个驱动程序(用于测试的控制程序),协调测试数据的输入和输出;第三步,对由模块组成的子功能族进行测试;第一步,把低层模块组合成实现某个特定的软件子功能的族;18 第四步,去掉驱动程序,沿软件结构自下向上移动,把子功能族组合起来形成更大的子功能族。 上述第二步到第四步实质上构成了一个循环。 自底

9、向上集成19自底向上结合20不同集成测试策略的比较 一般说来,一种方法的优点正好对应于另一种方法的缺点。 自顶向下测试方法的主要优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。 自顶向下测试方法的主要缺点:需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。 可以看出,自底向上测试方法的优缺点与上述自顶向下测试方法的优缺点刚好相反。21不同集成测试策略的比较混合策略:(1)改进的自顶向下测试方法。基本上使用自顶向下的测试方法,但是在早期使用自底向上的方法测试软件中的少数关键模

10、块。一般的自顶向下方法所具有的优点在这种方法中也都有,而且能在测试的早期发现关键模块中的错误;但是,它的缺点也比自顶向下方法多一条,即测试关键模块时需要驱动程序。(2) 混合法。对软件结构中较上层使用的自顶向下方法与对软件结构中较下层使用的自底向上方法相结合。这种方法兼有两种方法的优点和缺点,当被测试的软件中关键模块比较多时,这种混合法可能是最好的折衷方法。22 回归测试是指重新执行已经做过的测试的某个子集,以保证软件发生变化时没有带来非预期的副作用。回归测试23 任何成功的测试都会发现错误,而且错误必须被改正。每当改正软件错误的时候,软件配置的某些成分(程序、文档或数据)也被修改了。 回归测

11、试就是用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。回归测试24 回归测试可以通过重新执行全部测试用例的一个子集人工地进行,也可以使用自动化的捕获回放工具自动进行。 利用捕获回放工具,软件工程师能够捕获测试用例和实际运行结果,然后可以回放(即重新执行测试用例),并且比较软件变化前后所得到的运行结果。回归测试25回归测试集是指已执行过的测试用例的子集。回归测试集包括3类不同的测试用例:(1)检测软件全部功能的代表性测试用例;(2)专门针对可能受修改影响的软件功能的附加测试;(3)针对被修改过的软件成分的测试。26确认测试 需求分析阶段产生的软件需求规格说明书

12、,准确地描述了用户对软件的合理期望,因此是软件有效性的标准,也是进行确认测试的基础。n确认测试也称为验收测试,它的目标是验证软件的有效性。n验证指的是保证软件正确地实现了某个特定要求的一系列活动。确认指的是为了保证软件确实满足了用户需求而进行的一系列活动。软件有效性的一个简单定义是: 如果软件的功能和性能如同用户所合理期待的那样,软件就是有效的。27确认测试( Alpha测试与Beta测试) Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。 Alpha测试是在受控的环境中进行的。n Beta测试由软件的最终用户们在一个或多个客户场所进行。Beta测试是软件在开发

13、者不能控制的环境中的“真实”应用。28软件测试与开发各阶段关系29测试阶段信息流30软件测试技术其中最困难的问题是设计测试用的输入数据。设计测试方案是测试阶段的关键技术问题。 测试方案包括具体的测试目的(例如,预定要测试的具体功能),应该输入的测试数据和预期的结果。把测试数据和预期的输出结果称为测试用例。31软件测试技术两种常用的测试方法两种常用的测试方法n n白盒测试白盒测试:结构测试:结构测试n n黑盒测试:功能测试黑盒测试:功能测试 32软件测试技术n白盒测试把测试对象看做一个透明的盒子把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程

14、序所有逻辑路径进行测试。n通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。33软件测试技术n n黑盒测试黑盒测试是把测试对象测试对象看做一个黑盒子一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。n黑盒测试又叫做功能测试功能测试或数据驱动测试数据驱动测试。34软件测试技术n白盒测试对程序模块的所有的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;n黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查

15、程序是否都能产生正确的输出。35软件测试技术白盒方法穷尽测试实例:36n 包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。软件测试技术37软件测试技术黑盒方法穷尽测试实例:38n 在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试,可能采用的测试数据组: 232232264 如果测试一 组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。软件测试技术39软件测试技术n软件的穷尽测试是不现实的,因此测试无法证明正确性。n如何花最少的费用,得到最好的测试效果?-测试用例的设计。40软件

16、测试技术一、白盒测试称为结构测试,测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。二、白盒测试从程序的逻辑结构入手,按照一定的原则,来设计测试用例和测试数据,因此白盒测试法也称为逻辑覆盖法。41软件测试技术三.由白盒测试产生的测试实例应具有下列功能:1.保证在模块中的独立路径最少被检查一次;2.检查每个逻辑判断的真假两种情况;3.对每个循环变量的初值、中间值和终止进行检查;4.检查程序的内部结构是否有效。四.通过白盒测试发现的错误:1.程序中的逻辑错误和不正确的假设和条件;2.没预料到的意外路径;3.语法检查未发现的印

17、刷或书写错误。42一、逻辑覆盖逻辑覆盖逻辑覆盖: :逻辑覆盖法是以程序内部的逻辑结构为基础的设计测试用例的技术。从覆盖源程序语句和路径的详尽程度分析,有以下不同的覆盖标准:语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定判定- -条件覆盖条件覆盖条件组合覆盖条件组合覆盖路径覆盖路径覆盖43软件测试技术示例示例(A1) and (B=0)(A=2) or (X1)X = X/AX = X+1 T TT TF FF Fabdce路径:ace L1 abd L2abe L3 acd L444软件测试技术示例对于第一个判断:条件 A1 取真为T1,取假为条件 B0 取真为T2,取假为对于第二个判断

18、:条件 A2 取真为T3,取假为条件 X1 取真为T4,取假为1T2T3T4T45软件测试技术示例46软件测试技术示例47软件测试技术示例48软件测试技术示例49 语句覆盖v设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。v在图例中,正好所有的可执行语句都在路径 L1 上,所以选择路径 L1 设计测试用例: 【 (2, 0, 4) 】注:(2, 0, 4)即:A=2,B=0,X=4 下同。软件测试技术示例50软件测试技术示例 判定覆盖v设计若干个测试用例,运行被测程序,不仅每个语句至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次。v对于图例,如果选择路径 L3 和

19、 L4 ,就可得满足要求的测试用例: 【(2, 1, 1)】覆盖 【 L3 】 【(3, 0, 3)】覆盖 【 L4 】v如果选择路径 L1 和 L2 ,还可得另一组可用的测试用例。例图51 软件测试技术示例 条件覆盖v设计若干测试用例,运行被测程序,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。 测试用例 覆盖分支 条件取值 【(2, 0, 4)】 L1 【(1, 1, 1)】 L2v需要注意的是,条件覆盖不一定满足判定覆盖,如: 测试用例 覆盖分支 条件取值 【(2, 0, 1)】 L1 【(1, 1, 2)】 L3例图52软件测试技术示例 判定/条件覆盖v设

20、计足够的测试用例,使得判断表达式中的每个条件都取到各种可能的值,而且每个判断表达式也都取到各种可能结果。 测试用例 覆盖分支 条件取值 【(2, 0, 4)】 L1 【(1, 1, 1)】 L2例图53软件测试技术示例 条件组合覆盖v设计足够的测试用例,运行被测程序,使得所有可能的条件取值组合至少执行一次。v记 A1, B0 作 A1, B0 作 A1, B0 作 A1, B0 作 A2, X1 作 A2, X1 作 A2, X1 作 A2, X1 作第一个判断第二个判断例图54 软件测试技术示例 测试用例 覆盖分支 覆盖条件 覆盖组合 【(2, 0, 4)】 (L1) , 【(2, 1, 1

21、)】 (L3) , 【(1, 0, 3)】 (L3) , 【(1, 1, 1)】 (L2) , 例图55软件测试技术示例 路径覆盖v就是设计足够的测试用例,覆盖程序中所有可能的路径。 测试用例 通过路径 覆盖条件 【(2, 0, 4)】 L1 【(1, 1, 1)】 L2 【(1, 1, 2)】 L3 【(3, 0, 1)】 L4例图56二、控制结构测试n基本路径测试57n基本路径测试思想:效果或覆盖标准:步骤:控制结构测试通过计算程序的环形复杂度,并用该复杂度为指南定义执行路径的基本集合。从执行路径的基本集合导出的测试用例可以保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真

22、、假两种值。1、根据过程设计结果画出相应的流图;2、计算流图的环形复杂度;3、确定线性独立路径的基本集合;4、设计可强制执行基本集合中每条路径的测试用例58流图的画法n流图:抽象化的程序流图,突出表现控制流. 符号为流图的一个结点,表示一个或多个无分支语句。箭头为边,表示控制流的方向。 59流图的画法 在分支结构中,分支的汇聚处应有一个汇聚结点. 每一条边必须终止于一个结点60流图的画法如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单个条件只有单个条件的嵌套的判断的嵌套的判断。61计算环形复杂度n流图G的环形

23、复杂度:V(G)=流图区域数V(G)=边数-结点数+2V(G)=单条件判定数+1n环形(环路)复杂度方法,根据程序内单条件分支数或循环个数来度量程序的复杂度. McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。62确定线性独立路径的基本集合n独立的路径是: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 - 11n路径 path1,path2

24、,path3,path4组成了控制流图的一个基本路径集。63黑盒测试技术 黑盒测试着重测试软件功能。黑盒测试并不能取代白盒测试,它是与白盒测试互补的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。 黑盒测试力图发现下述类型的错误: 功能不正确或遗漏了功能; 界面错误; 数据结构错误或外部数据库访问错误; 性能错误; 初始化和终止错误。64黑盒测试技术黑盒测试等价类法边界值分析法65等价划分(等价类法)等价类法思想:划分等价类的经验等价类法步骤66划分等价类思想n 把所有可能的输入数据,包括有效的和无效的划分成若干个等价类,则可以合理地做如下假设:每类中的一个典型值在测试中的作用与其他值

25、的作用相同。因此可以从每个等价类中只取一组数据作为测试数据,这样选取的测试数据最有代表性也最容易发现问题。n比如:三角形类别识别程序:等边、等腰、任意,不合理的三角形等等n无效的等价类可以从多个角度考虑,如:只有两个输入边,输入不是实数,输入数据有负数等。67划分等价类启发式规则(1) 如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值或大于最大值);(2) 如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类;(3) 如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等

26、价类,此外还有一个无效的等价类(任一个不允许的输入值);68划分等价类启发式规则(4) 如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各种不同角度违反规则);(5) 如果规定了输入数据为整型,则可以划分出正整数、零和负整数等3个有效类;(6) 如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表。69划分等价类经验等价类划分启发式规则 输入条件:“.值可以是1到999” “.项数可以是1到999”无效等价类有效等价类无效等价类199970划分等价类经验输入数据(教师职称):在教师住房分配软件中规定对教授、副教授、讲师和助教分别计算分

27、数,做相应的处理。 四个有效等价类,一个无效等价类。 输入规定:”标识符是一字母打头的长度不超 过八位的串。” 则字母打头长度在18位的为一个有效等价类,非字母打头为一个无效等价类,长度大于八位或为空也是一个无效等价类。71划分等价类经验如果在已确定的等价类中各元素在软件中的处理方式不同,则应根据需要对等价类进一步进行划分。编译程序能发现的语法错误,无须测试。int sum (int n) int m=0; for(int i=1;i=n;i+) m=m+i; 72等价类法步骤划分等价类建立等价类表,为每一个等价类规定一个唯一编号;输入条件有效等价类无效等价类73等价类法步骤选择测试用例:n以

28、尽可能少的测试用例覆盖所有的有效等价类;n为每个无效等价类设计一个测试用例。74边界值分析法边界值分析法思想:程序总是在边界条件处失效,因此选取测试用例应该选边界值使用方法:与等价划分法联合使用75黑盒测试技术例题 某工厂公开招工,规定报名者的年龄应在16周岁至35周岁之间(到2005年3月30日止)。即出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。假定出生年月由6位数字字符表示,前4位代表年,后2位代表月。 (1)利用等价类法设计测试用例. (2)利用边界值分析法设计测试用例。76黑盒测试技术例题输入条件有效等价类无效等价类出生年月对应数值月份对应数值6位数字字符有非数

29、字字符少于6个数字符多于6个数字符在197003-198903之间在112之间 198903等于012等价类表如下 :77黑盒测试技术例题依据等价类法设计测试用例如下表: 测试数据期望结果覆盖等价类197311MAY,7219725输入有效 输入无效197622输入无效1983011输入无效195512输入无效输入无效输入无效输入无效19951019730078黑盒测试技术例题依据边界值分析法设计测试用例如下表: 测试数据期望结果5个数字字符7个数字字符有1个非法字符全是非法字符6个数字字符输入有效输入无效输入无效输入有效输入有效输入无效刚好35周岁刚好16周岁刚好35刚好16月份为1月月份为

30、12月月份刚好12出生年月对应数值应数值月份对测试数据输入条件19745198301119705AAUGUST19700319700319890319700219890419890119701219710019851379习题:根据下图按六种覆盖方法,设计测试用例80 1.语句覆盖:X=85,Y=85(路径A-E); X=95,Y=50 (路径B-C-E); X=75,Y=75 (路径B-D-E); 2. 判断覆盖: X=85,Y=85(判断1成立); X=95,Y=50 (判断1不成立,判断2成立); X=75,Y=75(判断1、判断2都不成立);习题五3题参考答案判断1判断2条件1条件2条

31、件3条件4条件5813. 3. 条件覆盖:条件覆盖: X=85,Y=85(X=85,Y=85(判断判断1 1两条件成立);两条件成立); X=95,Y=50 (X=95,Y=50 (判断判断2 2中条件中条件3 3、条件、条件4 4成立)成立); ; X=50,Y=90 ( X=50,Y=90 (判断判断2 2中条件中条件3 3、条件、条件5 5成立);成立); X=60,Y=60X=60,Y=60(判断判断1 1、判断、判断2 2各个条件都不成立);各个条件都不成立);824. 4. 判断判断/ /条件覆盖:条件覆盖: X=85,Y=85(X=85,Y=85(判断判断1 1为为Y Y 且两条

32、件成立)且两条件成立); ; X=95,Y=50 ( X=95,Y=50 (判断判断2 2为为Y Y 且条件且条件3 3、条件、条件4 4成立)成立); ; X=50,Y=95 ( X=50,Y=95 (判断判断2 2为为Y Y 且条件且条件3 3、条件、条件5 5成立)成立); ; X=60,Y=60 X=60,Y=60(判断判断1 1、判断、判断2 2为为N N 且各个条件都不成立)且各个条件都不成立); ;83 5. 条件组合覆盖:各种组合如下:(1)X80,Y 85; (2) X 80,Y 80;(3) X 80,Y 85;(4) X 80,Y 80; (5) XY 140, X90,Y 90; (6) XY 140, X90,Y 90; (7) XY 140, X90,Y 90; (8) XY 140, X90,Y 90; (9) XY 140, X90,Y 90;(不可执行)(10) XY 140, X90,Y 90; (11) XY 140, X90,Y 90; (12) XY 140, X90,Y 90;84 6. 路径覆盖:判断/条件覆盖已经覆盖了全部路径。85

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1