微软测试大纲.ppt

上传人:hyn****60 文档编号:70680220 上传时间:2023-01-24 格式:PPT 页数:196 大小:1.64MB
返回 下载 相关 举报
微软测试大纲.ppt_第1页
第1页 / 共196页
微软测试大纲.ppt_第2页
第2页 / 共196页
点击查看更多>>
资源描述

《微软测试大纲.ppt》由会员分享,可在线阅读,更多相关《微软测试大纲.ppt(196页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、软件测试技术软件测试技术课程特点1.用真实应用的案例和技术来讲解如何解决测试中的实际难题2.课程的中心思想是如何建立质量保证体系,做到缺陷的预防3.用一个大型的真实产品作为案例,讲解从立项计划到发布的每一步是如何实施的4.对于同一个测试环节,开发人员、测试人员、测试管理者应该分别关注什么、做哪些工作来最终保证测试质量5.不仅讲解要做好测试都需要做什么,更注重讲解怎么做、为什么这样做、如果不这样做会出现什么情况课程安排1.与与实践相关实践相关的软件测试理论的软件测试理论这一部分只会用很少的一点时间,基础知识略过,仅对实践中最重要的、最容易混淆或最容易出问题的地方强调一下2.测试计划测试计划这部分

2、内容将分别从测试执行者和测试管理者的角度出发,讲解如何制定能覆盖到细节的测试计划,以及准备资源的依据,并最终评定每一个测试人员的测试执行情况课程安排3.测试用例设计方法测试用例设计方法这部分内容会着重讲解如何进行深度验证和解决白盒测试的难点,以及各种用例设计方法的综合使用课程安排4.测试方法及技巧测试方法及技巧这部分内容将对每一种测试方法的重点、难点和实施技巧进行讲解,用一个真实的企业级软件项目作为案例,讲解如何在一个真实项目中逐一实施这些测试方法,其中绝大部分的测试方法都以自动化测试的技术和实现方法来讲解。当所有的测试方法都部署完成,讲解何如把这些独立的测试方法和测试活动整合成自动化测试体系

3、。从而实现缺陷预防的持续改进。课程安排5.测试度量体系的建立测试度量体系的建立这部分内容会在课程中分两个层面讲解。第一个层面是技术方面的,包括与缺陷相关的各种度量数据,软件可靠性分析、缺陷分析等;第二个层面是管理方面的,包括如何应用数据进行辅助决策、需要积累和建立哪些数据内容、以及根据缺陷状态预估项目进度和质量等级等。课程安排6.自动化测试技术自动化测试技术这部分内容先从自动化测试技术的初级部分入手,介绍最新的自动化测试技术和挑选工具的方法,然后分析自动化测试技术的核心价值课程安排7.缺陷预防的持续改进缺陷预防的持续改进这部分内容是核心中的核心,它是建立在前面用例设计、测试计划和各种测试方法的

4、基础上的,可以说前面的内容都是在为这一块打基础课程安排8.测试管理测试管理没有科学的测试管理就不可能建立完备的质量保证体系,这部分内容讲解在实践中如何进行缺陷的度量。软件质量的度量以及测试质量的度量在课程中要逐一解决的问题测试人员不足,尤其是有经验的测试工程师不足团队对Bug的理解不一致,有时测试团队开的Bug开发团队不认可没有有效的技术手段保证测试速度,甚至测试被认为额外增加了项目进度时间测试量很大,测试报告不能及时反映最新版本中存在的问题测试中重复劳动太多,长期下来,测试工程师缺乏成就感和创造力软件发布前是否经历了足够的测试?能否发布到底谁说了算?缺陷预防的持续改进建立质量保证体系第一章第

5、一章软件测试基础理论软件测试基础理论什么是软件测试软件测试的引出软件测试的定义软件测试的存在阶段软件测试的引出什么是有效代码?怎么知道写出的代码是不是有效的?测试仅仅是一种技术吗?测试仅仅是一种活动吗?测试是在开发进度的基础上额外投入一块时间吗?测试是要建立起一套质量保证体系,使得项目按照既定的方向和标准前进软件测试的定义软件测试的定义为了保证软件的质量和可靠性,应力求在分析,设计等各个阶段结束前,对软件进行严格的评审。也就是说软件测试是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终审查,它是软件质量保证的关键步骤。软件测试的存在阶段软件测试的存在阶段需求阶段的Spec Revie

6、w编码阶段的单元测试编码完成后的各种综合测试测试可以加速软件开发进度,在实践上必须让测试渗透到每一个阶段、每一个细节什么是软件缺陷什么是软件缺陷缺陷的定义:软件缺陷这一概念用来描述各种软件错误,是所有软件错误的统称。把符合下列5种特征之一的软件错误认为是软件缺陷:(1)软件未达到软件产品需求说明书中指明的要求;(2)软件出现了软件产品需求说明书中指明不会出现的错误;(3)软件功能超出了软件产品需求说明书中指明的范围;(4)软件未达到软件产品需求说明书中虽未指明但应达到的要求;(5)难以理解、不易使用、运行速度缓慢或者最终用户认为不好的问题。缺陷的分类缺陷的分类缺陷和BUG,它的分类要根据不同的

7、公司不同的产品来确定,但是基本的分类思想是一致的。Code bugSpec bugPerformanceSecurityUI BugAccessibility可能发生的风险可能发生的风险以下方面是很容易引入风险的:1.软件在发布或交付使用之前没有经历足够的测试2.采用产量很少的硬件、芯片,及即将停产的型号3.购买刚被兼并的软件公司的产品4.不明确的需求5.未经充分论证的架构 MyersMyers软件测试目的软件测试目的1979年,Glenford Myers在The Art of Software Testing一书中提出“测试的目的是证伪”这一概念,推翻了过去“为表明软件正确而进行测试”的错

8、误认识,为软件测试的发展指出了方向,软件测试的理论、方法在之后得到了长足的发展。软件测试的原则软件测试的原则1.应当把“尽早地和不间断地进行软件测试”作为测试团队的座右铭。2.如何做到尽早测试和不间断测试?3.程序员应避免检查自己的程序。4.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。5.Bug的标准:测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。6.严格执行测试计划,排除测试的随意性。7.应当对每一个测试结果做全面检查。8.让数据说话:通过对测试用例和Bug的追踪统计,看出项目组发生了什么、正在发生什么、甚至将会发生什么。测试团队需要建立Case管理平台和缺陷追踪

9、体系需求分析需求分析设计设计程序编码程序编码单元测试单元测试集成测试集成测试确认测试确认测试详细设计规格说明详细设计规格说明概要设计规格说明概要设计规格说明需求规格说明需求规格说明怎样理解经典模型怎样理解经典模型ReviewReview缺陷和Bug的区别软件测试的意义第二章第二章 测试计划测试计划如何在需求和设计阶段有效的介入如何在需求和设计阶段有效的介入对需求和设计的频繁变更如何应对对需求和设计的频繁变更如何应对测试文档的核心价值是什么?为什么要测试文档的核心价值是什么?为什么要写测试计划?写测试计划?测试文档Test SpecTest SpecINTRODUCTIONObjectiveSt

10、atementRelatedDocumentsandLinksGlossaryTest SpecTest SpecSCOPEGoalsNon-GoalsDependenciesandPartnersRisksAssumptionsandLimitationsAssumptionsLimitationsTest SpecTest SpecFEATUREOVERVIEWFeatureDescriptionReleaseCriteriaFunctionalAreaBreakdownFeatureDataFlowDiagram(DFD)ReleaseCreteriaCC:CodeCompletePas

11、sRate:这是RC的核心衡量指标之一,我们的要求是必须保证95的case通过率Case和Bug的级别:允许存在5不通过的case,但这些case决不能是重要caseZBB:这是ZeroBugBounce的缩写,意为“零Bug边界”CodeCoverage:代码覆盖率Test SpecTest SpecFEATUREVALIDATIONForallfeaturesOverviewValid ScenarioInvalid ScenariosTest SpecTest SpecGENERALAPPROACHESSecurityPermissionHelpanddocumentationInter

12、nationalSufficiency(Globalization/localization)AccessibilityScalability/PerformanceStressGeo/Political/LegalLogging/MessageformatTracing/Counters(Diagnosability)TestabilityTestHooksTest SpecTest SpecSCENARIOBASEDTESTSReliability/LongHaulMemory UsageCPU UsageTime ConsumptionIntegrationInteroperabilit

13、yCompatibilityTest SpecTest SpecTESTCOMPONENTCHECKLISTtool/lib nameFeature listTest SpecTest SpecTopologyrequirementsTest SpecTest SpecOPENISSUESTestSpecSIGN-OFFCHANGEHISTORYReviewReview一篇好的测试文档应当包含哪些内容、注意哪些方面第三章第三章测试用例设计测试用例设计测试用例设计测试用例设计黑盒测试黑盒测试u等价类划分等价类划分u边界值分析边界值分析u错误推测法错误推测法u因果图因果图白盒测试白盒测试u逻辑覆盖

14、逻辑覆盖u判定结构分析判定结构分析u循环结构分析循环结构分析u基本路径覆盖基本路径覆盖黑盒测试黑盒测试这种方法是把测试对象看做一个黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。黑盒测试叫做功能测试或数据驱动测试。一种特殊的黑盒测试叫做接口测试,它不管程序的需求和实现细节,仅依据程序与其外部环境的接口来选择测试数据。黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:u 是否有不正确或遗漏了的功能?u 在接口上,输入能否正确地接受?能否输出正确的结果?u 是否有数据结构错误或外部信息(例如数据文件)访问错误?u

15、性能上是否能够满足要求?u 是否有初始化或终止性错误?用黑盒测试发现程序错误,必须在所有可能的输入条件和输出条件中确定测试数据,检查程序能否产生正确的输出。但这是不可能的。例如,设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试:可能采用的测试数据组个数:232232264 如果测试一组数据需要1毫秒,一年工作36524小时,完成所有测试需5亿年。白盒测试白盒测试此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否

16、与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:u 对程序模块的所有独立的执行路径至少测试一次 路径覆盖测试;u 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次 逻辑覆盖测试;u 在循环的边界和运行界限内执行循环体 控制流测试;u 测试内部数据结构的有效性 数据流测试、领域测试等。对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。包含的不同执行路径数达 520 条,对每一条路径进行测试需要1毫秒,假定一年工作36524小时,要想把所有路径测试

17、完,需3170年。灰盒测试灰盒测试 灰盒测试,确实是介于二者之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。灰盒测试结合了白盒测试盒黑盒测试的要素.它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效

18、率、错误发现和错误分析的效率。灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。逻辑覆盖逻辑覆盖 语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆盖条件覆盖 判定条件覆盖判定条件覆盖 条件组合覆盖条件组合覆盖 路径覆盖路径覆盖逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。(A1)and(B=0)(A=2)or(X1)X=X/AX=X+1T TT TF FF FabdceL1(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/

19、A 1)=(A=2)and(B=0)or (A 1)and(B=0)and(X/A 1)L2(a b d)=not(A 1)and(B=0)and not(A=2)or(X 1)=not(A 1)or not(B=0)and not(A=2)and not(X1)=not(A 1)and not(A=2)and not(X 1)or not(B=0)and not(A=2)and not(X 1)L3(a b e)=not(A 1)and(B=0)and (A=2)or(X 1)=not(A 1)or not(B=0)and (A=2)or(X 1)=not(A 1)and(A=2)or no

20、t(A 1)and(X 1)or not(B=0)and(A=2)or not(B=0)and(X 1)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)and not(X/A 1)语句覆盖语句覆盖语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。在图例中,正好所有的可执行语句都在路径L1上,所以选择路径 L1设计测试用例,就可以覆盖所有的可执行语句。测试用例的设计格式如下【输入的输入的(A,B,X)(A,B,X),输出的,输出的(A,B,X)(A,B,X)】为图例设计满足为图

