您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > ISTQB基础知识:软件测试设计技术
ISTQB基础知识软件测试设计技术目录软件测试的基本过程什么是测试用例?测试用例的作用测试用例的组成测试用例的表现形式什么是良好的测试用例测试用例的认识误区软件测试开发过程测试分析阶段在测试分析(testanalysis)阶段,要对测试基础文档进行分析,从而决定测试什么,也就是明确测试的条件。测试条件是能通过一个或多个测试用例进行验证的一个条目或事件(比如功能、事务处理、质量特征或结构元素等)。建立从测试条件到需求的可追溯性,有助于需求变更时的影响分析(impactanalysis)和测试用例集的需求覆盖率分析。测试设计阶段在测试设计阶段,要定义和记录测试用例和测试数据。完成测试设计规格说明(包含测试条件)和测试用例规格说明预期的测试结果应该作为测试用例规格说明的一部分,同时包含输出、数据和状态的变化,以及其他的测试结果。软件测试开发过程(续)测试执行阶段在测试实现阶段,测试用例的开发、实现、确定优先级和组织都应该包含在测试规程规格说明中。测试规程(或者手工测试脚本)描述了测试用例执行的顺序。如果使用测试执行工具(testexecutiontool)进行测试,这种测试的动作顺序将在测试脚本中描述(自动化的测试规程)。试执行进度计划(testexecutionschedule)。不同的测试规程和自动化测试脚本要体现在测试执行进度计划(testexecutionschedule)中,该计划定义了不同测试规程和可能的自动化测试脚本的执行顺序、执行的时间和执行者。测试执行进度计划同时考虑了其他的因素,比如回归测试、测试优先级以及技术和逻辑的依赖等。软件测试技术测试技术分类黑盒测试技术(基于规格说明的测试技术)白盒测试技术(基于结构的测试技术)基于经验的测试技术测试设计的内容测试规约设计(测试规格说明)测试用例规格说明设计测试用例设计测试管理文档模板设计辅助测试工具设计测试用例设计(TestCase)是重要的测试设计内容,决定测试的覆盖度和测试效率三类软件测试技术的特点基于规格说明的测试技术特点使用正式或非正式的模型来描述需要解决的问题、软件或其组件等。根据这些模型,可以系统地导出测试用例。基于结构的测试技术特点根据软件的结构信息设计测试用例,比如软件代码和软件设计规格说明文档。可以通过已有的测试用例测量软件的测试覆盖率,并通过系统化的导出设计用例来提高覆盖率。基于经验的测试技术特点测试用例根据参与人员的经验和知识来编写。测试人员、开发人员、用户和其他的利益相关者对软件、软件使用和环境等方面所掌握的知识作为信息来源之一。对可能存在的缺陷及其分布情况的了解作为另一个信息来源。软件功能性测试概述任何程序都可以看作是将从输入定义域映射到输出值域的函数,将系统看作是黑盒。黑盒的内容(实现)是不知道的,而用输入和输出表示的黑盒函数。软件功能性测试依据软件的规约(规格说明)功能性测试用例的优点功能性测试与软件如何实现无关,所以如果程序的具体实现发生变化,测试用例仍然有用;测试用例开发可以与实现并行进行,因此可压缩总的项目开发时间。功能性测试的缺点测试用例之间可能存在严重的冗余可能会存在未测试的软件漏洞。由于功能性方法基于已描述行为,因此很难保证这些方法能够设计出没有被描述的行为所对应的测试用例。软件功能性测试用例设计方法等价类划分有效等价类无效等价类边界值临界值刚好超出临界值刚好小于临界值因果图与判定表复杂条件构成因果图根据因果图形成判定表用例(UseCase)测试用例描述了参与者(包括用户与系统)之间的相互作用,并从这些交互产生一个从系统用户或客户的角度所期望和能观察到的结果。根据业务流程,确定测试场景状态转换测试根据软件的状态、状态间的转换、触发状态变化(转换)的输入或事件以及从状态转换导致的可能的行动来进行测试。软件结构性测试概述结构性测试是用于设计测试用例的基本方法。与功能性测试相比,结构性测试有时叫做白盒(或甚至叫做透明盒)测试。了解程序是如何实现的,理解程序并设计测试用例。由于具有很强的理论基础,结构性测试本身又引出测试覆盖指标的定义和使用。测试覆盖指标明确描述了测试用例对所测程序的覆盖情况,便于测试管理和度量。缺点测试用例集合完全局限于已实现的程序行为集合中。由于结构性方法依靠的是程序,不能设计出程序没有实现的功能的测试用例。软件功能性测试与结构性测试的比较哪种测试方法更好?对于结构性测试,RobertPoston写道:“这种工具自20世纪70年代以来一直在浪费测试人员的时间……[它]不支持好的软件测试实践,应该从测试人员的工具包中剔除”(Poston,1991)。EdwardMiller在为结构性测试辩护时写道:“如果达到85%或更好的水平,判断覆盖率[一种结构性测试覆盖率指标]发现的缺陷,一般是‘直觉’[功能性]测试找出的缺陷的两倍”(Miller,1991)。两种方法单独使用都是不充分的功能性测试只利用规格说明设计测试用例,而结构性测试使用程序源代码(实现)作为测试用例设计的基础。如果所有已描述行为(规格说明书)都没有被实现,则结构性测试永远也不会认识到这一点。如果程序实现了没有被描述的行为,功能性测试用例永远也不会揭示这一点。因此,需要结合两种方法,两种方法的组合提高功能性测试的有效性,以及结构性测试的度量。由于功能性测试常常会有冗余和漏洞两方面的问题。如果功能性测试结合结构性测试覆盖率指标执行,则这两个问题都会被发现并解决。测试设计术语TestDesignSpecification(测试设计规格说明/测试规约)根据测试需求编写的指导测试设计的文档,包括测试设计策略、设计方法、设计范围的文档作用和形式相当于软件设计规格说明TestCase(测试用例)详细描述如何实现测试需求。一组输入值、执行的前提条件、预期结果和执行的后置条件等元素组成,覆盖一定范围的测试条件TestSuite(测试套件)为某一特定测试类型设计的一组测试用例的集合验收测试、功能测试、回归测试、压力测试等Testlibrary/repository(测试库)包括一个或多个测试项目的测试套件的集合。功能测试用例1功能测试用例2功能测试用例n验收测试用例1验收测试用例2验收测试用例n什么是软件测试用例?为指导测试而编写的包含测试目的、测试步骤、期望测试结果的一组文档。测试什么?怎么测试?指导测试人员执行测试:测试设置测试执行需要查看的软件行为如何判断运行结果软件测试用例的组成测试标识测试前提条件/设置输入和事件运行测试用例的过程或步骤预期的输出(结果)测试的后置条件其它信息软件测试用例的表现形式各个软件公司的测试用例形式多种多样比较规范的是采用数据库管理,测试用例是数据库的一条条记录。还可以使用Word,Excel等表示测试用例的实例演示与分析软件功能测试用例示例Requirement:GeneralDescription:OutputcanbesavedandopenedinWord.ID:XXSteps:1.RunMicrosoftWord.2.ClickAveryWizardbuttononthetoolbarorselectTools-AveryWizard.3.SelectStartanewprojectinWelcometotheAveryWizarddialogandclickNextbutton.4.SelectanAveryproductandtheorientation,thenclickNext.5.SelectMergedatafromanexistingdatafileandclickNext.6.ClickonWordbuttonandselectaWordfile,andclickNext7.FollowtheguideofWizardtofinishthenecessarysteps.e.g.inCustomizeYourDesignpage,selectthefieldsandclickonAddFieldtoLayoutandclickonNext8.ClickFinishbuttoninthePrintPreviewandFinishdialog.9.Verifytheabilitytomergethedataintothewizard.测试用例实例–用户界面测试DeploymentTestcaseTestCaseID:62Title:UserExitFormPath:\Deployment\GeneralAuthor:xxxxxPurpose:makesurethedialogtotestisproperlydesigned,lookfortruncations,wrongtaborders,duplicatedhotkeys,overlappingsandanyotherposibleissuesSteps:1.LaunchApp.2.Goto“Tools”/“Import/ExportSettings…”3.Select“Generaldevelopmentsettings”4.ClickResetSettings5.Ifyouarepromptedtosaveyoursettings,click“Don’tsave”6.Adialogappearstellingyouthattheoperationhadbeensuccessful软件测试用例的作用指导测试的实施,避免盲目性,提高测试的有效性如果没有测试用例或者仅有简单的测试功能描述,测试覆盖度无法保证,测试过程难以控制,测试结果将毫无可靠性可言;衡量测试执行的进度状态评估测试结果的度量基准分析缺陷的标准什么是良好的测试用例可以最大程度地找出软件隐藏的缺陷(达到测试目的)可以最高效率的找出软件缺陷(提高测试质量)可以最大程度地满足测试覆盖要求(保证测试广度)既不过分复杂、也不能过分简单(Goodenough)使软件缺陷的表现可以清楚的判定(容易判断测试结果)测试用例包含期望的正确的结果待查的输出结果或文件必须尽量简单明了不包含重复的测试用例(降低测试成本)测试用例内容清晰、格式一致、分类组织(减少维护成本)测试用例要具有良好的重用性和测试优先级(降低测试成本)测试用例的设计步骤步骤设计测试用例的准备工作测试用例框架设计(阶段划分、模块分解)测试用例详细设计测试用例审查说明测试用例框架设计把需要测试的产品进行模块分解,例如,按照测试类型分解,或者按照被测模块分解。详细设计就是把每一条测试用例的具体内容填写完毕。设计测试用例的参考文档参考文档用户需求文档(市场人员提供)软件需求文档(产品经理/项目经理/系统分析师)软件设计规格说明书(系统分析师)软件测试需求文档(测试经理)(经常缺乏)软件测试计划文档(测试经理)前一版本的测试用例文档(产品经理/项目经理)测试用例文档模板(测试经理/质量经理)测试用例的执行状态未执行正在执行失败跳过执行阻塞通过完成执行用例错误软件不匹配测试用例的质量评价方法传统的评价方法能够尽可能发现软件缺陷的测试用例就是好的测试用例尽可能覆盖测试需求的测使用例是好的测试用例新的评价方法测试用例的质量属性测试用例的结构和可测试性测试用例的配置管理测试用例的质量属性准确:可以测试描述给出的内容简洁:只包含实现测试目的需要的步骤可重复:无论谁执行该测试用例,都会得到相同的结果适当:满足当前和今后的测试人员测试可追踪:对应着特定的测试需求自我清理:测试执行后,返回测试的初始状态(适用于自动化测试脚本用例)测试用例的组织MicrosoftWord形式的测试用例MicrosoftExcel形式的测试用例测试用例管理
本文标题:ISTQB基础知识:软件测试设计技术
链接地址:https://www.777doc.com/doc-3968121 .html