版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-动态测试技术动态测试技术软件测试方法和技术软件测试方法和技术由安博测试空间技术中心由安博测试空间技术中心http:/ hello_MSN: nature_联系电话:联系电话容提要内容提要 白盒测试白盒测试 黑盒测试黑盒测试 灰盒测试灰盒测试白盒测试白盒测试 白盒测试又称结构测试白盒测试又称结构测试, ,透明透明盒测试盒测试、逻辑驱动测试或基于代、逻辑驱动测试或基于代码的测试。码的测试。白盒测试白盒测试 白盒测试是一种测试用例设计方法白盒测试是一种测试用例设计方法 盒子指的是被测试的软件盒子指的是被测试的软件 白白盒盒指的是指的是盒子是可视的盒子是可视的, ,你清楚盒
2、子内你清楚盒子内部的东西以及里面是如何运作的部的东西以及里面是如何运作的 白盒测试示意图白盒测试示意图 白盒白盒测试的测试的测试测试用例用例保证一个模块中的所有独立路径至少保证一个模块中的所有独立路径至少 被使用被使用一次一次 ;对所有逻辑值均需测试对所有逻辑值均需测试 true 和和 false; 在上下边界及可操作范围内运行所有循环在上下边界及可操作范围内运行所有循环 ; 检查内部数据结构以确保其有效性。检查内部数据结构以确保其有效性。为什么要进行白盒测试为什么要进行白盒测试 逻辑错误和不正确假设与一条程序路径被逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。运行的可能性成反比。
3、我们经常相信某逻辑路径不可能被执行我们经常相信某逻辑路径不可能被执行, , 而事实上而事实上, ,它可能在正常的情况下被执行。它可能在正常的情况下被执行。 笔误是随机的。笔误是随机的。 白盒测试白盒测试的目的的目的白盒测试白盒测试通过检查软件内部通过检查软件内部的逻辑结构,对软件中的逻辑路的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,方设立检查点,检查程序的状态,以确定实际运行状态与预期状态以确定实际运行状态与预期状态是否一致。是否一致。白盒测试特点白盒测试特点 依据软件设计说明书进行测试;依据软件设计说明书进行测试; 对程序
4、内部细节的严密检验;对程序内部细节的严密检验; 针对特定条件设计测试用例;针对特定条件设计测试用例; 对软件的逻辑路径进行覆盖测试。对软件的逻辑路径进行覆盖测试。白盒测试的实施过程白盒测试的实施过程1.1.测试计划阶段:测试计划阶段:2.2.测试设计阶段:测试设计阶段:依据程序设计说明书,按照一定依据程序设计说明书,按照一定规范化的方法进行软件结构划分规范化的方法进行软件结构划分和设计测试用例。和设计测试用例。3.3.测试执行阶段:测试执行阶段:4.4.测试总结阶段:测试总结阶段:白盒测试的常用技术白盒测试的常用技术白盒测试技术一般可分为静态分析和动白盒测试技术一般可分为静态分析和动态分析两类
5、技术态分析两类技术静态分析是一种不通过执行程序而进行静态分析是一种不通过执行程序而进行测试的技术测试的技术。静态分析的关键功能是检查软静态分析的关键功能是检查软件的表示和描述是否一致件的表示和描述是否一致, ,没有冲突或者没有没有冲突或者没有歧义。歧义。主要有以下主要有以下 3 3 种不同的程序测试可能性种不同的程序测试可能性: : 检查程序内部的完整性和一致性检查程序内部的完整性和一致性 ; ; 考虑预定义规则考虑预定义规则 ; ; 把程序和其相应的规格或文档进行比较。把程序和其相应的规格或文档进行比较。 静态分析技术结构静态分析技术结构静态分析静态分析手工手工检视检视走读走读自动自动静态验
6、证静态验证语法分析器语法分析器符号执行器符号执行器动态分析技术动态分析技术 当软件系统在模拟的或真实的环境中执行之当软件系统在模拟的或真实的环境中执行之前、之中和之后前、之中和之后 , , 对软件系统行为的分析对软件系统行为的分析是动态分析的主要特点。是动态分析的主要特点。 动态分析包含了程序在受控的环境下使用特动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。个系统在检查状态下是正确还是不正确。 在动态分析技术中在动态分析技术中, ,最重要的技术是路径和最重要的技术是路径和分支测试。分支测试。
7、 路径测试路径测试与与分支测试分支测试 在路径测试中在路径测试中, ,使程序能够执行尽可能多的使程序能够执行尽可能多的逻辑路径。逻辑路径。 路径测试度量程序的最主要的质量特性是复路径测试度量程序的最主要的质量特性是复杂度。杂度。 分支测试需要程序中的每个分支至少被经过分支测试需要程序中的每个分支至少被经过一次。一次。 分支测试中出现的问题可能会导致今后分支测试中出现的问题可能会导致今后程序程序的缺陷。的缺陷。 动态分析工具动态分析工具动态分析类型动态分析类型 工具的功能工具的功能测试覆盖率分析测试覆盖率分析测试白盒测试技术对代码的检测范围测试白盒测试技术对代码的检测范围跟踪跟踪跟踪程序执行期间
8、的所有路径跟踪程序执行期间的所有路径, ,例如所有变量的值等例如所有变量的值等调整调整度量程序执行过程中使用的资源度量程序执行过程中使用的资源模拟模拟模拟系统的部分模拟系统的部分, ,例如例如, ,无法获得的代码或硬件无法获得的代码或硬件断言检查断言检查测试在复杂逻辑结构中是否某个条件已经被给出测试在复杂逻辑结构中是否某个条件已经被给出 测试数据生成测试数据生成 在白盒测试中在白盒测试中, ,测试数据的选择和生成是一门重要的测试数据的选择和生成是一门重要的学科。最基本的方法是随机测试。学科。最基本的方法是随机测试。 两个成熟的测试数据产生方法两个成熟的测试数据产生方法, ,它们是结构化测试和它
9、们是结构化测试和功能测试。功能测试。 结构化测试是根据程序的内部结构来指导测试数据的结构化测试是根据程序的内部结构来指导测试数据的产生和选择。产生和选择。 在功能测试中在功能测试中, ,一个程序被看成是一个函数一个程序被看成是一个函数, ,并且考虑并且考虑其输入值和输出值。其输入值和输出值。 覆盖率覆盖率 语句覆盖语句覆盖; ; 判定覆盖判定覆盖; ; 条件覆盖条件覆盖; ; 判定条件覆盖判定条件覆盖; ; 条件组合覆盖条件组合覆盖 点覆盖点覆盖 边覆盖边覆盖 路径覆盖。路径覆盖。黑盒测试技术黑盒测试技术什么是黑盒测试什么是黑盒测试? ?黑盒测试又称功能测试、数据驱动黑盒测试又称功能测试、数据
10、驱动测试或基于规格说明书的测试,是测试或基于规格说明书的测试,是一种从用户观点出发的测试。一种从用户观点出发的测试。黑盒测试黑盒测试测试人员把被测程序当作一个黑盒子。测试人员把被测程序当作一个黑盒子。黑盒测试试图发现以下类型的错误黑盒测试试图发现以下类型的错误 功能错误或遗漏功能错误或遗漏; ;界面错误界面错误; ; 数据结构或外部数据库访问错误数据结构或外部数据库访问错误; ; 性能错误性能错误; ;初始化和终止错误。初始化和终止错误。 黑盒测试特点黑盒测试特点1.1.不考虑程序内部结构和内部特性;不考虑程序内部结构和内部特性;2.2.测试人员只需知道该程序输入和输出之间的测试人员只需知道该
11、程序输入和输出之间的关系或功能;关系或功能;3.3.设计测试用例的依据是需求规格说明书或用设计测试用例的依据是需求规格说明书或用户手册。户手册。4.4.尤其适合于一些第三方软件测试,由于无法尤其适合于一些第三方软件测试,由于无法得到源程序,无法用其它方法进行测试。得到源程序,无法用其它方法进行测试。 黑盒测试的实施过程黑盒测试的实施过程1.1.测试计划阶段测试计划阶段2.2.测试设计阶段测试设计阶段v依据程序需求规格说明书或用户手册,按照一定规范依据程序需求规格说明书或用户手册,按照一定规范化的方法进行软件功能划分和设计测试用例。化的方法进行软件功能划分和设计测试用例。3.3.测试执行阶段测试
12、执行阶段v按照设计的测试用例执行测试按照设计的测试用例执行测试; ;v自由测试自由测试( (作为测试用例的补充作为测试用例的补充) )。4.4.测试总结阶段测试总结阶段黑盒测试技术黑盒测试技术v黑盒测试是根据规格说明书设计黑盒测试是根据规格说明书设计测试用例,并不涉及程序内部构测试用例,并不涉及程序内部构造的一种测试方法。造的一种测试方法。v黑盒测试有一套严格的测试用例黑盒测试有一套严格的测试用例生成的规定和系统的方法。生成的规定和系统的方法。 为什么要进行黑盒测试为什么要进行黑盒测试 白盒测试在测试的早期采用白盒测试在测试的早期采用, ,而黑盒测试主要用而黑盒测试主要用于测试的后期。于测试的
13、后期。黑盒测试黑盒测试需要需要回答以下问题回答以下问题: :1.1. 如何测试功能的有效性如何测试功能的有效性 ? ?2.2. 何种类型的输入会产生好的测试用例何种类型的输入会产生好的测试用例 ? ?3.3. 系统是否对特定的输入值尤其敏感系统是否对特定的输入值尤其敏感 ? ?4.4. 如何分隔数据类的边界如何分隔数据类的边界 ? ?5.5. 系统能够承受何种数据率和数据量系统能够承受何种数据率和数据量 ? ?6.6. 特定类型的数据组合会对系统产生何种影响特定类型的数据组合会对系统产生何种影响 ? ? 测试用例测试用例运用黑盒测试方法运用黑盒测试方法, ,可以导出满足以下可以导出满足以下标准
14、的测试用例集标准的测试用例集: :1.1. 所设计的测试用例能够减少所设计的测试用例能够减少, ,以达到合理测以达到合理测试所需的附加测试用例数试所需的附加测试用例数; ;2.2. 所设计的测试用例能够告知某些类型错误所设计的测试用例能够告知某些类型错误的存在或不存在的存在或不存在, ,而不是仅仅与特定测试相而不是仅仅与特定测试相关的错误关的错误。 设计测试用例的几种基本方法设计测试用例的几种基本方法1.1.等价类划分等价类划分 2.2.边界值分析边界值分析 3.3.错误推测法错误推测法4.4.因果图因果图 黑盒测试的常用技术黑盒测试的常用技术 由第三方来执行黑盒测试由第三方来执行黑盒测试。
15、最常见的测试有最常见的测试有: :功能性测试功能性测试、容量测试容量测试、安全性测安全性测试、负载测试、恢复性测试、标杆测试、试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试稳定性测试、可靠性测试 没有用户参与的黑盒测试没有用户参与的黑盒测试 有用户介入的黑盒测试有用户介入的黑盒测试 白白盒测试和黑盒测试的比较盒测试和黑盒测试的比较 白白盒测试只考虑测试软件产品盒测试只考虑测试软件产品, ,它不保证完整的需它不保证完整的需求规格是否被满足。而黑盒测试只考虑测试需求规求规格是否被满足。而黑盒测试只考虑测试需求规格格, ,它不保证实现的所有部分是否被测试到。黑盒它不保证实现的所有部分是否
16、被测试到。黑盒测试会发现遗漏的缺陷测试会发现遗漏的缺陷, ,指出规格的哪些部分没有指出规格的哪些部分没有被完成。而白盒测试会发现代理方面缺陷被完成。而白盒测试会发现代理方面缺陷, ,指出哪指出哪些实现部分是错误的。些实现部分是错误的。 白白盒测试比黑盒测试成本要盒测试比黑盒测试成本要高高得多。它需要在测试得多。它需要在测试可被计划前产生源代码可被计划前产生源代码, ,并且在确定合适的数据和并且在确定合适的数据和决定软件是否正确方面需要花费更多的工作量。决定软件是否正确方面需要花费更多的工作量。 一个白盒测试的失败会导致一次修改一个白盒测试的失败会导致一次修改, ,这需要所有这需要所有的黑盒测试
17、被重复执行并且重新决定白盒测试路径。的黑盒测试被重复执行并且重新决定白盒测试路径。 有了有了“黑盒黑盒”测试为什么还要测试为什么还要“白盒白盒”测测试?试?黑盒测试只能观察软件的外部表现,即使软件黑盒测试只能观察软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件就的输入输出都是正确的,却并不能说明软件就是正确的。因为程序有可能用错误的运算方式是正确的。因为程序有可能用错误的运算方式得出正确的结果,例如得出正确的结果,例如“负负得正,错错得负负得正,错错得对对”,只有白盒测试才能发现真正的原因。,只有白盒测试才能发现真正的原因。白盒测试能发现程序里的隐患,象内存泄漏、白盒测试能发现程
18、序里的隐患,象内存泄漏、误差累计问题。在这方面,黑盒测试存在严重误差累计问题。在这方面,黑盒测试存在严重的不足。的不足。 白盒测试的优缺点白盒测试的优缺点1. 1. 优点优点迫使测试人员去仔细思考软件的实现迫使测试人员去仔细思考软件的实现; ;可以检测代码中的每条分支和路径可以检测代码中的每条分支和路径; ;揭示隐藏在代码中的错误揭示隐藏在代码中的错误; ;对代码的测试比较彻底对代码的测试比较彻底; ;最优化。最优化。2. 2. 缺点缺点昂贵昂贵; ; 无法无法检测代码中遗漏的路径和数据敏感性错误检测代码中遗漏的路径和数据敏感性错误; ;不验证规格的正确性。不验证规格的正确性。黑盒测试的优缺点黑盒测试的优缺点1. 1. 优点优点 对于较大的代码单元来说对于较大的代码单元来说( (子系统甚至系统级子系统甚至系统级),),黑盒测试比白盒测试效率要高黑盒测试比白盒测试效率要高; ; 测试人员不需要了解实现的细节测试人员不需要了解实现的细节, ,包括特定的包括特定的编程语言编程语言; ; 测试人员和编码人员是彼此独立的测试人员和编码人员是彼此独立的; ; 从用户的视角进行测试从用户的视角进行测试, ,很容易被理解和接受很容易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 炼油厂每日安全分享
- 糖尿病胰岛素种类
- 术后肺部感染如何预防与护理
- 厨房规划方案总结
- 4-2-2 元素周期表及元素周期律的应用 课件 高一上学期化学人教版(2019)必修第一册
- 黑客攻击解决方案
- 消化道大出血的应急流程演练
- 消防安全知识演练
- 氧化硫说课稿
- 化简比说课稿人教版
- 发动机冷却系统说课稿课件
- 2023届高考模拟作文丰裕时代中的吃苦导写及范文
- 老年人慢性心力衰竭诊治中国专家共识
- 资料员岗位培训
- 山西祥源新型煤化工有限公司“上大关小”置换建设101万吨-年炭化室高度6.05米捣固焦化项目环评报告
- 建筑面积计算规范2023-1
- 安全风险告知书(钢筋)
- 2022年医学专题-医改新形势下医院机遇与挑战
- 20人小公司管理制度模板
- 劳务施工组织方案 劳务施工组织设计(八篇)
- 理论催化剂体积计算
评论
0/150
提交评论