21、例设计满足语句覆盖语句覆盖的测试用例是的测试用例是:【(2,0,4)(2,0,4),(2,0,3)(2,0,3)】覆盖覆盖 aceace【L1L1】(A=2)and(B=0)or (A1)and(B=0)and(X/A1)判定覆盖判定覆盖判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:【(2,0,4)(2,0,4),(2,0,3)(2,0,3)】覆盖覆盖 aceace【L1L1】【(1,1,1)(1,1,1),(1,1,1)(1,1,1)】覆盖覆盖 abdabd

22、【L2L2】(A=2)and(B=0)or (A 1)and(B=0)and(X/A 1)not(A 1)and not(A=2)and not(X 1)or not(B=0)and not(A=2)and not(X 1)如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1)(2,1,1),(2,1,2)(2,1,2)】覆盖覆盖 abeabe【L3L3】【(3,0,3)(3,0,3),(3,0,1)(3,0,1)】覆盖覆盖 acdacd【L4L4】not(A 1)and(X 1)or not(B=0)and (A=2)or not(B=0)and(X 1)(A 1)and(B=

23、0)and not(A=2)and not(X/A 1)条件覆盖条件覆盖条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。在图例中,我们事先可对所有条件的取值加以标记。例如,对于第一个判断:u 条件 A1 取真为 ,取假为 条件 B0 取真为 ,取假为对于第二个判断:对于第二个判断:u条件条件A2取真为取真为,取假为,取假为条件条件X1取真为取真为,取假为,取假为测试用例测试用例覆盖分支覆盖分支条件取值条件取值【(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

24、,e)或或测测试试用用例例覆盖分支覆盖分支 条件取值条件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)判定条件覆盖就是设计足够的测试用判定条件覆盖就是设计足够的测试用例,使得例,使得判断中每个条件的所有可能取判断中每个条件的所有可能取值至少执行一次值至少执行一次,每个判断中的每个分每个判断中的每个分支至少执行一次支至少执行一次。判定条件覆盖判定条件覆盖测测试试用用例例覆盖分支覆盖分支 条件取值条件取值【(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)an

