资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,火,龙,果,软件学院,软件测试方法与实践,火,龙,果,软件学院,课程目标和内容,目标:使您成为一名软件测试专业人员,主要内容:,基本概念,测试过程,需求审查与测试设计,系统测试分类,系统测试计划,黑盒测试用例设计,系统测试的执行,验收测试,测试团队的组织结构,TPI模型和TMM模型,测试沟通的技巧,火,龙,果,软件学院,纪律,上午:09:00-12:00,下午:13:00-16:00,(09:00-11:30),(13:00-16:30),一天六节课,每50分钟一节课,中间休息十分钟。,上课时间 静音,火,龙,果,软件学院,基本概念,火,龙,果,软件学院,主要内容,软件测试及质量,静态测试和动态测试,白盒测试和黑盒测试,PDCA,验证和确认,完备测试,测试的核心问题,火,龙,果,软件学院,软件测试的作用,软件测试,是为了,提高,和,评估,软件质量,而进行的活动。,提高质量:在,软件开发过程中,,通过不断地“,测试-发现问,题- 修复,”来提高软件产品的质量,评估质量:在,发布产品之前,,通过实施,系统级的测试,来评,估软件系统的质量如何,火,龙,果,软件学院,什么是软件质量,通过经验来认识质量,没有具体的度量标准,产品符合用户期望的程度,如:功能、易用性、可靠性等,与规范的一致性程度,如:CMM和ISO9001,产品具有好的内在品质,那么它就有好的外部质量,高度模块化内部特征使得软件可测试和可维护,客户愿意为它花多少钱,抽象的观点,用户的观点,制造的观点,产品的观点,基于价值的观点,火,龙,果,软件学院,质量重要吗?,质量是首要的,而不是短期利益,客户是首要的,而不是生产商,决策要基于事实和数据,而不是拍脑袋,质量管理是所有员工都应该参与的,而不只是管理层,质量管理涵盖产品计划、设计、开发、测试、发布,而,不只是测试,火,龙,果,软件学院,有效的质量管理,更加专注于,客户需求,采取措施,持续提高,质量,使,度量,过程与产品设计、开发融为一体,将质量概念推广到整个组织的,最底层,建立一种对方法、过程高度关注的,系统级视图,通过持续地质量提高来,消除浪费,火,龙,果,软件学院,PDCA环,计划-建立交付结果的目标与过程,实施-执行计划并衡量结果,检查-评估度量并将结果报告决策者,行动-确定改进所需的变化,测试的涉众,测试过程的涉众:,开发人员,测试人员,项目经理,客户,不同涉众看待测试过程有不同的视角。,火,龙,果,软件学院,什么是涉众?,涉众是一个人或一个组织,,它影响了系统行为,或受系,统的影响,测试视角,视角,能够工作的,不能工作的,减少失败的风险,火,龙,果,软件学院,解释,首先保证程序实现了基本功能,程序能够,工作。,当基本功能实现后,将进行更多的测试使,得程序失败,目标是发现缺陷。,(请问:发现不了错误的测试有价值吗?),系统时不时失败的概率降到可接受水平,使用更少的测试用例生,测试用例设计的数目越少,测试相关的费,产低风险软件。,用越少。,怎么测试才没有风险?,在测试阶段结束的时候发现了所有的缺陷。,这可能吗?,不可能。,1.,系统的输入域可能非常大,2.,系统包含复杂或隐含的设计决策,3.,系统的执行环境很难创建,火,龙,果,软件学院,这叫完备测试,D1,火,龙,果,软件学院,测试的核心问题,系统、谨慎的方式选择输入域子集,以便得出的结论尽可能,准确和完备。,输入,输出,D,1,输入域D,P1,程序P,火,龙,果,软件学院,静态测试和动态测试,静态测试,动态测试,对象,需求文档、软件模型、设计,程序,文档、源代码,方法,特点,评审、走查,通过检查文档,发现问题,执行程序,通过执行程序观察其行为和,性能特性,发现缺陷,火,龙,果,软件学院,白盒测试和黑盒测试,白盒测试,黑盒测试,又名,定义,测试对象,执行角色,结构测试,通过关注控制流和数,据流对,源代码,进行检,查。,程序单元,开发人员,功能测试,仅关注,程序,的输入和外部可,见输出,判断程序的输出是,否符合期望。,系统或独立的系统单元,测试工程师,火,龙,果,软件学院,验证和确认,验证是否正确地构建了产品,确认是否构建了正确的产品,验证,检查项,中间产品,如:需求规范、设计、代码、,用户手册,确认,最终产品,目标,检查实现阶段和其规范的符,合度,检查系统和用户期望的符合,度,火,龙,果,软件学院,小结,对质量和软件测试有一定理解了吗?,火,龙,果,软件学院,测试过程,火,龙,果,软件学院,主要内容,测试过程,各项目阶段的测试工作,测试活动分布,什么是测试用例,测试用例的期望结果,测试用例的信息源,测试用例的执行,测试层次,程序员独立测,试各自的程序,单元,如:一,个过程、方法、,函数、类。,采用集成测试技,术将模块组装成,一个更大的系统。,包含范围更广,的测试,在交,付客户前发现,大多数缺陷,火,龙,果,软件学院,度量产品质量,,确保系统满足,约定的接受标,准。,验收测试,系统测试,集成测试,单元测试,火,龙,果,软件学院,测试V模型,测试作为最后一个活动,错误到后期才发现。,需求分析,概要设计,详细设计,编码,验收测试,系统测试,集成测试,单元测试,火,龙,果,软件学院,测试W模型,测试和开发同步进行,需求分析,概要设计,详细设计,系统交付,系统集成,需求测试,概要测试,详细测试,编码,模块集成,单元测试,集成测试,验收测试,系统测试,火,龙,果,软件学院,测试H模型,软件测试是一个独立的流程,与其他流程并发进行,在任何,开发阶段,只要测试条件成熟,测试就可以执行。,测试流程,开发流程,测试准备,测试执行,测试就绪点,火,龙,果,软件学院,回归测试,单元测试,集成测试,系统测试,确定修改没有给未改动部分引入新的缺陷,回归测试是另一个层次的测,试,贯穿于系统的生命周期,回归测试,系统的状态,结果仅仅依赖于当前的输入,无状态系统,一个用例是一个对,非负数平方根:,火,龙,果,软件学院,结果依赖于系统当前状态和,当前输入,面向状态系统,一个用例是一个序列。,网上银行取款:,1,;,2,;,3,;,4,火,龙,果,软件学院,测试用例,测试用例,是为某个测试目标而编制的一组测试输入,及期望结果。,前提条件:,-1.,-2.,-3.,操作步骤:,-1.,-2.,-3.,期望结果:,1.,2.,火,龙,果,软件学院,试一试,预备知识:,1. LivePhone是一种手持无线 ,包括卡座和无绳话机。,卡座和电脑通过USB连接。,2. LivePhone需要管理软件DeviceManager和电脑上的,msn实时同步。,场景描述:,当msn运行情况下,插入LivePhone。如果系统没有安装,DeviceManager,电脑上弹出新窗口提示用户安装。,请尝试:,1. 根据以上场景设计测试点,2. 将一个测试点编写成测试用例。,火,龙,果,软件学院,测试用例的执行,根据输入,计算期望输出,程序(P),选择输入,实际输出,结果分析,环境,填写测试结果,通过,失败,被阻碍,NA,火,龙,果,软件学院,小结,有哪些测试过程?,什么是测试用例?测试执行结果有哪些?,概念解释:单元测试,集成测试,系统测试,验收,测试,回归测试,火,龙,果,软件学院,需求测试,火,龙,果,软件学院,主要内容,对需求的高级审查,对需求的低层次测试,需求的状态转移,需求跟踪矩阵,测试套件,测试有效性度量,火,龙,果,软件学院,需求的定义,需求是对用户的需要和期望的描述。,为什么要测试需求,确定用户需求是否明确,是否需要增删改,保证系统,的实现与客户期望一致。,火,龙,果,软件学院,需求的高层次审查,测试需求的第一步是站在一个高度上进行审查,理解软件要,做什么,为什么这么做。,假设自己是用户。,熟悉软件应用领域的相关知识,不放掉任何“不理解”的地方。“最好现在就搞懂”,研究现有的标准和规范,公司惯用语和约定,行业要求,政府标准,图形用户界面,安全标准,审查类似软件,有助于了解测试条件、测试方法,并发现其暴露出来的问题。,火,龙,果,软件学院,需求的低层次审查,优秀需求的属性,完整性:,是否有遗漏或丢失,正确性:,正确吗?有无错误?,无二义性:,是否一清二楚,无二义性?,一致性:,是否自相矛盾,与其他功能有无冲突?,必要性:,有无多余信息?陈述是否必要?,可行性:,在规定进度和预算下,现有人力、工具、资源能否实现,代码无关:,坚持定义产品,而不定义软件设计、架构和代码,可测性:,能否测试?验证信息是否足够?,火,龙,果,软件学院,术语,总是、每一种、所有、没有、从不,当然、因此、明显、显然、必然,等等、诸如此类、依此类推、例如,良好、迅速、廉价、高效、小、稳定,处理、进行、拒绝、跳过、排除,如果,那么,(没有否则),解释,考虑违反的情况,意图说服你接受假定,有些、有时、常常、通常、经常、大多、,过于模糊,这样的功能无法测试,几乎,无法测试,内容不绝对也不明确,,让人对内容产生迷惑,没有量化,无法测试,隐含大量需要说明的功能,缺少配套的“否则”陈述。如果没,有发生,会怎样?,低层次审查的术语检查单,想想为什么?,看看如下的需求有哪些问题?,火,龙,果,软件学院,业务描述,人力资源管理中,人员分为在岗职工和离职员工两种类型。员工离职是人力资源管理,中的一项日常业务。员工离职后,从在岗职工变为离职员工。在办理员工离职业务时,通常需,要由人力资源部的人事员填写离职申请单,然后由公司人力资源部长审批,有时还需要由公司,主管人力资源的领导审批。如果审批通过,由其他相关人员处理员工离职手续。,编号,业务优先级,高,用例名称,参与者,使用频率,描述,员工离职,人事员、人力资源部长等,中,为员工在线办理离职审批手续。,典型过程,结果,性能要求,1.,人事员从所有人员列表中,查找并选择要离职的员工。,2.,系统需要在离职申请单上自动显示所选员工的相关信息(例如工号、姓名、部门、岗,位)。,3.,人事员在离职申请单上继续填写离职原因、去向单位、离职时间等所需信息。,4.,人事员提交员工离职申请单。,5.,人力资源部长对离职申请单进行审批。如果审批通过,有时需要进一步提交公司人力资,源主管领导审批。,6.,所有领导审批通过后,员工由在岗职工变为离职员工。,7.,由其他相关人员继续处理员工的工资、社保、合同信息。,员工由在岗职工变为离职员工,1.,界面友好,方便用户操作,2.,响应速度快,能快速展现出列表及相关表单,3.,人员列表界面提供查询功能,能帮助用户高效、快速查出所需人员。,补充说明,存在疑问,无,无,火,龙,果,软件学院,测试需求分析,原始测试需求表,测试要点分析,测试类型分析,需求跟踪矩阵,火,龙,果,软件学院,原始测试需求表,序号,软件需求标识,原始测试需求描述,信息来源,1,业务需求说明,书,增加员工 管理员将新增用户录入到人员管理中,基本信 信息 ,信息如下:姓名、性别、部门、出,息管理 生日期、办公 、移动 、岗位,、登录名、密码、注册时间、最新登,录时间,删除员工 删除需用户确认,可以逐条删除或多,信息 条一次删除,2,求,并发15个用户,平均登录时间小于10,业务需求说明,秒,书,3,隐含需求:在使用,程序应对关键数据的操作给出警告或,中操作错误的易恢,在执行前确认,复性,将需求中的那些具有可测试性的特性提取出来,形成原始测试需求。,“人员管理”原始测试需求表,火,龙,果,软件学院,需求描述,管理员将新增,用户录入到人,员管理中,信,息如下:姓名、,性别、部门、,出生日期、办,公 、移动,、岗位、,登录名、密码、,注册时间、最,新登录时间,标识,1,测试要点,输入符合要求的信息后执行保存,检查保存是否成功,2,3,4,5,6,7,8,9,10,检查“姓名”“性别”“部门”“岗位”“移动 ”是否,为必填项,检查每个输入项的数据长度是否遵循要求,检查每个输入项的数据类型是否遵循要求,检查数据不能重复,检查时间是否满足规定的精度要求,检查最新登陆时间是否不早于注册时间,对于页面中的文字、表单、图片等页面元素,检查元素位置,是否协调,颜色是否协调,大小比例是否协调,页面信息显示是否完整,最大化、最小化、还原、切换、移动窗口时是否能正常显示,页面,测试要点分析,对原始测试需求表每一条需求进行细化和分解,功能,检查最新登陆时间是否不早于注册时间,界面,火,龙,果,软件学院,分析测试类型,测试类型:功能、界面、健壮性、互操作性、性能、可扩展性、压力、,负载和稳定性、可靠性、文档。,原始需求描述标识,测试要点,测试,类型,管理员将新增,用户录入到人,员管理中,信,息如下:姓名、,性别、部门,,出生日期、办,公 、移动,、岗位、,登录名、密码、,注册时间、最,新登录时间,1,输入符合要求的信息后执行保存,检查保存是否成功,功能,2,3,4,5,6,7,8,9,检查“姓名”“性别”“部门”“岗位”“移动 ”是否,为必填项,检查每个输入项的数据长度是否遵循要求 功能,检查每个输入项的数据类型是否遵循要求 功能,检查时间是否满足规定的精度要求 功能,可靠,性,对于页面中的文字、表单、图片等页面元素,检查元素位置,是否协调,颜色是否协调,大小比例是否协调,页面信息显示是否完整 界面,最大化、最小化、还原、切换、移动窗口时是否能正常显示 功能,页面 界面,火,龙,果,软件学院,需求跟踪矩阵,原始测试需求与测试要点的对应关系表。,识别和追溯测试对功能覆盖,需求变更管理当需求发生变化,将与变更需求相关,的内容进行同步变更。,可跟踪表进行扩展,测试用例、测试结果和缺陷都可添加到跟踪矩阵,功能,检查最新登陆时间是否不早于注册时间,功能,火,龙,果,软件学院,需求跟踪矩阵,软件需求,测试需求,需求标识,需求描述,基本,信息,管理,管理员将新增,用户录入到人,员管理中,信,息如下:姓名、,增加 性别、部门、,员工 出生日期、办,信息 公 、移动,、岗位、,登录名、密码、,注册时间、最,新登录时间,测试,需求,标识,1,测试要点,输入符合要求的信息后执行保存,检查保存是否成,功,测试,类型,功能,2,3,4,5,6,7,8,9,检查“姓名”“性别”“部门”“岗位”“移动电,话”是否为必填项,检查每个输入项的数据长度是否遵循要求,功能,检查每个输入项的数据类型是否遵循要求,功能,检查时间是否满足规定的精度要求,功能,可靠,性,对于页面中的文字、表单、图片等页面元素,检查,元素位置是否协调,颜色是否协调,大小比例是否,界面,协调,页面信息显示是否完整,功能,最大化、最小化、还原、切换、移动窗口时是否能,正常显示页面,火,龙,果,软件学院,测试套件(Test,Suite),服务于特定目标的测试用例的集合。,基于测试分类(功能,性能、压力等)来识别测试组,测,试组可嵌套为任意深度,将测试组细化到测试目标。,测试套件:,ID,标题,目标,用例清单等,火,龙,果,软件学院,测试用例状态转移图,火,龙,果,软件学院,建立测试设计结果模型,=,测试设计有效性,测试用例设计产出率(TCDY),计划测试用例数,计划测试用例数,+,逃逸测试用例数,测试用例设计有效性度量目标:,测量测试套件的缺陷发现能力,优化测试设计流程,火,龙,果,软件学院,*100,%,在测试执行过程中,,可能发现新的缺陷,,这些缺陷不是执行,计划的测试用例发,现的,需要根据新,缺陷设计新用例。,火,龙,果,软件学院,小结,如何对需求进行测试?,需求跟踪矩阵有什么作用?,需求的状态转移过程如何?,测试用例有效性度量指标是什么?,火,龙,果,软件学院,系统测试分类,火,龙,果,软件学院,主要内容,系统测试分类,基础性,功能性,健壮性,互操作性,性能,可扩展性,压力,负载和稳定性,可靠性,文档,火,龙,果,软件学院,系统测试类型,基础性,性能,互操作性,负载和稳定,性,功能性,可扩展性,可靠性,健壮性,压力,文档,火,龙,果,软件学院,基础测试,针对需求规范中的主要功能而对系统进行的,有限测试,,目,的是表明系统可以进行,更严格,的测试。,启动测试:验证系统能否启动以运行软件,升降级测试:验证系统能否升级和降级。,命令行测试:验证系统能否配置,火,龙,果,软件学院,功能性测试,验证系统是否,全面覆盖,到需求指明的所有需求。,模块测试:验证系统中所有模块符合各自的预期功能。,GUI测试:验证不同的组件,如图标、菜单栏、滚动条、列,表框和单选按钮等。,易用性测试:用户使用软件时是否感觉方便。,安全性测试:验证系统是否满足保密性、完整性和可用性。,火,龙,果,软件学院,健壮性测试,验证系统在错误条件下及改变的环境中行为是否合,理。它通过破坏系统从而发现错误。,边界值测试,向系统提供不正确的输入数据(边界值、特殊值),,查看系统如何回应(系统应该回应一条错误消息),电源故障,断电时,系统能够在电力恢复后从故障回到正常操作,在线插入和删除测试,确保从热插拔事件中恢复的系统没有重启,或破坏其他组件。,故障容错:,验证某模块的备用模块及控制软件是否能从硬件或软,件失败中迅速恢复,不对系统的运行产生不利影响,降级测试:,测试在系统一部分不工作之后系统的运行状态,火,龙,果,软件学院,互操作性测试,验证系统与第三方产品相结合并能够进行操作的能力,配置测试,兼容性测试,火,龙,果,软件学院,性能测试,验证系统的响应时间、吞吐量、资源使用率。,如果没有满足性能指标,采取行动改善它:,重写代码,分配更多的资源,重新设计系统,火,龙,果,软件学院,可扩展性测试,验证系统能够扩展规模达到它的工程限制。,如:验证网站服务器性能不减情况下,能够支持的最大用户数,出现限制的原因:,数据存储限制,网络带宽限制,CPU速度限制,外推法用于预测可扩展性的限制。,如:计算数据库事务系统的性能,当每秒有100、200、400和800个事务时,计算CPU和内存的使,用情况,绘制事务数目对于CPU和内存的趋势图。,外推测量结果达到20,000个事务的情况。,火,龙,果,软件学院,压力测试,评估和判断软件在,负载,(并发数,时间),超出,预期时的行,为,确保这个行为是可接受的。,改进系统健壮性,开发失败恢复机制,(在负载增加到系统停止运行时,找出失败原因和失败点),压力测试可能引发内存泄露,火,龙,果,软件学院,负载和稳定性测试,确保系统在,满负荷,之下,运行很长时间,仍能,保持稳定,。验证,系统是否能够支持期望的负载。,满负载、长时间运行的软件可能会出现的问题:,系统变慢,系统遇到功能问题,系统崩溃,火,龙,果,软件学院,可靠性测试,测量系统,长时间,保持,运行,的能力。,MTTR,MTTF和MTBF,火,龙,果,软件学院,可靠性测试度量指标,软件可靠性,软件系统在一个特定的环境和特定的时间段中无故障运转的,概率。,如:一台电脑一天工作8小时,一年工作200天,一年中有5天发生崩,溃,那么该电脑无故障运行8小时的概率是(200-5)/200=97.5%,故障密度,在给定环境里运行的软件系统可靠性的度量。,如:处于系统测试阶段的软件系统,每执行8小时有2个故障,那么可,靠性就是每小时0.25个故障。,火,龙,果,软件学院,文档测试,确保系统文档是可用的,且准确的,用户指南,教程,在线帮助,故障排查手册,阅读所有的文档来验证:,语法的正确使用,术语使用一致性,在需要的时候适当使用图表,火,龙,果,软件学院,如何测试文档,术语表:使用了标准、普遍接受的术语,且被正确定义,索引:完整,并指向正确的页,安装:在实际环境中按手册描述的步骤执行安装过程,观察是否可行,故障排查手册:插入指定“错误”,使用故障排查手册修复错误,验,证是否正确,软件版本说明,当前版本新特性,相比以前版本的功能变化,已知缺陷集,及对客户的影响,火,龙,果,软件学院,试一试,如果测试一个B2C的购物网站,如京东,淘宝,你会做哪些,类型的测试?,火,龙,果,软件学院,系统测试计划,火,龙,果,软件学院,主要内容,导言和特征描述,风险,测试方法,测试套件结构,测试环境,测试执行策略,测试工作量评估,安排进度和测试里程碑,火,龙,果,软件学院,测试计划的定义,测试计划:规定了测试活动的范围、方法、资源和,进度,为项目的系统测试执行进行准备和组织。,请注意:,测试计划是测试规划过程的输出。,重要的是计划过程,而不是最终的文档。,目的是为了交流,而不是记录。,火,龙,果,软件学院,系统测试计划的结构,系统测试计划,由系统测试组负责人编制,由评审组(项目经理、开发组、系统测试组、客户支持,组)评审,如果没有测试计划,可能意味着花费更高的成本和更多的时间,却交付更低,质量的产品。,在最终期限的压力下工作,测试工程师喜欢走捷径,并且有,“可运行就行”的心态。,客户支持组花费大量时间和不满意的客户交涉,被迫发布若干,补丁满足客户。,火,龙,果,软件学院,系统测试计划的结构,1.,导言,2.,特征描述,3.,测试范围,4.,测试方法,5.,测试套件结构,6.,测试环境,7.,测试执行策略,8.,测试工作量估计,9.,进度与测试里程碑,火,龙,果,软件学院,测试方法和测试套件,测试方法,:,识别出第一级的测试分类,准备工具、格式,特定的测试需要,如软硬件配置,过去测试项目中学到的经验教训,如客户方的内存泄漏,测试自动化策略,测试套件结构:,基于第一级测试分类,列出每个测试组和下属组,测试套件中的,测试目标,被识别,而不是详细的测试用例,火,龙,果,软件学院,测试环境,目标:使用有效资源检测出尽可能多的缺陷,从而实现有,效测试。,多种测试环境,不同种类的测试,功能测试、压力测试,并行测试减少测试执行时间,按比例缩小部署环境,替代物:模拟器、仿真器和第三方流量生成工具,系统测试实验室必须独立、专有。,火,龙,果,软件学院,三周期系统测试策略,火,龙,果,软件学院,测试周期的六参数,测试周期的方向,要实现的理想目标,系统测试接受版本频率,按照自己的进度安排测试,不是所有构建都测试,设定测试用例的执行优先级。执行优先级在测试周,期之间可能变化。,测试执行中,可能有意外事件:,2.大量新用例产生。,根本原因分析(RCA),最终测试退出条件有产品质量、商业战略、市场等,,这里仅考虑产品质量,目标,假设,测试执行,重做和延长标准,行动,退出条件,火,龙,果,软件学院,第一测试周期,原则,执行最多的的测试用例而不被阻塞。,阻塞缺陷,尽早发现,尽早修复。,执行范围,全部的测试套件,执行优先级,高:基础性、功能性,中:健壮性、互操作性,低:文档、性能、压力、可扩展性、负载和可靠性,火,龙,果,软件学院,第二测试周期,原则,上周期失败的测试用例尽早执行,执行范围,全部的测试套件,执行优先级,高:上周期执行失败的测试用例、开发实施RCA的测试组,中:bug修改影响的测试用例,低:其他,火,龙,果,软件学院,第二测试周期,原则,回归测试,执行范围,测试套件子集,执行优先级,高:上周期执行失败的测试用例、开发实施RCA的测试组、压力、,负载、稳定性、性能测试组、bug修改影响较多的测试组,中:bug修改影响较少的测试组,火,龙,果,软件学院,首次测试周期进入标准,组别,项目,需求,软件,标准,项目计划,需求文档是完整和最新的,1.,功能规范、设计规范完整并与实现同步,2.,代码完整并冻结;仅在缺陷修复而不是新增,功能时才能动代码,3.,单元测试、集成测试100%通过,4.,集成测试最后两周崩溃次数不超过2次,关注点,项目计划和需求的完,成,在标准和事实证据之,上,评定系统是否足,够稳定,足以接受系,统测试,技术文档,用户手册草稿可用,用户手册的完成状态,测试,硬件,系统测试计划通过评审,测试用例准备完成,测试执行工作文档就绪并完整,软件系统使用的硬件通过审核和测试,测试准备就绪,为用例执行提供可靠,的硬件,火,龙,果,软件学院,测试执行工作文档,目录,1.,测试工程师,2.,测试用例分配,3.,测试台分配,4.,测试执行计划速率,5.,失败用例的补丁验证策略,6.,补充新测试用例的策略,7.,系统镜像的实验,8.,缺陷评审,火,龙,果,软件学院,测试工程师,记录测试工程师的姓名,经验(高级、中级、初级),在,本项目中的工作可参与性,记录成员的培训需求,跟踪成员的行动计划和培训进度,项目相关的人力资源和培训需求,要交项目负责人审核。,火,龙,果,软件学院,测试台分配,统计测试台的数量、种类和分布,为测试台和用例集建立映射关系,映射要基于用例执行的配置需求,给负责执行用例的测试工程师分配测试台,火,龙,果,软件学院,测试用例分配,分配测试用例原则:测试工程师的经验和兴趣。,用例分配可通过项目团队内部会议决定,为测试实验室中测试用例指定测试人员,将测试执行所有权交给,测试工程师。,最好一并指定开发人员,使开发测试配对,测试人员和开发人员组队讨论以理解测试用例,并确定测试用例,执行优先级高,中,低,测试人员也可以更新测试用例调整测试步骤和通过失败标准,火,龙,果,软件学院,测试执行计划速率,每周计划执行的测试用例数,这会和实际执行速率进行比,较,以掌握测试组的测试进度。,如:连续几周实际执行的测试用例远落后于预期,那么测试经理,将会知道这个项目可能被延期,火,龙,果,软件学院,失败测试用例的补丁验证策略,下一测试周期验证,没有补丁在当前测试周期插入系统,这些补丁在下一测试周期开,始之前获得。,当前测试周期验证,所有整合到系统中的补丁都要经过回归测试,回归测试策略,:,补丁对应的功能修改,与补丁相关的其他功能,火,龙,果,软件学院,补充新测试用例的策略,如果发现一个有效的问题但无相应测试用例,这时需要补,充新的测试用例,提高测试覆盖度。,补充策略,当前周期中,及时,补充新测试用例,当前周期执行,完成后,集中补充新测试用例,怎么知道要为哪个缺陷补充用例呢?,在缺陷报告中增加一个“需要补充用例”的标记,火,龙,果,软件学院,系统镜像的实验,在测试周期正式开始前,提前将软件镜像安装到自己的测,试台上进行实验。,有什么好处?,1.,熟悉系统,在系统测试周期中提高测试执行的生产力,2.,确保测试台可操作的且没有任何故障,3.,执行一些基础的测试用例来验证测试步骤,火,龙,果,软件学院,缺陷评审,三方评审:开发组、测试组和客户支持组参加。,什么内容:,是不是bug,要不要解决,怎么解决,修复的话,怎么修复,评审频率:,开始可以没有,中期每周一次,后期每天都有,火,龙,果,软件学院,试一试,六名测试工程师:1名高级,2名中级,3名初级,8台测试机,可安装任意操作系统,测试B2C购物网站,请问,你如何编制测试执行工作文档?,火,龙,果,软件学院,测试工作量估计,估计工作量是为了安排测试日程,测试用例数量,估计测试用例数量的方法,基于测试组类别的估计:测试目标的数量*(1+10%15%),基于,功能点,(FP)的估计:测试用例总数=(功能点数),每人日创建测试用例数量,每人日执行测试用例数量,测试生产率没有数学公式,需要收集实际项目数据。,火,龙,果,软件学院,创建测试用例工作量,创建测试用例的活动包括:,阅读理解系统需求及功能规范,创建测试用例,输入必填字段,包括测试步骤和通过-失败标准,复查并更新测试用例,火,龙,果,软件学院,执行测试用例工作量,影响测试用例执行速率的因素:,参考数据,用例的复杂程度,执行者对系统目标的了解程度,测试用例通过率,请看执行一条用例都做哪些工作,理解测试用例,配置测试环境,执行测试步骤,记录测试结果,感觉出现缺陷时,需要,1.,设法重现缺陷,2.,执行与缺陷相关的不同用例,3.,收集缺陷信息,如截图、日志、软硬件配置,4.,提交缺陷报告,5.,如果开发无法重现缺陷,进一步跟进,火,龙,果,软件学院,安排进度和测试里程碑,系统测试时间是项目总体计划的一部分。,系统测试负责人要有良好的时间观念和质量观念。,协调现有资源,在考虑任务间相互依赖基础上,尽可能并行安排任务,指定里程碑、审查和交付测试的时间,以准确反映测试的进展,进度采用相对日期,示例,任务,测试计划完成,测试用例完成,第一轮测试周期,第二轮测试周期,第三轮测试周期,开始日期,需求说明书完成后,测试计划完成后,满足进入标准,Beta版本提交,发布候选版本提交,时长,4周,12周,6周,6周,4周,截止日期,xxxx年xx月xx日,xxxx年xx月xx日,xxxx年xx月xx日,xxxx年xx月xx日,xxxx年xx月xx日,通过减少测试范围和深度去掉部分测试用例,引入熟练技术的专业测试专家,增加更多人员或测试床,自动执行测试用例,要求人员加班,讨论:如何缩短测试用例的执行时间,火,龙,果,软件学院,范围,质量,时间,资源,火,龙,果,软件学院,小结,测试计划的大纲,利用有效的过程模型进行软件系统测试,用测试周期控制步骤,用六个参数描述一个测试周期,系统测试进入标准,设定测试用例的优先执行顺序,通过功能点估计测试用例的数目,估计测试用例创建的执行的时间,火,龙,果,软件学院,黑盒测试用例设计,火,龙,果,软件学院,主要内容,功能测试的概念,正交实验法,等价类划分,边界值分析,判定表,随机测试,错误猜测,火,龙,果,软件学院,黑盒测试,把程序P看成一个从输入向量Xi转换成输出变量Yi的函数,,即Yi=P(Xi),忽略输入到输出的转换细节,分析输入和输出域生成测试数据,通过性测试(test,to,pass)和失效性测试(test,to,fail),通过性测试确认软件至少能做什么,失效性测试是通过各种手段搞垮软件,通过性测试,失败性测试,火,龙,果,软件学院,失败状态测试,竞争条件和时序错误,不同程序同时保存和打开同一文档,在软件读取或改变状态时按键或点鼠标,同时启动或关闭多个实例,同时使用不同程序访问一个数据库,重复(暴露内存泄漏),不停的启动、关闭程序,反复读写数据,反复选择一个操作,压迫,限制软件的运行条件,如内存小、磁盘空间少、CPU慢,负载,服务器处理并发,长时间,处理大文件,火,龙,果,软件学院,黑盒测试用例设计方法,流程测试,数据测试,正交实验,等价类划分,边界值,随机测试,错误猜测,火,龙,果,软件学院,流程图,建立状态转换图,减少要测试的数量,每种状态至少测试一次,测试最常见和最普遍的状态转变,测试状态间最不常见的分支,测试所有的错误状态及其返回值,火,龙,果,软件学院,正交实验法,释义:源于,正交试验设计方法,从大量数据中挑选适量,的、有代表性的点,从而合理地安排测试的一种科学的试,验设计方法。,正交测试法使用,已知的正交表,来安排试验并进行数据分析,正交矩阵,通常表示为:L,runs,(Levels,factors,),Runs运行次数,数组的行数,Factors因素,数组的列数,Levels水平,每个因素取值数目的最大数,火,龙,果,软件学院,正交实验法步骤,1.,确定系统的,独立变量的个数,,映射到数组的Factor,2.,确定每个变量,取值个数中的最大个数,,映射到数组的Level。,3.,找到运行次数最少的合适的正交矩阵,L,runs,(,Levels,factors,),Levels,=Level;,Factors,=factor,4.,把变量映射到Factor,每个变量的值映射到数组的Level,5.,如果数组中有没被映射的Level,遍历所有可能值。,练习,火,龙,果,软件学院,等价类划分,释义:将被测系统按照输入条件划分为若干输入类,对于,同一类中所有输入,被测系统等同对待,这个类是等价类。,有效输入,是指预期返回一个,非错误值,的输入,无效输入,是指预期返回一个,错误值,的输入,优点,少量测试用例就能覆盖较大的输入域,等价类划分法发现缺陷的概率远高于随机测试,火,龙,果,软件学院,等价类划分指南,输入条件,等价类,举例,域a,b,有效等价类:aX,b,无效等价类:X,b,人的年龄,一组值的,有效等价类:集合中的每个值,一年的月份,集合,无效等价类:非集合元素,每一个单,每个有效输入为一个等价类,独的值,一个必须,有效等价类:必须值,值,无效等价类:非必须值,菜单项,密码的第一个字符必须,是数值型字符,火,龙,果,软件学院,使用步骤,等价类定义测试用例的步骤:,1.,为每个等价类指定唯一的标识符,2.,为没被用例覆盖的,有效等价类,生成用例,一个用例覆,盖,尽可能多,的有效等价类。,3.,为没被用例覆盖到,无效等价类,生成用例,一个用例,仅,覆盖一个,无效等价类。,练习:,设有一个档案管理系统,要求用户输入以年月表示,的日期。假设日期限定在1990年1月2049年12月,并规,定日期由6位数字组成,前4位表示年,后2位表示月。现用,等价类划分法设计测试用例,来测试程序的日期检查功能,。(不考虑2月的问题),火,龙,果,软件学院,练习:请用等价类划分法设计用例,设有一个档案管理系统,要求用户输入以年月表示的日期。,假设日期限定在1990年1月2049年12月,并规定日期由6,位数字组成,前4位表示年,后2位表示月。,请用等价类划分法设计测试用例,来测试程序的日期检查,功能。,火,龙,果,软件学院,边界值分析(BVA),释义:在,等价类的边界,附近选择测试数据,以寻找不正确,边界引发的错误。,边界值分析指南,练习:请把上题的测试数据用边界值法重新设计,等价类,指南,范围域,边界上的点,边界外的点,连续值,最小值,最大值,比最小,值小的值、比最大值大的,值,举例,-10.0,10.0,测试数据应为-,9.9,-10.0,-10.1和,9.9,10.0,10.1,学生宿舍容纳1-4个学生,那么,测试用例应为1、4、0、5个学,生,火,龙,果,软件学院,判定表,释义:分析和表达多逻辑条件下执行不同动作的工具,条件,值,R1,R2,规则,R3,R4,条件一(C1),Y,N,-,条件二(C2),Y,N,-,动作,动作一(E1),动作二(E2),注:判定表中每个列应该独立于其他列,火,龙,果,软件学院,判定表的使用步骤,1.,2.,3.,4.,5.,6.,7.,8.,确定条件(输入)和动作(输出),在判定表中列出条件和动作,记录每个条件的值,计算可能的组合数量=值的数,条件数,把所有可能组合填入列,每列对应一个组合。对于每一行进行如下,操作:,(1)确定重复因子RF(2)写下每行的取值,减少组合(规则)。寻找影响相同的不同组合,用横线合并相同列,检查覆盖到的规则,对于每一个列,计算它代表的组合数,横线代,表该条件尽可能多的组合,计算总数应和步骤3一样,把动作加入判定表的列,如果影响不只一个,指定动作发生次序,将判定表的列转换为测试用例,练习,火,龙,果,软件学院,练习:请用判定表设计测试用例,某公司两类工作人员,分别是咨询人员和长期工作人员。,1.,对于每周工作超过40小时的咨询人员,前40小时按小时薪酬计算,,剩余小时按照双倍薪酬计算。,2.,对于每周工作不足40小时的咨询人员,按小时薪酬计算,并生成一,份缺勤报告,3.,对于每周工作超过40小时的长期工作人员,直接按照工资计算。,请使用判定表设计测试用例,提示:,条件和动作定义如下,条件,C1:长期工作人员,C2:工作时间40小时,C3:工作时间=40小时,C4:工作
展开阅读全文