软件测试基础测试方法精品文稿.ppt
《软件测试基础测试方法精品文稿.ppt》由会员分享,可在线阅读,更多相关《软件测试基础测试方法精品文稿.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件测试基础测试方法1第1页,本讲稿共79页第三章第三章 软件测试基本技术软件测试基本技术1 1 软件测试技术概述软件测试技术概述2 2 白盒测试技术白盒测试技术3 3 黑盒测试技术黑盒测试技术2第2页,本讲稿共79页软件测试技术概述软件测试技术概述根据G.J.Myers观点-软件测试的目的软件测试的目的:n 软件测试是为了发现错误而执行程序的过程n 一个好的测试能够在第一时间发现程序中存在的错误n 一个好的测试是发现了至今尚未发现的错误的测试。软件测试是质量控制的重要手段,保证客软件测试是质量控制的重要手段,保证客软件测试是质量控制的重要手段,保证客软件测试是质量控制的重要手段,保证客户拿到
2、或用户使用高质量的软件产品户拿到或用户使用高质量的软件产品户拿到或用户使用高质量的软件产品户拿到或用户使用高质量的软件产品3第3页,本讲稿共79页1)软件测试方法分类软件测试方法分类n根据测试对象在测试过程中是否发生状态变化:动态测试和静态测试n根据对测试对象了解的程度(按哲学观点):黑盒测试和白盒测试4第4页,本讲稿共79页测试方法测试方法 黑盒子和白盒子黑盒子和白盒子 静态的和动态的静态的和动态的 文档、代码审查文档、代码审查 数据输入边界条件法数据输入边界条件法 等价划分、数据流程图等价划分、数据流程图 状态变换图状态变换图 逻辑路径法逻辑路径法5第5页,本讲稿共79页黑盒子和白盒子黑盒
3、子和白盒子功能测试功能测试数据驱动测试数据驱动测试 结构测试结构测试逻辑驱动测试逻辑驱动测试 客户需求事件驱动输入输出6第6页,本讲稿共79页2)黑盒测试法(黑盒测试法(black-box testing)概念:也称功能测试或数据驱动测试。不关心程序内部结构,用于验证产品所应具有的功能是否实现,每个功能是否都能正常使用,是否满足用户的要求。测试范围:针对程序接口和用户界面进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。用途:主要用于软件确认测试。方法:等价类划分、边界值分析、错误推测法、因果图。7第7页,
4、本讲稿共79页l是否有不正确或遗漏了的功能;l在接口上,能否正确地接受输入数据,能否产生正确的输出信息;l访问外部信息是否满足要求;l性能上是否满足要求;l界面是否错误,是否不美观;l初始化和终止错误。发现问题类型8第8页,本讲稿共79页3)白盒测试法(白盒测试法(white-box testing)概念:也称结构测试或逻辑驱动测试。已知产品内部工作流程,清楚软件程序的结构和语句,按照程序内部的结构测试程序。要求对程序的结构特性做到一定程度的覆盖,对所有逻辑路径进行测试,并检验内部控制结构和数据结构是否有错。测试范围:测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否能按预
5、定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。用途:主要用于软件验证测试。方法:逻辑覆盖、循环覆盖和基本路径测试。9第9页,本讲稿共79页白盒测试原则和说明原则:n保证每个模块中所有独立路径至少被使用一次;n对所有逻辑值均测试为真值和假值;n在上下边界及可操作范围内运行所有循环;n检查内部数据结构以确保其有效性。说明:n穷举路径测试绝不能查出程序违反了设计规范,即程序在实现一个不是用户需要的功能;n穷举路径测试不可能查出程序中因遗漏路径而出错;n穷举路径测试可能发现不了一些与数据相关的错误。10第10页,本讲稿共79页4)静态的和动态的测试)静态的
6、和动态的测试主持人主持人作者记录员列席人员内审员内审员技术专业人员用户代表不正式正式互审 走读 审查会议运行程序运行程序11第11页,本讲稿共79页静态测试静态测试概念:静态测试就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,不需要对代码进行编译和仿真运行。测试范围:软件产品的设计规格说明书的审查,程序代码的阅读、审查等。方法:人工检测和计算机辅助静态分析手段进行检测。只进行特性分析。n人工检测:人工审查或评审软件。偏重于编码风格、质量的检验。可有效发现逻辑设计和编码错误。n计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各
7、种缺陷和可疑的程序构造。12第12页,本讲稿共79页动态测试动态测试概念:动态测试是通过观察代码运行时的动作来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。它通过实际运行程序发现错误。测试范围:通过有效的测试用例,对应的输入/输出关系来分析被测程序的运行情况。13第13页,本讲稿共79页5)自动测试和随机测试)自动测试和随机测试手工模拟用户操手工模拟用户操作作自动测试:通过工具自动执行软件的测试。自动测试:通过工具自动执行软件的测试。随机测试:完全模拟客户进行随随机测试:完全模拟客户进行随意的操作。意的操作。14第14页,本讲稿共79页6)验证和确认()验证和确认(V&V)Verifica
8、tion:Are we building the product right?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Are we building the right product?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求15第15页,本讲稿共79页2 2 白盒测试技术白盒测试技术概念:概念:白盒测试也称为结构测试或逻辑驱动测试,把程序看作一个透明的盒子,测试程序的代码书写结构和逻辑问题。测试对象:测试对象:源程序。检查内容:检查内容:l对程序模块
9、的所有独立的执行路径至少要测试一次l对所有逻辑判断,取真或假的两种情况至少要测试一次l对程序进行边界检查l检验内部数据结构的有效性。16第16页,本讲稿共79页白盒测试用例的设计方法白盒测试用例的设计方法逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖等基本路径测试:在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。白盒测试分类:白盒测试分类:静态测试和动态测试。17第17页,本讲稿共79页白盒测试用例注意事项白盒测试用例注意事项l由于测试路径可能非常多,以及时间和资源问题,选出足够多的路径测试l由于深入到程序
10、编码,通常开发人员协助测试人员书写白盒测试用例18第18页,本讲稿共79页1)静态测试静态测试技术:静态测试技术:不运行被测试程序,对代码通过检查、阅读进行分析。三步曲:三步曲:走查(Walk Through)审查(Inspection)评审(Review)最常见的静态测试是找出源代码的语法错误。19第19页,本讲稿共79页编码的标准和规范编码的标准和规范标准:建立起来必须遵守的规则。规范:建议最佳做法,推荐更好方式。实施标准和规范的原因:n 可靠性。n 可读性和可维护性。n 可移植性。20第20页,本讲稿共79页(一)代码检查法 代码检查法主要是通过桌面检查、代码审查和走查方式,对以下内容进
11、行检查:l检查代码和设计的一致性l代码的可读性以及对软件设计标准的遵循情况l代码逻辑表达的正确性l代码结构的合理性l程序中不安全、不明确和模糊的部分l编程风格方面的问题等21第21页,本讲稿共79页(1)(1)走查走查 (Walk ThroughWalk Through)定义:采用讲解、讨论和模拟运行的方式进行的查找错误的活动。注意:n 引导小组成员在走查前通读设计和编码。n 限时,避免跑题。n 发现问题适当记录,避免现场修改。n 检查要点是代码是否符合标准和规范,是否有逻辑错误。22第22页,本讲稿共79页(2)(2)审查审查 (InspectionInspection)定义:采用讲解、提问
12、方式进行,一般有正式的计划、流程和结果。主要方法采用缺陷检查表。注意:n 以会议形式,制定会议目标、流程和规则,结束后要编写报告。n 按缺陷检查表逐项检查。n 发现问题适当记录,避免现场修改。n 发现重大缺陷,改正后会议需要重开。n 检查要点是缺陷检查表,所以该表要根据项目不同不断积累完善。23第23页,本讲稿共79页走查与审查的比较走查与审查的比较走 查审 查准备通读设计和编码应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表形式非正式会议正式会议参加人员开发人员为主项目组成员包括测试人员主要技术方法无缺陷检查表注意事项限时、不要现场修改代码限时、不要现场修改
13、代码生成文档会议记录静态分析错误报告目标代码标准规范,无逻辑错误代码标准规范,无逻辑错误24第24页,本讲稿共79页(3)(3)评审评审 (ReviewReview)定义:通常在审查会后进行,审查小组根据记录和报告进行评估。注意:n 充分审查了所规定的代码,并且全部编码准则被遵守。n 审查中发现的错误已全部修改。25第25页,本讲稿共79页(二)静态结构分析法 在静态结构分析中,测试人员通常通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形、图表,清晰地标识整个软件的组成结构。采用方法:l通过生成
14、各种图表,来帮助对源程序的静态分析l静态错误分析l表达式分析l接口分析26第26页,本讲稿共79页2)程序插桩概念:程序插桩是借助向被测程序中插入一些操作,来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。设计插桩程序时需要考虑的问题:n探测哪些信息?n在程序的什么部位设置探测点?n需要设置多少个探测点?n如何在程序中特定部位插入某些用以判断变量特性的语句?27第27页,本讲稿共79页3)逻辑覆盖()语句覆盖(点覆盖)至少每个语句应该执行一次。()判定覆盖分支覆盖(边覆盖)每个语句必须至少执行一次,而且每个判定的可能的结果都应该至少执行一次。()条
15、件覆盖不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。注:满足条件覆盖,不一定满足判定覆盖。28第28页,本讲稿共79页()判定条件覆盖选取足够多的测试数据,使得判定表达式中的每个条件中都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。()条件组合覆盖选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。()路径覆盖选取足够多的测试数据,使程序的每条可能路径都至少执行一次。29第29页,本讲稿共79页4)测试覆盖准则错误敏感测试用例分析(ESTCA)准则 例子:if(l0)then i=j错写成:if(l0)then i=j Fos
16、ter通过大量的实验确定了程序中谓词最容易出错的部分,得到了一套错误敏感测试用例分析ESTCA(Error Sensitive Test Cases Analysis)规则:30第30页,本讲稿共79页规则:规则:对于A rel B(其中rel可以是,和)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,AB的情况分别出现一次。规则规则2 2:对于A rel c(其中rel可以是,或,A是变量,c是常量)型的分支谓词,当rel是时,应适当地选择A的值,使得:A=c-M 其中,M是距c最小的机器容许的整数,若A和c均为整形时,M。同样当rel是时,应适当地选择A的值,使得:A=c
17、M 其中,M是距c最小的机器容许的整数,若A和c均为整形时,M。规则:规则:对外部输入变量赋值,使其在每一测试用例中具有不同的值与符号,并与同一组测试用例中其他变量的值与符号不一致。31第31页,本讲稿共79页5)基本路径测试法概念:在程序控制流图的基础上,通过分析控制构造的环路复杂性导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。包括个方面:l程序流程图l计算程序环境复杂性l导出测试用例l准备测试用例l图形矩阵32第32页,本讲稿共79页6)其它白盒测试法(1)域测试 是一种基于程序结构的测试方法。Howden对程序错误分类:域
18、错误、计算错误和丢失错误。域错误:每条执行路径对应于输入域的一类情况,若程序的控制流有错误,对应某一特定输入可能执行的是一条错误路径,这种错误称为路径错误,也叫域错误。计算错误:如果对于特定输入执行的是正确路径,但由于赋值语句的错误致使输出结果不正确,则称为计算型错误。丢失错误:程序中某处少了一个判定谓词而引起的丢失路径错误。33第33页,本讲稿共79页(2)符号测试 符号测试的基本思想:允许程序不仅仅输入具体的数值数据,也可以输入符号值。所谓的符号值可以是基本符号变量值,也可以是这些符号变量值的一个表达式。(3)Z路径覆盖 概念:简化循环意义下的路径覆盖为Z路径覆盖。所谓的循环简化是指限制循
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 基础 方法 精品 文稿
限制150内