25、d(B=0)and(X/A 1)not(A 1)and not(A=2)and not(X 1)or not(B=0)and not(A=2)and not(X 1)andorA1T TB=0T TX=X/AT TF FF FA=2T TF FX1F FX=X+1条件组合覆盖条件组合覆盖条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。记 A1,B0 作 A1,B0 作 A1,B0 作 A1,B0 作A2,X1作作A2,X 1作作A2,X1作作A2,X 1作作测测试试用用例例覆盖条件覆盖条件覆盖组覆盖组合合【(2,0,4),(2,0,3)】(L

26、1),【(2,1,1),(2,1,2)】(L3),【(1,0,3),(1,0,4)】(L3),【(1,1,1),(1,1,1)】(L2),路径测试路径测试路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。测测试试用用例例通过路径通过路径覆盖条覆盖条件件【(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)判定结构分析判定结构分析当程序中判定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型分支结构。对于嵌套型分支结构,若有n个判定语句,需

27、要n+1个测试用例;对于连锁型分支结构,若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径。嵌套型分支结构嵌套型分支结构连锁型分支结构连锁型分支结构s1s2s3s4p1p2p3s1s2s3s4s5s6p1p2p3对于连锁型分支结构,当 n 较大时将无法测试。为减少测试用例的数目,可采用试验设计法,抽取部分路径进行测试。这样,测试路径数目从这样,测试路径数目从2 23 38 8条减少到条减少到3 31 14 4条。条。L40 0 01 0 10 1 11 1 01 2 31234用例用例s1 s3 s5s2 s3 s6s1 s4 s6s2 s4 s5p1 p2 p31234s1 s3 s

28、5s2 s3 s6s1 s4 s6s2 s4 s5路路路路 径径径径s1s3s5p1p2p3s2s3s6p1p2p3s1s4s6p1p2p3s2s4s5p1p2p3循环结构分析循环结构分析循环分为4种不同类型:简单循环、连锁循环、嵌套循环和非结构循环。(1)简单循环 零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:检查多次循环 m次循环:检查在多次循环 最大次数循环、比最大次数多一次、少一次的循环。基本路径测试基本路径测试基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设

29、计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。程序的控制流图程序的控制流图符号为控制流图的一个结点,表示一个或多个无分支的PDL语句或源程序语句。箭头为边,表示控制流的方向。在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,.)连接的复合条件表达式,则需改为 一系列只有单个条件的嵌套的判断。等价类划分等价类划分等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试

30、用例。等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。(1)划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其他值的测试。等价类的划分有两种不同的情况:有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。

31、划分等价类等价类的原则。1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。例如,在程序的规格说明中,对输入条件有一句话:“项数可以从1到999”则有效等价类是“1项数999”两个无效等价类是“项数1”或“项数999”。在数轴上表示成:2)如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,在Pascal语言中对变量标识符规定为“以字母打头的串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。

32、4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为 每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如,Pascal语言规定“一个语句必须以分号;结束”。这时可以确定一个有效等价类“以;结束”,若干个无效等价类“以

33、:结束”、“以,结束”、“以 结束”、“以LF结束”等。(2)确立测试用例在确立了等价类之后,建立等价类表,列出所有划分出的等价类。再从划分出的等价类中按以下原则选择测试用例:1)为每一个等价类规定一个唯一编号;2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。用等价类划分法设计测试用例的实例 在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。”并且

34、规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至少必须有一个。”用等价类划分方法,建立输入等价类表用等价类划分方法,建立输入等价类表:下面选取了 9 个测试用例,它们覆盖了所有的等价类。VAR VAR x x,T1234567T1234567:REALREAL;BEGIN BEGIN x x:=3.414:=3.414;T1234567:=2.732T1234567:=2.732;.(1),(2),(4),(8),(9),(1),(2),(4),(8),(9),(12),(14)(12),(14)VAR VAR :REALREAL;(3)(3)VAR VAR x x,:,:RE

35、AL;REAL;(5)(5)VAR T12345678:REAL;(6)VAR T12345.:REAL;(7)多于80个字符 VAR T$:CHAR;(10)VAR GOTO:INTEGER;(11)VAR 2T:REAL;(13)VAR PAR:REAL;(15)BEGIN .PAP:=SIN(3.14*0.8)/6;边界值分析边界值分析边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。比如,在做三角形计算时,要输入三角形的三个边长:

36、A、B和C。我们应注意到这三个数值应当满足 A0、B0、C0、ABC、ACB、BCA,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。错误推测法错误推测法人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推

37、测法。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。因果图因果图因果图的适用范围 如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。用因果图生成测试用例的基本步骤 1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。2)分析软件规格说明描述的语义,找出原因与结果之间,原因与原因之间对应的关系?根据这些关系

38、,画出因果图。3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。4)把因果图转换成判定表。5)把判定表的每一列拿出来作为依据,设计测试用例。在因果图中出现的基本符号 通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因和结果之间的关系有:表示约束条件的符号为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。

39、其规格说明如下:若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。”1)分析这一段说明,列出原因和结果原因:1.售货机有零钱找 2.投入1元硬币 3.投入5角硬币 4.押下橙汁按钮 5.押下啤酒按钮建立中间结点,表示处理中间状态11.投入1元硬币且押下饮料按钮12.押下橙汁或啤酒的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清 结果:21.售货机零钱找完灯亮 22.退还1元硬币 23.

40、退还5角硬币 24.送出橙汁饮料 25.送出啤酒饮料 2)画出因果图。所有原因结点列在左边,所有结果结点列在右边。3)由于 2 与 3,4 与 5 不能同时发生,分别加上约束条件E。4)因果图 5)转换成判定表 使用各种设计方法的综合策略使用各种设计方法的综合策略n n测试素材的复用测试素材的复用n n在任何情况下都必须使用在任何情况下都必须使用边界值分析法边界值分析法。用。用这种方法设计出测试用例发现程序错误的能这种方法设计出测试用例发现程序错误的能力最强。力最强。n n必要时用必要时用等价类划分法等价类划分法补充一些测试用例。补充一些测试用例。n n用用错误推测法错误推测法再追加一些测试用

41、例。再追加一些测试用例。n n不要因为实现的困难程度而影响设计用例不要因为实现的困难程度而影响设计用例n nGeneric TestGeneric Testn n自动生成测试用例自动生成测试用例Review编写测试Property Page的Test Case第四章第四章测试度量体系的建立测试度量体系的建立一个完备的测试度量体系的构成要素:一个完备的测试度量体系的构成要素:1.缺陷库的建立2.用例库的建立3.测试结果库的建立4.自动化测试体系5.高效的工作流程6.数据统计和数据挖掘7.缺陷追踪体系8.科学的测试管理测试度量体系构成用例库的建立用例库的建立不能把用例库只建成一个详细的记录平台,它

42、是自动化测试体系的支撑平台用例库的具体实现缺陷库的建立缺陷库的建立同样地,缺陷库也不只是记录Bug的数据库,建设时要考虑缺陷追踪和为管理提供支撑缺陷库的具体实现测试结果库的建立测试结果库的建立用例库、缺陷库和结果库是数据辅助决策的支撑平台测试度量体系平台建设测试度量体系(一)Bug和Case的关联Known Failure与New Failure缺陷的生命期缺陷的生命期(1)Open态-pending态-resolve态/open态(2)Open态-Close态(3)Open态-delay态 opencloseresolvedelaypending测试度量体系流程Review从开一个Bug到关

43、闭一个Bug经历的阶段、处理的方法、判断的依据第五章第五章测试方法及技巧测试方法及技巧从两个小故事想到的从两个小故事想到的香皂盒测试太空用笔WorkAround和彻底解决问题软件测试的种类软件测试的种类FunctionalityTestBlackboxandWhiteboxSecurityHelpanddocumentationInternationalSufficiency(Globalization/localization)AccessibilityScalability/PerformanceStress软件测试的种类软件测试的种类Geo/Political/LegalLogging/

44、MessageformatTracing/Counters(Diagnosability)TestabilityTestHooksSCENARIOBASEDTESTSReliability/LongHaulIntegrationInteroperabilityCompatibilityUE测试功能测试功能测试功能测试是在规定的一段时间内运行软件功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有系统的所有功能,以验证这个软件系统有无严重错误。无严重错误。可靠性测试也叫稳定性测试在正常负载下的测试,记录资源占用曲线结合负载测试进行可靠性测试可靠性测试如果系统需求说明书中有对可

45、靠性的要如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试。求,则需进行可靠性测试。平均失效间隔时间平均失效间隔时间 MTBFMTBF (Mean(Mean Time Between Failures)Time Between Failures)是否超过规是否超过规定时限定时限?因故障而停机的时间因故障而停机的时间 MTTRMTTR (Mean(Mean Time To Repairs)Time To Repairs)在一年中应不超过在一年中应不超过多少时间。多少时间。强度测试强度测试强度测试也叫压力测试,是要检查强度测试也叫压力测试,是要检查在系在系统运行环境不正常乃至发生故障的情况统

46、运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试下,系统可以运行到何种程度的测试。例如:例如:把输入数据速率提高一个数量级,把输入数据速率提高一个数量级,确定输入功能将如何响应。确定输入功能将如何响应。设计需要占用最大存储量或其他资设计需要占用最大存储量或其他资源的测试用例进行测试。源的测试用例进行测试。设计出在虚拟存储管理机制中引起设计出在虚拟存储管理机制中引起“颠簸颠簸”的测试用例进行测试。的测试用例进行测试。压力测试和性能测试的区别压力测试的难点一般情况下需要借助工具进行(LoadRunner,UISpider)设计出会对磁盘常驻内存的数据过度设计出会对磁盘常驻内存的数据

47、过度访问的测试用例进行测试。访问的测试用例进行测试。强度测试的一个变种就是强度测试的一个变种就是敏感性测试敏感性测试。在程序有效数据界限内一个小范围内的在程序有效数据界限内一个小范围内的一组数据可能引起极端的或不平稳的错一组数据可能引起极端的或不平稳的错误处理出现,或者导致极度的性能下降误处理出现,或者导致极度的性能下降的情况发生。此测试用以发现可能引起的情况发生。此测试用以发现可能引起这种不稳定性或不正常处理的某些数据这种不稳定性或不正常处理的某些数据组合。组合。性能测试性能测试性能测试是要检查系统是否满足在需求性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时说明书中规定

48、的性能。特别是对于实时系统或嵌入式系统。系统或嵌入式系统。性能测试常性能测试常需要与强度测试结合起来需要与强度测试结合起来进进行,并常要求行,并常要求同时进行硬件和软件检测同时进行硬件和软件检测。通常,对软件性能的检测表现在以下几通常,对软件性能的检测表现在以下几个方面:个方面:响应时间响应时间、吞吐量吞吐量、辅助存储辅助存储区区,例如缓冲区,工作区的大小等、,例如缓冲区,工作区的大小等、处处理精度理精度,等等。,等等。检验检验系统的能力最高能达到什么程度系统的能力最高能达到什么程度。例如,例如,u 对于编译程序,让它处理特别长的对于编译程序,让它处理特别长的源程序;源程序;u 对于操作系统,

49、让其作业队列对于操作系统,让其作业队列“满满员员”;u 对于信息检索系统,让它使用频率对于信息检索系统,让它使用频率达到最大。达到最大。在使系统的在使系统的全部资源达到全部资源达到“满负荷满负荷”的情形下,的情形下,测试系统的承受能力测试系统的承受能力。需要定义详尽的界定值(Benchmark)一般情况下需要借助工具进行性能测试性能测试的原则和难点安全性测试安全性测试安全性测试是要检验安全性测试是要检验在系统中已经存在在系统中已经存在的系统安全性、保密性措施是否发挥作的系统安全性、保密性措施是否发挥作用,有无漏洞用,有无漏洞。力图破坏系统的保护机构以进入系统的力图破坏系统的保护机构以进入系统的

50、主要方法有以下几种:主要方法有以下几种:正面攻击或从侧面、背面攻击系统中正面攻击或从侧面、背面攻击系统中易受损坏的那些部分;易受损坏的那些部分;以系统输入为突破口,利用输入的容以系统输入为突破口,利用输入的容错性进行正面攻击;错性进行正面攻击;申请和占用过多的资源压垮系统,申请和占用过多的资源压垮系统,以破坏安全措施,从而进入系统;以破坏安全措施,从而进入系统;故意使系统出错,利用系统恢复的故意使系统出错,利用系统恢复的过程,窃取用户口令及其他有用的信过程,窃取用户口令及其他有用的信息;息;通过浏览残留在计算机各种资源中通过浏览残留在计算机各种资源中的垃圾(无用信息),以获取如口令,的垃圾(无

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com